سیستم نام دامنه یا همان DNS، ارتباطات داخل شبکه را ممکن می سازد. سیستم DNS و عملکرد آن در دید عموم قرار ندارد اما زمانی که دچار مشکل گردد، اهمیت آن نمایان می شود. در واقع اگر سرویس DNS از بین برود، هیچ چیز در سطح اینترنت به درستی کار نخواهد کرد. این درجه از اهمیت سیستم DNS، تمامی متخصصان را مجاب می کند تا بهترین تمهیدات امنیتی را جهت ایمن سازی سیستم نام دامنه یا DNS پیاده سازی نمایند.
از افزونگی DNS و دسترسی پذیری بالای آن اطمینان حاصل کنید
از آنجایی که DNS ستون اصلی برنامه های تحت شبکه است، زیرساخت DNS باید بسیار قابل اتکا و همواره در دسترس باشد. یکی از ابتدایی ترین کارها، ایجاد افزونگی DNS یا همان DNS Redundancy است. برای انجام افزونگی DNS نیز باید حداقل دو سرور DNS (سرورهای DNS اولیه و ثانویه) در سازمان خود داشته باشید. همه سرویسهای اشتراکگذاری فایل و ایمیل، به عملکرد صحیح DNS متکی هستند. بدون سرورهای DNS سالم و کارآمد، دستگاههای داخل یک شبکه نمیتوانند با یکدیگر ارتباط برقرار نمایند.
تصویر(1)
در صورت وجود سرور DNS ثانویه، اگر یکی از سرورهای DNS با مشکل مواجه شود، دیگری بلافاصله کنترل را بر عهده می گیرد. مدیران سرور، ماشین های مجازی موجود در یک شبکه را طوری پیکربندی می کنند که اگر DNS اصلی پاسخگو نبود، به طور خودکار از DNS ثانویه استفاده نمایند. IP یک سرور DNS داخلی، می تواند هر آدرسی در محدوده رنج IP شبکه خصوصی (private network) باشد.
با ایجاد افزونگی برای DNS ها می توان به ساختار DNS پایدارتری دست پیدا کرد. تکرار مداوم کپی رکوردها از سرور DNS اصلی به سرور ثانویه، باعث بروز نگه داشتن رکوردهای DNS شده و آنها را از خرابی و خطا دور خواهد نمود. در این صورت می توان اطمینان حاصل کرد که همواره همه سرویس ها برای کاربر نهایی در دسترس هستند.
سرورهای DNS و اطلاعات پیرامون آن را مخفی نمایید
لازم نیست سرورهای DNS و تمامی اطلاعات در دسترس همه کاربران قرار گیرند. سرورها و داده های لازم را فقط برای افرادی که از این سرورها استفاده می کنند، در دسترس قرار دهید. اگر نام دامنه شما برای عموم قابل مشاهده و در دسترس باشد، اهمیت پنهان سازی اطلاعات آن بسیار بیشتر می شود.
برای ایمن سازی سیستم نام دامنه یا DNS، سرور DNS اصلی خود را مخفی کنید. سرورهای اصلی نباید برای کاربران خارجی قابل مشاهده باشند. رکوردهای این سرورها نباید در هیچ پایگاه داده ای ثبت شوند یا در دسترس عموم قرار گیرند. فقط سرورهای DNS ثانویه باید به درخواستهای کاربران نهایی رسیدگی کنند.
در نهایت، فقط مدیران سیستم و پرسنل واحد فناوری اطلاعات باید به سرورهای اصلی در سازمان شما دسترسی داشته باشند. اگر دسترسی به سرور های DNS اصلی در یک سازمان برای عموم کاربران آزاد باشد، احتمال بروز مشکلات امنیتی نیز بسیار بالا خواهد رفت. به عنوان یک قاعده کلی، سرورهای DNS و داده ها را از کاربرانی که نیازی به آنها ندارند، پنهان نمایید.
تصویر(2)
حتی اگر دریافت پاسخ را در سرورهای DNS معتبر خود غیرفعال کرده باشید، باز هم این امکان وجود دارد که برای حملات DNS Amplification تحت نام دامنه شما، استفاده شوند. برای کاهش گزینه های مهاجمان، می توانید تعداد پاسخ های دریافتی را محدود کنید. اگر از نرمافزار bind در سرور بهره می برید، می توانید از پیکربندی زیر جهت محدود کردن نرخ پاسخ به 2 کوئری در ثانیه برای هر شبکه IPv4 کلاس C، استفاده کنید:
rate-limit {
responses-per-second 2;
ipv4-prefix-length 24;
slip 1;
};
همچنین می توانید از Anycast DNS برای کسب و کار خود استفاده نمایید. Anycast با تسریع در روند دسترسی، تجربه کاربری بهتری را به کاربران شما منتقل می کند. این تکنیک به صورت چشمگیری زمان بارگذاری صفحه اول وب سایت را کاهش می دهد و به بهبود SEO سایت کمک می نماید. به دلیل وجود نقاط پاسخگویی مختلف در Anycast DNS، امکان از دسترس خارج شدن سایت کاهش پیدا خواهد کرد و از شبکه در برابر حملات DDoS محافظت میکند.
برای ایمن سازی سیستم نام دامنه یا DNS آیا باید از سرور DNS داخلی استفاده کرد یا خارجی؟
پاسخ این سوال به تنظیمات داخلی شبکه سازمان مربوطه بستگی دارد. برای اینکه دستگاههای مرتبط با یک دامنه بتوانند تبادل اطلاعات داشته باشند، باید آنها را به یک سرور DNS داخلی متصل نمایید. سرورهای DNS خارجی نمی توانند آدرس دستگاه های داخلی را مشخص کنند.
به عنوان مثال، هنگامی که یک کامپیوتر با نام DESKTOP1 یک درخواست DNS برای پیدا کردن و اتصال به چاپگر اداری ارسال می کند، فقط یک سرور DNS داخلی می تواند آن درخواست را به درستی پاسخ دهد و سیستم را به پرینتر متصل نماید. در همین شبکه، اگر دستگاهی را طوری تنظیم کنید که از DNS خارجی مانند 8.8.8.8 سایت Google استفاده نماید، دیگر نمی تواند سایر دستگاه های داخل شبکه سازمان را یافته و با آنها ارتباط برقرار کند.
در محیط های داخلی، باید DNS اولیه و ثانویه را به یک سرور DNS داخلی متصل نمایید. در این صورت، حتی اگر سرور DNS اولیه از مدار خدمات رسانی خارج شود، هیچ مشکلی در اتصال وجود نخواهد داشت. سرور DNS ثانویه شامل تمام رکوردها و آدرس ها بوده و به عنوان یک پشتیبان عمل می کند. در صورت بروز مشکل، سرور ثانویه تا زمان راه اندازی و در دسترس قرار گرفتن سرور اصلی، به تمام query ها پاسخ می دهد.
از نزدیکترین DNS Server یا DNS محلی (local) استفاده کنید
سازمان های بزرگ اغلب دفاتری در سراسر جهان دارند. اگر زیرساخت اجازه دهد، باید یک سرور DNS محلی در هر دفتر راه اندازی گردد. یک سرور محلی، زمان پاسخگویی به درخواست های DNS را کاهش می دهد. هنگامی که یک درخواست از سمت wide-area network یا همان WAN به یک DNS Server راه دور منتقل می شود، کاربر زمان بارگذاری طولانی تری را تجربه خواهد کرد.
تصویر(3)
با افزایش تعداد کاربران، تعداد درخواست های DNS نیز افزایش می یابد. یک مجموعه متمرکز از سرورهای DNS می تواند تمام درخواست ها را پاسخ دهد اما در این صورت پاسخگویی با تاخیر صورت خواهد گرفت. با ارجاع دادن ماشینهای مجازی کاربران به یک nameserver محلی یا نزدیکترین سرور DNS، زمان پاسخدهی به کمترین مقدار خود کاهش پیدا خواهد کرد.
در این حالت، تاخیر از 50 میلی ثانیه بیشتر نخواهد شد و معمولاً بسیار کمتر از 50 میلی ثانیه است. استفاده از نزدیکترین سرور DNS، زمان بارگذاری را برای همه سیستم ها کاهش می دهد. به این ترتیب، بار روی سرور اصلی نیز کاهش یافته و عملکرد آن بهبود می یابد.
بهترین روش های حفظ امنیت DNS
سرورهای DNS به صورت مداوم هدف حملات سایبری هستند. ایمن سازی زیرساخت DNS گامی مهم در جلوگیری از نفوذ به سازمان شما می باشد. موثرترین روش های ایمن سازی سیستم نام دامنه یا DNS عبارتند از:
1. ثبت لاگ DNS را فعال نمایید
ثبت لاگ های DNS کارآمدترین راه برای نظارت بر فعالیت های آن است. با استفاده از گزارشات DNS می توان از نفوذ و خرابکاری احتمالی در سرور DNS باخبر شد. علاوه بر نمایش فعالیت کاربران، این گزارشات مشکلات مرتبط با درخواستهای DNS یا بروزرسانیها را نیز نشان می دهند.
لاگ DNS، آثار cache poisoning را نیز نشان میدهد. در cache poisoning، مهاجم دادههای ذخیره شده در حافظه کش را تغییر میدهد و کلاینتها را از مسیر اصلی خارج میکند. برای مثال، آدرس IP سایت www.example.com ممکن است به آدرس IP یک سایت مخرب تغییر یابد. در این حالت، وقتی یک کلاینت درخواستی جهت دستیابی به DNS های سایت example.com ارسال مینماید، سرور IP اشتباه را برمیگرداند. سپس کاربر از وبسایتی که مدنظرش نبود، بازدید مینماید و هدف هکرها قرار میگیرد.
گزارش عیب یابی DNS امنیت را به سطح بالاتری ارتقا میدهد اما برخی از مدیران سیستم تصمیم می گیرند که آن را غیرفعال کنند. دلیل اصلی آنها نیز بهبود عملکرد و کارایی سیستم است. نظارت بر فعالیت شبکه می تواند به شما در شناسایی برخی حملات مانند DDoS کمک کند اما cache poisoning را نمایان نمی سازد. بنابراین، برای ایمن سازی سیستم نام دامنه یا DNS توصیه می شود که لاگ DNS را فعال نمایید.
2. کش DNS را قفل کنید
هر زمان که درخواستی از یک کلاینت ارسال می شود، سرور DNS اطلاعات را یافته و برای استفاده بعدی در حافظه کش ذخیره می کند. این فرآیند به سرور اجازه خواهد داد تا به درخواست های مشابه سریعتر پاسخ دهد. مهاجمان می توانند با تغییر اطلاعات ذخیره شده، از این ویژگی سوء استفاده کنند.
یک اقدام مهم پس از فعال کردن گزارش خطایابی DNS، قفل کردن حافظه کش DNS است. این ویژگی تعیین می کند که چه زمانی می توان داده های کش را تغییر داد. سرور اطلاعات جستجو شده را به اندازه مدت زمان تعیین شده توسط Time to Live یا همان TTL، نگهداری می کند. اگر قفل کش غیرفعال باشد، می توان اطلاعات را قبل از انقضای TTL بازنویسی کرد. این امر فضا را برای حملات cache poisoning آماده می کند.
با توجه به نوع سیستم عامل، قفل کش ممکن است به طور پیش فرض فعال باشد. مقیاس قفل کش تا 100 درصد قابل تنظیم است. با تعریف قفل کش روی 100، تغییر اطلاعات تا زمان انقضای TTL ممنوع می شود.
تصویر(4)
3. فیلتر کردن درخواست های DNS برای مسدود کردن دامنه های مخرب
فیلتر کردن DNS یک راه موثر برای جلوگیری از دسترسی کاربران به یک وب سایت یا دامنه و همچنین ایمن سازی سیستم نام دامنه یا DNS است. هنگامی که کاربر درخواستی را برای دستیابی به وب سایت مسدود شده ارسال می کند، سرور DNS هرگونه ارتباط بین آنها را متوقف می سازد.
فیلتر DNS به طور گسترده ای احتمال ورود ویروس ها و بدافزارها به شبکه را کاهش می دهد. هنگامی که یک کاربر نتواند به یک صفحه مخرب دسترسی پیدا کند، تعداد تهدیداتی که می توانند به زیرساخت شما نفوذ کنند نیز کاهش خواهد یافت. به این ترتیب، مسئولین دپارتمان فناوری اطلاعات نیازی به کار شبانه روزی جهت پاکسازی ویروس ها ندارند. علاوه بر امنیت، سازمان ها ممکن است بخواهند دامنه ای را به دلیل یک سیاست تجاری مسدود کنند. دامنه های مسدود شده می توانند شامل رسانه های اجتماعی، وب سایت قمار، صفحات پخش ویدیو یا هر وب سایت دیگری باشند.
نرم افزارهای مدرن امنیتی و فایروال های امروزی، ابزار فیلتر DNS را به عنوان ابزاری استاندارد و پیش فرض ارائه می دهند. برخی از این ابزارها، لیست دامنه های خطرناک را به طور منظم بروز می کنند. با بهره گیری از یک نرم افزار مناسب، می توانید فیلتر DNS را خودکارسازی کرده و از افزودن ورودی های جدید به صورت دستی جلوگیری نمایید.
4. یکپارچگی داده های DNS را با DNSSEC اعتبارسنجی کنید
Domain Name System Security Extensions یا به اختصار DNSSEC، تضمین میکند که مشتریان پاسخهای معتبری را برای درخواستهای خود دریافت میکنند. هنگامی یک کاربر نهایی درخواستی را ارسال می کند، سرور DNS یک امضای دیجیتالی را همراه با پاسخ ارائه می دهد. از این رو، کاربران متوجه خواهند شد که اطلاعات معتبری را برای درخواستی که ارسال کرده اند، دریافت نموده اند.
این لایه امنیتی به مبارزه با حملات سطح DNS کمک می کند. از آنجایی که DNSSEC یکپارچگی داده و اعتبار سنجی مرجع را ارائه می دهد، از حملات DNS spoofing و cache poisoning با موفقیت جلوگیری می نماید. در این صورت مشتریان مطمئن خواهند شد که دقیقا از صفحات موردنظر خود بازدید می کنند.
5. پیکربندی Access Control Lists
پیکربندی Access Control Lists یا همان ACL راه دیگری جهت ایمن سازی سیستم نام دامنه یا DNS در برابر دسترسی غیرمجاز و حملات جعل DNS یا DNS spoofing است. فقط سرپرستان فناوری اطلاعات و سیستم باید به سرور DNS اصلی شما دسترسی داشته باشند. پیکربندی ACL ها جهت تعیین دسترسی و اتصال به سرورهای DNS صرفا از دستگاه های خاص، تضمین می کند که فقط کارکنان مشخصی می توانند با سرورهای شما ارتباط برقرار کنند.
تصویر(5)
علاوه بر این، ACL ها باید تعریف کنند که کدام سرورها می توانند انتقال zone را انجام دهند. مهاجمان ممکن است سعی کنند با ارسال درخواست انتقال zone از طریق سرورهای DNS ثانویه، تنظیمات فایل zone شما را تعیین نمایند. اگر تمام درخواستهای انتقال zone از طریق سرورهای ثانویه را مسدود کنید، مهاجم نمیتواند اطلاعات zone را به دست آورد. این پیکربندی از مشاهده ساختار و نحوه سازماندهی شبکه داخلی شما توسط هکرها، جلوگیری می کند.
جمع بندی
همیشه فضایی برای بهبود در طراحی سرور DNS و امنیت زیرساخت وجود دارد. تهدیدات دائما در کمین بوده و منتظر سوء استفاده از آسیب پذیری های شبکه شما هستند. با این حال، اگر نکات ذکر شده در این مقاله را پیگیری و پیاده سازی نمایید، مهمترین جنبههای ایمن سازی سیستم نام دامنه یا DNS را پوشش خواهید داد.