حملات (محرومیت از سرویس) یا DOS , DDOS به حملاتی گفته می شود که هدف اصلی آنها ممانعت از دسترسی کاربران واقعی به منابع کامپیوتری، شبکه ها و یا اطلاعات است. این حمله یک نوع خطرناک و نسبتا جدید از حملات اینترنتی است. در این حملات، تعداد زیادی بسته از طریق یک (DoS) یا چند (DDoS) ماشین برای از کار انداختن قدرت محاسباتی و منابع شبکه یا از کار انداختن ماشین هدف ارسال می شود.
حملات DDoS قدرتمند تر و تشخیص و مقابله با آن ها سخت تر از حملات DoS می باشد. زیرا در این حملات چندین ماشین می توانند به منظور ارسال جریان کوچکی از ترافیک به سمت ماشین هدف هماهنگ شوند که اداره مجموع این ترافیک ها برای ماشین هدف سخت می باشد. اینگونه حملات معمولاً از دسترسی کاربران واقعی برنامه، به اطلاعات جلوگیری می کند. مهاجمان با ایجاد ترافیک بی مورد و بی استفاده، حجم زیادی از منابع سرویس دهنده (سرور) و پهنای باند شبکه را مصرف می کنند یا به نوعی سرور را درگیر رسیدگی به این تقاضاهای بی مورد می کند و این تقاضاها تا جایی که دستگاه سرویس دهنده را از کار بیندازد ادامه می یابد. بعبارت دیگر در آن مهاجم با ارسال درخواست های گسترده به یک کارگزار، آن را مشغول کرده و از انجام فعالیت های عادی و رسیدگی به درخواست های واقعی باز میدارد و در نتیجه باعث از کارافتادگی و به اصطلاح خوابیدن سرویس میشود.
با توجه به گسترش روز افزون حملات DoS و DDoS در شبکه های کامپیوتری، به خصوص از طریق اینترنت و با توجه به اهمیت امنیت اطلاعات و لزوم ارائه درست سرویس ها و خدمات از طریق این شبکه ها، نیاز به آشنایی با این حملات روز به روز افزایش می یابد؛ ولی داشتن دید کامل نسبت به این حملات سخت است و دسته بندی قابل قبولی از آن ها وجود ندارد. در واقع هر محقق سعی می کند این حملات را بر اساس مشخصه مورد بررسی خود دسته بندی کند. بررسی تمامی دسته بندیها کاری دشوار و خسته کننده است لذا ما در اینجا به بررسی انواع حمله در DoS و DDoS خواهیم پرداخت. البته باید یادآوری کنیم که این حملات، حملات شناخته شده “محرومیت از سرویس” هستند.
بررسی انواع روشهای حمله DOS
برای بررسی دقیقتر و بیان نحوه عملكرد حملات DOS احتیاج به بررسی پاكتهای TCP و چگونگی برقراری ارتباط تحت پروتكل TCP/IP است. اجزای داخلی یك پكت TCP شامل اطلاعاتی در مورد درگاه مبدا، درگاه مقصد، شماره رشته داده ها و… میباشد كه باعث میشود اطلاعات در مسیر اینترنت جا به جا شوند. در شکل زیر اجزای این پکت نشان داده شده است.
تصویر 3 : دیاگرام اتصال در TCP
در شكل بالا سرویس دهنده(Server) و مشتری(Client) نشان داده شده است.
1- مشتری پكت TCP را با علامت SYN برای سرویس دهنده ارسال می نماید . این پكت باعث می شود سرویس دهنده متوجه گردد كه مشتری درخواست ارسال اطلاعات را دارد. در این هنگام مشتری منتظر جواب از سوی سرویس دهنده باقی میماند تا در صورت برگشت جواب اطلاعات را ارسال كند .
2- سرویس دهنده پس از دریافت در خواست مشتری یك پكت را با علامت SYN/ACK در پاسخ برای مشتری ارسال مینماید. این پكت نشان دهنده اجازه برقراری ارتباط و ارسال اطلاعات میباشد.
3- مشتری پس از دریافت پكت از سوی سرویس دهنده یك ACK برای سرویس دهنده ارسال میكند .
4- سپس مشتری اقدام به ارسال اطلاعات میكند.
حمله SYN flood
این حمله با ارسال درخواستهای متعدد با علامت SYN به ماشین قربانی باعث پر شدن سف Backlog میشود. اما Backlog چیست؟ تمامی درخواستهایی كه به ماشین وارد میشوند و شامل علامت SYN برای برقراری ارتباط میباشند در قسمتی از حافظه به ترتیب ذخیره میشوند تا پس از بررسی جواب آنها داده شده و ارتباط برقرار شود، این قسمت از حافظه Backlog Queue نام دارد. وقتی كه این قسمت به علت درخواستهای زیاد پر شود، سرویس دهنده مجبور به رها كردن درخواستهای جدید میشود و در نتیجه از رسیدگی به این درخواستها باز می ماند.
حمله (RST (RESET
پاكتهایی كه به علامت RST ارسال میگردند باعث میشوند كه ارتباط مورد نظر قطع گردد. در واقع اگر ماشین A به سمت ماشین B پاكتی را با علامت RST ارسال كند؛ درخواست اتصال مورد نظر از Backlog پاك خواهد شد. از این حمله می توان برای قطع اتصال دو ماشین استفاده كرد. به این ترتیب كه اتصالی كه بین دو ماشین A و B برقرار است را نفوذگر با ارسال یك در خواست RST به ماشین B از طرف ماشین A قطع میكند. در واقع در داخل پكتی كه از سوی ماشین نفوذگر به سمت قربانی ارسال میشود IP مشتری گذاشته میشود و در این صورت ماشین B كه سرویس دهنده میباشد ارتباط مورد نظر ماشین A را از Backlog حذف میكند.
در این روش شخص حمله كننده بوسیله ابزاری میتواند IP جعلی تولید كرده و در واقع درخواست خود را جای ماشین دیگری ارسال كند. به این تكنیك Spoofing نیز گفته می شود. با كمی دقت در شكل شماره 5 در مییابید IP مبدا (SourceIP) كه در پكت ارسالی از سوی ماشین حمله كننده به سمت ماشین B میرود همان IP ماشین شماره A می باشد(1.1.1.1). در صورتیكه IP ماشین شماره C كه نفوذگر از آن استفاده میكند چیز دیگری است.
حمله Land Attack
در این حمله با استفاده از روش Spoofing در پاكتهایی كه به سمت سرویس دهنده ارسال میشود به جای IP و Port مبداء و مقصد IP و Port خود ماشین سرویس دهنده قرار داده میشود. در واقع IP و PORT ماشین سرویس دهنده به سمت خود سرویس دهنده ارسال میشود. این عمل باعث می شود تا در سیستم عاملهای قدیمی یك حلقه داخلی Routing به وجود بیاید كه باعث پر شدن حافظه و به وجود آمدن حمله DOS می شود.
این حمله در ماشینهای Win 95 (winsok 1.0) و Cisco IOS ver 10.x و سیستمهای قدیمی باعث از كار افتادن سیستم میشد اما امروزه تمامی سیستم های هوشمند قادر به شناسایی این حملات می باشند و این حمله تاثیر زیادی بر روند كاری سرویس دهنده ندارد.
حمله Smurf Attack
این حملات با ارسال درخواستهای ICMP[3]d به سمت محدودهای از IP های amplifier باعث وسعت دادن ترافیك و به وجود آمدن حمله DOS می شوند. حمله كننده میتواند درخواستهای ICMP خود را به صورت Spoof شده و از طرف ماشین قربانی به IP های amplifier ارسال كند با ارسال هر درخواست صدها جواب برای درخواست ICMP به سمت ماشین قربانی سرازیر می شوند و ترافیك آن را بالا می برند.
Amplifier : تمام شبكههایی كه درخواستهای ICMP را برای IP broadcast خود فیلتر نكردهاند یك Amplifier محسوب می شوند.
حمله كننده میتواند در خواستهای خود را مثلا به IP هایی مانند: 192.168.0.xxx كه X می تواند 255, 223, 191, 159, 127, 95, 63, 31, 15, 7, 3 یعنی IP های Broadcast باشند ارسال كند . البته قابل ذكر است IP broadcast بستگی به چگونگی بخشبندی IP در شبكه دارد.
حمله Ping Flood یا Ping of death
در این نوع حمله با ارسال مستقیم درخواست Ping به کامپیوتر قربانی سعی می گردد که سرویس ها بلاک و یا فعالیت آن ها کاهش یابد. در این نوع حمله اندازه بسته های اطلاعاتی به حدی زیاد (بالای K64 که در Ping غیر مجاز) می شودکه کامپیوتر قربانی قادر به برخورد مناسب یا آمیختن بسته های اطلاعاتی نیست و به همین دلیل دچار اختلال می شود.
تصویر 8 : حمله Ping Flood یا Ping of death
حمله Teardrop
هنگامی كه اطلاعات از یك سیستم به سیستم دیگر منتقل می شود به تكه های كوچكی تقسیم شده و در سیستم مقصد این تكه مجددا به هم متصل شده و كامل می شود. این بسته هر كدام دارای یك فیلد افست هستند كه نشان می دهد بسته حاوی چه قسمتی از اطلاعات است. این فیلد به همراه شماره ترتیب به سیستم مقصد كمك می كند تا بسته ها را مجددا به هم متصل كند. در صورتی كه بسته ها با شماره افست و ترتیب نامربوط ارسال شوند باعث می شود سیستم مقصد از مرتب كردن آنها عاجز شده و در هم بشكند.
در بخش دوم به بررسی حملات DDOS خواهیم پرداخت و بخشی از راهکارهای مقابله با چنین حملاتی را مطرح خواهیم نمود.