حملات DNS یک حمله سایبری است که در آن مهاجم از نقاط ضعف موجود در سیستم نام دامنه سوءاستفاده می کند. این یک مسئله اساسی در امنیت سایبری است، زیرا سیستم DNS بخشی اساسی در زیرساخت های اینترنت است و در عین حال دارای حفره های امنیتی بسیاری است.
روش های مختلفی برای حمله به DNS وجود دارد. حملات بازتاب DNS ،DoS ،DDoS و مسمومیت DNS فقط برخی از انواع حمله DNS در معرض ابتلا است.
در این مقاله ما در مورد حملات DNS و نحوه مقابله با آن ها بحث خواهیم کرد.
قبل از اینکه به چگونگی وقوع حملات بپردازیم، بیایید برخی از اصول کار سیستم DNS یا نام دامنه را بررسی کنیم.
برای سادگی کار، DNS را به عنوان یک دفترچه تلفن عظیم که به IP آدرس ها با نام دامنه اختصاص یافته اشاره دارد، در نظر بگیرید. مرورگر شما نام دامنه را “نمی فهمد” و برای بازیابی یک وب سایت، به IP آدرس سرور محل میزبانی نیاز دارد. بنابراین هنگامی که یک نام دامنه وارد می کنید، دفترچه تلفن DNS IP را برای اتصال پیدا می کند.
اگر هر بار که با مادر و پدرتان تماس می گیرید مجبور شوید کل دفترچه تلفن را مرور کنید، روند مراجعه بسیار کارآمد نخواهد بود. به همین ترتیب همیشه لازم نیست که هر بار که سیستم شما به IP آدرس احتیاج دارد با یک سرور DNS از راه دور تماس بگیرد، برای این منظور به کش DNS متکی است.
اگر می خواهید از سایتی بازدید کنید که نزدیکترین DNS Resolver شما IP آدرس اختصاصی آن را نمی داند، تا زمانی که IP را پیدا نکند از سرور های DNS دیگر سوال می کند. سپس سرور DNS از این سایت جدید مطلع می شود و IP آدرس اختصاص داده شده را به نام دامنه تبلیغ می کند که این آدرس بیشتر در سرور های DNS دیگر به اشتراک گذاشته می شود.
وقتی هکر ها از آسیب پذیری های موجود در سیستم نام دامنه (DNS) استفاده می کنند، ما این را حمله DNS می نامیم.
برخی از متداول ترین انواع حملات DNS عبارتند از:
ما در این مقاله چند مورد از آن ها را بررسی خواهیم کرد.
(DDoS) که مخفف عبارت Distributed Denial-of-Service است، حمله تلاش خصمانه به قطع ترافیک به طور منظم از یک شبکه یا سرور را با بمباران شبکه و یا زیرساخت های اطراف آن با ترافیک اینترنت هدف قرار می دهد. اگرچه DDoS لزوماً یک حمله DNS نیست، اما سیستم DNS یک هدف محبوب است.
حملات DDoS با استفاده از چندین سیستم رایانه ای به خطر افتاده به عنوان منابع ترافیک حمله به اثر بخشی می رسند. معمولاً مهاجمان ربات هایی را برای بمباران هدف با ترافیک مستقر می کنند.
موردی که در آن فقط از یک ربات استفاده می شود به عنوان حمله (Denial Of Service (DoS شناخته می شود و بیشتر به صورت محلی یا دارای حداقل تأثیر است. از طرف دیگر DDoS تأثیر گسترده تری دارد و به منابع بیشتری نیاز خواهد داشت.
ماشین های مورد بهره برداری ممکن است شامل رایانه و سایر منابع شبکه ای مانند دستگاه های اینترنت (IoT) باشند. برای درک بهتر نحوه کارکرد حمله DDoS تصور کنید بزرگ راهی که به طور مصنوعی مسدود شده باشد، در نتیجه از ایجاد ترافیک منظم جلوگیری کرده و باعث ایجاد توقف ترافیک می شود.
انواع مختلفی از حملات DDoS با هدف DNS وجود دارد که در زیر به برخی از آن ها خواهیم پرداخت.
یکی از بزرگترین حملات DDoS حمله Dyn DNS بود. Dyn یک شرکت مدیریت عملکرد اینترنت (IPM) است. حمله Dyn در 21 اکتبر 2016 اتفاق افتاد.
این حمله بخش بزرگی از اینترنت در آمریکا و اروپا را تحت تأثیر قرار داد. منبع حمله بات نت Mirai بود که از دستگاه های اینترنت اشیاء (IoT) مانند چاپگر ها، دوربین های پروتکل اینترنت (IP) و ضبط کننده های دیجیتال تشکیل شده بود.
حمله NXDOMAIN یک نوع DDoS است وقتی که سرور DNS با درخواست هایی به نام دامنه های غیر موجود سرازیر می شود، حافظه پنهان معتبر سرور سرازیر می شود و درخواست های قانونی DNS را متوقف می کند.
همانطور که می دانید، بازدید های شما از وب سایت ها با تبدیل نام دامنه ها به IP آدرس توسط DNS امکان پذیر می شود. فرض کنید در نوار آدرس خود asdasdasdasd.com را تایپ می کنید.
آنچه اتفاق خواهد افتاد این است که DNS آی پی آدرس مربوطه را پیدا نمی کند زیرا وجود ندارد و پیغام خطایی را باز می گرداند. با این حال dns resolver هنوز تلاش می کند تا نتیجه را پیدا کند، میلی ثانیه با ارزش برای جستجوی حافظه پنهان، با استفاده از قدرت پردازش CPU و غیره.
به عبارت دیگر قبل از بازگرداندن پیام خطا، درخواست شما همراه با سایر درخواست های اصلی پردازش شد.
حال تصور کنید که مهاجم بات نت را کنترل کند که حاوی هزاران کاربر است. هر یک از آن ها درخواست دامنه ای را که وجود ندارد ارسال می کنند. این می تواند حافظه پنهان سرور DNS را خیلی سریع مسدود کند و این سرویس را به کاربرانی که می خواهند از یک سایت قانونی بازدید کنند رد می کند.
در چند وقت اخیر برخی از ارائه دهندگان خدمات اینترنت (ISP) بهره برداری مضر از این وضعیت را آغاز کرده اند. آن ها به جای برگرداندن پیام خطا، این درخواست ها را به سمت سرور های دارای تبلیغات جاسازی شده هدایت می کنند و بدین ترتیب درخواست های نامعتبر را سرمایه گذاری می کنند.
حمله فانتوم دامنه نوعی حمله DoS است که به سمت سرور نام معتبر هدایت می شود. این کار با راه اندازی مجموعه ای از سرور های DNS انجام می شود که به درخواست های DNS پاسخ نمی دهند یا این کار را خیلی کند انجام می دهند و ارتباطات را قطع می کنند.
وقتی یک سرور DNS آدرس IP را نمی داند، آدرس را در سایر سرور های DNS متصل جستجو می کند – این به عنوان DNS بازگشتی شناخته می شود. حملات دامنه فانتوم روشی برای رهگیری آن فرآیند جستجو است. این باعث هدر رفتن منابع سرور در جستجوی غیرکارآمد یا ناکارآمد می شود.
هنگامی که منابع به طور کامل مصرف می شوند، سرور بازگشتی DNS ممکن است درخواست های قانونی را نادیده بگیرد و همچنان بر روی سرور های غیر پاسخگو تمرکز کند و باعث بروز مشکلات جدی در عملکرد شود.
حمله Random subdomain شباهت زیادی به حملات NXDOMAIN دارد، با این تفاوت که به جای درخواست یک دامنه موجود از DNS، این حمله یک زیر دامنه موجود را درخواست می کند.
اجازه دهید این سناریو را در نظر بگیریم: تصور کنید می خواهیم به www.perfectacademy.org دسترسی پیدا کنیم. از آنجا که این دامنه وجود دارد، قطعاً برای دسترسی پاسخ خواهد داد.
اگر dhutz.perfectacademy.org را سرچ کنید، اگر بخش “www” را حذف کرده و آن را با یک رشته تصادفی جایگزین کنیم، سرور بازگشتی DNS مجبور خواهد شد یک زمینه بازگشتی را به دنبال رشته “dhutz” از سرور های معتبر Perfect Academy باز کند.
این منجر به پاسخ NXDOMAIN می شود که در حافظه پنهان منفی سرور DNS ذخیره می شود (که بیشتر به فروشگاهی برای دامنه های غیر موجود شباهت دارد). اگر برچسب “dhutz” به طور مداوم تغییر می کند، هر پرس و جو باعث ایجاد یک جستجوی بازگشتی به سرور های معتبر Perfect Academy می شود، زمینه های بازگشتی را مصرف می کند و حافظه پنهان منفی را پر می کند.
در واقع دامنه و مقیاس NXDOMAIN بسیار گسترده تر است. در همین حال این حمله به ویژه سرور های نام معتبر دامنه را هدف قرار می دهد.
(Transmission Control Protocol Synchronize (TCP SYN نوعی حمله DDoS است که با طغیان کردن درخواست های خود سرانه، باعث قطع ارتباط بین سرور و سرویس گیرنده می شود.
هدف این حمله به جای اینکه توان پردازشی سرور را خسته کند، ذخیره اتصالات باز موجود را خسته می کند. این امر با ارسال پیام های همگام سازی (SYN) سریعتر از پاسخگویی به سرور، به این مهم دست می یابد.
یک مصافحه معمولی سه طرفه به سادگی شامل ارسال پیام همگام سازی (SYN) توسط مشتری و توسط سرور می شود، سرور با پیام تأیید همگام سازی (SYN-ACK) پاسخ می دهد. در حالی که سرور در حال آماده سازی پیام SYN-ACK به عنوان پاسخ است، مهاجم درخواست های بیشتری را ایجاد می کند و در نهایت با اتصالات نیمه باز زیادی سرور خراب می شود.
DNS domain lock-up نوعی حمله DDoS با دامنه ها و حلال های ویژه تنظیم شده است که با ارسال نکردن پاسخ صحیح و با پاسخ دادن با بسته های داده تصادفی، ارتباط بین سرور و مشتری را قطع می کند. آن ها سرور را درگیر کرده و منتظر پاسخ مناسب (که هرگز نمی آیند) ذخیره اتصالات موجود را خسته می کنند.
تفاوت اصلی بین این حمله و TCP SYN این است که حمله قفل شدن دامنه DNS در فاز بعدی یک مصافحه سه طرفه TCP اتفاق می افتد. برای برقراری موفقیت آمیز اتصال، مشتری پیام SYN را ارسال می كند، سرور با پیام SYN-ACK پاسخ می دهد و منتظر ارسال پیام ACK از مشتری است.
حمله DNS domain lock-up عمداً باعث کاهش سرعت ارتباط شده و پیام های ACK را از طرف مهاجم باز می گرداند. این دامنه های کاذب با ارسال بسته های داده ای تصادفی یا بی فایده برای ثابت نگه داشتن حلال DNS پاسخ نمی دهند. این کاملاً سایر ارتباطات مشکوک کاربران واقعی را نفی می کند.
این حمله از آسیب پذیری های DNS برای دور زدن خط مشی یکسان مرورگر وب استفاده می کند و به یک دامنه اجازه می دهد تا از دامنه دیگر درخواست کند، چیزی که می تواند عواقب گسترده ای داشته باشد. به عنوان مثال با استفاده از حمله مجدد DNS، یک مهاجم ممکن است قادر به کنترل کل شبکه خانگی شما باشد.
این را تصور کنید: شما در حال مرور یک وب سایت مشکوک هستید که اتفاقاً یک اسکریپت مخرب در حال اجرا است:
<script src = ”http://clear-your-bank-account.com/ad.js”>.
برای محافظت، اسکریپت معمولاً فقط به دامنه ای که در حال حاضر در حال مرور آن هستید و نه به دامنه دیگری به دلیل خط مشی یکسان می تواند دسترسی داشته باشد.
این یکی از ضروری ترین اقدامات ایمنی اینترنت است و همه مرورگر ها این عمل را انجام می دهند. این اطمینان را می دهد که یک اسکریپت مخرب که در یک وب سایت اجرا می شود قادر به ارسال درخواست به وب سایت دیگری نخواهد بود و بنابراین نمی تواند به عنوان مثال حساب بانکی شما را پاک کند.
هنگام انجام یک حمله مجدد DNS هکر یک دامنه وب، یعنی malware.com را ثبت می کند و آن را به سرور DNS اختصاص می دهد و برای جستجوی پاسخ، زمان جستجو بسیار کوتاه (TTL) است تا از ذخیره DNS جلوگیری کند و مرورگر شما را برای انجام جستجوی مکرر مجبور کند، سپس مهاجم قربانی خود را وادار می کند malware.com را در مرورگر خود بارگیری کند (این کار از طریق فیشینگ یا چندین روش دیگر قابل انجام است). وقتی قربانی وب سایت را بارگیری می کند، اسکریپت مخربی را در سایت ایجاد می کند.
اینجاست که جالب می شود: اسکریپت شروع به درخواست های عجیب و غریب می کند که این به هدف مهاجم بستگی دارد. اگر درخواست ها فقط به malware.com برسد مشکلی نیست.
با این حال از آنجا که زمان تنظیم شده TTL بسیار کم است، جستجوی DNS دیگری انجام می شود، فقط اکنون پاسخ یک آدرس IP متفاوت است، به عنوان مثال روتر خانگی قربانی.
دلیل این کار این است که DNS معمولا IP آدرس های مختلف را به همان نام دامنه پیوند می دهد، بنابراین خط مشی اصلی همان مرورگر را دور می زند.
این حمله چیزی است که در صورت وجود IP آدرس های نادرست در حافظه نهان DNS اتفاق می افتد. به عنوان مثال ورود نادرست حافظه پنهان DNS به جای اینکه کاربر را به سمت amazon.com سوق دهد، ممکن است کاربران را به سمت یک وب سایت فیشینگ سوق دهد که شبیه وب سایت آمازون است.
DNS cache poisoning می تواند از طریق طراحی اتفاق بیفتد، زیرا سرور های DNS برای پاسخگویی به سوالات جستجو به یکدیگر اعتماد می کنند و باعث می شوند اطلاعات نادرست گسترش یابد.
روشی که در این حمله به طور معمول اتفاق می افتد این است:
درخواست های DNS از UDP (پروتکل دیتاگرام کاربر) استفاده می کنند که برای تأیید اینکه گیرنده آن چیزی است که ادعا می کند، به اتصال نیاز ندارد. از طریق این آسیب پذیری UDP، مهاجم می تواند با جعل داده های هِدِر جعلی پاسخی جعلی ارسال کند که اتصال را به جای دیگری هدایت می کند.
از آنجا که راهی برای بررسی واقعی بودن یا نبودن ورودی وجود ندارد، DNS Resolver به طور خودکار داده ها را ذخیره می کند. این به این معنی است که حافظه پنهان در حال حاضر مسموم است و تا پایان زمان ورود به TTL مسموم خواهد ماند یا حافظه پنهان DNS به طور دستی شستشو می شود.
هر زمان که کاربر سعی در وارد کردن برخی از آدرس های وب را دارد که مهاجمان دستکاری کرده اند، مرورگر شما آدرس نادرست را از حافظه پنهان بازیابی می کند زیرا سریعتر است.
با وجود آسیب پذیری های امنیتی به ظاهر داخلی در روند ذخیره سازی، حملات DNS cache poisoning آسان نیست. برای مسموم شدن حافظه پنهان، مهاجم یک بازه زمانی بسیار کوتاه دارد که باید در وسط قرار بگیرد و یک پاسخ جعلی را قبل از بازگشت پاسخ واقعی از نِیم سرور ارسال کند.
علاوه بر این برای جعل موفقیت آمیز کاربران، مهاجمان باید چندین فاکتور خارجی را بدانند. به عنوان مثال یک DNS Resolver ممکن است از پورت های تصادفی استفاده کند، شماره شناسه را درخواست کند، از نِیم سرور واقعی درخواست کند به آنجا برود و … . بدون این اطلاعات حمله موفقیت آمیز نخواهد بود.
“معرفی کامل بدافزار تعویض DNS یا DNS Changer و کاربرد آن“
اکنون می فهمیم که مهاجمان هکر های فوق العاده ای نیستند که نتوان جلوی آن ها را گرفت. همه آن ها فقط آگاه از جستجوی نقاط ضعف در DNS هستند و به آن ها حمله می کنند.
چند کار وجود دارد که ما می توانیم به عنوان کاربر برای کاهش حملات به DNS انجام دهیم:
اگر از ثبت نام دامنه استفاده می کنید:
Domain Name System Extensions Security با اتصال امضا های رمزنگاری شده به سوابق DNS موجود، یک DNS امن ایجاد می کند. این امضا های دیجیتالی در سرور های DNS name با انواع ضبط منظم مانند Mail Exchanger (MX) ،Canonical Name (CNAME) و … نگهداری می شوند.
با بررسی امضای مربوط به آن می توانید تأیید کنید که یک رکورد DNS درخواستی از سرور نام معتبر آن آمده و در حین انتقال تغییری ایجاد نشده است. از آنجا که DNSSEC پسوند DNS است، چند نوع رکورد DNS جدید به این موارد اضافه می کند:
برای استقرار موفقیت آمیز DNSSEC در کلاینت و سرور، باید نرم افزار خاصی را نصب کنید.
برخی از ابزار های نرم افزاری مورد نیاز عبارتند از: