امنیت DNS را باید بخشی ضروری از هرگونه برنامهریزی برای امنیت کسبوکار دانست. سرویسهای Name Resolution (که نام دامنهی میزبان را به آدرس IP تبدیل میکنند) تقریباً توسط همهی برنامهها و سرویسهای موجود در یک شبکه استفاده میشوند.
اگر مهاجمی بتواند کنترل DNS را به دست آورد، به راحتی میتواند:
- کنترل دامنه را به طور دائمی به دست بگیرد.
- مسیر ترافیک مربوط به ایمیلهای ورودی، درخواستهای تحت وب و هرگونه اقدام به احراز هویت را تغییر دهد.
- گواهینامههای SSL/TLS را خارج از حیطهی کنترل سازمان تولید و تایید کند.
این راهنما از دو جنبه به امنیت DNS میپردازد:
- حفظ مالکیت و کنترل بر DNS به طور کلی.
- چطور پروتکلهای جدید DNS مثل DNSSEC، DoH، و DoT میتوانند به حفاظت از یکپارچگی (Integrity) و حریم خصوصی درخواستهای DNS حین مخابره کمک کنند.
امنیت DNS چیست؟
امنیت DNS از دو بخش تشکیل شده است:
- حفظ یکپارچگی و دسترسپذیری سرویسهای DNS (تبدیل دامنهی میزبان به آدرسهای IP)
- رصد فعالیتهای DNS برای شناسایی مشکلات امنیتی که ممکن است در جای دیگری از شبکه شما اتفاق بیفتند.
چرا DNS نسبت به حمله آسیبپذیر است؟
DNS در اولین سالهای ظهور اینترنت ساخته شد، بسیار پیشتر از آن که کسی به فکر بهکاربردن بهروشهای امنیتی باشد. DNS بدون هیچگونه احراز هویت یا رمزگذاری عمل کرده و کوئری رسیده از هر سرویسگیرندهای را پردازش میکند.
به خاطر این مساله، راههای فراوانی برای جعل مرجع تبدیل نام دامنه و به اشتباه انداختن و فریب دادن سرویسگیرنده در خصوص مرجع واقعی تبدیل نام دامنه وجود دارد.
ملاحظات و بخشهای مختلف در امنیت DNS
امنیت DNS از چندین بخش جامع تشکیل شده که باید هر یک از آنها به درستی پیاده شود تا بتوان امنیت DNS را به صورت کلی تامین کرد.
- حفظ امنیت در سطح سیستم و کنترل: تقویت سرورها و ایجاد قالب پیشفرض برای راهاندازی
- ارتقای پروتکل: استقرار پروتکل DNSSEC، DoT یا DoH
- تحلیل و لاگینگ: تلفیق Event Logging DNS با راهکار SIEM برای ارائهی اطلاعات جانبی جهت استفاده در تحقیقات امنیتی
- اطلاعات تهدید و امنیت: عضویت در یک فید فعال اطلاعات تهدیدِ حاوی ارزش عملیاتی
- اتوماسیون: برنامهنویسی و خودکارسازی عملیات تا حد امکان با هدف بهرهبرداری حداکثری از زمان اختصاصدادهشده به امنیت
بخشهای کلی که در بالا ذکرشدهاند، صرفاً اشارهای به اقدامات لازم برای تامین امنیت DNS دارند. در ادامه به صورت عمیقتر به این موضوع میپردازیم و موارد خاص در استفاده و “بهروشهایی” را که باید از آنها اطلاع داشته باشید ذکر خواهیم کرد.
حملههای DNS
- Cache Poisoning/DNS Spoofing: سواستفاده از آسیبپذیری یک سیستم با هدف کنترل Cache، جهت هدایت کاربران به مقصدی متفاوت از مقصد اصلی مورد نظر کاربر.
- DNS Hijacking: هدایت ترافیک معمولی DNS به سوی یک سرور DNS متفاوت بهوسیلهی تغییر رجیستر دامنه.
- NXDOMAIN: انجام حملهی DDoS به DNS authoritative server با ارسال درخواستهای جعلی دامنه، با هدف مجبورکردن سرور به ارسال یک پاسخ.
- Phantom Domain: ایجاد وضعیتی که DNS resolver را مجبور کند منتظر پاسخی از سوی دامنههایی شود که وجود خارجی ندارند، که این امر باعث میشود کارایی آن به شدت پایین بیاید.
- Random Subdomain: مجموعهای از میزبانهای آلودهشده و باتنتهایی که در اصل در حال حملهی DoS به یک دامنهی معتبر هستند، ولی تمرکز حمله را روی زیردامنههای ساختگی قرار میدهند تا سرویس را مجبور به DNS Record Lookup کرده و از این طریق آن را مختل کنند.
- Botnet-Based CPE: در این حمله از مجموعهای از رایانهها، مودمها، روترها و دستگاههای دیگر استفاده شده و قدرت رایانشی آنها روی یک وبسایت یا منبع خاص متمرکز میشود تا بتوان ترافیک درخواستشده از آن منبع یا وبسایت را از ظرفیت آن بیشتر کرد.
حمله با بهرهگیری از DNS
در این نوع حملهها به روشی از DNS برای حمله به دیگر سیستمها استفاده میشود (یعنی ایجاد تغییرات در DNS هدف حمله نبوده و واسطهی حمله است):
- Fast-Flux
- Single Flux
- Double Flux
- DNS Tunneling
حمله به DNS
در این حملهها آدرس IP که از سرور DNS ارسال میشود آدرسی است که مهاجم تعیین کرده و با آدرس معتبر که ادمینهای سرور DNS ارسال کردهاند تفاوت دارد:
- DNS Spoofing/Cache Poisoning
- DNS Hijacking
DNSSEC چیست؟
DNSSEC مخفف Domain Name System Security Extensions (افزونههای امنیتی DNS) بوده و برای اعتبارسنجی رکوردهای DNS بدون نیاز به دانستن اطلاعات جانبی مربوط به هر یک از کوئریهای DNS به صورت جداگانه، استفاده میشود.
DNSSEC از زوج کلیدهای امضای دیجیتال، یا همان زیرساخت کلید عمومی (PKI) برای اعتبارسنجی منبع پاسخ به کوئری DNS استفاده میکند.
پیادهسازی DNSSEC نه تنها یک بهروش صنعتی است که موسسه ملی استاندارد و فناوری (NIST) استفاده از آن را الزامی کرده است، بلکه روشی موثر برای حل مشکل سادگی بیش از حد در عملکرد DNS و پیشگیری از اکثر حملههای DNS است.
DNSSEC چطور کار میکند؟
عملکرد DNSSEC شبیه به TLS/HTTPS بوده و از زوجکلیدهای عمومی/خصوصی برای امضاکردن رکوردهای DNS به صورت دیجیتال استفاده میکند. یک توصیف کلی از این فرایند به شرح زیر است:
- رکوردهای DNS با استفاده از زوجکلیدهای عمومی/خصوصی امضا میشوند.
- پاسخ کوئریهای DNSSEC هم شامل رکوردهای درخواستشده و هم امضا و کلید عمومی هستند.
از کلید عمومی برای مقایسهی رکورد و امضا استفاده میشود تا بتوان اصالت رکورد را سنجید.
تفاوت امنیت DNS و DNSSEC
DNSSEC یک روش کنترل امنیتی است که از طریق آن میتوان یکپارچگی و سلامت کوئریهای DNS را سنجید ولی توانایی حفظ حریم خصوصی DNS را ندارد. به عبارت دیگر، با وجود DNSSEC میتوانید مطمئن باشید که پاسخ کوئری DNS دستکاری نشده و از منبع اصلی و معتبر ارسال شده، ولی هر مهاجم یا فرد کنجکاوی میتواند نتایج را حین مخابرهشدن به شما مشاهده کند.
DNS بر روی TLS
امنیت لایهی انتقال (Transport Layer Security: TLS) یک پروتکل رمزنگاری برای تامین امنیت اطلاعات مخابرهشده طی یک اتصال در شبکه است. به محض برقراری یک اتصال امن TLS بین یک سرویسگیرنده و یک سرور، هیچ واسطهای میان این دو نقطه نمیتواند دادهی در حال مخابره را «ببیند» چون داده رمزگذاری شده است.
TLS عمدتاً به عنوان بخشی از اتصال HTTPS (یا «SSL») در مرورگر وب و هنگام ارسال درخواست به سرورهای HTTP امن استفاده میشود.
DNS بر روی TLS (DNS over TLS: DoT) از TLS برای رمزگذاری ترافیک UDP در کوئریهای معمولی DNS استفاده میکند.
با کمک رمزگذاری این کوئریها، که در صورت عدم رمزگذاری به صورت متن خام هستند، میتوان از کاربران یا برنامههایی که درخواستها را ایجاد میکنند، در مقابل چندین نوع حمله حفاظت کرد.
- حملهی Man-In-The-Middle (مرد میانی): بدون رمزگذاری، هر سیستم واسطهای که بین سرویسگیرنده و سرور Authoritative قرار داشته باشد میتواند پاسخی حاوی اطلاعات کاذب یا مخرب به سرویسگیرنده ارسال کند.
- جاسوسی و ردیابی فعالیت: بدون رمزگذاری کوئریها، سیستمهای واسطه به سادگی میتوانند سایتهایی را که یک کاربر یا برنامهی خاص به آنها دسترسی داشته مشاهده کنند. گرچه دسترسی به یک صفحهی خاص در یک سایت را نمیتوان فقط با استفاده از DNS تعیین کرد، صرفاً دانستن این که درخواست دسترسی به چه دامنههایی ارسال شده، برای فهمیدن الگوی رفتار سیستم یا شخص کافی است.
DNS بر روی HTTPS
DNS بر روی HTTPS (یا DoH) یک پروتکل آزمایشی ساختهی شرکتهای Mozilla و گوگل است که اهدافی بسیار شبیه DoT دارد: ارتقای حریم خصوصی کاربران اینترنت بهوسیلهی رمزگذاری کوئریهای DNS و پاسخ آنها.
کوئریهای استاندارد DNS از طریق پروتکل UDP مخابره شده و درخواستها و پاسخها را میتوان از طریق ابزارهایی مثل Wireshark مشاهده کرد. پروتکل DoT این کوئریها را رمزگذاری میکند، ولی رمزگذاری به گونهای انجام میشود که کوئریها در شبکه همچنان به عنوان ترافیک UDP تا حد زیادی قابل تمایز باشند.
طریقه عملکرد DoH با پروتکلهای دیگر متفاوت بوده و درخواستهای رمزگذاریشدهی DNS Resolution را از طریق اتصال HTTPS مخابره میکند، بهگونهای که هنگام دریافت کاملاً شبیه به دیگر درخواستهای تحت وب هستند.
این تفاوت در عملکرد، پیامدهای قابل توجهی هم برای ادمینهای سیستم و هم فرایند Name Resolution در آینده دارد.
- فیلترکردن DNS، یک روش رایج برای فیلترکردن ترافیک وب با هدف حفاظت از کاربران در مقابل حملههای فیشینگ، سایتهای توزیع بدافزار یا دیگر فعالیتهای آسیبزای اینترنتی در یک شبکهی سازمانی است. DoH این فیلترها را دور میزند و از این رو ممکن است خطراتی را که کاربران و شبکه در معرض آنها قرار دارند، افزایش دهد.
- در مدل فعلی Name Resolution، در یک شبکه هر دستگاهی کوئریهای DNS را کم و بیش از محل یکسانی (یک سرور DNS خاص) دریافت میکند. پروتکل DoH و بهخصوص نسخهی پیادهشده در Firefox نشان داده که این امر ممکن است در آینده تغییر کند. هر برنامهای روی یک کامپیوتر ممکن است به یک منبع DNS متفاوت متصل شود، که عیبیابی، تامین امنیت و مدلسازی خطر را دشوارتر میکند.
تفاوت DoT و DoH چیست؟
بیایید با DoT شروع کنیم. در اینجا مهمترین نکته این است که پروتکل DNS اصلی تغییر نمیکند، بلکه صرفاً از طریق یک کانال امن و به صورت ایمن مخابره میشود. پروتکل DoH پیش از ارسال درخواست، DNS را در قالب HTTP کپسوله میکند.
میخواهید وارد حوزه امنیت شوید؟ روی دکمه زیر کلیک کنید:
هشدارهای نظارتی DNS
توانایی نظارت بر ترافیک DNS محیط کاریِ تحت حفاظت با هدف تشخیص موثر فعالیتهای نامعمول و مشکوک، در شناسایی بهموقع خطرات حیاتی است. استفاده از ابزارهایی مانند Varonis Edge شما را قادر میسازد که با استفاده از معیارهای مبتنی بر اطلاعات، هشدارهایی تنظیم کرده و برای هر حساب موجود در شبکهی تحت حفاظت یک الگوی رفتاری شکل دهید که در تشخیص رفتارهای نامعمول – که میتواند نشانهای از آلودهشدن آن حساب باشد- به شما کمک خواهد کرد. هشدارها را میتوان براساس مجموعهای از فعالیتهای مشکوک طی یک بازهی زمانی خاص تولید کرد. با تحلیل نتایج نفوذهای امنیتی رخداده در هر صنعت در سراسر دنیا میتوان این بازههای زمانی را تشخیص داد.
نظارت بر تغییرات بهوجودآمده در DNS، موقعیت جغرافیایی کاربر، استفاده برای اولین بار، دسترسی به دادههای حساس و فعالیت خارج از ساعات کاری تنها چند نمونه از معیارهایی هستند که میتوان با بررسی رخداد همزمان آنها، دامنهی شناسایی خطر را گستردهتر کرد.