سامانه نام دامنه یا DNS بخشی از اینترنت است که یک کسبوکار معمولی یا یک کاربر بهندرت به آن فکر میکند. بسیاری از افرادی که کارهای روزمرهی آنها به DNS وابسته است حتی نمیدانند چنین سیستمی وجود دارد؛ حتی بسیاری از متخصصان IT هم واقعا نمیدانند این سیستم در عمل چطور کار میکند. ولی بدون DNS، همهی ما مجبور بودیم حجم عظیمی از آدرسهای IP عددی را حفظ کنیم تا بتوانیم به وبسایتهای مختلف سر بزنیم، ایمیل ارسال کنیم، یا به منابع روی یک کامپیوتر دیگر از راه دور دسترسی پیدا کنیم.
اهمیت DNS
سامانه DNS آدرسهای IP را که کامپیوترها میفهمند، به نامهایی تبدیل میکند که برای انسان قابل فهم بوده و کاربرها میتوانند بهراحتی آنها را به یاد آورند. این عملیات ساده به نظر میرسد، ولی پشت صحنهی آن بسیار پیچیدهتر بوده و انواع مختلفی از نامسرورها یا name server را شامل میشود: سرورهای DNS بازگشتی یا recursive، نامسرورهای root، سرورهای دامنه سطح بالا یا top level domain server که به اختصار به آنها TLD server میگویند، نامسرورهای authoritative به همراه کامپیوتر سرویسگیرنده و برنامهی کاربردی (مانند مرورگر وب) که روی آن اجرا میشود. تبدیل یا resolveکردن یک نام دامنه به یک آدرس IP یک فرایند چندمرحلهای است که اینجا وارد جزییات آن نمیشویم. برای یادگیری این فرایند به آموزش ویدئویی نحوه عملکرد DNS مراجعه کنید.
در اینجا فقط به گفتن این نکته بسنده میکنیم که اگر سازمان شما از اینترنت استفاده میکند، DNS یک سرویس حیاتی برای شما به شمار میرود. وقتی مهاجمان و هکرها DNS را هدف قرار میدهند، میتوانند یک حملهی DoS انجام دهند. چنین حملهای میتوانند ارتباطات اینترنتی سازمانی و شخصی را با اختلال کامل مواجه کند. متاسفانه DNS در مقابل طیف متنوع و گستردهای از حملات آسیبپذیر است. اوایل پیدایش اینترنت امنیت چندان در اولویت نبود و مانند دیگر پروتکلهایی که در آن زمان توسعه داده شدهاند، DNS نیز از ابتدا با در نظر گرفتن قابلیت حفاظت در مقابل حملات مختلف طراحی نشده است. هنگام توسعهی DNS، اینترنت بسیار کوچکتر از چیزی که امروز میبینیم در نظر گرفته شده بود؛ در واقع در آن زمان اینترنت یک شهر کوچک در نظر گرفته میشد که همه در آن یکدیگر را میشناسند و به هم اعتماد دارند. البته این تصور مشکلی به همراه ندارد؛ اما به تدریج این شهر کوچک بزرگ و بزرگتر شد و کمکم مجرمان وارد آن شدند و از این اعتماد موجود سواستفاده کردند. این دقیقا اتفاقی است که در اینترنت شاهد آن بودیم.
در اوایل سال 2019، مرکز ملی یکپارچهسازی امنیت سایبری و ارتباطات (NCCIC) هشدار داد که به خاطر یک کمپین جهانی هایجککردن زیرساخت DNS، حوادث مربوط به حملات DNS به طور قابل توجهی افزایش یافتهاند.
سیستم DNS طوری طراحی شده که از UDP (پروتکل دیتاگرام کاربر) استفاده کند. برتری این پروتکل نسبت به TCP (پروتکل کنترل انتقال) سرعت بیشتر آن است. البته این سرعت بالاتر به خاطر این است که UDP با استفاده از handshake اصالت و سلامت پکتها را بررسی نکرده و همچنین فاقد کارکرد بررسی خطاست که در TCP وجود دارد.
امروزه مجرمان سایبری میدانند که با مختل کردن DNS میتوانند فاجعه بیافرینند. با افزایش دائمی کسبوکارهایی که از منابع ابری استفاده میکنند، اهمیت DNS از همیشه بیشتر شده است. از کار افتادن DNS ممکن است باعث شود کارکنان نتوانند کار خود را انجام دهند، مشتریان نتوانند خرید کنند یا با پرسنل پشتیبانی تماس بگیرند. عواقب این اختلال ممکن است تاثیر منفی عمیقی بر درآمد و وجههی یک شرکت داشته باشند.
در اوایل پیدایش اینترنت، تمام سیستمهای کامپیوتری روی شبکهی جهانی و آدرسهای آیپی آنها را میشد در یک فایل متنی لیست کرد. به این لیست فایل میزبانها (Hosts File) میگفتند و روی تکتک سرورها یا کامپیوترهای شخصی ذخیره شده بود. در آن زمانها اینترنت بسیار سادهتر و کوچکتر از امروز بود. امروزه بیش از یک میلیارد وبسایت وجود دارد و بنا بر پیشبینیها تا سال 2022 بیش از 28.5 میلیارد دستگاه و بیش از 4.8 میلیارد کاربر به اینترنت متصل خواهند بود. نام دامنههای جدید هر دقیقه در حال اضافهشدن هستند. فایلهای میزبانها با آسیبپذیریهای فراوان خود هیچ شانسی برای ادامه در اینترنت پیچیده و عظیم امروزی نداشتند.
انواع حملات DNS
یک مهاجم از روشهای مختلفی میتواند از DNS به عنوان بستر حمله استفاده کند. اطلاعداشتن از تمام این روشها و نحوهی عملکرد آنها میتواند به شما کمک کند از خود در مقابل آنها حفاظت کنید.
حملهی DDoS به DNS
یکی از آسانترین و رایجترین روشها برای ایجاد اختلال در عملیاتهای یک شبکه، سرازیرکردن ترافیک بیشتر از ظرفیت به آن شبکه و/یا سیستمهای موجود در آن شبکه است به گونهای که سختافزارها و نرمافزارها نتوانند این ترافیک را پردازش کنند. معمولا برای حملات منع سرویس توزیعشده یا DDoS روی DNS اصطلاح DNS flood را به کار میبرند. گسترش استفاده از دستگاههای اینترنت اشیا (IoT) این حملات را برای مهاجمان آسانتر کرده است. مهاجمان از اتصالات با پهنای باند بالا در چنین دستگاههایی، نظیر دوربینهای مداربستهی تحت شبکه (دوربینهای IP) استفاده کرده و حجم بالایی از درخواستهای DNS را ارسال میکنند. این درخواستها از ظرفیت سرورهای DNS فراتر رفته و باعث میشوند در عمل از دسترس کاربران معمولی خارج شوند.
یکی از انواع مشابه ولی متفاوت از حملات DDoS، حملهی DNS amplification است. در این حمله از یک باتنت (botnet) برای ارسال تعداد زیادی کوئری DNS با آدرسهای IP جعلی استفاده میشود. این کار باعث میشود حجم عظیمی پاسخ DNS برای این کوئریها تولید شود. این ترافیک تشدیدشده (amplified traffic) از ظرفیت سیستم یا شبکهی هدف فراتر میرود. در این مورد، خود سرورهای DNS هدف قرار نمیگیرند، بلکه قربانی که آدرس IP آن جعلشده هدف قرار میگیرد. با این وجود اگر تعداد پاسخها به اندازه کافی زیاد باشد، ترافیک ممکن است از ظرفیت خود سرویس DNS نیز بیشتر شود. برای مطالعهی بیشتر در خصوص روشهای حمله DDoS، به مطلب رایجترین روشهای حمله DDoS در سال 2020 مراجعه کنید.
سرویسهای تحت وب آمازون (AWS) در ماه اکتبر 2019 هدف یک حملهی DNS DDoS قرار گرفت. طی این حمله کوئریهای جعلی DNS به این سرویس سرازیر شدند که موجب اختلال در ترافیک اصلی وبسایتها و سرویسهایی شد که از AWS استفاده میکردند.
DNS cache poisoning
نوع دیگری از حملات جعل آدرس IP مربوط به DNS، با هدف هدایت بازدیدکنندگان از وبسایت اصلی به وبسایتهای فیشینگ متعلق به مهاجمان انجام میگیرند. این وبسایتهای فیشینگ عیناً شبیه به سایت واقعی طراحی شدهاند، و نامهای کاربری و رمزهای عبور و اطلاعات شخصی کاربران را جمعآوری میکنند. به این کار cache poisoning گفته میشود و با واردکردن اطلاعات نادرست در کش DNS قابل انجام است. برای مطالعهی بیشتر درباره روش انجام این حمله به مطلب DNS cache poisoning و جعل DNS مراجعه کنید.
شرکتهای ISP و شبکههای سازمانی، سرورهای DNS مخصوص به خود را دارند. این سرورها اطلاعات را از سرورهای DNS سطح بالاتر کش میکنند (یا به عبارتی در حافظه cache خود ذخیره میکنند). اگر اطلاعات DNS موجود در حافظه کش یک سرور به اصطلاح «مسموم» شود، یعنی به طریقی با اطلاعات نادرست جایگزین شود، این اطلاعات غلط ممکن است روی سرورهای دیگر نیز کش شوند.
پیش از این اشاره کردیم که DNS برای پاسخهای سریعتر از UDP استفاده میکند. این یعنی هیچگونه بررسی روی اصالت ارسالکنندگان پکتها انجام نمیشود. مهاجمان میتوانند هدرهای (header) جعلی برای دادهها بسازند و سرور DNS resolver هم این دادهها را به عنوان دادههای معتبر پذیرفته و در حافظهی کش ذخیره میکند. خبر خوب این است که در حملهی DNS cache poisoning پاسخ جعلی باید به سرعت فرستاده شود؛ یعنی پیش از آنکه نامسرور authoritative پاسخ واقعی را ارسال کند. علاوه بر این مهاجم باید بداند سرور DNS resolver از کدام درگاه (port) استفاده میکند، کدام کوئریها کش نمیشوند، کوئری به کدام نامسرور authoritative ارسال میشود و بسیاری اطلاعات دیگر را نیز باید داشته باشد تا بتواند cache poisoning را با موفقیت به انجام برساند.
DNS hijacking
هایجککردن DNS نیز یکی دیگر از روشهایی است که مهاجمان با استفاده از آن، کارکرد تبدیل نام در DNS را با اختلال مواجه میکنند. میتوان از بدافزارها برای تغییر پیکربندی یک کامپیوتر استفاده کرد؛ به گونهای که بهجای مراجعه به سرور اصلی و معتبر DNS، به یک سرور DNS مخرب مراجعه کند که در اختیار مهاجم است. در این شرایط نیز مانند cache poisoning، نتیجه این است که کاربران به وبسایتهای جعلی هدایت میشوند که هدف آنها فیشینگ یا دیگر مقاصد مجرمانه است.
مهاجمان علاوه بر پخش بدافزار برای تغییر تنظیمات TCP/IP روی کامپیوترهای سرویسگیرنده، میتوانند آسیبپذیریهای موجود در روترها را اکسپلویت کرده و تنظیمات DNS را روی روتر تغییر دهند. این کار باعث میشود تمام کامپیوترهایی که به این روتر وصل میشوند تحت تاثیر حمله قرار بگیرند.
نحوهی مقابله با حملات DNS و حفاظت در برابر آنها
برای حفاظت در برابر حملات DDoS روی DNS میتوان اقدامات متنوعی انجام داد. برای مثال میتوانید پاسخهای DNS ناخواسته را محدود کنید، به کلاینتی که قبلا پاسخ یک کوئری را دریافت کرده اجازهی انجام مجدد همان کوئری را ندهید، کلاینتهای DNS را ملزم به اثبات جعلینبودن اطلاعات هویتی کنید، کوئریهای انجامشده را از مناطق جغرافیایی که کسبوکار شما در آنجا فعالیت نمیکند بلاک کنید و بسیاری دیگر از اقداماتی از این دست را انجام دهید. بسیاری از ارائهدهندگان خدمات امنیتی، محصولاتی عرضه میکنند که هدف آنها جلوگیری از حملات DDoS، ازجمله آن دسته از این حملات است که روی DNS انجام میشوند.
عدم امکان تایید اصالت پکتها در سیستم DNS را میتوان با استفاده از افزونههای امنیتی سامانه نام دامنه (DNSSEC) جبران کرد. این افزونهها راههایی برای بررسی اصالت دادههای DNS فراهم میکنند. DNSSEC با این هدف طراحی شده که با بهرهگیری از امضاهای دیجیتال، از استفادهی برنامههای کاربردی (و سرورهای resolver که دادهها را کش کرده و به برنامههای کاربردی خدمترسانی میکنند) از اطلاعات DNS ساختگی یا دستکاریشده جلوگیری کند. ظهور DNSSEC به اواخر دههی 90 میلادی بازمیگردد ولی پیادهسازی آن روندی آهسته داشته و در موارد متعددی به صورت اشتباه انجام شده است. درنهایت و پس از گذشت چندین سال، DNSSEC در حال حاضر در حال تبدیل شدن به یک استاندارد عملیاتی برای بسیاری از رجیسترارهای دامنه و ISPها است. با این حال، در ژانویهی 2019 سازمان ICANN، تمامی رجیستریها و رجیسترارهای دامنه را ملزم کرد که DNSSEC را به طور کامل مستقر کرده و همچنین با فوریت بیشتری مالکان نام دامنه را ملزم کرد که به رجیسترارهایی مهاجرت کنند که DNSSEC را ارائه میکنند. برای مطالعه بیشتر در خصوص امنیت DNS و DNSSEC، به مطلب راهنمای امنیت DNS – توضیحاتی دربارهی DNSSEC مراجعه کنید.
اگر سازمان شما سرورهای DNS مخصوص به خود را دارد، برای تامین امنیت آنها میتوانید چند گام را طی کنید:
- دسترسی به سرورهای DNS باید محدود شده و از طریق احراز هویت چندمرحلهای، راهکارهای امنیتی فیزیکی قدرتمند و راهکارهای استاندارد امنیت شبکه ایمن شوند تا از دسترسی از راه دور به سرورهای DNS جلوگیری شود.
- بهروز نگهداشتن سرورهای DNS و استفادهی بهموقع از پچهای امنیتی برای کلاینتهای DNS، و همچنین حفاظت با استفاده از برنامههای ضد بدافزار (antimalware) برای جلوگیری از تغییر تنظیمات DNS.
- خاموشکردن سرورهای DNS resolver بلااستفاده روی شبکه و قراردادن یک فایروال جلوی سرورهای resolver مورد نیاز و فعال.
- محدودکردن تعداد zone transferهای انجامشده (انتقال و یکپارچهسازی اطلاعات بین سرورهای DNS).
- غیرفعالکردن DNS recursion (تبدیل دامنه به IP با مراجعه به حافظه کش محلی).
- مانیتورکردن فعالیتهای مشکوک در نامسرورها.
جمعبندی
سامانه نام دامنه بخشی حیاتی از اینترنت است. بدون DNS، اینترنتی که امروز میشناسیم وجود نداشت. به همین دلیل است که حملات انجامشده روی DNS میتوانند عواقب گستردهای داشته باشند. از این جهت آگاهی از تهدیدات، برداشتن گامهای لازم برای جلوگیری از حملات و اطلاع از نحوهی کاهش خسارات در صورت هدف قرارگرفتن سازمان شما توسط مهاجمین، اهمیت فراوانی دارد.