حملات DDoS و روش های مقابله با آن ها

Most Hit

چکیده
با توجه به گسترش روز افزون حملات DoS و DDoS در شبکه های کامپیوتری، به خصوص از طریق اینترنت و با توجه به اهمیت امنیت اطلاعات و لزوم ارائه درست سرویس ها و خدمات از طریق این شبکه ها، نیاز به آشنایی با این حملات روز به روز افزایش می یابد؛ ولی داشتن دید کامل نسبت به این حملات سخت است و دسته بندی قابل قبولی از آن ها وجود ندارد. در واقع هر محقق سعی می کند این حملات را بر اساس مشخصه مورد بررسی خود دسته بندی کند. در این مقاله پنج دسته بندی مختلف بر اساس درجه خودکار بودن حمله، نقاط آسیب پذیری مورد استفاده در حمله، میزان پویایی نرخ حمله، شدت اثر حمله و هدف حمله ارائه شده و در پایان نیز یک دسته بندی کلی از آن ها داده می شود.
همان طور که در این دسته بندی ها نشان داده می شود، شكل هاي بسيار متفاوتي از حملات DDOS وجود دارند كه كشف اين حملات و يا منحرف ساختن آن ها ممكن است كمي دشوار باشد. روش های مقابله با حملات به سه دسته تقسیم می-شوند. روش های جلوگیری از حمله سعی می کنند شبکه را از آسیب حملات حفظ کنند، روش های تشخیص حمله سعی در تشخیص حملات با حداقل منفی و مثبت کاذب و ارسال سیگنال برای مکانیزم های پاسخ دارند و روش های پاسخ به حمله در طول حملات عمل کرده و سعی می کنند تاثیر آن ها را کاهش دهند. در این مقاله روش های مقابله با این حملات را به تفضیل بیان خواهیم کرد.

- مقدمه
- مدل های حمله DDoS
- ابزارهای مورد استفاده در حملات DDoS
- دسته بندی حملات DDoS
- مقابله با حملات DDoS
- نتیجه
- منابع


1-مقدمه
یکی از رایج ترین مسائل امنیتی در شبکه های کامپیوتری حمله انسداد سرویس است، که در آن مهاجمین شبکه سعی می کنند تا سرویس ها و داده های یک سیستم را غیر قابل دسترس کنند، بنابراین هنگامی که سایر کاربران سعی می کنند که از سیستم برای اهداف قانونی خود استفاده کنند سیستم آن قدر مشغول است که نمی تواند به درخواست های مجاز کاربران پاسخ دهد.
در سال های اخیر، حملات DDoS در اینترنت دسترس پذیری را هدف قرار داده اند. اولین مورد آن در 7 فوریه سال 2000 اتفاق افتاد که در این حمله، یاهو هدف حمله قرار گرفت به گونه ای که پرتال آن برای 3 ساعت غیر قابل دسترس شد. در 8 فوریه سال 2000 نیز سایت های Amazon، Buy.com، CNN و eBay به وسیله مهاجمین مورد هدف قرار گرفتند که سبب توقف عملیات آن ها به طور کامل یا کند شدن قابل توجه آن ها شد. طبق گزارش های اعلام شده، در طول 3 ساعتی که یاهو مورد حمله قرار گرفت میزان سود تجاری و تبلیغاتی که از دست داد در حدود 500،000 دلار بود. بر طبق آمار ارائه شده توسط Amazon، این سایت نیز در 10 ساعتی که مورد حمله قرار گرفت 600،000 دلار از دست داد. همچنین در طول حمله DDoS میزان دسترس پذیری Buy.com از 100% به 9.4% و حجم کاربران CNN به 5% کاهش یافت.
همچنین در سال های اخیر، حملات DDoS به طور افزایشی به وسیله اخاذان و رقبای تجاری بر روی وب سایت بانک ها و شرکت های تجاری، بنگاه های آنلاین، خرده فروشان، بخش های دولتی و حتی بنگاه های فراهم کننده سرویس های امنیتی اینترنت مورد استفاده قرار گرفت. برای مثال، در مارس 2005، پنج هکر هلندی به خاطر انجام حمله DDoS بر روی وب سایت های دولتی در اعتراض به طرح پیشنهادی دولت دستگیر شدند. کار هکر ها سبب شده بود که این وب سایت ها برای 5 روز قابل دسترس نباشند.
همان طور که از گزارش سالانه ارائه شده توسط تحلیل گران شرکت سیسکو که در شکل (1) نشان داده شده نیز مشخص است، حملات انسداد سرویس یکی از بزرگترین تهدیدات سیستم های کامپیوتری محسوب شده و روز به روز گسترده تر می شود. به همین دلیل نیاز برای مقابله سریع و موثر با این حملات روز به روز افزایش می یابد. روش های متفاوت مقابله با این حملات در بخش های بعدی بیان خواهد شد[4].


2-مدل های حمله DDoS
حملات انسداد سرویس یک نوع خطرناک و نسبتا جدید از حملات اینترنتی است. در این حملات، تعداد زیادی بسته از طریق یک (DoS) یا چند (DDoS) ماشین برای از کار انداختن قدرت محاسباتی و منابع شبکه یا از کار انداختن ماشین هدف ارسال می شود. حملات DDoS قدرتمند تر و تشخیص و مقابله با آن ها سخت تر از حملات DoS می باشد. زیرا در این حملات چندین ماشین می توانند به منظور ارسال جریان کوچکی از ترافیک به سمت ماشین هدف هماهنگ شوند که اداره مجموع این ترافیک ها برای ماشین هدف سخت می باشد[4].

آسیب پذیری ها و تهدیدات مهم سیستم های کامپیوتری [4]آسیب پذیری ها و تهدیدات مهم سیستم های کامپیوتری [4]

دو مدل اصلی حملات DDoS عبارتند از:
1.مدلAgent-Handler
2.مدل مبتنی بر کانال های IRC
در مدل Agent-Handler که در شکل (2) نشان داده شده است، مهاجمین به طور غیر مستقیم با باقی شبکه حمله از طریق Handler ارتباط برقرار می کنند. Handler ها میزبان های به مخاطره افتاده ای هستند که عامل ها  را کنترل می کنند و عامل ها سیستم های میزبان به مخاطره افتاده ای هستند که حمله را بر روی هدف انجام می دهند.  

مدل Agent-handlerمدل Agent-handler


مدل دیگر که در شکل (3) نشان داده شده است، چند کاربره بوده و یک سیستم گفتگوی آنلاین می باشد. در این مدل، از کانال های ارتباطی برای اتصال مهاجمین به عامل ها استفاده می شود (به جای استفاده از Handler ها در مدل قبلی) و به کاربران اجازه می دهد تا پیام ها را به صورت بلادرنگ به یکدیگر ارسال کنند. مزیت دیگر آن نسبت به مدل قبلی این است که شامل پورت های IRC مجاز برای ارسال فرمان به عامل می باشد، بنابراین دنبال کردن بسته های فرمان مشکل تر می شود و حجم زیاد ترافیک در سرور های IRC سبب می شود که مهاجم بهتر بتواند حضورش را از مدیر شبکه مخفی کند. همچنین نیاز مهاجم به نگهداری لیست عامل ها را برطرف کرده و به او اجازه می-دهد که به سادگی به سرور IRC وصل شده و لیست همه عامل های قابل دسترس را ببیند[4].

مدل مبتنی بر IRCمدل مبتنی بر IRC


3-ابزار مورد استفاده در حملات DDoS
3-1-ابزار مبتنی بر عامل
Trinoo یک ابزار حمله Master-Slave (Agent-Handler) است که پهنای باند را کاهش می دهد[6]. مهاجم از telnet برای اتصال به Master یا همان Handler استفاده می کند و Master ها دستورالعمل هایی مربوط به این که توسط چه کسی و چه وقت حمله باید انجام شود، برای daemon ها فراهم می کنند. حملات به وسیله daemon های هماهنگ شده (عامل)، شروع می شود و شامل سیلی از بسته های UDP به سمت هدف است. Master ها و daemon ها با استفاده از بسته های UDP بدون رمزنگاری دستورات، با یکدیگر ارتباط برقرار می-کنند. آدرس مبدا بسته های حمله نیز جعل نمی شود بنابراین مبدا حمله به آسانی می تواند تشخیص داده شود[4].
ابزار دیگر TFN است. daemon های TFN می توانند چند نوع سیلاب از بسته ها را ایجاد کنند، مثلا: ICMP، SYN، UDP و حمله Smurf. daemon های TFN علاوه بر تقلیل پهنای باند منابع را نیز کاهش می دهند. همچنین شامل در های پشتی است که دسترسی سطح مدیر را به سیستم میزبان daemon فراهم می کند. Master ها با استفاده از بسته های ICMP Echo Reply با daemon ها ارتباط برقرار می کنند تا تشخیص آن ها مشکل تر شود[4]، به علاوه این بسته ها می توانند از دیوار آتش عبورکنند[6]. دستورات به صورت کد های عددی بوده و رمز نمی شوند[4].
TFN2K یک جانشین برای TFN اصلی بود. خصوصیات اضافی آن شامل رمزنگاری لینک های ارتباطی و جعل آدرس IP برای جلوگیری از تشخیص مبدا حمله است. در TFN2K، Master ها به طور مستقیم با daemon ها ارتباط برقرار نمی کنند. در عوض دستور ها در شبکه ارسال شده و daemon ها آن ها را شنود می کنند. هیچ پاسخی به Master برگردانده نمی شود و هر دستور برای daemon، 20 بار ارسال می شود، تا این اطمینان ایجاد شود که daemon ها دستورات را دریافت کرده اند[4].
Stacheldraht (اصطلاح آلمانی سیم خاردار) بر پایه کد های اصلی TFN است[4] و سعی می کند نقاط ضعف آن را کاهش دهد[6]. این ابزار خصوصیات Trinoo و TFN را ترکیب کرده و از رمزنگاری برای ارتباط بین مهاجم و Master استفاده می کند. ویژگی دیگر آن به-روز کردن خودکار daemon ها است به گونه ای که Master ها می توانند دستورات را ارسال کنند تا daemon ها یک نسخه به روز شده ازکد-های حمله را دانلود، نصب و سپس اجرا کنند[4]. در واقع مهاجم می تواند یک فایل نصب را بر روی یک سرور قرار دهد و وقتی عامل (daemon) شروع به کار می کند یا به اینترنت وصل می شود به طور خودکار فایل به روز آوری را جست وجو کرده، آن را نصب می کند. این ابزار از حملات ICMP flood، SYN flood، UDP flood و Smurf حمایت می کند[6].
Shaft و mstream نیز در این دسته ابزار قرار می گیرند.
3-1-ابزار مبتنی بر IRC
ابزار حمله مبتنی بر کانال های IRC بعد از ابزار مبتنی بر عامل گسترش یافتند و بنابراین پیچیده تر می باشند.
Trinity یک ابزار مبتنی بر IRC بر مبنای بسته های UDP، TCP SYN، TCP ACK و TCP NUL است. این ابزار منجر به حملات سیلابی UDP و TCP می شود و در آن ها می توان همه 32 بیت آدرس IP مبدا را به طور تصادفی انتخاب کرد.
Knight ابزار دیگر مبتنی بر IRC است که یک ابزار سبک و قوی بوده و اولین بار در جولای سال 2001 ارائه شد. این ابزار حملات سیلابی SYN و UDP را فراهم کرده و به طور معمول به وسیله برنامه های اسب تروایی که Back Orifice نامیده می شوند نصب می شود. ابزار دیگر حمله بر مبنای Knight، Kiaten است که حملات سیلابی UDP، TCP و حملات SYN و PUSH+ACK را فراهم می کند و در همه این حملات هر 32 بیت آدرس IP مبدا می تواند به طور تصادفی انتخاب شود[6]. تمامی این موارد به طور خلاصه در جدول (1) که از [7] گرفته شده لیست شده است.

استفاده از ابزار در حملات DDOSاستفاده از ابزار در حملات DDOS


4-دسته بندی حملات DDoS
امروزه داشتن یک دید جامع در مورد همه حملات DDoS خیلی مشکل بوده و دسته بندی قابل قبولی از آن ها وجود ندارد. هر محقق سعی می کند این حملات را به وسیله تعدادی مشخصه که برای مطالعه اش در نظر گرفته گروه بندی کند. در این قسمت پنج نوع دسته بندی از این حملات معرفی می  کنیم.
4-1- دسته بندی بر اساس درجه خودکارسازی حملات
بر پایه درجه خودکار سازی حمله، حملات به سه دسته حملات دستی، نیمه خودکار و خودکار تقسیم می شوند[6]:
4-1-1- حملات دستی
تنها حملات DDoS اولیه در این دسته قرار می گیرند. به این صورت که مهاجم ابتدا ماشین راه دور را برای یافتن نقاط آسیب پذیری اسکن می کند، سپس وارد آن شده و پس از نصب کد حمله در آن، حمله را شروع می کند[6,5].
4-1-2- حملات نیمه خودکار

در این حملات مهاجم از اسکریپت های خودکار برای اسکن و compromise کردن ماشین هدف و نصب کد های حمله در آن استفاده می-کند. سپس از ماشین های handler برای تعیین نوع حمله، آدرس هدف و شروع حمله به عامل هایی که برای هدف بسته ارسال می کند استفاده می کند[6,5]. براساس مکانیزم های ارتباطی توسعه یافته بین ماشین های عامل و handler، حملات نیمه خودکار به حملات با ارتباط مستقیم و غیر مستقیم تقسیم می شود[5].
•حملات با ارتباط مستقیم
این حملات متعلق به مدل Agent-handler است[6] که در آن شبکه حمله DDoS شامل ماشین های handler و عامل می باشد[5].در این نوع از حملات ماشین های عامل و handler باید هویت یکدیگر را برای برقراری ارتباط بشناسند. این کار از طریق آدرس IP ماشین handler انجام می شود که از کد های حمله ای که درون عامل نصب شده بدست می آید[6,5]. سپس هر عامل آمادگی اش را به handler ای که آدرس IP او را درون فایلی برای ارتباطات بعدی ذخیره می کند، اعلام می کند[5]. اشکال آشکار این رویکرد این است که کشف یک ماشینcompromise  شده می تواند کل شبکه DDoS را افشا کند[6,5]. همچنین از آنجائی که عامل و  handler به ارتباطات شبکه گوش می دهند، به وسیله اسکنر های شبکه قابل شناسائی اند[5].
•حمله با ارتباط غیر مستقیم
در این حملات از کانال های IRC برای ارتباط بین عامل و handler استفاده می شود. عامل ها از طریق سرویس های مجاز شبکه با سرویس های راه دور ارتباط برقرار می کنند، بنابراین تمایز ارتباطات عامل از ترافیک مجاز شبکه به آسانی ممکن نیست. همچنین عامل-ها به طور فعال به ارتباطات شبکه گوش نمی دهند، در نتیجه نمی توانند به وسیله اسکنر های شبکه شناسائی شوند. مهم تر از همه مهاجم عامل را از طریق کانال های ارتباطی IRC کنترل می کند و بنابراین کشف یک عامل منجر به شناسایی کانال ها و سرور های IRC که در حمله مورد استفاده قرار گرفته نخواهد شد[5].
4-1-3- حملات خودکار
در این حمله از ارتباط بین مهاجم و عامل به طور کامل جلوگیری می شود. در واقع فاز حمله خودکار شده، تنها به یک دستور محدود می-شود. همه خصوصیات حمله از جمله: زمان شروع حمله، نوع حمله، مدت زمان آن و آدرس ماشین هدف از قبل در کد حمله برنامه ریزی می شود. در این روش امکان فاش شدن هویت مهاجم کم است. اشکال این روش این است که منجر به استفاده تک منظوره از شبکه حمله می شود. ولی این حملات در های پشتی را بر روی ماشین قربانی ایجاد می کند که دسترسی و تغییر آسان کد های حمله را فراهم می-کند[6,5].
4-2- دسته بندی بر اساس نقاط آسیب پذیری مورد استفاده  در حملات
حملات DDoS استراتژی های متفاوتی برای جلوگیری از ارائه سرویس توسط ماشین قربانی به کاربران به کار می گیرند. این حملات براساس آسیب پذیری مورد استفاده به دسته های زیر تقسیم می شود[6]:
4-2-1- حملات سیلابی

در این نوع از حمله زامبی حجم زیادی از ترافیک را به منظور اشغال پهنای باند ماشین قربانی به آن ارسال می کند. این جریان از بسته ها که به ماشین قربانی ارسال می شود سبب کند شدن یا از کار انداختن آن و یا اشباع پهنای باند شبکه می شود. حملات UDP flood وICMP flood  در این دسته از حملات قرار می گیرند[6].
در حمله UDP flood بسته های UDP از پورت های تصادفی یا خاص برای ماشین قربانی ارسال می شوند. که به طور عمده از پورت-های تصادفی استفاده می شود. وقتی ماشین قربانی بستهUDP  را دریافت کرد، تعیین می کند که چه برنامه ای منتظر این بسته بر روی پورت مقصد است. زمانی که متوجه شود هیچ برنامه روی آن پورت منتظر نیست یک بسته ICMP تولید کرده و به مبدا بسته اعلام می کند که: “destination unreachable” یعنی مقصد قابل دسترسی نیست. اگر تعداد کافی از بسته های UDP برای ماشین قربانی ارسال شود کارائی سیستم پایین آمده نمی تواند به درستی سرویس دهی کند. اگر آدرس IP مبدا بسته های حمله جعل شود، بنابراین بسته های بازگشتی از ماشین قربانی (بسته های ICMP) به زامبی نمی رسد[6].
حملهICMP flood  از پروتکل ICMP استفاده می کند که کاربر را قادر به ارسال بستهecho request  برای میزبان راه دور می کند تا بررسی کند که آیا زنده است یا خیر؟ به ویژه در طول این حمله عامل ها حجم زیادی از بسته های ICMP_ECHO_REPLY یا Ping را برای کامپیوتر قربانی ارسال می کنند. پاسخ این بسته ها از ماشین قربانی بر می گردد و در نتیجه پهنای باند شبکه اشباع می شود. در طول این حمله نیز ممکن است آدرس IP مبدا جعل شود[6].
4-2-2- حملات با استفاده از پروتکل ها  
در این حمله از خصوصیات یا خطای پیاده سازی تعدادی پروتکل که در ماشین قربانی نصب شده برای مصرف میزان اضافی منابع آن استفاده می شود. برای مثال، حملهTCP SYN  از ضعف ذاتی قاعده دست تکانی سه مرحله ای در ارتباط TCP استفاده می کند. سرور به محض دریافت درخواست SYN اولیه از طرف متقاضی ارتباط، بسته SYN/ACK را به او برگردانده و منتظر ACK نهایی می ماند. منابع پردازشی و حافظه در سرور برای هر ارتباطی که منتظر بسته ACK است رزرو می شود. مهاجم با ارسال تعداد زیادی بسته SYN حمله سیلاب بسته های SYN را ترتیب می دهد، سرور به این بسته ها پاسخ داده منتظر ACK از طرف متقاضی ارتباط می ماند در حالی که این ACK اصلا وجود ندارد. از آنجایی که سرور بافری محدود برای ارتباطاتش دارد، به دلیل سرریز بافر سرور دیگر قادر به پردازش ارتباطات ورودی نیست. حملاتPUSH + ACK ، CGI و Authentication server مثال های دیگری از این نوع حملات می باشند[6,5].
4-2-3- حملات تقویتی  
مهاجم یا عامل از خصیصه پخش فراگیر آدرس IP که در اکثر روتر ها وجود دارد استفاده می کنند تا حمله را تقویت کرده و پیام ها را به یک رنج از آدرس های IP ارسال کنند. با این روش روتر ها بسته های شبکه را به تمام آدرس های IP که درون رنج آدرس پخش فراگیر وجود دارد ارسال می کند. در نتیجه ترافیک ایجاد شده پهنای باند سیستم قربانی را کاهش می دهد. در این نوع از حمله DDoS مهاجم می تواند پیام های پخش فراگیر را به طور مستقیم یا با استفاده از عامل ها به منظور افزایش ترافیک حمله ارسال کند. حملات Smurf و fraggle دو نوع از این حملات می باشند.
در حمله Smurf، ICMP echo request با آدرس مبدا جعل شده ماشین قربانی به چند آدرس IP ارسال می شود. بیشتر ماشین های موجود در شبکه این را دریافت کرده و به آن پاسخ می دهند. شبکه ممکن است شامل هزاران ماشین باشد که به بسته ICMP پاسخ دهند.
حمله fraggle شبیه به حمله Smurf است با این تفاوت که به جای بسته هایICMP  از بسته های UDP Echo استفاده می شود[6]. تغییر دیگری که در این حمله وجود دارد این است که بسته هایUDP Echo با آدرس برگشتی که با سرویس echo مربوط به هدف جعل شده، به پورت تولید کاراکتر ارسال می شوند و به موجب آن یک حلقه بی پایان ایجاد می شود. بسته های fraggle به سرویس تولید کاراکتر گره هایی  که در رنج آدرس پخشی هستند ارسال می شود. هر کدام از این گره ها یک کاراکتر برای ارسال به سرویس echo مربوط به ماشین هدف تولید می کنند، سپس بسته echo دوباره به مولد کاراکتر برگردانده می شود و این روند تکرار می شود[4]. این حمله ترافیک بد-تر و صدمات بیشتری را نسبت به حمله Smurf ایجاد می کند[6].
4-2-4- حملات بسته های نادرست  
در این حمله بر روی شکل نادرست بسته های IP تکیه می شود که از طرف عامل برای ماشین قربانی به منظور از کار انداختن آن ارسال می-شود. این حمله به دو نوع تقسیم می شود:  
•حمله با استفاده از آدرس IP

در این حمله بسته دارای آدرس IP مبدا و مقصد یکسان می باشد که سبب گیج شدن سیستم عامل ماشین قربانی و از کار انداختن آن می شود[6].
•حمله بر اساس فیلد های بستهIP
در این حمله یک بسته بد شکل ممکن است با فیلد هایی که به طور تصادفی در بسته IP انتخاب و مقادیر آن ها به بیت 1 تنظیم شده ایجاد شود. این سبب افزایش زمان آنالیز ترافیک به وسیله ماشین قربانی می شود. اگر این حمله به وسیله چند عامل انجام شود، می تواند سبب از کار انداختن ماشین قربانی شود[6].
4-3- دسته بندی بر اساس میزان پویایی نرخ حمله  
بر اساس میزان پویایی حمله، حملات DDoS به دو دسته حملات با نرخ ثابت و حملات با نرخ متغیر تقسیم می شوند[6,5].
4-3-1- حملات با نرخ ثابت
حملاتی را شامل می شود که بعد از شروع حمله با تمام قدرت و بدون شکست یا کاهش نیرو اجرا می شوند. اثر این حملات خیلی سریع است[6,5].
4-3-2- حملات با نرخ متغیر
بر اساس مکانیزم تغییر نرخ حمله، بین حملات با نرخ افزایشی و نرخ نوسانی تمایز قائل می شویم[6,5].  
حملات با نرخ افزایشی دارای یک نرخ افزایش تدریجی است تا به آرامی منابع هدف را مصرف کند. بنابراین منابع سیستم قربانی به تدریج و در یک زمان طولانی مصرف می شود و بدین ترتیب سبب تاخیر اساسی در تشخیص حمله خواهد شد.
در حملات با نرخ نوسانی، نرخ حمله بر اساس رفتار مهاجم یا زمان بندی از پیش تعیین شده تنظیم می شود. مثل حمله Pulsing که مهاجم در زمانی حمله را متوقف کرده و زمان دیگری آن را ادامه می دهد. اگر این رفتار برای همه عامل ها همزمان شود، ماشین قربانی به طور دوره ای با اختلال سرویس مواجه خواهد شد. ولی اگر عامل ها به 2 دسته تقسیم شوند که یک گروه همیشه فعال است، ماشین قربانی با اختلال سرویس مداوم رو به رو خواهد بود[5].
4-4-دسته بندی بر اساس شدت اثر حملات  

بر اساس شدت اثر حمله، حملات DDoS به دو دسته حملاتdisruptive  و حملات  degradingتقسیم می شوند[6,5,9].
4-4-1- حملاتDisruptive  
در این حملات از ارائه سرویس های ماشین قربانی به مشتریان به طور کامل جلوگیری می شود[6,5,9]. این حملات خود به سه دسته Self-Recoverable، Human-Recoverable و Non-Recoverable تقسیم می شوند. در نوع اول، ماشین قربانی در فاصله کمی از توقف حمله می تواند به حالت اول برگردد. حملات UDP flood وTCP flood  در این دسته قرار می گیرند. در نوع دوم سیستم نمی تواند به طور خودکار به حالت اول برگردد و نیازمند مداخله انسان است. حملاتی که منجر به راه اندازی مجدد ، از کار انداختن یا کپ کردن  سیستم می شوند، در این دسته جای می گیرند. حملات نوع سوم خسارت های دائمی به سیستم هدف وارد می کنند و بازیابی سیستم نیازمند خرید سخت افزار جدید می باشد[9].
4-4-2- حملاتDegrading  
هدف حملاتdegrading  مصرف بخشی از منابع ماشین قربانی است. این سبب تاخیر در تشخیص حمله و وارد آمدن خسارت های کلان به ماشین قربانی می شود[6,5,9].
4-5- دسته بندی بر اساس هدف حمله
به علت تنوع گسترده حملات DDoS، آن ها را به کلاس های متفاوتی همان طور که در شکل (4) نشان داده شده نیز می توان دسته بندی کرد.  

“حمله به منابع” به مهاجمینی اشاره دارد که به طور مستقیم به سمت هدف از پیش تعیین شده حمله می کنند، در حالی که “حمله به مسیریابی به منابع” به مهاجمینی که به طور غیر مستقیم به سمت هدف از پیش تعیین شده از طریق از خراب کردن مسیریابی به سمت هدف، حمله را انجام می دهند، اشاره می کند[4].
4-5-1- حمله به منابع

دسته بندی بر اساس هدف حمله دسته بندی بر اساس هدف حمله


حمله به منابع دارای سه زیر دسته می باشد. حملات لایه شبکه، عیب های مربوط به طراحی و پیاده سازی پروتکل های لایه شبکه را مد نظر قرار می دهند. حملات لینک شبکه، پهنای باند لینک های شبکه به هدف را تهی می کنند. حملات سیستم میزبان، منابع هدف از قبیل پردازنده، حافظه، زمان و منابع مصرف شدنی یا عیب های برنامه نویسی در برنامه های کاربردی را مد نظر قرار می دهد. در حملهPing of Death مهاجم بسته ای را که اندازه آن بیشتر از حداکثر اندازه بسته IP یعنی 65535 بایت است برای هدف ارسال می کند. چون بسته هایی که از حداکثر واحد انتقال لایه بزرگ ترند به بسته های کوچک تر شکسته می شوند، بنابراین بسته هایی با اندازه غیر مجاز می توانند با موفقیت ارسال شوند. با این حال، دریافت کننده نمی تواند بسته را تا زمانی که همه بخش های آن را دریافت نکرده پردازش کند. در نتیجه ممکن است سرریز رخ داده و منجر به از کار افتادن سیستم شود.
یکی از شناخته شده ترین حملات پروتکل های شبکه، حمله TCP SYN است که در بخش 4-2-2 به آن اشاره شد.
Teardrop حمله ای است که قطعات بسته های IP را ارسال می کند تا از خطای روی هم افتادگی قطعات بسته های IP که در ویندوز 95، NT و 3.1 و نسخه های قدیمی تر از نسخه 2.1.63 لینوکس وجود دارد، استفاده کند. پیاده سازی های TCP/IP کد re-assembly قطعات بسته های IP، قادر به اداره خطای روی هم گذاری قطعات بسته های IP نیستند و سبب از کار افتادن یا راه اندازی مجدد سیستم می شود.
Land حمله ای است که از آسیب پذیری ها در ویندوز 95 و NT و سیستم های FreeBSD استفاده می کند. با ارسال یک بسته SYN که آدرس و پورت مبدا آن برابر با آدرس و پورت مقصد است، سیستم از کار می افتد. در ماه می سال 2005 گزارش شد که حمله Land بر روی سیستم عامل های Windows Server 2003 وWindows XP Service Pack 2 نیز موثر است.
در حمله سیل بسته ها تعداد زیادی بسته (برای مثال، UDP و ICMP) از طرف عامل برای ماشین هدف ارسال می شود. این سبب اشباع پهنای باند ماشین هدف شده و از ارائه سرویس ها توسط او به کاربران مجاز جلوگیری می کند. Email bombing شکل دیگری از حمله سیل بسته ها است که در آن مهاجمین مکررا پیامی را به صورت ایمیل برای هدف مورد نظر ارسال می کنند. این پیام ها بزرگ اند و از داده های بی معنی تشکیل شده اند و سعی می کنند منابع شبکه ای و سیستمی ماشین هدف را مصرف کنند. شکل دیگری از حملات کاهش پهنای باند حملات تقویتی است که در بخش 4-2-3 توضیح داده شد.
حملات DoS همچنین می توانند منابع میزبان (برای مثال چاپ زائد برای اتلاف کاغذ یا چاپ صفحه ای پر از رنگ سیاه برای اتلاف جوهر) یا خطاهای برنامه نویسی برنامه های کاربردی (برای مثال سرریز بافر) را مورد هدف قرار دهند. Email spamming شکل دیگری از Email bombing است که به ارسال ایمیل به تعداد زیادی از کاربران اشاره دارد. در این حمله منابع سیستم و وقت کاربر برای پردازش این ایمیل ها به هدر می رود.
کرم ها حملات نمایی هستند که خودشان در اینترنت منتشر می شوند. یکی از شناخته شده ترین کرم ها، “Code Red” است. این کرم، یک کد بدخواه خود گستر است که از آسیب پذیری های سرور اطلاعات اینترنت مایکروسافت استفاده می کند. داده های گزارش شده به مرکز هماهنگی CERT نشان می دهد که کرم “Code Red” بیشتر از 250,000 سیستم را در زمان 9 ساعت آلوده کرده است. شکل (5) فعالیت تکثیر کرم را بین ساعت 6:00 صبح تا 8:00 شب در 19 جولای سال 2001 نشان می دهد. بعد از آن کرم به حالت Flood بر روی بیشتر سیستم های آلوده شده تغییر حالت می دهد (شروع حمله DoS علیه یک آدرس IP خاص که در کد جاسازی شده است)، بنابراین تعداد سیستم های آلوده شده بعد از آن زمان نسبتا ثابت می شود. این سیستم های آلوده می توانند سبب کاهش کارائی شوند[4].  
فعالیت کرم  Code Redفعالیت کرم Code Red

4-5-2- حمله به مسیریابی به منابع
پروتکل BGP  پروتکل مسیریابی سیستم های خود مختار می باشد. BGP برای مبادله اطلاعات مسیریابی مربوط به اینترنت استفاده می شود و پروتکلی است که بین فراهم کننده های سرویس اینترنت به کار می رود. بیشتر نشست های خارجی BGP بین روتر های مجاور است. بنابراین برای حفظ آن ها از مهاجمینی که سعی در دزدیدن نشست BGP دارند، پیشنهاد شده است که فیلد TTL هدر IP به مقداری تنظیم شود که بسته های BGP در صورتی بتوانند به روتر گیرنده دسترسی داشته باشند که روتر بعدی دقیقا یک گام از فرستنده فاصله داشته باشد. برای جلوگیری از جعل پیام و دزدیدن ارتباط TCP، نشست های BGP اغلب با استفاده از امضایMD5 حفظ می شوند، که این خصیصه MD5 digest را در قطعه TCP وارد می کند. Digest به عنوان امضا برای آن قطعه عمل کرده و اطلاعات را به گونه ای تغییر می دهد که تنها برای نقطه پایانی ارتباط قابل شناسایی باشد. بنابراین برای جعل ارتباط، مهاجم نه تنها باید شماره ترتیب ارتباط را حدس بزند، بلکه باید پسورد مربوط به MD5 digest که در جریان ارتباط اصلا مشاهده نمی شود را نیز بدست آورد.
سیستم نام دامنه (DNS) یک پایگاه داده توزیع شده است که نام میزبان ها را به آدرس IP و برعکس نگاشت می دهد. در حمله DDoS ای که علیه 13 سرور اصلی DNS در اکتبر 2002 انجام شد، مهاجم از بسته های جعلیping  برای حمله یک ساعتی به سرور ها استفاده کرد. در این حمله چندین سرور اصلی در سیلاب درخواست ها غرق شده، قادر به ارائه سرویس های عادی به کاربران اینترنت نبودند. راه حل جلوگیری از این حمله به وسیله ISP ها محقق می شود به این صورت که سرویس DNS را تنها برای مشتریان خودشان فراهم کنند، سرور های DNS را مجبور به ارزیابی آدرس مبدا کنند و اندازه ترافیک ICMP که سرورهای اصلی می تواند قبول کند را محدود نمایند[4].


5-مقابله با حملاتDDoS
روش های مقابله با حملات DDoS به سه دسته جلوگیری از حمله، تشخیص حمله و پاسخ به حمله تقسیم می شود که در ادامه به توضیح آن ها می پردازیم[4].
5-1-جلوگیری از حمله
Egress filtering فیلترینگ را بر روی ترافیک خروجی اجرا کرده و تنها به بسته هایی که دارای آدرس مبدا معتبراند اجازه خروج از شبکه را می دهد. گسترش این ویژگی منجر به کاهش حملاتی می شود که در آن ها از آدرس های IP جعلی استفاده می شود. با این وجود روش دور زدن Egress filtering تولید بسته های حمله ای است که آدرس IP آنها با آدرسی در رنج آدرس شبکه مبدا جعل شده است[4].
D-WARD حملات خروجی را تشخیص داده و آن ها را با کنترل ترافیک صادر شده به ماشین هدف متوقف می کند. نصب آن در روتر مبدا که به عنوان gateway بین شبکه و باقی اینترنت عمل می کند، انجام می شود. این روتر با مجموعه ای از آدرس های مبدا محلی مجاز config می شود تا egress filtering را بر روی ترافیک صادر شده از مبدا اجرا کند. همچنین جریان های شبکه و ارتباطات نیز همیشه مانیتور می شود تا رفتار های غیر عادی را تشخیص دهند. این روش را نیز همانند Egress fitering می توان دور زد[4,3].
Ingress filtering، ترافیک ورودی با آدرس های IP مبدا نا معتبر را فیلتر می کند. این آدرس های مبدا نا معتبر می تواند آدرس IP داخلی که از شبکه خارجی وارد می شود و هر آدرس IP اختصاصی یا رزرو شده (برای مثال، 192.168.*.*) باشد. Ingress filtering یک روش معقول برای بلاک کردن آدرس های IP جعلی خاص با اطمینان کامل است. اما رنج آدرس هایی که به وسیله مهاجمین برای جعل کردن می تواند مورد استفاده قرار گیرد هنوز خیلی گسترده است. بنابراین حتی بعد از حذف ترافیک حمله ای که در بالا ذکر شد، این روش قادر نیست که به طور موثر از حملات DDoS جلوگیری کند. ویژگی مشخصه به کار رفته در Ingress filtering، که به وسیله Cisco گسترش یافت، با تغییر URPF  کار می کند. وقتی URPF آدرس مبدا را برای اطمینان از این که پیشوند آن در جدول روتر وجود دارد چک می کند، مسیر برگشت را نیز بررسی می کند که آیا بر روی یک واسط واقعی قرار دارد یا خیر. اگر نباشد، بسته ها حذف می شوند[4].
تعیین هویت کننده مسیر (Pi) ، یک طرح جلوگیری از حمله است که از یک الگوریتم نشانه گذاری بسته (کدگذاری Pi کامل در هر بسته) و یک الگوریتم فیلترینگ (چطور هدف حمله از Pi برای تشخیص و فیلتر بسته های حمله استفاده می کند) تشکیل شده است. Pi-mark چگونگی نشانه گذاری بسته ها در مسیرشان به سمت مقصد را تعریف می کند. Pi به روتر ها این اجازه را می دهد که در فیلد ID هر بسته IP که ارسال می کنند n بیت را نشانه گذاری کنند. که n یک ثابت جهانی برابر با 1 یا 2 است. در واقع فیلد 16 بیتی ID به [16/n] قسمت تقسیم می شود. روتر برای هر بسته که از آن عبور می کند n بیت Hash را محاسبه کرده و در TTL mod [16/n] اُمین بخش از فیلد ID آن بسته قرار می دهد. از آنجایی که طول این فیلد 16 بیت است بنابراین Pi-mark می تواند 8 یا 16 روتر آخر مسیر را نگهداری کند. تحقیقات نشان می دهد که نشانه گذاری به وسیله همین تعداد روتر نیز برای حملات DDoS کافی است. همچنین می توان با جلوگیری از نشانه گذاری به وسیله روتر های محلی قدرت فیلترینگ به وسیله این روش را افزایش داد.
Pi filtering چگونگی فیلتر کردن بسته ها بر اساس Pi-mark را تعریف می کند. ساده ترین طرح فیلترینگ به این صورت است که ماشین هدف تعیین هویت کننده های متعلق به مهاجم را تعریف کرده (با نظارت بر رفتار بسته ها یا جریان ترافیک دارای یک Pi-mark) و تمامی بسته هایی که دارای همان Pi-mark هستند را حذف می کند. از آنجایی که تعداد ثابتی از Pi-mark ها (216) وجود دارد بنابراین ممکن است ترافیک مجاز نیز حذف شود که به آن marking saturation گفته می شود. برای مقابله با آن می توان از یک مقدار آستانه برای حذف بسته ها استفاده کرد به این صورت که بسته های دارای یک Pi-mark در صورتی حذف شوند که تعداد آن ها از مقدار آستانه بیشتر شود. Stack-Pi طرح دیگری از Pi-mark است که در آن فیلد ID به عنوان یک پشته در نظر گرفته می شود. و بنابراین n بیت Hash مربوط به اطلاعات روتر در این فیلد وارد می شود (شکل (6))[10].  

 Stack-Pi با n = 2 و فضایی برای نشانه گذاری 4 روتر Stack-Pi با n = 2 و فضایی برای نشانه گذاری 4 روتر

در Port Hopping شماره پورت های سرور به صورت پویا و بر حسب تابعی از زمان تغییر می کند. زمان به Slot های گسسته تقسیم می شود (برای مثال، 0.5 ثانیه به عنوان اندازه یک Slot در نظر گرفته می شود) و در طول Slot های مختلف، از شماره پورت های متفاوتی برای یک سرویس یکسان استفاده می شود. وقتی یک متقاضی نیاز به برقراری ارتباط با سرور دارد، شماره پورت جاری سرور بر اساس شماره Slot زمان و با استفاده از رمز به اشتراک گذاشته شده، تعیین می شود. وقتی سرور بسته هایی با شماره پورت نامعتبر را دریافت می-کند، بسته ها به سرعت و به آسانی می توانند در طول حمله فیلتر شوند (بدون نیاز به بررسی محتوای بسته ها). هر چند، نیاز خواهد بود که اشتراک رمز  از قبل بین سرور و کلاینت ها بر قرار شود[4].
5-2-   تشخیص حمله
MULTOPS برای تشخیص حملات پهنای باند که در آن ها از پروتکل های غیر توافقی مثل UDP و ICMP استفاده می شود مناسب است اما در تشخیص حملاتی که در آن ها از پروتکل های توافقی مثل TCP استفاده می شود با شکست رو به رو می شود[2].
MULTOPS دارای سه فرض اصلی به شرح زیر می باشد:
1.مهاجم و هدف حمله حداقل به وسیله یک روتر از یکدیگر جدا شده باشند.
2.نرخ بسته ها بین دو میزبان متقارن است. به این معنی که نرخ بسته ها از A به B مساوی با نرخ بسته ها از B به A است. هر چند، ترافیک در دو جهت ممکن است همیشه متناسب نباشد، مثلا در دانلود فایل یا جریان ویدئو.
3.مسیریابی از طریق روتر های مجهز به MULTOPS متقارن و ثابت است. به این معنی که اگر بسته ای که از A به B می آید از روتر R عبور کند، بسته های B به A نیز از روتر R عبور می کنند.
MULTOPS دارای یک ساختار درختی 4 سطحی است که گره ریشه (سطح 0) نرخ بسته ها به/از زیر شبکه هایی با netmask = 8، فرزندان (سطح 1) ریشه نرخ بسته ها به/از زیر شبکه هایی با netmask = 16، گره های سطح 2 نرخ بسته ها به/از زیر شبکه هایی با netmask = 24 و گره های سطح 3 نرخ بسته ها به/از میزبان ها را شامل می شود. هر گره دارای 256 رکورد و هر رکورد شامل 2 فیلد است. نرخ بسته ها در این رکورد ها ذخیره می شوند. شکل (7) یک MULTOPS را نشان می دهد که برای مثال در آن گرهی که با “N130” علامت گذاری شده است، نرخ بسته ها به/از زیر شبکه های 130.0.0.0/16، 130.1.0.0/16، . . .، 130.255.0.0/16 را نگه می دارد.
اگر نرخ بسته ها به/از زیر شبکه S از مقدار آستانه بیشتر شد، یک گره در زیر رکورد مربوطه ایجاد می شود تا نرخ بسته ها به/از همه شبکه های درون S را دنبال کند (Unfolding). همچنین اگر نرخ بسته ها به/از یک زیر شبکه خاص از مقدار آستانه کمتر شد گره مربوطه حذف می شود (Folding) تا حافظه کمتری مصرف شده و سربار کمتر شود.

MULTOPSMULTOPS

الگوریتم آن به این شکل است که وقتی روتر بسته ای را دریافت کرد، از اولین بایت آدرس مبدا آن به عنوان شاخصی برای یافتن رکورد مورد نظر استفاده می کند تا نرخ بسته هایی با آن پیشوند را به روز کنند. وقتی بسته ای به روتر در جهت مخالف وارد شد از اولین بایت آدرس مقصد بدین منظور استفاده می شود. اگر نرخ بسته ها از مقدار آستانه بیشتر شد، اشاره گر در آن گره به فرزند آن که دارای همان پیشوند است اشاره می کند (در صورت نبود فرزند یک فرزند ساخته می شود). دومین بایت از آدرس به عنوان شاخصی برای این فرزند استفاده می-شود تا نرخ بسته مربوطه را به روز کند. این فرایند در درخت تا سطح 3 ادامه می یابد. اگر ماشین هدف نتواند ترافیک را اداره کند بنابراین نرخ بسته ها از آن خیلی کمتر از نرخ بسته های ورودی به آن خواهد بود. این عدم تقارن سبب می شود که مسیریاب همه بسته های ارسالی به آن ماشین را حذف کند و درنتیجه حمله متوقف خواهد شد. مشکل این است که ترافیک قانونی نیز همانند ترافیک حمله حذف خواهد شد[2].
روش مهاجم برای دور زدن به این صورت است که حمله را با آدرس های جعلی به سمت هدف شروع کرده و در جهت دیگر یک فایل قانونی را انتقال می دهند تا تعادل را در دو جهت بر قرار کند[4].
استفاده از سیستم های تشخیص نفوذ  نیز روشی دیگر برای تشخیص حملات می باشد. سیستم های تشخیص نفوذ دارای دو دسته کلی می باشند. در نوع اول که مبتنی بر رفتار غیر متعارف  است ابتدا یک استرینگ شناسایی بر اساس محتوای بسته IP می سازد. در طول فاز یادگیری همه بسته هایی که چند بار تکرار می شوند به عنوان self (نرمال) در نظر گرفته می شوند. استرینگ های تشخیص دهنده بر اساس این self ها ایجاد می شوند[4]. بسته های ورودی مانیتور می شوند و اگر تعداد تطبیق های استرینگ های تشخیصی آنها از مقدار آستانه تجاوز کرد، به این معنی است که حمله ای رخ داده است. با این وجود، در همه طرح هایی که تشخیص بر مبنای رفتار غیر متعارف صورت می گیرد، غیر ممکن است که همه رفتار عادی ترافیک را در طول فاز یادگیری بدست آوریم. بنابراین ترافیک قانونی می تواند به عنوان ترافیک حمله در نظر گرفته شده و منجر به مثبت کاذب شود[4, 8].
•مزایای این روش عبارتند از:  
1.توانایی تشخیص حملات بدون دانستن جزئیات آن.
2.تولید اطلاعات برای تعریف الگوهای جدید حمله.
از جمله معایب آن می توان به موارد زیر اشاره کرد:  
1.ایجاد هشدار اشتباه نسبت به رفتار غیر قابل پیش بینی شبکه و کاربر.  
2.نیازمند فاز یادگیری برای توصیف رفتار نرمال.   
نوع دیگر این سیستم ها، سیستم های تشخیص نفوذ مبتنی بر الگو  است که در آن ها الگو های مربوط به حملات شناخته شده درون پایگاه داده ای ذخیره شده، سپس با نظارت بر جریان ترافیک و مقایسه آن با الگو های موجود در پایگاه داده حمله تشخیص داده می شود.  
•مزیت:
1.روشی موثر برای تشخیص حملات بدون تولید هشدار اشتباه.  
•معایب:
1.عدم تشخیص حملات جدید.  
2.به روز رسانی مداوم با الگوهای حملات جدید[8].
5-3-پاسخ به حمله
در این بخش در مورد مکانیزم های مختلف پاسخ به حملات DDoS صحبت می کنیم.
5-3-1-Traceback
هر بسته IP دارای دو آدرس است: آدرس مبدا و مقصد. آدرس مقصد در مسیریابی برای تحویل بسته به مقصد استفاده می شود. زیر بنای مسیریابی شبکه IP، اعتبار آدرس مبدا که در بسته IP جای گرفته را بررسی نمی کند. آدرس مبدا به وسیله ماشین مقصد استفاده می شود تا بتواند مبدا را برای دادن پاسخ تعیین کند. در کل هیچ موجودیتی مسئول درستی آدرس مبدا نیست. سناریوی آن مشابه ارسال نامه با استفاده از سرویس پست است. از این خصوصیت به وسیله مهاجمین استفاده می شود تا آدرس مبدا و هویتشان را با استفاده از جعل آدرس IP مبدا مخفی کنند. مکانیزم های Traceback به این دلیل پیشنهاد شده تا به مبدا درست مهاجم پی برده و امکان جواب گویی را فراهم کند و حمله را در نزدیک ترین نقطه به مبداش متوقف نماید.
دو رویکرد اصلی برای اجرای مکانیزم های Traceback وجود دارد: شمای زیر بنایی و شمای end-host. در اولین رویکرد، شبکه مسئول نگهداری اطلاعات حالت Traceback برای ماشین هدف به منظور ساخت گراف حمله است. واقعه نگاری IP  در این مقوله جای می گیرد. در شمای end-host، end host ها که همان ماشین های هدف اند، اطلاعات حالت Traceback را نگهداری می کنند. IP marking و ICMP Traceback در این دسته قرار می گیرد.
در واقعه نگاریIP ، روتر های شبکه عبور هر بسته IP را ثبت می کنند. چالش اصلی در این طرح، میزان اطلاعاتی است که ذخیره آن مورد نیاز است. برای مثال، اگر روتری اطلاعات کامل همه بسته ها را ثبت می کند، هر لینک OC-192 در  GB/s1.25، در ورتر نیازمند  GB75 فضای ذخیره سازی برای یک بافر پرس وجوی یک دقیقه ای است (75 = 1.25*60). همان طور که تعداد لینک های روتر افزایش می یابد، فضای ذخیره سازی مورد نیاز نیز سرسام آور می شود. راه حلی که برای IPv4 پیشنهاد شده SPIE  می باشد. این مکانیزم بخش های ثابت هدر 20 بایتی IPv4 را در نظر می گیرد. فیلد های قابل تغییر در هدر عبارتند از: TOS، TTL، Checksum و فیلد Option. واقعه-نگاری بر مبنای بخش ثابت هدر IP و 8 بایت اول payload صورت می گیرد. بر اساس اطلاعات آماری، این پیشوند 28 بایتی منجر به تصادم با نرخ تقریبا 0.00092% در محیط WAN و 0.139% در محیط LAN می شود. به منظور کاهش بیشتر فضای ذخیره سازی مورد نیاز، به جای ذخیره 28 بایت کامل، عملیات Hash بر روی آن انجام می شود. این طرح حافظه ذخیره سازی مورد نیاز در روتر را به 0.5% از پهنای باند لینک در واحد زمان کاهش می دهد.
در IP marking، روتر های واسط بسته های IP را با اطلاعات اضافی نشانه گذاری می کنند به طوری که قربانی می تواند از آن ها برای تعیین مسیر حمله استفاده کند. رویکرد های پیشنهاد شده شامل node append، node sampling و edge sampling است. در node append، آدرس روتر های پی در پی که بسته IP از آن ها می گذرد به بسته الحاق می شود. بنابراین قربانی می تواند به آسانی مبدا بسته های حمله را ردیابی کند. این کار سربار خیلی زیادی در مدت زمان پردازش روتر و فضای بسته ایجاد می کند. رویکرد node sampling سربار را با نشانه گذاری احتمالی بسته های IP کاهش می دهد. رویکرد edge sampling، به جای گره ها، یک یال از توپولوژی شبکه که توسط بسته های IP پشت سر گذاشته می شود را نشانه گذاری می کند.
در مکانیزم ICMP Traceback، یک نوع جدید از پیام های ICMP، که به آن ICMP Traceback گفته می شود، به منظور انتقال اطلاعات در مسیر هایی که بسته IP عبور کرده، طراحی شده است. هنگامی که بسته IP از روتر عبور می کند، یک پیام ICMP Traceback (ITrace) با احتمال کم در حدود 20000/1 برای بسته IP تولید شده و به همان آدرس مقصد ارسال می شود. با این فرض که حداکثر قطر متوسط اینترنت 20 گام است، با این مقدار احتمال، کران بالای سربار ترافیک 0.1% خواهد بود.
در هنگام وقوع حمله DDoS گره مقصد از این بسته برای ردیابی مسیر حمله استفاده می کند. یک نوع از ITrace که intention-driven ITrace نامیده می شود، پیشنهاد می کند که احتمال دریافت یک پیام ITrace هنگامی که نیاز است بیشتر شود. با استفاده از مقدار خاص بیت intention که می تواند برای روتر ها از طریق پروتکل مسیریابی BGP ارسال شود، این امکان برای ماشین قربانی فراهم می-شود که احتمال دریافت بسته های ITrace از طرف روتر ها افزایش یابد. در طرح ارتقا یافته ITrace که به عنوان ICMP Trace with Cumulative Path (ITrace-CP) شناخته می شود، پیام های ITrace-CP ایجاد می شود تا اطلاعات کامل مسیر حمله را انتقال دهد به گونه ای که به ساخت سریع تر مسیر حمله کمک کند (برای مثال، 18.5% سریع تر از ITrace برای طول مسیر 15 گام و 25% سریع تر از ITrace برای طول مسیر 20 گام). وقتی روتری بسته IP را دریافت می کند، یک پیام ITrace-CP بر اساس احتمالی که در روتر تنظیم شده تولید می شود. این پیام سپس به جای مقصد بسته IP همانند ITrace، به روتر در گام بعدی ارسال می شود. گام بعدی باید تا آن جا که ممکن است همان گام بعدی برای بسته IP متناظر باشد. وقتی روتر گام بعدی پیام ITrace-CP مربوط به بسته IP متناظری که برایش ارسال شده را دریافت کرد، یک پیام ITrace-CP جدید با محتوای پیام ITrace-CP قبلی تولید کرده و ارسال می کند. بنابراین، در لحظه ای که دور ترین روتر از ماشین هدف (نزدیک ترین به مهاجم) پیام ITrace-CP را تولید می کند، مسیر کامل حمله ساخته می شود[4].
5-3-2- Reconfiguration
مکانیزم های Reconfiguration توپولوژی هدف یا شبکه میانی را تغییر می دهند تا مسیر های قانونی به سمت هدف را از مهاجم پنهان کرده یا ماشین های مهاجم را منزوی کنند. چنین طرحی بر مبنای معماری سرویس های پوششی امن  است که در شکل (8) نشان داده شده و برای حفظ اهداف تعیین شده از حملات DDoS استفاده می شود.
نقاط ورودی شبکه پوششی، نقطه دسترسی امن پوشش (SOAP)، احراز هویت را انجام می دهند و تنها به ترافیک قانونی اجازه ورود به شبکه را می دهند. SOAP ها سعی می کنند Beacon ها را بیابند تا ترافیک را برای آن ها ارسال کنند. Beacon ها سپس با Servlet محرمانه کار می کنند تا ترافیک را برای آن ارسال کنند. Beacon ها و Servlet های شبکه از مخبران مخفی می مانند. اهداف تعیین شده به وسیله فیلتر هایی با کارایی بالا با حذف ترافیک، نه از طریق Servlet های محرمانه محافظت می شوند.
تصادفی بودن و گمنامی در این روش، هدف قرار دادن گره های موجود در طول مسیر به مقصد خاصی که با SOS محافظت شده است را به وسیله مهاجم مشکل می کند. افزونگی مسیر نیز به منظور مخفی کردن هویت Beacon ها و Servlet های محرمانه ارائه شده است. نقطه ضعف SOS این است که نیازمند راه اندازی شبکه پوششی و الگوریتم های پیچیده مانند الگوریتم مسیریابی Chord و Hashing سازگار به منظور یافتن و تخصیص دادن Beacon ها و Servlet ها می باشد. Beacon ها و Servlet ها نیز می توانند مورد حمله قرار گیرند[4].

 
معماری SOS-Secure Overlay Servicesمعماری SOS-Secure Overlay Services

5-3-3- Redirection
Black hole filtering به مدیر اجازه می دهد که ترافیک حمله را به یک آدرس IP باطل (Null)، هدایت کند تا آن را حذف نماید. وقتی حمله ای تشخیص داده می شود، یک مسیر ثابت ایجاد می شود تا ترافیک حمله را به جای ماشین قربانی به سمت یک “black hole”، هدایت کنند. مشکلی که وجود دارد این است که در هنگام بروز مثبت کاذب، ترافیک قانونی نیز همانند ترافیک حمله دور ریخته خواهد شد.
Sink hole routing همانند black hole routing است، با این تفاوت که ترافیک حمله به یک آدرس IP ارسال می شود تا برای بررسی بیشتر ثبت شود. Sink hole ها به منظور تغییر مسیر دادن و حبس ترافیک در یک شبکه ISP و انحراف ترافیک حمله بعدی به دور از ماشین قربانی مورد استفاده قرار می گیرد. مزیت آن این است که ترافیک حمله می تواند جمع آوری و آنالیز شود تا الگوی حمله مورد مطالعه و بررسی قرارگیرد. Shunting نیز متدی برای هدایت ترافیک به یک موقعیت آنالیز در شبکه می باشد. سپس ابزار تحلیل ترافیک میانی در این موقعیت به کار می رود تا ترافیک قانونی را از ترافیک مشکوک متمایز کند. ترافیک مشکوک حذف یا محدود می شود در حالی که ترافیک قانونی به مقصد اصلی فرستاده می شود (با استفاده از MPLS یا تونل های GRE)[4].
5-3-4- Filtering
مکانیزم های Filtering استریم های حمله را به طور کامل فیلتر می کنند. مکانیزم های Filtering به شدت بر ابزار تشخیص شخص ثالث تکیه دارند. تنها وقتی نتیجه تشخیص خیلی قابل اعتماد باشد، عمل فیلترینگ باید انجام شود. تشخیص ها می توانند به دو دسته اصلی تقسیم شود که عبارتند از: "تکنیک های مبتنی بر رفتار غیر متعارف" و "تکنیک های مبتنی بر الگو".
تکنیک های مبتنی بر رفتار غیر متعارف فرض می کنند که یک پروفایل فعالیت نرمال برای سیستم ایجاد شده است. فعالیت هایی که با پروفایل مطابقت نداشته باشند به عنوان توده نفوذی در نظر گرفته می شوند. با این حال، اگر با عملی که نفوذی نیست اما در پروفایل نرمال ثبت نشده است به عنوان حمله رفتار شود، منجر به مثبت کاذب می شود. آن گاه فیلترینگ با سیستم های دفاعی خودش سبب انسداد سرویس می شود. در مواقعی که به موجب آن فعالیت های نفوذی که ناهنجاری نیستند، رخ می دهد و منجر به حملاتی می شود که تشخیص داده نمی شود سبب منفی کاذب می شود. در تکنیک دوم حملات در قالب الگو ارائه می شود به گونه ای که حتی حملات مشابه نیز بتواند تشخیص داده شود. اما این ها تنها می توانند حملات شناخته شده را تشخیص داده و به آن ها پاسخ دهند. برای حملات جدیدی که خصوصیات بسته ها و الگوی حمله ناشناخته است، این طرح ها کمتر استفاده می شود. با این حال طرح های مبتنی بر الگو، هنگامی که ترافیک با الگوهای حمله شناخته شده مطابقت پیدا می کند ابزار خیلی مناسبی برای فیلترینگ به عنوان مکانیزم پاسخ است[4].
راه حل دیگر برای فیلتر کردن ترافیک حمله استفاده از دیوار آتش است. بسته ها قبل از ورود به شبکه یا خروج از آن منتظر می مانند تا طبق معیار های حفاظتی و امنیتی دیوار آتش پردازش شوند. پس از پردازش و تحلیل بسته سه حالت ممکن است اتفاق بیفتد: 1) اجازه عبور بسته صادر شود. 2) بسته حذف شود. 3) بسته حذف شده و پاسخ مناسب به مبدا آن بسته داده شود. (غیر از پیغام حذف بسته می-توان عملیاتی نظیر ثبت، اخطار، ردگیری، جلوگیری از ادامه استفاده از شبکه و توبیخ هم در نظر گرفت).
با توجه به لایه لایه بودن معماری شبکه بنابراین دیوار آتش نیز چند لایه خواهد بود. اگر بسته ای در یکی از لایه های دیوار آتش شرایط عبور را بدست نیاورد نه تنها همان جا حذف شده و به لایه های بالاتر ارجاع داده نمی شود، بلکه ممکن است آن بسته جهت پی گیری های امنیتی نظیر ثبت عمل و ردگیری به سیستم جانبی تحویل داده شود.  
لايه اول دیوار آتش بر اساس تحليل بسته  IP و فیلد های هدر اين بسته كار مي كند و در اين بسته فيلد های زير قابل بررسي هستند:
1.آدرس مبدا/آدرس مقصد: اگر برخي از ماشين هاي داخل و يا خارج شبكه با آدرس IP خاص حق ارسال/دریافت بسته نداشته باشند، بسته-هاي آنها به محض ورود به دیوار آتش حذف می شود. آدرس هاي IP غیر مجاز توسط مسئول دیوار آتش تعريف مي شود.
2.شماره شناسايي يك ديتاگرام قطعه قطعه شده: بسته هايي كه قطعه قطعه یا متعلق به ديتاگرام خاصی هستند بايد حذف شوند.
3.شماره پروتكل: بسته هايي كه متعلق به پروتكل خاصي هستند مي توانند حذف شوند. يعني بررسي اينكه بسته متعلق به چه پروتكلي است و آيا تحويل به آن پروتكل مجاز است يا خير؟
4.زمان حیات بسته: بسته هايي كه بيش از تعداد مشخصي مسيرياب را طي كرده اند مشكوك هستند و بايد حذف شوند.
مهمترين خصوصيت لايه اول دیوار آتش آنست كه در اين لايه بسته ها به طور مجزا و مستقل از هم بررسي مي شوند همين دليل ساده ترين و سريع ترين تصميم گيري در اين لايه انجام مي شود. امروزه برخي مسيرياب ها با امكان لايه اول دیوار آتش به بازار عرضه مي شوند يعني به غير از مسيريابي وظيفه لايه اول دیوار آتش را هم انجام مي دهند كه به آنها مسيرياب هاي فيلتركننده بسته گفته می شود.
در لایه دوم از فيلد هاي هدر لايه انتقال براي تحليل بسته استفاده مي شود. عمومي ترين فيلد هاي بسته هاي لايه انتقال جهت بازرسي در دیوار آتش عبارتند از:
1.شماره پورت پروسه مبدا و مقصد: يكي از سرويس هايی که ممكن است مورد سوءاستفاده قرار گيرد Telnet است. مي توان به راحتي پورت 23 را مسدود كرد. يعني بسته هايي كه مقصد شان شماره پورت 23 است حذف شوند.
2.فیلد شماره ترتیب و فیلد Acknowledgement: اين دو فيلد نيز بنا بر قواعد تعريف شده توسط مسئول شبكه قابل استفاده هستند.
3.کد های کنترلی: دیوار آتش با بررسي اين كد ها، به ماهيت آن بسته پي برده و سياست هاي لازم را بر روي آن اعمال مي كند. به عنوان مثال يك ديوار آتش ممكن است به گونه اي تنظيم شود كه تمام بسته هايي كه از بيرون به شبكه وارد مي شوند و داراي بيت SYN=1 هستند را حذف کند. بدین ترتیب هیچ ارتباط TCP از بیرون به درون شبکه برقرار نخواهد شد.
از مهم ترين خصوصيات اين لايه آنست كه تمام تقاضا هاي برقراري ارتباط TCP بايستي از اين لايه بگذرد و چون در ارتباط TCP تا مراحل سه گانه به اتمام نرسد انتقال داده امكان پذير نيست لذا قبل از هر گونه مبادله داده دیوارآتش مانع برقراري هر ارتباط غيرمجاز می شود.
در لايه سوم حفاظت بر اساس نوع سرويس و برنامه كاربردي انجام می شود. تعداد هدر ها در اين لايه بسته به نوع سرويس بسيار متنوع و فراوان است .بنابراين در لايه سوم دیوار آتش براي هر سرويس مجزا (مانند وب، پست الكترونيك و...) بايد يك سلسله پردازش و قواعد امنيتي مجزا تعريف شود و به همين دليل حجم و پيچيدگي پردازش ها در لايه سوم زياد است. توصيه موكد آن است كه تمام سرويس هاي غير ضروري و شماره پورت هايي كه مورد استفاده نيستند در لايه دوم مسدود شوند تا كار در لايه سوم كمتر باشد[1].
5-3-5- Ratelimiting
Rate limiting می تواند به عنوان یک تکنیک پاسخ به حمله به منظور کاهش ترافیک مخرب زمانی که احتمال مثبت کاذب بالا است استفاده شود. Pushback یک مکانیزم Ratelimiting است که یک محدودیت نرخ را بر روی جریان های داده ای که به عنوان مخرب مشخص می شوند، اعمال می کند. این تکنینک پاسخ دارای دو مکانیزم است: یک مکانیزم محلی برای تشخیص و کنترل ترافیک انبوه با پهنای باند بالا در یک روتر منفرد به وسیله محدود کردن نرخ ترافیک ورودی، و یک مکانیزم همیاری Pushback  که در آن روتر می تواند از روتر های بالا دست درخواست کند که انبوه ترافیک را کنترل کند. با بردن مرز دفاع به سمت منابع حمله، بیشتر ترافیک قانونی محافظت می شود. با این حال، همه ترافیک با پهنای باند بالا، چه خوب و چه بد، باید در معرض این Ratelimiting قرار گیرد[4].
5-3-6- Legitimacy testing
در NetBouncer، یک لیست بزرگ از متقاضیانی که ثابت شده قانونی اند نگهداری می شود. اگر بسته ها از یک مبدا که در لیست قانونی قرار ندارد دریافت شود، انواع تست ها انجام می شود تا قانونی بودن مبدا ثابت شود. اگر یک مبدا این تست ها را با موفقیت پشت سر بگذارد، به لیست قانونی اضافه می شود و بسته های بعدی که از این مبدا نشات گرفته باشند تا زمانی که پنجره قانونی بودن منقضی شود پذیرفته می-شوند. وقتی پذیرفته شد، انتقال بسته های قانونی به وسیله یک زیر سیستم مدیریت ترافیک کنترل می شود تا این اطمینان را ایجاد کند که متقاضیان قانونی از مصرف پهنای باند سوء استفاده نمی کنند و هدف به وسیله ترافیکی که قانونی به نظر می رسد نیز آسیب نخواهد دید. در این روش، NetBouncer قادر است که ترافیک قانونی را از غیر قانونی متمایز کند به طوری که بتواند تنها ترافیک غیر قانونی را دور بیاندازد. تست های legitimacy به علت منابع اضافی که برای تست ها تخصیص داده می شود، سبب تاخیر در پردازش ترافیک و کند شدن آن می-شوند[4].
5-3-7- Attackers’ resource consumption
Client puzzle ها یک اقدام متقابل مبتنی بر رمز نگاری را در برابر حملات تخلیه اتصال  معرفی می کنند. تخلیه اتصال یک حمله DoS است که در آن مهاجم سعی می کند که تعداد زیادی ارتباط ناقص را با سرور به منظور تخلیه منابع و ناتوان کردن آن از ارائه سرویس به درخواست های قانونی بر قرار کند. ایده اولیه این است که وقتی سروری مورد حمله قرار گرفت، آن سرور پازل های پنهان کوچکی را برای کاربرانی که سرویسی را درخواست کرده اند توزیع می کند. کاربر برای کامل کردن درخواست خود، باید پازلش را به درستی حل کند. مزیت این طرح این است که ترافیک قانونی می تواند به طور مطمئن از ترافیک حمله متمایز شود. با این حال، همانند NetBouncer، حل چنین پازل هایی نیازمند پردازش منابع در طول حمله بوده و منجر به کند شدن سیستم ها می شود[4].


6- نتیجه
حملات انکار سرویس یک مساله پیچیده و مهم است و در نتیجه روش های متعددی برای مقابله با آن ها پیشنهاد شده است. همانطور که مکانیزم های مقابله با حملات گسترش می یابد، سناریو های حمله نیز پیشرفته تر می شود. در این مقاله ابتدا برای رسیدن به یک دید واضح، به توضیح حملات DoS و DDoS پرداخته و مدل ها و ابزاری که در این حملات مورد استفاده قرار می گیرند را معرفی کردیم، سپس پنج دسته بندی مختلف از آن ها را ارائه دادیم. بر اساس این دسته بندی ها، می توان یک دسته بندی کلی برای حملات ارائه داد که در شکل (9) نشان داده شده است:
 

دسته بندی حملات DDoSدسته بندی حملات DDoS

به انواع حملات سیلابی و تقویتی در بخش 6 اشاره شد. حملات رخنه را نیز می توان به صورتی که در شکل (10) ملاحظه می شود تقسیم بندی کرد. برخی از نمونه حملات مربوط به هر یک از این تقسیم بندی ها در جدول (2) لیست شده است.  


حملات رخنهحملات رخنه


مثال برای حملات رخنهمثال برای حملات رخنه

گستردگی روز افزون این حملات لزوم مقابله با آن ها را افزایش می دهد. در این مقاله روش های مقابله با حملات نیز به سه دسته جلوگیری از حمله، تشخیص حمله و مقابله با حمله تقسیم شد.

طبقه بندی های ارائه شده در این مقاله برای حملات DDoS و روش های مقابله با آن ها، به اندازه ای مفید است که فکر ما را باز کرده و ما برای یافتن راه حل های موثر تر برای مساله انسداد سرویس راهنمایی می کند.


منابع



[1] ملکیان، احسان، نفوذگری در شبکه و روش های مقابله، ویراسته ضیائی، شکیبا، پیشرفت، هادی، چاپ پنجم، تهران، نشر نص، اسفند 1388.
[2] Thomer M. Gil, “MULTOPS: a data structure for denial-of-service attack detection”, Ph.D. Thesis, Vrije University, Dec 2000.
[3] Jelena Mirkovic, “D-WARD: Source-End Defense Against Distributed Denial-of-Service Attacks”, Ph.D Thesis, University of California, Los Angeles, 2003.
[4] Vrizlynn Thing Ling Ling , “Adaptive Response System for Distributed Denial-of-Service Attacks” , Ph.D. Thesis, College London, Aug 2008.
[5] Jelena Mirkovic, Janice Martin and Peter Reiher, “A Taxonomy of DDoS Attacks and DDoS Defense Mechanisms”, Computer Science Department, University of California, 2002
[6] Christos Douligeris , Aikaterini Mitrokotsa , “DDoS attacks and defense mechanisms: classification and state-of-the-art”, 13 October 2003, Available from:  http://www.sciencedirect.com.
[7] B. B. Gupta, Student Member, IEEE, R. C. Joshi, and Manoj Misra, Member, IEEE, “Distributed Denial of Service Prevention Techniques”, April 2010.
[8] Karthikeyan .K.R and A. Indra, “Intrusion Detection Tools and Techniques –A Survey”, International Journal of Computer Theory and Engineering, Vol.2, No.6, December 2010.
[9] Jelena Mirkovic and Peter Reiher, “A Taxonomy of DDoS Attack and DDoS Defense Mechanisms”, funded by DARPA, University of Delaware and University of California, 2004.
[10] Abraham Yaar, Adrian Perrig, Dawn Song, “StackPi: New Packet Marking and Filtering Mechanisms for DDoS and IP Spoofing Defense”, IEEE Journal, Carnegie Mellon University, Vol. 24, Oct 2006.

نظرات

نام *
پست الکترونیک
ثبت نظر

mahak