آموزش دایرکت ادمین، سی پنل، وب سایت پنل

خانه / DNS / روش جلوگیری از حملات DNS

روش جلوگیری از حملات DNS

روش جلوگیری از حملات DNS
امتیاز بدهید

How can prevent DNS attacks

​DNS قلب و روح اینترنت است. DNS مانند یک دفترچه تلفن غول پیکر برای سیستم شما میباشدکه برای پیدا  و ترجمه کردن نام Host به آدرسهای IP به منظور ارتباط با سایر سیستم ها مانند وب سایت ها استفاده می شود.

امروز ما به شما نشان خواهیم داد که چگونه از حملات معمول DNS با استفاده از بهترین شیوه های عمومی محافظت کنید.

چگونه هکرها به زیرساخت DNS حمله می کنند؟

سرویس DNS یکی از محبوب ترین سرویس های اینترنتی است و در عین حال  SysAdmins، DevOps و مدیران شبکه اغلب فراموش می کنند که این سرویس را امن تر کنند. تنظیمات سرور DNS که امنیت بالایی  ندارند، گاهی به مشکلات واقعا جدی می انجامد، زیرا مهاجمان می توانند از این سرویس برای انجام کارهایی مانند انتقال DNS Zone ها ، تغییر تنظیمات DNS برای گزارش دادن آدرس های مختلف IP به افراد کلاهبردار، هدایت ترافیک وب و ایمیل یا راه اندازی حملات DNS amplifying خطرناک و انواع دیگر حملات استفاده کنند.

این حملات میتواند ترافیک کاربران را به سرور دیگری هدایت کند و به عنوان مثال ایمیل ها به سرور دیگری منتقل شوند. (به دلیل تغییر در آدرس MX)

بنابراین امن کردن سرویس DNS میتواند بسیار مهم باشد.

چگونه می توانم از حملات DNS جلوگیری کنم؟

بیایید با هشت نکته کلیدی برای مقاوم  شدن سرویس DNS آشنا شویم:

 

۱-    بررسی DNS Zone ها

مهمترین موضوع  بررسی  و پیکربندی  اصلی سرور DNS است، تمام رکوردهای DNS خود و سوابق آن ها را بررسی کنید و رکوردهای قدیمی یا اشتباه را حذف کنید. برای این کار می توانید از سایت  SecurityTrails کمک بگیرید.

 

۲-   سرورهای DNS خود را به روز نگه دارید

از DNS سرورهای اختصاصی استفاده کنید، بهتر است بجای استفاده از سرور اشتراکی که  hosting provider در اختیار شما قرار میدهد، از DNS سرورهای جداگانه و اختصاصی با قابلیت تنظیمات بیشتر مانند CloudFlare استفاده کنید.

اگر قصد دارید خودتان DNS server را با سرویس هایی مانند BIND, PowerDNS, NSD یا Microsoft DNS راه اندازی کنید، به صورت مداوم آن را بروزرسانی کنید. آخرین نسخه تمام ابزارهای بالا از قابلیت DNSSec پشتیبانی می کند که توانایی مقابله با حملات reflection attacks را دارا میباشد.

نحوه نصب بروز  رسانی BIND

در سرویس های RHEL :

yum update bind -y

در سرویس های Debian :

apt-get update bind9 bind9-host

۳-     مخفی کردن نسخه BIND

برخی این روش را یک روش امنیتی نمی دانند اما پنهان کردن نسخه DNS باعث ایجاد مشکل در زمان جمع آوری اطلاعات اولیه توسط هکرها میشود. با دستور زیر مهاجم براحتی نسخه سرویس DNS شما را بدست می آورد

 

dig @ns1.server.com -c CH -t txt version.bind

چگونه نسخه BIND مخفی کنیم؟

برای پنهان سازی باید فایل named.conf را ویرایش نمایید که معمولا در مسیر زیر است

/etc/named.conf

در قسمت ساختاری options در مقابل عبارت version باید مقدار را بصورت Forbidden تنظیم کنید.

version "Forbidden";

تغییرات را ذخیره کنید و سرویس DNS را restart کنید.

 

۴-     محدود کردن Zone Transfer ها

منظور از انتقال یک Zone DNS تهیه یک کپی از Zone DNS در سرورهای DNS سطح دو (slave) است. این پرس و جو اغلب توسط Name server های لایه های پایین تر و یا همان slave ها از سرور DNS اصلی (master) مورد استفاده قرار می گیرد، ازین رو یک مهاجم می تواند خود را به جای یک slave DNS server جا زده و یک انتقال Zone DNS را انجام دهد تا درک بهتر از توپولوژی شبکه شما داشته باشند.

یکی از مواردی که می تواند برای جلوگیری از این نوع ترفندها انجام شود محدود کردن سرورهای DNS مجاز به انجام Zone Transfer است  با حداقل کردن آدرس IP مجاز برای چنین درخواست هایی از طریق یک ACL می باشد.

چگونه می توانیم DNS zone transfer را به آدرس های IP خاص محدود کنیم؟

در تنظیمات اصلی سرویس BIND یک بلاک جدید به صورت زیر ایجاد و IP های مورد نظر جهت دسترسی و درخواست را اضافه میکنیم

acl trusted-servers {
۱۷۳٫۸۸٫۲۱٫۱۰; // ns1
۱۸۴٫۱۴۴٫۲۲۱٫۸۲; // ns2
};

اکنون پیکربندی Zone DNS خود را در همان پرونده جستجو کنید. در بلاک دامنه مورد نظر خود یک متغیر “allow-transfer” اضافه کنید و بلاک ایجاد شده را به آن اضافه نمایید.

zone domain.com
{ type master; file "zones/domain.com";
allow-transfer { trusted-servers; };
};

در نهایت سرویس BIND را restart کنید.

برای تست DNS zone transfer از دستور زیر استفاده میکنیم

host -T axfr domain.com

 

۵-     غیرفعال کردن  DNS recursion

DNS recursion بصورت پیش فرض روی Bind فعال است و این موضوع می تواند مشکلات امنیتی جدی را ایجاد کند.

زمانی که DNS recursion فعال است به درخواست های recursive DNS اجازه میدهد که به جستجوی دامنه هایی در master zone قرار ندارند بپردازد،  این امر باعث می شود تایک مهاجم بتواند به هرتعداد پرسجو  از طریق سرور شما به هر دامنه ای که بر روی سرور های دیگر قرار دارد ارسال نماید. بدین ترتیب آدرس مهاجم در پشت سرور شما مخفی شده و تمامی پرس و جو ها با آدرس آیپی سرور شما انجام می شود.

 

حمله مشابه دیگری نیز به نام DNS cache poisoning وجود دارد.در این حمله مهاجمان می توانند از طریق تعیین آدرس IP هدف به عنوان آدرس منبع درخواستی، Query های DNS را از طریق اینترنت به این سرورها ارسال نمایند؛ در نتیجه‌ی این کار، سرور پاسخ خود را به جای منبع اصلی Query DNS به قربانی ارسال می‌نماید.

چگونه DNS recursion را غیرفعال کنیم.

برای غیرفعال کردن DNS recursion باید در فایل named.conf تنظیمات زیر را قرار دهید.

allow-transfer {“none”;};
allow-recursion {“none”;};
recursion no;

 

در نهایت سرویس DNS را restart نمایید.

 

۶-     استفاده از سرور مخصوص DNS

شرکت های هاستینگ تمام سرویس ها از جمله وب سرور و پایگاه داده را در کنار DNS بروی یک سرور با استفاده از پکیج نصبی  cPanel یا Plesk در یک سرور استفاده میکنند.

هیچگاه تمام تخم مرغ ها را در یک سبد قرار ندهید تا دچار مشکلات در آینده نشوید.

استفاده از سرور اختصاصی برای DNS به  شما کمک خواهد کرد که احتمال حملات را کاهش دهید. تمام پورت های غیر ضروری سرور را ببندید، سرویس های غیرضروری سیستم را متوقف کنید، ترافیک خود را با استفاده از فایروال فیلتر کنید، و تنها به سرویس های اساسی مانند SSH و سرور DNS خود اجازه دهید. این امر به شدت به کاهش احتمال آسیب سرویس DNS کمک می کند.

 

۷-    استفاده از DNSSEC

DNS فاقد روش مناسب برای تایید هویت منابع اطلاعاتی که از طریق Query ها کسب می کند می باشد.

در واقع DNSSec این اطمینان را به DNS Server میدهد تا وقتی جوابی را که از یک DNS Server دیگر دریافت کرده با اطمینان از صحت آن و همچنین اطمینان از عدم تغییر در جواب در حین انتقال در اختیار کلاینت قرار دهد و کلاینت به مقصد درست و اصلی متصل شود .

DNSSEC این امکان را برای Clientها فراهم می‌کند تا منبع ارسال‌کننده داده‌های DNS را احراز هویت نموده و از درستی داده‌ها نیز اطمینان یابند؛ این امر تضمین می‌نماید که پاسخ‌های ارسالی از طریق DNS در طول مسیر تغییر نکرده و از طریق سرورهای تایید شده و مجاز دامین ارائه شده‌ است.

البته DNSSEC نیز به گزارش Akamai در گذشته، بسیاری از حملات DDoS Amplification و DNS Reflection را که در آنها از دامین‌های پیکربندی‌شده با DNSSEC سوء‌استفاده شده بود، بررسی نموده  و گزارش داده است.

 

۸-      استفاده از  ​​DNS RPZ​​​

سیاست پاسخگویی منطقه ای در سرویس مدیریت دامنه و یا به اختصار ​​DNS RPZ روشی است که به مدیر سرور DNS اجازه بازنویسی داده های سفارشی را بر روی سرویس DNS عمومی به منظور پاسخگویی به پرس و جوهای DNS می دهد.این ویژگی در حال حاضر در BIND نسخه ۹.۸ و بالاتر پیاده سازی شده است. نام دیگر سیاست پاسخگویی منطقه ای در سرویس مدیریت دامنه DNS Firewall و یا همان دیواره آتش DNS می باشد.

مهمترین انگیزه ایجاد این سرویس ایجاد ویژگی برای محافظت از کاربران در مقابل بدبینی ایجاد شده در موارد مخرب آشنا اینترنت روی موضوعاتی مانند host names, domain names, IP addresses یا  nameservers بوده است. متاسفانه، توانایی صنعت امنیت اینترنت برای از بین بردن زیرساخت های مجرمانه در ثبت دامنه، ارائه دهندگان خدمات میزبانی یا ISP ها به اندازه کافی موثر نیست. با استفاده از RPZ، یک شبکه یا DNS administration می تواند پایگاه های خود را در زمینه حفاظت از حقوق خود از طریق ارائه دهندگان خدمات امنیتی در یک زمان تقریبا واقعی به اجرا بگذارد.

هم اکنون سرویس دهنده هایی مانند Akamai و یا PowerDNS در حال استفاده از ویژگی DNS RPZ هستند.​