محمد حسین نوری
محمد حسین نوری
خواندن ۶ دقیقه·۳ سال پیش

دی ان اس یا DNS چیست؟ رایج ترین حملات DNS

دی ان اس چیست؟
دی ان اس چیست؟


دی ان اس یا DNS چیست؟

به خاطر سپردن همه آیپی ها کار سخت و نشدنی است، به همین دلیل از سرویسی استفاده میکنیم تا نام دامنه را که برای انسان قابل فهم است را به IP مقصد مورد نظر تبدیل کند; برای مثال به خاطر سپردن IP سرور گوگل (172.217.17.110) ممکن است برای انسان کار دشواری باشد، اما اگر یک نام دامنه برای مثال (Google.com) از آن سرویس وجود داشته باشد به راحتی میتوان به آن دسترسی داشت.

درواقع DNS Server مانند دفترچه تلفن اینترنت کار میکند، در دفترچه تلفن شما نام یک نفر را جست و جو میکنید و در آن به شماره آن فرد میرسید و در دنیای اینترنت هم شما به دنبال IP یک نام دامنه میگردید و نام دامنه را از DNS Server درخواست میکنید و پاسخ را دریافت میکنید.

دی ان اس یا Domain Name System وظیفه تبدیل نام دامنه به IP و بلعکس را دارد که به این عمل Name Resolution گفته میشود.

پروتکل ارتباطی این سرویس DNS است و روی PORT شماره 53 انجام میشود.

از DNS server آیپی گوگل را میپرسیم
از DNS server آیپی گوگل را میپرسیم


زمانی که ما میخوایم به Google.com متصل بشویم، سیستم ما یک درخواست به DNS Server میفرستد و رکورد مورد نظر را درخواست میکند، برای مثال میپرسد که آدرس IP گوگل چی هست؟ و DNS Server با توجه به رکورد هایی که در آن ثبت شده است به این درخواست پاسخ میدهد.



رکورد های DNS چی هستند؟

بیشتر از 30 رکورد DNS وجود دارد که در ادامه متداول ترین آنها را به شرح زیر است:

رکورد های رایج DNS
رکورد های رایج DNS


  • A Record

رکورد A در DNS به آیپی یک دامنه اشاره دارد و با درخواست این رکورد IPv4 دامنه شما برگردانده میشود.

برای مثال ما وقتی آدرس google.com را در مرورگر وارد میکنیم، در اصل با استفاده از رکورد A به آیپی آن (74.125.224.147) وصل میشود و نتیجه را به ما برمیگرداند.

  • PTR Record

این رکورد دقیقا برعکس رکورد A عمل میکند که نام دامنه را با استفاده ازIPv4 برمیگرداند.

  • AAAA Record

این رکورد هم دقیقا شبیه رکورد A هست و نام دامنه را به IP برمیگرداند، با این تفاوت که تنها IPv6 دامنه هارا در خود دارد و برمیگرداند.

  • TXT Record

معمولا برای ذخیره متن های قابل خواندن استفاده میشود و به ادمین امکان ذخیره متن در این رکورد را میدهد که معمولا برای تایید هویت گوگل و تایید SPF استفاده میشود.

  • MX Record (Mail Exchanger)

این رکورد ایمیل هارا به سمت سرور ایمیل هدایت میکند.

  • NS Record (Name Server)
  • CNAME Record (Canonical Name Records)

از این رکورد برای اتصال یک دامنه یا sub domain به یک دامنه دیگر استفاده میشود.

برای مثال وقتی ما میخواهیم کاربران چه با www اول سایت (www.site.com) و چه بدون آن (site.com) به سایت دسترسی داشته باشند، این دو دامنه را به هم متصل میکنیم.

  • SOA Record (start of authority)

این رکورد اطلاعات مهمی درباره ادمین دامنه را در خود نگه میدارد. اطلاعاتی مانند آدرس ایمیل ادمین، آخرین وضعیت آپدیت دامنه و همینطور اطلاعاتی درباره DNS Zone.



انواع Response های DNS

  • NOERROR

به این معناست که پرس و جوی DNS با موفقیت تکمیل شده است.

  • NXDOMAIN

این پاسخ به این معناست که کوئری DNS به دلیل وجود نداشتن نام دامنه مورد نظر انجام نشده است.

  • SERVFAIL

پاسخی برای کوئری داده نشده است چون پاسخی از سمت سرور داده نمیشود.

  • REFUSED

به این معناست که کوئری DNS ناموفق بود و پاسخی از سرور به دلیل Policy های مشخص شده داده نشده و سرور از دادن پاسخ خودداری کرده است.



رایج ترین حملات DNS

حمله DNS Tunneling
حمله DNS Tunneling


  • DNS Tunneling

یکی از حملاتی است که از پروتکل DNS برای انتقال داده های رمزگزاری شده استفاده میکند و نفوذگران میتوانند از این روش، هر اطلاعاتی را از سازمان خارج و یا وارد کنند.

همینطور از این حمله جهت اتصال به Command and Control (C&C) و ایجاد یک تونل به داخل شبکه سازمانی شما که ارتباطی با شبکه خارجی ندارد، استفاده میشود.

بد افزار ها میتوانند از پروتکل DNS برای دریافت دستورات از C&C و ارسال دیتا به اینترنت، بدون حتی ایجاد یک ارتباط TCP/UDP به یک سرور خارجی، استفاده کنند.

پورت پیشفرض DNS پورت شماره 53 هست و تقریبا این پورت روی تمام فایروال ها باز هست که همین موضوع باعث ایجاد حملات زیادی از این سرویس میشود.

دی ان اس برای انجام عمل Name Resolution طراحی شده است و نه برای ارسال و دریافت فایل، به همین منظور در شبکه به عنوان یک تهدید در نظر گرفته نمیشود و ممکن است خطرات زیادی را برای سازمان متحمل شود.

در این حمله فرد نفوذگر دامنه خود را ایجاد میکند و Name Server های دامنه را سرور خود قرار میدهد و با اینکه درخواست های DNS در فایروال مجاز هستند، نفوذگر از سیستم قربانی با استفاده از دامنه خود دیتا هارا به سمت سرور خود میفرستد.

هنگامی که سیستم قربانی سعی در مسیریابی دامنه میکند، یک تونل بین سیستم قربانی و سیستم نفوذگر ایجاد میشود که داده ها را به این صورت ارسال میکنند:

داده ها به فورمت [data].example.com فرستاده و دریافت میشوند که در تصویر زیر به صورت کامل نشان داده شده.

  • Basic Nxdomain attack

حمله NXdomain نوعی حمله DOS/DDOS است که در آن نفوذگر تعداد زیادی درخواست به دامنه هایی که وجود ندارند ارسال میکند و سرور DNS که چنین رکورد هایی را در خود ندارد، حافظه نهان آن (Cache) کاملا با نتایج NXdomain پر میشود و دیگر به درخواست های معتبر کاربران واقعی شبکه نمیتواند پاسخ بدهد.

برای مثال وقتی شما در URL مرورگر خود یک مرورگر با کارکتر های رندوم و بی معنی را وارد میکنید (dslkfjldskjflds.com)، سرور DNS تلاش میکند تا این درخواست را Resolve کند ولی پاسخی برای آن ندارد و این دامنه در رکورد های آن وجود ندارد که در نتیجه پاسخ NXdomain را برمیگرداند.

این کار باعث میشود حافظه cache سرور DNS پر بشود و این درخواست با سایر درخواست های DNS پردازش میشود و قدرت پردازش و منابع سرور را مشغول میکند.

این حمله در صورتی ممکن است خطرناک شود که درخواست ها توسط تعداد زیادی سیستم انجام بشود و هر سیستم درخواست دامنه های مختلفی را به سمت سرور بفرستد که به حمله DDOS تبدیل میشود و جلوگیری از این حمله سخت تر میشود.

  • Cache poisoning

با تغییر رکورد های DNS Server باعث شویم هنگامی که کاربر وبسایت واقعی و مورد نظر را درخواست میکند، از طرف DNS سرور، وبسایت تقلبی و آنچه که ما در رکورد های DNS تزریق کردیم را نشان دهد.

برای مثال آدرس پورتال یک سازمان portal1.com با آیپی 192.168.10.1 هست و فرد نفوذگر با تغییر رکورد آیپی این پورتال به 192.168.10.11 باعث میشود کاربرانی که نام دامنه این پورتال را درخواست میکنند، از طرف DNS Server به سمت پورتال جعلی که نفوذگر مشخص کرده است فرستاده شوند.

در این حمله فرد نفوذگر میتواند با هدایت کاربران به سمت یک صفحه Phishing، اطلاعات مهم آنها را به سرقت ببرد.

  • DNS zone transfer vulnerability

عملی است که یک DNS Server یک کپی از اطلاعات بعضی از رکورد های خود که در دیتابیسش وجود دارد را در یک DNS Server دیگر میریزد.

در صورتی که این آسیب پذیری بر روی یک DNS Server وجود داشته باشد، اطلاعات کامل رکوردهایی که شامل subdomain و نام سرویس ها میباشد، در اختیار نفوذگر قرار میگیرد.



Rule شناسایی Sigma

سیگما چیست؟
سیگما چیست؟

سیگما یک پروژه در گیتهاب هست با این آدرس، که در آن میتوانیم rule هایی متناسب با پلتفرم های امنیتی را پیدا کنیم و از آنها برای امن سازی بیشتر استفاده کنیم.

رول های SIGMA برای شناسایی حملات DNS که در سایت uncoder.io میتوانیم متناسب با پلتفرم و کوئری که نیاز داریم مثل اسپلانک و ELK ترجمه کنیم و در SIEM ها از آن استفاده کنیم.

در ادامه رول های مربوط به آسیب پذیری هایی که در بالا اشاره شد را لینک میکنم:



در آخر،

ممنون که تا اینجا مطالعه کردی و ممنون میشم اگر نکته ای درباره مطلب بالا بود حتما باهام به اشتراک بزاری.

آدرس کانال تلگرام - سعی میکنم موارد مفید در موضوع امنیت رو اونجا پست کنم.

dns چیست
شاید از این پست‌ها خوشتان بیاید