به خاطر سپردن همه آیپی ها کار سخت و نشدنی است، به همین دلیل از سرویسی استفاده میکنیم تا نام دامنه را که برای انسان قابل فهم است را به IP مقصد مورد نظر تبدیل کند; برای مثال به خاطر سپردن IP سرور گوگل (172.217.17.110) ممکن است برای انسان کار دشواری باشد، اما اگر یک نام دامنه برای مثال (Google.com) از آن سرویس وجود داشته باشد به راحتی میتوان به آن دسترسی داشت.
درواقع DNS Server مانند دفترچه تلفن اینترنت کار میکند، در دفترچه تلفن شما نام یک نفر را جست و جو میکنید و در آن به شماره آن فرد میرسید و در دنیای اینترنت هم شما به دنبال IP یک نام دامنه میگردید و نام دامنه را از DNS Server درخواست میکنید و پاسخ را دریافت میکنید.
دی ان اس یا Domain Name System وظیفه تبدیل نام دامنه به IP و بلعکس را دارد که به این عمل Name Resolution گفته میشود.
پروتکل ارتباطی این سرویس DNS است و روی PORT شماره 53 انجام میشود.
زمانی که ما میخوایم به Google.com متصل بشویم، سیستم ما یک درخواست به DNS Server میفرستد و رکورد مورد نظر را درخواست میکند، برای مثال میپرسد که آدرس IP گوگل چی هست؟ و DNS Server با توجه به رکورد هایی که در آن ثبت شده است به این درخواست پاسخ میدهد.
بیشتر از 30 رکورد DNS وجود دارد که در ادامه متداول ترین آنها را به شرح زیر است:
رکورد A در DNS به آیپی یک دامنه اشاره دارد و با درخواست این رکورد IPv4 دامنه شما برگردانده میشود.
برای مثال ما وقتی آدرس google.com را در مرورگر وارد میکنیم، در اصل با استفاده از رکورد A به آیپی آن (74.125.224.147) وصل میشود و نتیجه را به ما برمیگرداند.
این رکورد دقیقا برعکس رکورد A عمل میکند که نام دامنه را با استفاده ازIPv4 برمیگرداند.
این رکورد هم دقیقا شبیه رکورد A هست و نام دامنه را به IP برمیگرداند، با این تفاوت که تنها IPv6 دامنه هارا در خود دارد و برمیگرداند.
معمولا برای ذخیره متن های قابل خواندن استفاده میشود و به ادمین امکان ذخیره متن در این رکورد را میدهد که معمولا برای تایید هویت گوگل و تایید SPF استفاده میشود.
این رکورد ایمیل هارا به سمت سرور ایمیل هدایت میکند.
از این رکورد برای اتصال یک دامنه یا sub domain به یک دامنه دیگر استفاده میشود.
برای مثال وقتی ما میخواهیم کاربران چه با www اول سایت (www.site.com) و چه بدون آن (site.com) به سایت دسترسی داشته باشند، این دو دامنه را به هم متصل میکنیم.
این رکورد اطلاعات مهمی درباره ادمین دامنه را در خود نگه میدارد. اطلاعاتی مانند آدرس ایمیل ادمین، آخرین وضعیت آپدیت دامنه و همینطور اطلاعاتی درباره DNS Zone.
به این معناست که پرس و جوی DNS با موفقیت تکمیل شده است.
این پاسخ به این معناست که کوئری DNS به دلیل وجود نداشتن نام دامنه مورد نظر انجام نشده است.
پاسخی برای کوئری داده نشده است چون پاسخی از سمت سرور داده نمیشود.
به این معناست که کوئری DNS ناموفق بود و پاسخی از سرور به دلیل Policy های مشخص شده داده نشده و سرور از دادن پاسخ خودداری کرده است.
یکی از حملاتی است که از پروتکل DNS برای انتقال داده های رمزگزاری شده استفاده میکند و نفوذگران میتوانند از این روش، هر اطلاعاتی را از سازمان خارج و یا وارد کنند.
همینطور از این حمله جهت اتصال به Command and Control (C&C) و ایجاد یک تونل به داخل شبکه سازمانی شما که ارتباطی با شبکه خارجی ندارد، استفاده میشود.
بد افزار ها میتوانند از پروتکل DNS برای دریافت دستورات از C&C و ارسال دیتا به اینترنت، بدون حتی ایجاد یک ارتباط TCP/UDP به یک سرور خارجی، استفاده کنند.
پورت پیشفرض DNS پورت شماره 53 هست و تقریبا این پورت روی تمام فایروال ها باز هست که همین موضوع باعث ایجاد حملات زیادی از این سرویس میشود.
دی ان اس برای انجام عمل Name Resolution طراحی شده است و نه برای ارسال و دریافت فایل، به همین منظور در شبکه به عنوان یک تهدید در نظر گرفته نمیشود و ممکن است خطرات زیادی را برای سازمان متحمل شود.
در این حمله فرد نفوذگر دامنه خود را ایجاد میکند و Name Server های دامنه را سرور خود قرار میدهد و با اینکه درخواست های DNS در فایروال مجاز هستند، نفوذگر از سیستم قربانی با استفاده از دامنه خود دیتا هارا به سمت سرور خود میفرستد.
هنگامی که سیستم قربانی سعی در مسیریابی دامنه میکند، یک تونل بین سیستم قربانی و سیستم نفوذگر ایجاد میشود که داده ها را به این صورت ارسال میکنند:
داده ها به فورمت [data].example.com فرستاده و دریافت میشوند که در تصویر زیر به صورت کامل نشان داده شده.
حمله NXdomain نوعی حمله DOS/DDOS است که در آن نفوذگر تعداد زیادی درخواست به دامنه هایی که وجود ندارند ارسال میکند و سرور DNS که چنین رکورد هایی را در خود ندارد، حافظه نهان آن (Cache) کاملا با نتایج NXdomain پر میشود و دیگر به درخواست های معتبر کاربران واقعی شبکه نمیتواند پاسخ بدهد.
برای مثال وقتی شما در URL مرورگر خود یک مرورگر با کارکتر های رندوم و بی معنی را وارد میکنید (dslkfjldskjflds.com)، سرور DNS تلاش میکند تا این درخواست را Resolve کند ولی پاسخی برای آن ندارد و این دامنه در رکورد های آن وجود ندارد که در نتیجه پاسخ NXdomain را برمیگرداند.
این کار باعث میشود حافظه cache سرور DNS پر بشود و این درخواست با سایر درخواست های DNS پردازش میشود و قدرت پردازش و منابع سرور را مشغول میکند.
این حمله در صورتی ممکن است خطرناک شود که درخواست ها توسط تعداد زیادی سیستم انجام بشود و هر سیستم درخواست دامنه های مختلفی را به سمت سرور بفرستد که به حمله DDOS تبدیل میشود و جلوگیری از این حمله سخت تر میشود.
با تغییر رکورد های DNS Server باعث شویم هنگامی که کاربر وبسایت واقعی و مورد نظر را درخواست میکند، از طرف DNS سرور، وبسایت تقلبی و آنچه که ما در رکورد های DNS تزریق کردیم را نشان دهد.
برای مثال آدرس پورتال یک سازمان portal1.com با آیپی 192.168.10.1 هست و فرد نفوذگر با تغییر رکورد آیپی این پورتال به 192.168.10.11 باعث میشود کاربرانی که نام دامنه این پورتال را درخواست میکنند، از طرف DNS Server به سمت پورتال جعلی که نفوذگر مشخص کرده است فرستاده شوند.
در این حمله فرد نفوذگر میتواند با هدایت کاربران به سمت یک صفحه Phishing، اطلاعات مهم آنها را به سرقت ببرد.
عملی است که یک DNS Server یک کپی از اطلاعات بعضی از رکورد های خود که در دیتابیسش وجود دارد را در یک DNS Server دیگر میریزد.
در صورتی که این آسیب پذیری بر روی یک DNS Server وجود داشته باشد، اطلاعات کامل رکوردهایی که شامل subdomain و نام سرویس ها میباشد، در اختیار نفوذگر قرار میگیرد.
سیگما یک پروژه در گیتهاب هست با این آدرس، که در آن میتوانیم rule هایی متناسب با پلتفرم های امنیتی را پیدا کنیم و از آنها برای امن سازی بیشتر استفاده کنیم.
رول های SIGMA برای شناسایی حملات DNS که در سایت uncoder.io میتوانیم متناسب با پلتفرم و کوئری که نیاز داریم مثل اسپلانک و ELK ترجمه کنیم و در SIEM ها از آن استفاده کنیم.
در ادامه رول های مربوط به آسیب پذیری هایی که در بالا اشاره شد را لینک میکنم:
در آخر،
ممنون که تا اینجا مطالعه کردی و ممنون میشم اگر نکته ای درباره مطلب بالا بود حتما باهام به اشتراک بزاری.
آدرس کانال تلگرام - سعی میکنم موارد مفید در موضوع امنیت رو اونجا پست کنم.