حملات DNS Amplification

حملات DNS Amplification

حملات DNS Amplification

مقدمه
در پست قبلی درباره DNS سرور و نحوه کارکرد آن را توضیح دادیم. حال مساله ای که هر ادمین سروری باید با آن دست و پنجه نرم کند مساله امنیت سرویس است. در گذشته نه چندان دور DNS سرور ها با یک اتک ساده از نوع Reflaction به نام DNS Amplification مواجه شدند. این مساله به قدری فراگیر شد که جنبشی بوجود آمد و لیست سرورهای دارای این مشکل امنیتی را در معرض عموم قرار داد. این کار هرچند باعث شد که هکرها از آن بعنوان Target استفاده کنند اما ابزاری شد تا ادمین ها متوجه شکاف امنیتی سرورشان شده و دیری نگذشت تا همه سرورهای عمومی ایمن شدند.

فرض کنید شما بعنوان ادمین یک شبکه قرار است تعدادی از Zone های دامین هایتان را در شبکه اینترنت در اختیار عموم قرار دهید. در نتیجه شما نیز می بایست یک سرور DNS قابل رویت در اینترنت داشته باشید. بطور مثال اگر شما NameServer دارید که به تعدادی وب سایت میزبانی شده در شبکه خودتان اشاره می کند پس سرور شما یک DNS Authoritative است و باید این اجازه را به سرورهای اینترنت بدهید تا از DNS سرور شما سوال در خصوص دامنه های تحت مالکیت او query بگیرند.

از آنجایی که سرور شما هم میتواند از نوع Authoritative و هم Cache باشد پس میتواند بعنوان هدف مناسب برای حملات هکرها قرار گیرد. DNS Cache server ها همانطور که قبلا گفته شد سرورهایی هستند که خود ممکن است مالک دامنه خاصی نباشند اما از سرورهای عمومی دیگر اینترنت درباره دامنه پرس و جو می کنند. بطور مثال وقتی شما خواهان برقراری ارتباط با وب سایت novinparsianit.ir باشید در حالی که این دامنه در سرور DNS گوگل تعریف نشده است در نتیجه سرور شروع به جستجو از سرورهای دیگر ساختار درختی DNS درباره دامنه مورد نظر می کند، هنگامی که به پاسخ می رسد ابتدا آن را در حافظه کش خود ذخیره کرده و سپس به کامپیوتر شما IP آن را اعلام می کند.

اما مشکل کجاست؟

مشکل از آنجایی شروع می شود که بطور مثال یک هکر از Cache سرور شما درخواست می کند هر آنچه درباره دامنه “.” (ریشه ساختار درختی) می داند به او بگوید. از آنجایی که سرور شما مالک دامنه “.” یا ریشه نیست پس از سرورهای دیگر سوال می کند. پاسخ این سوال شامل کل اطلاعاتی است که سرور دیگر در کش و دیتابیس خودش دارد که عموما حجم بسیار زیادی از رکورد های DNS است و میتواند کل منابع سرور شما رو درگیر کند و در نهایت آن را از کار بیاندازد.

از سوی دیگر هکر میتواند یک بسته DNS query از نوع udp ایجاد کند و بجای آدرس خودش (source ip) آدرس جعلی سرور شما را در آن قرار دهد و مستقیم به پابلیک سروری ارسال کند با این مضمون که هر رکوردی داری برای من (source ip جعلی) ارسال کن. در نتیجه سرور شما قربانی حجم زیادی از دیتاهای نا خواسته می شود که تاثیر شدیدی بر روی کارایی سرور یا پهنای باند شبکه میگذارد.

حملات dns amplification

در حالت پیچیده تر هکر میتواند از BotNet ها استفاده کند و همزمان تعداد زیادی درخواست DNS از هر سیستم آلوده ای در هرجای دنیا با آدرس جعلی سرور قربانی بعنوان source ip ارسال کرده و حمله شدید و خطرناکی را انجام دهد. این نوع از حملات را DNS Amplification می نامند که از دسته حملات Reflection attack ها بوده که مفهوم DoS یا DDoS را پیاده سازی می کنند.

 

روش های جلوگیری

راه های متنوعی برای امن سازی در لایه های مختلف وجود دارد مانند استفاده از فایروال ها، IPS ها، کانفیگ صحیح سرویس و… . آنچه مربوط به این تاپیک بوده و به امن سازی خود سرور DNS مربوط می باشد چند مورد است که باهم بررسی می کنیم.

سرورهای که در مود Cache از آنها استفاده میکنیم فرایندی به نامه Recursion را برای دستیابی به مشخصات دامنه هایی که خودشان مالک آنان نیستند انجام می دهند. تنها کافیست در صورتی که نیازی به استفاده از recursion ندارید آن را غیرفعال کنید. بطور مثال در سرویس Bind برای سیستم عامل لینوکس فایل کانفیگ سرور را باز کرده و بصورت ذیل ویرایش میکنیم.

/etc/named.conf                              #نام و مسیر فایل کانفیگ سرویس

allow-transfer {“none”;};                  # عدم اجازه به دیگران جهت درخواست ارسال یک یا چند زون

allow-recursion {“none”;};                # عدم اجازه به دیگران جهت درخواست اطلاعات دامنه ای که تحت مالکیت خود سرور نیست

recursion no;                                   # غیرفعال کردن فرآیند

 

در صورتی که به اجبار ملزم به استفاده از recursion هستید حتما آدرس شبکه ای که می بایست به این فرآیند دسترسی داشته باشد را مشخص کنید. برای اینکار میتوانید از access list استفاده کنید و کانفیگ را به حالت ذیل تغییر دهید.

acl trusted {

192.168.1.1;

172.16.1.1;

};

allow-recursion { trusted; };

 

برای رفع این مشکل در مایکروسافت DNS Server هم میتوانید با رفتن به کادر محاوره ای properties سرویس DNS، و زدن تیک “Disable recursion” آن را غیر فعال کنید.

غیر فعال کردن dns recursion در windows server

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *