حمله توزیع‌شده انکار از سرویس مبتنی بر سرویس‌دهنده نام دامنه

تعریف حمله توزیع شده انکار از سرویس مبتنی بر سرویس دهنده نام دامنه

حمله انکار سرویس (به انگلیسی: Denial of Service attack) (یا به اختصار DoS) به معنای تلاش برای خارج کردن ماشین و منابع شبکه از دسترس کاربران مجازش می‌باشد.اگرچه منظور از حمله DOS و انگیزه انجام آن ممکن است متفاوت باشد، اما به‌طور کلی شامل تلاش برای قطع موقت یا دائمی یا تعلیق خدمات یک میزبان متصل به اینترنت است.عاملین حمله DOS معمولاً سایت‌ها یا خدمات میزبانی وب سرور با ویژگی‌های مناسب مانند بانک ها، کارت‌های اعتباری و حتی سرورهای ریشه را هدف قرار می دهند. مثلاً با ارسال سیل آسای بسته‌ها به سمت یک سرور و اشغال بخش بزرگی از حافظه سرور امکان استفاده از خدمات سرور برای کاربران واقعی  را غیرممکن کند.
حمله توزیع شده انکار از سرویس (به انگلیسی: Distributed Denial of Service attack) (یا به اختصار DDoS) از نظر عملکرد مشابه با DOS می‌باشد ولی یک تفاوت اساسی با آن دارد. در حمله DOS از یک کامپیوتر و یک ارتباط اینترنتی جهت فلج کردن سرور در سیلابی از بسته‌ها استفاده می‌شود ولی در حمله DDoS از چندین سیستم و چندین ارتباط اینترنتی برای ارسال سیل آسای بسته‌ها جهت مصرف پهنای باند و منابع سرور استفاده می‌شود.
حمله توزیع شده انکار از سرویس مبتنی بر سرویس دهنده نام دامنه (به انگلیسی: DNS DDoS Amplification Attack) نوعی از حمله DDoS می‌باشد که قربانی(مثلاً یک سرویس دهنده نام) را در سیلابی از پیام‌های جواب DNS گرفتار می‌کند.

شیوه انجام حمله

دراین نوع حمله مهاجم به جای استفاده از سیستم خود از سیستم دیگران استفاده می‌کند. با این کاراحتمال شناسایی شدن خود را پایین می‌آورد، به علاوه موفقیت این حمله به زیاد بودن تعداد سیستم‌هایی که در این فعالیت شرکت می‌کنند وابسته است. راه‌های زیادی وجود دارد که مهاجم می‌تواند کنترل سیستم‌های دیگر را به دست آورد مثلاً ارسال ایمیل‌های آلوده به تعداد بسیار زیادی از سیستم ها. به سیستم‌های آلوده شده زامبی (zombie) و به شبکه‌ای از این سیستم‌ها که تحت کنترل یک شخص هستند، بات نت (botnet) می‌گویند. کاربران سیستم‌های زامبی اغلب از آلوده شدن کامپیوترهای خود بی خبر می‌باشند چرا که این سیستم ها برای نابودی سیستم‌های دیگر و نه نابودی خود استفاده می‌شوند.

با فرمان مهاجم تمام سیستم‌های زامبی شروع به ارسال پیام‌های درخواست DNS می‌کنند. این پیام‌ها دو ویژگی دارند،اولاً سیستم‌های زامبی با جعل آدرس مبدأ بسته‌های این پیام ها، آدرس سیستم قربانی را جایگزین آدرس خود می‌کنند. ثانیاً در در این پیام‌ها محتوای رکورد بسط (به انگلیسی: amplification record) مورد تقاضا می‌باشد. با استفاده از قابلیت گسترش مهاجم می‌تواند حجم ترافیکی مورد استفاده در حمله را بسیار بالا ببرد چرا که با وجود کوچک بودن حجم محتوای این نوع پیام‌های درخواست(تقریباً 60 بایت)،حجم پیام‌های پاسخ بسیار بالا و قابل توجه(تقریباً 4000 بایت) می‌باشد.

مهاجم  لیستی از سرویس دهندگان نام دامنه (به انگلیسی: Domain Name Server) (یا به اختصار DNS) را که از شیوه بازگشتی استفاده می‌کنند، می‌داند و پیام‌های ارسالی سیستم‌های شبکه botnet در این سرویس دهندگان دریافت می‌شود. پس از انجام عملیات لازم و تولید پیام جواب،این پیام به جای ارسال شدن به سمت سیستم‌های زامبی، به سمت قربانی (به دلیل جعل آدرس مبدأ در پیام درخواست) ارسال می‌شود.

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

خواص پروتکل DNS در موفقیت حمله

1- پروتکل DNS از پروتکل UDP و نه از TCP استفاده می‌کند.استفاده ازجعل آدرس مبدأ با استفاده از UDP راحت‌تر از TCP می‌باشد.
2- این موضوع که پیام‌های جواب از نظر اندازه می‌تواند به مراتب بزرگتر از  پیام‌های درخواست باشند، به مهاجم در استفاده از خاصیت قابلیت گسترش (به انگلیسی: amplification record) در انجام حمله کمک می‌کند.

راه‌های مقابله با این حمله

برخلاف پیام‌های درخواست در پیام‌های جواب آدرس مبدأ جعل نمی‌شود پس آدرس مبدأ در این پیام‌ها همان آدرس سرویس دهندگان نام می‌باشد. بسته به میزان شدت حمله بر روی سیستم قربانی، این سیستم می‌تواند نرخ ترافیک دریافتی از این آدرس‌های مبدأ را محدود کند، یا با استفاده از قوانین فیلتر گیرنده تمام بسته‌های جواب DNS را که طولشان به طرز مشکوکی طولانی می‌باشد را حذف کند، یا به‌طور کلی تمام ترافیک‌های مربوط به آدرس سرویس دهندگان نام‌هایی که از شیوه بازگشتی استفاده می‌کنند را بلوکه کند.

موفقیت این حمله بسیار به این موضوع وابسته است که از سیستم‌های سرویس دهندگان نام دامنه‌ای برای تولید پیام‌های جواب استفاده شود که از شیوه بازگشتی استفاده می‌کنند. سرویس دهندگانی که ازشیوه بازگشتی استفاده می‌کنند به این صورت رفتار می‌کنند که اگر اطلاعات رکورد مورد نظر در آن‌ها ذخیره نشده باشد خود با ارسال پیام به سرویس دهنده دیگر درخواست  دریافت رکورد مورد نظر را اعلام می‌کند. سرویس دهنده دیگر نیز در صورتی که رکورد موردنظر را نداشته باشد همین کار را تکرار می‌کند و این زنجیره ادامه می یابد تا بالاخره یکی از سرویس دهندگان حاوی رکورد مورد نظر باشد و پیام جواب به صورت بازگشتی به دست سرویس دهنده اولیه  برسد. در حالی که در شیوه غیر بازگشتی اگر سرویس دهنده دارای رکورد مورد نظر نباشد با ارسال یک پیام به ادرس سیستم ارسال‌کننده پیام درخواست،به وی اطلاع می‌دهد که اطلاعات رکورد مورد نظر را ندارد ولی ادرس سرویس دهنده دیگری که می‌تواند در پیدا کردن این  رکورد کمک کند را به مبدأ اعلام می‌کند. پس اگر در حمله از سرویس دهندگانی استفاده میشد که از شیوه غیر بازگشتی استفاده می‌کنند، اگر رکورد مورد نظر را نداشتند پیامی به ماشین قربانی ارسال می شد. ماشین قربانی نیز چون قبلاً هیچ  پیام درخواستی ارسال نکرده بود،این پیام را نادیده می گرفت.استفاده از شیوه بازگشتی زمانی مناسب است که سرویس دهندگان از این شیوه برای تولید پیام جواب برای پیام‌های درخواستی ارسال شده از سوی کاربران قابل اعتماد مربوط به شبکه خودش (مثلاً یک رنج مشخصی از آدرس‌های IP) و نه برای هر مبدأ با هر آدرس ممکن استفاده کند.متأسفانه تعداد سرویس دهندگان نام دامنه که از شیوه بازگشتی (پیکربندی نامناسب) استفاده می‌کنند کم نیست.