حمله DDoS
حمله انکار سرویس توزیعشده یا حمله DDoS سرنام (Distributed Denial of Service)، نوعی حمله سایبری است که در آن مهاجم با استفاده از تعداد زیادی دستگاه آلوده (باتنت)، حجم عظیمی از ترافیک جعلی را به سمت یک سرور یا شبکه هدف ارسال میکند. این حجم بالای ترافیک، منابع سرور را اشباع کرده و باعث میشود که سرور نتواند به درخواستهای قانونی کاربران پاسخ دهد و در نتیجه، سرویس مورد نظر از دسترس خارج شود. هدف اصلی این حملات، ایجاد اختلال در سرویسدهی و مختل کردن فعالیتهای عادی یک سازمان یا فرد است.
چگونه یک حمله DDoS انجام میشود؟
مهاجم ابتدا شبکهای از دستگاههای آلوده مانند رایانهها، سرورها و دستگاههای اینترنت اشیا را ایجاد میکند. این دستگاهها معمولا با نرمافزارهای مخرب آلوده شده و تحت کنترل مهاجم قرار دارند. این نرمافزارها که به آنها بات گفته میشود، دستورات مهاجم را اجرا کرده و ترافیک جعلی را به سمت هدف ارسال میکنند. مهاجم یک هدف مناسب مانند یک وبسایت، سرور ایمیل یا هر سرویس آنلاین دیگری را انتخاب میکند.
به طور معمول، وبسایتهای پربازدید، بانکها، شرکتهای بزرگ و زیرساختهای حیاتی اهداف جذابتری برای مهاجمان هستند. از طریق باتنت، مهاجم حجم عظیمی از درخواستها را به سمت هدف ارسال میکند. این درخواستها میتوانند از انواع مختلفی مانند درخواستهای HTTP، پینگها یا درخواستهای سامانه نام دامنه (DNS) باشند. هدف از این کار اشغال منابع سرور و جلوگیری از پاسخگویی آن به درخواستهای قانونی است.
حجم بالای ترافیک باعث میشود که منابع سرور مانند پهنای باند، پردازنده و حافظه اشباع شده و سرور نتواند به درخواستهای قانونی کاربران پاسخ دهد. این وضعیت مشابه یک جاده شلوغ است که در آن تعداد خودروها بسیار زیاد بوده و ترافیک به شدت کند میشود. در نهایت، سرویس مورد نظر برای کاربران غیرقابل دسترس میشود. وبسایتها کند شده یا به طور کامل از دسترس خارج میشوند، سرویسهای ایمیل قطع میشوند و سایر خدمات آنلاین نیز با اختلال مواجه میشوند.
تکنیکهای انواع حملات DDoS چیست؟
مجرمان سایبری از روشهای مختلفی برای پیادهسازی حملات DDoS استفاده میکنند. در حال حاضر، هکرها از روشهای زیر برای پیادهسازی حمله DDoS استفاده میکنند.
حمله DDoS به روش SYN Flood
حمله SYN Flood یکی از رایجترین و موثرترین حملات DDoS است که هدف آن اشباع جدول اتصالات یک سرور و از کار انداختن آن است. در این نوع حمله، مهاجم با ارسال تعداد بسیار زیادی بسته SYN به سمت سرور، فرآیند برقراری ارتباط TCP را به صورت ناقص نگه میدارد. بسته SYN اولین بسته در یک ارتباط TCP است که برای درخواست برقراری ارتباط ارسال میشود. سرور در پاسخ به این درخواست، بسته SYN-ACK را ارسال میکند و منتظر دریافت بسته ACK از کلاینت میماند تا اتصال برقرار شود. اما در حمله SYN Flood، مهاجم پس از ارسال بسته SYN، هیچ بسته ACK را ارسال نمیکند. در نتیجه، سرور مجبور میشود اتصالات نیمهباز را برای مدت طولانی در جدول اتصالات خود نگه دارد. با افزایش تعداد اتصالات نیمهباز، جدول اتصالات سرور سرریز شده و سرور دیگر قادر به پذیرش اتصالات جدید نخواهد بود. این امر باعث میشود که سرویس مورد نظر برای کاربران قانونی غیرقابل دسترس شود.
از آنجایی که مهاجم نیازی به استفاده از آدرس IP واقعی خود ندارد، میتواند از آدرسهای IP جعلی استفاده کند و تشخیص منبع حمله را بسیار دشوار کند. همچنین، حمله SYN Flood را میتوان با استفاده از تعداد کمی دستگاه آلوده انجام داد، زیرا هر اتصال نیمهباز تنها به مقدار کمی از منابع سرور نیاز دارد. به همین دلیل، این نوع حمله به عنوان یک تهدید جدی برای امنیت شبکهها محسوب میشود.
حمله UDP Flood DDoS
حمله UDP Flood یکی دیگر از حملات DDoS است که در آن مهاجم با ارسال حجم عظیمی از بستههای UDP به سمت سرور هدف، منابع آن را اشغال کرده و باعث اختلال در سرویسدهی میشود. پروتکل UDP سرنام (User Datagram Protocol) یک پروتکل ارتباطی بدون اتصال است که بر خلاف TCP، نیازی به برقراری یک ارتباط پایدار ندارد. این ویژگی UDP را برای حملات DDoS جذاب میکند، زیرا مهاجم میتواند بدون نیاز به ایجاد یک اتصال کامل، حجم زیادی از داده را به سمت سرور ارسال کند.
در یک حمله UDP Flood، مهاجم با استفاده از یک باتنت (شبکهای از دستگاههای آلوده) تعداد بسیار زیادی بسته UDP را به سمت پورتهای باز یا بسته سرور هدف ارسال میکند. این بستهها میتوانند شامل دادههای تصادفی یا اطلاعات خاصی باشند که برای سرور بیمعنی است. با افزایش حجم این بستهها، منابع پردازشی سرور برای پردازش و حذف آنها اشغال میشود و در نتیجه، سرور قادر به پاسخگویی به درخواستهای قانونی کاربران نخواهد بود.
به طور کلی، حملات UDP Flood به این دلیل مخرب و خطرناک هستند که پروتکل UDP همانند TCP صبر نمیکند تا تایید دریافت بستهها را دریافت کند. به همین دلیل، هکر میتواند بدون نگرانی از اینکه بستههای ارسالی به مقصد رسیدهاند یا خیر، به ارسال آنها ادامه دهد. همچنین، شناسایی منبع این حملات بسیار دشوار است، زیرا مهاجم میتواند از آدرسهای IP جعلی استفاده کند.
حمله HTTP Flood DDoS
هکرها در حمله HTTP Flood اقدام به ارسال سیلآسای ترافیک از طریق درخواستهای HTTP برای یک وبسایت یا اپلیکیشن میکنند تا منابع در زمان کوتاهی اشغال شوند. این درخواستها میتوانند از نوع GET (برای دریافت اطلاعات) یا POST (برای ارسال اطلاعات) باشند. هدف از این حمله، اشباع کردن منابع سرور، کاهش سرعت پاسخدهی و در نهایت از دسترس خارج کردن سرویس برای کاربران قانونی است. در این نوع حمله، مهاجم با استفاده از یک باتنت (شبکهای از دستگاههای آلوده) تعداد بسیار زیادی درخواست HTTP را به صورت همزمان به سمت هدف ارسال میکند. هر یک از این درخواستها نیازمند پردازش توسط سرور هستند و با افزایش تعداد آنها، سرور به تدریج توانایی پاسخگویی به درخواستهای قانونی کاربران را از دست میدهد. علاوه بر این، درخواستهای HTTP میتوانند به گونهای طراحی شوند که پردازش آنها برای سرور پرهزینهتر باشد، مانند درخواستهای POST که معمولا شامل دادههای بیشتری هستند.
حمله Fragmentation Attacks DDoS
حمله تکهتکهسازی یکی از انواع پیچیدهترین حملات DDoS است که در آن مهاجم از مکانیزم طبیعی تکهتکه شدن بستههای IP در شبکه سوءاستفاده میکند. در شرایط عادی، وقتی یک بسته داده از یک شبکه با اندازه حداکثر واحد انتقال (MTU) کوچکتر به شبکهای با MTU بزرگتر منتقل میشود، روترها این بسته را به تکههای کوچکتر تقسیم میکنند و در سمت گیرنده، این تکهها مجددا به هم پیوسته و بسته اصلی بازسازی میشود. در حمله تکهتکهسازی، مهاجم با ارسال بستههای تکهتکه شده به صورت عمدی و با الگوهای خاص، باعث ایجاد اختلال در فرایند بازسازی بستهها در سرور هدف میشود. این اختلال میتواند به دلایل مختلفی ایجاد شود، از جمله:
- بستههای ناقص یا تکراری: ارسال بستههایی که ناقص هستند یا چندین بار تکرار میشوند.
- ترتیب نادرست بستهها: ارسال بستهها با ترتیب اشتباه.
- بستههای بسیار کوچک: ارسال بستههای بسیار کوچک که پردازش آنها برای سرور پرهزینه است.
حمله DDoS به روش TTL Expiry
در حمله TTL Expiry مهاجم به جای هدف قرار دادن مستقیم سرور، روترهای شبکه را مورد هدف قرار میدهد. به طور کلی، هکرها به این دلیل به سراغ حمله TTL Expiry میروند که بتوانند حجم زیادی از بستههای دادهای را برای یک روتر خاص ارسال کنند، به طوری که شمارنده TTL این بستهها در روتر خاص پایان پذیرد. TTL یک فیلد در هدر IP بستههای داده است که نشان میدهد یک بسته تا چند جهش (hop) میتواند در شبکه حرکت کند. با هر جهش، مقدار TTL یک واحد کاهش مییابد. زمانی که مقدار TTL به صفر برسد، روتر موظف است بسته را دور انداخته و یک پیام ICMP سرنام (Internet Control Message Protocol) با کد “Time Exceeded” را به فرستنده بازگرداند.
در حمله TTL Expiry، مهاجم با تنظیم دقیق مقدار TTL در بستههای ارسالی، باعث میشود که تعداد زیادی از بستهها همزمان در یک روتر خاص منقضی شوند. پردازش این تعداد زیاد پیام ICMP و مدیریت بستههای منقضی شده، بار پردازشی بسیار زیادی را بر روی روتر تحمیل میکند. در نتیجه، روتر ممکن است از کار بیفتد یا به شدت کند شود. این اختلال در عملکرد روتر، باعث اختلال در ارتباطات شبکه و در نهایت، از دسترس خارج شدن سرویس مورد نظر میشود.
حمله DDoS به روش Amplification
حمله Amplification یکی از روشهای رایج و قدرتمند در حملات DDoS است که در آن مهاجم از پروتکلهایی که پاسخ بزرگتری نسبت به درخواست دارند، سوء استفاده میکند. به عبارت سادهتر، مهاجم با ارسال درخواستهای کوچک به یک سرویس، پاسخهای بسیار بزرگتری را به سمت هدف مورد نظر هدایت میکند. این تفاوت در اندازه درخواست و پاسخ، باعث تقویت حجم ترافیک ارسالی به هدف شده و به این ترتیب، تأثیر حمله را به شدت افزایش میدهد.
در این حمله؛ هکرها به سراغ DNS سرنام (Domain Name System) میروند. مهاجم با ارسال تعداد زیادی درخواست DNS به سمت یک سرور DNS عمومی، پاسخهای بسیار بزرگتری دریافت میکند که شامل اطلاعات مربوط به آدرس IP دامنههای درخواست شده است. سپس، این پاسخهای بزرگ به سمت هدف مورد نظر هدایت میشوند. از آنجایی که حجم پاسخها بسیار بیشتر از حجم درخواستها است، این نوع حمله به عنوان تقویتی شناخته میشود.
حمله DDoS هدفمند با نرخ پایین
در حملات هدفمند با نرخ پایین، مهاجم به جای ایجاد حجم بسیار بالای ترافیک در مدت زمان کوتاه، با ارسال حجم کم و پایداری ترافیک مخرب، منابع سیستم هدف را به تدریج تحلیل میبرد. این نوع حمله به دلیل ماهیت آرام و تدریجی خود، به سختی قابل تشخیص است و اغلب تا زمانی که آسیب قابل توجهی به سیستم وارد شده باشد، شناسایی نمیشود.
در این نوع حمله، مهاجم به جای استفاده از یک باتنت بزرگ، ممکن است از تعداد محدودی دستگاه آلوده یا حتی یک دستگاه واحد استفاده کند. همچنین، ترافیک ارسالی ممکن است به گونهای طراحی شود که شبیه به ترافیک قانونی باشد و تشخیص آن را برای سیستمهای تشخیص نفوذ دشوارتر کند. هدف از این حملات، ایجاد اختلال طولانیمدت در عملکرد سیستم و کاهش تدریجی کیفیت سرویس است. به عنوان مثال، ممکن است سرعت پاسخگویی یک وبسایت به تدریج کاهش یابد و در نهایت، وبسایت از دسترس خارج شود.
یکی از دلایل اصلی دشوار بودن تشخیص این نوع حملات، این است که افزایش تدریجی بار روی سیستم ممکن است با افزایش طبیعی ترافیک وبسایت اشتباه گرفته شود. همچنین، آستانههای هشدار سیستمهای تشخیص نفوذ اغلب برای تشخیص حملات با حجم بالای ترافیک تنظیم میشوند و ممکن است به حملات با نرخ پایین پاسخ ندهند.
چگونه حمله DDoS را دفع کنیم؟
هنگامی که صحبت از دفع حمله انکار سرویس توزیعشده به میان میآید، مهمترین اصلی که باید به آن دقت کنید تفکیک ترافیک ورودی واقعی و ترافیک جعلی است. به بیان دقیقتر، اگر وبسایت یا سرویس جدیدی راهاندازی کردهاید که حجم بالایی از ترافیک ورودی دارد، نمیتوانید این حالت را حمله انکار سرویس توزیعشده در نظر بگیرید. از اینرو، باید توانایی تفکیک کاربران واقعی از هکرها یا باتنتها را داشته باشید. در شرایط فعلی، با توجه به پیادهسازی حملات ترکیبی، شناسایی و مقابله با حملات DDoS به سختی امکانپذیر است. برخی از روشهای پر کاربرد به شرح زیر هستند:
مسیریابی سیاهچاله
مسیریابی سیاهچاله (Black Hole Routing) یکی از روشهای مقابله با حملات DDoS است که روترها ترافیک ورودی از یک منبع مشکوک را به جای ارسال به مقصد اصلی، به یک مسیر بینهایت طولانی هدایت میکنند، یا به عبارت دیگر، آن را در یک “سیاهچاله” رها میکنند. این کار باعث میشود که ترافیک مهاجم به مقصد نرسد و در نتیجه، حمله خنثی شود. این روش به دلیل سادگی و اثربخشی در کوتاهمدت، میتواند در شرایط اضطراری برای محافظت از سرویسهای حیاتی مورد استفاده قرار گیرد. با این حال، مسیریابی سیاهچاله دارای معایبی است که استفاده از آن را محدود میکند. یکی از مهمترین مشکلات این روش، این است که تمام ترافیک ورودی از منبع مشکوک، صرف نظر از اینکه قانونی یا مخرب باشد، مسدود میشود. این امر میتواند باعث اختلال در سرویسدهی به کاربران قانونی شود و به روابط با مشتریان آسیب برساند. علاوه بر این، مسیریابی سیاهچاله میتواند باعث ایجاد ترافیک اضافی در شبکه شود و به شبکههای دیگر نیز آسیب برساند.
محدودیت نرخ درخواست
این روش با تعیین محدودیتی برای تعداد درخواستهایی که یک آدرس آیپی یا یک منبع مشخص میتواند در یک بازه زمانی معین ارسال کند، از سرریز شدن منابع سیستم جلوگیری میکند. به عبارت سادهتر، با اعمال محدودیت نرخ درخواست، مهاجمان نمیتوانند با ارسال حجم بسیار بالای درخواستها، سیستم را از کار بیندازند.
فایروال وب اپلیکیشن
فایروال وب اپلیکیشن (Web Application Firewall) ابزاری قدرتمند و تخصصی است که برای محافظت از برنامههای وب در برابر انواع مختلف حملات طراحی شده است. یکی از قابلیتهای مهم WAF، توانایی آن در تشخیص و دفع حملات DDoS است. از طریق پیادهسازی WAF در میان اینترنت و سرور، دیوار آتش عملکردی شبیه به پراکسی معکوس (Reverse Proxy) پیدا میکند و به این شکل از سرور در برابر طیف گستردهای از ترافیک مخرب محافظت میکند. ابزار مذکور از طریق فیلتر درخواستها بر مبنای قواعد مشخص و شناسایی حمله انکار سرویس توزیعشده به مقابله با حملات لایه کاربرد میپردازد. فایروال وب اپلیکیشن به کارشناسان امنیت اجازه میدهد در زمان کوتاه قواعد را تغییر داده یا قواعد جدیدی پیادهسازی کنند. همچنین، فایروال وب اپلیکیشن لایه 3 و 4 قادر است به مقابله با حملات رخ داده در این لایهها است.
انتشار شبکه Anycast
شبکه Anycast یک فناوری هوشمندانه و کارآمد به منظور مقابله با حملات DDoS است که به دلیل توزیع ترافیک بر روی چند سرور، از بارگذاری بیش از حد ترافیک روی یک سرور جلوگیری میکند. این روش به ویژه برای سرویسهایی با ترافیک بالا و حساس به اختلال، بسیار مفید است.
نویسنده: حمیدرضا تائبی