حملات "محرومیت از سرویس" یا DOS[1] , DDOS [2 به حملاتی گفته می شود که هدف اصلی آنها ممانعت از دسترسی کاربران واقعی به منابع کامپیوتری، شبکه ها و یا اطلاعات است.
این حمله یک نوع خطرناک و نسبتا جدید از حملات اینترنتی است. در این حملات، تعداد زیادی بسته از طریق یک (DoS) یا چند (DDoS) ماشین برای از کار انداختن قدرت محاسباتی و منابع شبکه یا از کار انداختن ماشین هدف ارسال می شود. حملات DDoS قدرتمند تر و تشخیص و مقابله با آن ها سخت تر از حملات DoS می باشد. زیرا در این حملات چندین ماشین می توانند به منظور ارسال جریان کوچکی از ترافیک به سمت ماشین هدف هماهنگ شوند که اداره مجموع این ترافیک ها برای ماشین هدف سخت می باشد. اینگونه حملات معمولاً از دسترسی کاربران واقعی برنامه، به اطلاعات جلوگیری می کند. مهاجمان با ایجاد ترافیک بی مورد و بی استفاده، حجم زیادی از منابع سرویس دهنده (سرور) و پهنای باند شبکه را مصرف می کنند یا به نوعی سرور را درگیر رسیدگی به این تقاضاهای بی مورد می کند و این تقاضاها تا جایی که دستگاه سرویس دهنده را از کار بیندازد ادامه می یابد. بعبارت دیگر در آن مهاجم با ارسال درخواست های گسترده به یک کارگزار، آن را مشغول کرده و از انجام فعالیت های عادی و رسیدگی به درخواست های واقعی باز میدارد و در نتیجه باعث از کارافتادگی و به اصطلاح خوابیدن سرویس میشود.
با توجه به گسترش روز افزون حملات DoS و DDoS در شبکه های کامپیوتری، به خصوص از طریق اینترنت و با توجه به اهمیت امنیت اطلاعات و لزوم ارائه درست سرویس ها و خدمات از طریق این شبکه ها، نیاز به آشنایی با این حملات روز به روز افزایش می یابد؛ ولی داشتن دید کامل نسبت به این حملات سخت است و دسته بندی قابل قبولی از آن ها وجود ندارد. در واقع هر محقق سعی می کند این حملات را بر اساس مشخصه مورد بررسی خود دسته بندی کند. بررسی تمامی دسته بندیها کاری دشوار و خسته کننده است لذا ما در اینجا به بررسی انواع حمله در DoS و DDoS خواهیم پرداخت. البته باید یادآوری کنیم که این حملات، حملات شناخته شده "محرومیت از سرویس" هستند.
تصویر 1: حمله DoS و DDoS
بررسي انواع روشهاي حمله DOS
براي بررسي دقيقتر و بيان نحوه عملكرد حملات DOS احتياج به بررسي پاكتهاي TCP و چگونگي برقراري ارتباط تحت پروتكل TCP/IP است.
اجزاي داخلي يك پكت TCP شامل اطلاعاتي در مورد درگاه مبدا، درگاه مقصد، شماره رشته داده ها و... ميباشد كه باعث ميشود اطلاعات در مسير اينترنت جا به جا شوند. در شکل زیر اجزای این پکت نشان داده شده است.
تصویر 2: فرمت بسته TCP
تصویر 3 : دیاگرام اتصال در TCP
در شكل بالا سرويس دهنده(Server) و مشتري(Client) نشان داده شده است.
1- مشتري پكت TCP را با علامت SYN براي سرويس دهنده ارسال مي نمايد . اين پكت باعث مي شود سرويس دهنده متوجه گردد كه مشتري درخواست ارسال اطلاعات را دارد. در اين هنگام مشتري منتظر جواب از سوي سرويس دهنده باقي ميماند تا در صورت برگشت جواب اطلاعات را ارسال كند .
2- سرويس دهنده پس از دريافت در خواست مشتري يك پكت را با علامت SYN/ACK در پاسخ براي مشتري ارسال مينمايد. اين پكت نشان دهنده اجازه برقراري ارتباط و ارسال اطلاعات ميباشد.
3- مشتري پس از دريافت پكت از سوي سرويس دهنده يك ACK براي سرويس دهنده ارسال ميكند .
4- سپس مشتري اقدام به ارسال اطلاعات ميكند.
- حمله SYN flood
اين حمله با ارسال درخواستهاي متعدد با علامت SYN به ماشين قرباني باعث پر شدن سف Backlog ميشود. اما Backlog چيست؟ تمامي درخواستهايي كه به ماشين وارد ميشوند و شامل علامت SYN براي برقراري ارتباط ميباشند در قسمتي از حافظه به ترتيب ذخيره ميشوند تا پس از بررسي جواب آنها داده شده و ارتباط برقرار شود، اين قسمت از حافظه Backlog Queue نام دارد. وقتي كه اين قسمت به علت درخواستهاي زياد پر شود، سرويس دهنده مجبور به رها كردن درخواستهاي جديد ميشود و در نتيجه از رسيدگي به اين درخواستها باز مي ماند.
تصویر 4: حمله SYN flood
- حمله (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 كه نفوذگر از آن استفاده ميكند چيز ديگري است(1.1.1.3) .
تصویر 5: حمله RESET
- حمله Land Attack
در اين حمله با استفاده از روش Spoofing در پاكتهايي كه به سمت سرويس دهنده ارسال ميشود به جاي IP و Port مبداء و مقصد IP و Port خود ماشين سرويس دهنده قرار داده ميشود.
در واقع IP و PORT ماشين سرويس دهنده به سمت خود سرويس دهنده ارسال ميشود. اين عمل باعث مي شود تا در سيستم عاملهاي قديمي يك حلقه داخلي Routing به وجود بيايد كه باعث پر شدن حافظه و به وجود آمدن حمله DOS مي شود.
اين حمله در ماشينهاي Win 95 (winsok 1.0) و Cisco IOS ver 10.x و سيستمهاي قديمي باعث از كار افتادن سيستم ميشد اما امروزه تمامي سيستم هاي هوشمند قادر به شناسايي اين حملات مي باشند و اين حمله تاثير زيادي بر روند كاري سرويس دهنده ندارد.
تصویر 6: حمله Land Attack
- حمله 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 در شبكه دارد.
تصویر 7: حمله Smurf Attack
- حمله Ping Flood يا Ping of death
در اين نوع حمله با ارسال مستقيم درخواست Ping به کامپيوتر قرباني سعي مي گردد که سرويس ها بلاک و يا فعاليت آن ها کاهش يابد. در اين نوع حمله اندازه بسته هاي اطلاعاتي به حدي زياد (بالاي K64 که در Ping غير مجاز) مي شودکه کامپيوتر قرباني قادر به برخورد مناسب یا آميختن بسته هاي اطلاعاتي نيست و به همین دلیل دچار اختلال مي شود.
تصویر 8 : حمله Ping Flood يا Ping of death
- حمله Teardrop
هنگامی كه اطلاعات از یك سیستم به سیستم دیگر منتقل می شود به تكه های كوچكی تقسیم شده و در سیستم مقصد این تكه مجددا به هم متصل شده و كامل می شود. این بسته هر كدام دارای یك فیلد افست هستند كه نشان می دهد بسته حاوی چه قسمتی از اطلاعات است. این فیلد به همراه شماره ترتیب به سیستم مقصد كمك می كند تا بسته ها را مجددا به هم متصل كند. در صورتی كه بسته ها با شماره افست و ترتیب نامربوط ارسال شوند باعث می شود سیستم مقصد از مرتب كردن آنها عاجز شده و در هم بشكند.
تصویر 9: حمله Teardrop
در بخش دوم به بررسی حملات DDOS خواهیم پرداخت و بخشی از راهکارهای مقابله با چنین حملاتی را مطرح خواهیم نمود.
[1] Deniel Of Service
[2] Distributed Deniel Of Service
[3] Internet Control Message Protocol