انواع حملات DDoS
در نوشتهی «DDoS چیست»، به حملهی DDoS و بهشکل خلاصه، راههای مقابله با آن پرداخته شد. در این نوشته، تعدادی از مهمترین و رایجترین حملات DDoS معرفی میشوند.
بهشکل کلی میتوان این حملات را از نظر روش حمله، در سه دسته قرار داد. دستهی اول حملاتی هستند که با ارسال ترافیک بسیار به زیرساخت شبکه، سعی دارند پهنای باند را به خود اختصاص دهند تا شبکه را به نقطهی اشباع یا saturate برسانند. به این ترتیب، کاربران با کندی شدید یا قطعی سرویس مواجه خواهند شد. در دستهی دوم این حملات، مهاجم سعی میکند تا با درگیر کردن منابع پردازشی، توان سرور در پاسخگویی به درخواستهای کاربران را به حداقل برساند. دستهی سوم نیز حملاتی هستند که با پیدا کردن یک آسیبپذیری در یک برنامهی نوشته شده، اجرای وبسرویس را با مشکل مواجه میکنند. در تمام این موارد، سرویسدهی به کاربر دچار اختلال میشود و در نتیجه همهی اینها در دستهی حملات منع سرویس (denial of service) قرار میگیرند.
حملهی SYN Flood
این حمله بر پایهی شیوهی عملکرد پروتکل TCP در ایجاد یک connection ساخته شده است. فرض کنید که قرار است یک client و یک server بر بستر پروتکل TCP به تبادل داده بپردازند. برای آنکه این ارتباط برقرار شود، TCP از یک راه شناسایی اولیه به نام three-way handshake استفاده میکند که در آن، نخست client یک عدد را با پیام (SYN (Synchronization برای سرور ارسال میکند تا از این پس، سرور از این عدد برای شمارهگذاری بستههای ارسالی به سمت این client استفاده کند. سپس server در جواب، یک پیام (ACK (Acknowledge در تایید دریافت SYN و یک پیام SYN با هدفی مشابه پیام SYN قبلی برای کاربر ارسال میکند و در نهایت اگر کاربر هم جواب ACK ارسال کند، اتصال TCP برقرار میشود.
حالتی را فرض کنید که کاربر پیام SYN اولیه را ارسال و جواب درستی هم از server دریافت کرده است، اما ACK نهایی مورد نیاز برای برقراری ارتباط را برای server ارسال نکرده است. به همین دلیل سرور connection را باز نگه میدارد و برای دریافت پاسخ منتظر میماند.
اگر این کار بهشکل همزمان و به تعداد دفعات زیاد انجام شود، در واقع سرور همواره مشغول انتظار برای دریافت پاسخ مربوط به هر connection است و با توجه به منابع محدود، قادر به شروع connection با کاربر دیگری نیست. به این حمله، حملهی SYN Flood گفته میشود که با ارسال تعداد بسیاری بستهی SYN به یک سرور و ارسال نکردن ACK مورد نیاز پیادهسازی میشود (یکی از راههای ساده برای این کار، تغییر IP مبدا است (IP Spoofing) تا پیام SYN/ACK هیچوقت به مهاجم بازنگردد).
حملهی Slowloris
این حمله در لایهی application انجام میشود و معمولن با پروتکل HTTP پیادهسازی میشود. حمله به این شکل است که بعد از ایجاد connection موفق میان مهاجم و سرور، مهاجم سعی میکند تا حد امکان connection را باز نگه دارد. برای این کار، لازم است تا درخواستهایی ناکامل و با سرعت بسیار کم برای سرور ارسال شود. به این ترتیب سرور بخشی از منابع پردازشی خود را برای باز نگه داشتن این connection صرف میکند و منتظر دریافت request هایی از کاربر خواهد بود که در واقع هیچوقت قرار نیست به درستی ارسال شوند. طبیعتن اگر مهاجم تعداد زیادی از این کاربرها را ایجاد کند، بسیاری از منابع پردازشی سرور را در اختیار خود خواهد داشت.
حملهی DNS Flood
یکی از سختترین حملهها برای تشخیص و جلوگیری، حملهی DNS Flood است. این حمله در دستهی حملههایی قرار میگیرد که amplification attack نام دارند. در این نوع از حمله، مهاجم میتواند با ارسال بستههایی با طول بسیار کم، باعث شود تا سرور مورد هدف، پاسخهایی با طول زیاد را دریافت یا تولید کند که پردازش این بستهها، منابع زیادی از سرور را درگیر میکنند.
بهشکل خاص در DNS Flood، مهاجم درخواستهای DNS بسیاری را با کمک مکانیزم IP Spoofing، با source IP سرور مورد هدف، برای یک DNS Server ارسال میکند و در نتیجه پیامهای پاسخ DNS که معمولن طول بسیار بیشتری از requestهای آن دارد، برای سرور مورد هدف حمله ارسال میشوند و پردازش آنها باعث میشود تا سرور نتواند منابع پردازشی بیشتری برای درخواستهای کاربران اختصاص دهد.
یکی دیگر از حملههای مشابه، به این شکل است که حمله کننده پس از ارسال درخواست برای سرور، با minimum کردن سایز پنجرهی TCP یا همان TCP Window Size، سرعت دریافت و خواندن پیام را بسیار کند میکند و به این ترتیب سرور را با یک connection، مشغول نگه میدارد. این حمله به Slow Read Attack معروف است.
محصول DDoS protection امنیت ابری آروان در چهار سطح مختلف از کسبوکارهای آنلاین در برابر انواع حملات DDoS محافظت میکند.