آنچه در این مقاله میخوانید:
- انواع حملات FLOOD
- حمله HTTP Flood چیست؟
- حملهی DNS Flood
- حمله SYN Flood
- حملهی ACK
- حمله Ping (ICMP) Flood
- حملهی UDP Flood
- حملهی QUIC Flood
حملهی DDoS نوعی حملهی سایبری است که باعث اختلال در بازدید عادی از یک سرور میشود. در حملات DDoS با ارسال ترافیک اضافی، زیرساختهای سرور به طور کامل درگیر شده و دیگر نمیتواند به ترافیک قانونی خود سرویسدهی داشته باشد. حملات Flood از زیرمجموعههای حملهی DDoS هستند که با ارسال درخواستهای زیاد به سمت سرور، منابع آن را اشغال کرده و مانع پاسخگویی سرور به کاربران عادی میشوند. حملات Flood از طریق پروتکلهای مختلفی انجام میشوند که در ادامه آنها را توضیح میدهیم.
انواع حملات FLOOD
- حمله HTTP Flood
- حمله DNS Flood
- حمله SYN Flood
- حمله ACK Flood
- حمله Ping (ICMP) Flood
- حمله UDP Flood
- حمله QIUC Flood
حمله HTTP Flood چیست؟
حملهی HTTP Flood یکی از انواع حملات DDoS است که با هدف ایجاد اختلال در یک سرور هدف انجام میشود. در این حمله درخواستهای HTTP زیادی به سمت سرور ارسال میشود تا زمانی که ظرفیت سرور تکمیل گردد. با این کار سرور دیگر نمیتواند به درخواستهای کاربران واقعی پاسخ دهد.
حملهی HTTP Flood چگونه عمل میکند؟
حملهی HTTP Flood یکی از انواع حملات DDoS “لایهی 7” است. لایهی 7 به هفتمین لایهی کاربردی مدل OSI گفته میشود که به پروتکلهای اینترنتی مانند HTTP اشاره دارد. HTTP برای ارسال درخواستهای اینترنتی مبتنی بر مرورگر مانند بارگیری صفحات وب یا ارسال محتوای یک فرم از طریق اینترنت استفاده میشود. تشخیص و جلوگیری از این حمله بسیار مشکل است؛ زیرا نمیتوان ترافیک عادی را از ترافیک مخرب تشخیص داد. عوامل مخرب به طور معمول مجموعهای از کامپیوترهای شخصی، سرورها و … هستند که توسط هکرها به بدافزار آلوده و از راه دور کنترل میشوند.
انواع حملات HTTP Flood
به طور کلی حملات HTTP Flood با دو روش انجام میشوند:
- متد GET
در متد GET، اطلاعات از سرور گرفته میشوند. در این نوع از حمله، با استفاده از تعدادی رایانه یا دستگاههای متصل به اینترنت دیگر درخواستهای متعددی برای تصاویر، فایلها یا دیگر داراییهای یک سرور ارسال میگردد. بیشتر منابع سرور در این حالت درگیر دریافت این درخواستها و پاسخ به آنها شده و دیگر ظرفیتی برای پاسخگویی به ترافیک عادی کاربران نخواهند داشت.
- متد POST
از متد POST برای ارسال اطلاعات به سرور استفاده میشود. معمولا هنگامی که یک فرم در یک وبسایت تکمیل و ارسال میگردد، سرور باید به درخواست دریافتی رسیدگی کرده و دادهها را در یک لایهی پایدار، به طور معمول یک پایگاه داده، ذخیره کند. فرآیند رسیدگی به دادههای فرم و اجرای دستورات پایگاه داده نیاز به قدرت پردازش و پهنای باند زیادی دارد. در این حمله درخواستهای زیادی با منبع POST به یک سرور هدف ارسال میگردند تا ظرفیت سرور اشباع شده و حملهی DDoS رخ دهد.
حملهی DNS Flood
سرورهای سیستم نام دامنه (DNS) مانند دفترچه تلفن اینترنت هستند که از طریق آن دستگاههای متصل به اینترنت قادر به جستجوی وب و دسترسی به محتوای اینترنت میشوند. حملهی DNS Flood یکی از انواع حملهی DDoS است که در آن هکر برای ایجاد اختلال در سرویس DNS درخواستهای زیادی را به سمت سرورهای DNS دامنهی خاصی ارسال میکند. اگر کاربر نتواند به سرورهای DNS متصل شود، نمیتواند آدرس یک وبسایت را جستجو کرده و به محتوای آن دسترسی پیدا کند. تشخیص حملهی DNS Flood از ترافیک عادی وبسایت مشکل است؛ زیرا این حملات از دستگاههای مختلف و از مکانهای منحصربهفرد اتفاق میافتند و درخواستها رفتاری مشابه با درخواست کاربران عادی دارند.
حملهی DNS Flood چگونه کار میکند؟
هر دستگاه متصل به اینترنت در شبکه با یک آدرس منحصربهفرد به نام IP مشخص میشود. سرویس DNS برای ترجمهی نامهای سادهی دامنهی وبسایت به آدرسهای سخت IPاستفاده میگردد؛ پس اگر حمله به زیرساختهای DNS موفقیتآمیز باشد، میتواند باعث مشکل در دسترسی کاربران به اینترنت شود. حملات DNS Flood از انواع جدید حملات مبتنی بر DNS هستند که با افزایش باتنتهای اینترنت اشیا (IoT) با پهنای باند بالا گسترش یافتند. حملات DNS Flood از اتصالات پهنای باند بالای دوربینهای IP، باکسهای DVR و سایر دستگاههای اینترنت اشیا استفاده میکنند تا به صورت مستقیم سرورهای DNS ارائهدهندگان اصلی را تحت تأثیر قرار دهند. با افزایش حجم درخواستها از سمت دستگاههای اینترنت اشیا، پهنای باند و دیگر منابع سرور DNS اشغال شده و سرور دیگر قادر به پاسخگویی به درخواستهای کاربران قانونی نیست.
حمله SYN Flood
حملهی SYN Flood یکی دیگر از انواع حملات DDoS است که با ارسال درخواستهای زیاد، ظرفیت منابع سرور را اشغال میکند و باعث میشود که سرور نتواند پاسخگویی مناسبی به درخواستهای کاربران داشته باشد.
SYN Flood چگونه کار میکند؟
حملهی SYN Flood با استفاده از فرآیند دست تکانی یک اتصال TCP کار می کند. در حالت عادی، اتصال TCP سه فرآیند مجزا را برای اتصال دنبال میکند:
- در مرحله اول کاربر یک بستهی SYN به سرور ارسال می کند.
- سپس سرور با ارسال یک بستهی SYN/ACK به سمت کاربر به بستهی اولیه پاسخ داده و ارتباط را تایید میکند.
- در نهایت کاربر یک بستهی ACK را برای تأیید دریافت بسته از سرور برمیگرداند. پس از تکمیل این فرآیند اتصال TCPباز و قادر به ارسال و دریافت اطلاعات است.
برای ایجاد حملهی DDoSهکرها از این شرایط استفاده کرده و با IPهای جعلی حجم بالایی از پیامهای SYN را به سمت سرور ارسال میکنند. سرور به هر کدام از این درخواستهای اتصال پاسخ داده و یک پورت باز را برای دریافت پاسخ آماده میکند؛ اما این IPها پس از دریافت پاسخ، دیگر پیام ACK را به سمت سرور نمیفرستند. هکرها در این حالت به ارسال پیامهای SYN ادامه میدهند و سرور هم پس از ورود هر بسته SYN یک پورت جدید را برای اتصال باز میکند. سرور هر پورت را برای زمان معینی باز نگه میدارد و پس از استفاده از تمام پورتهای موجود، سرور دیگر قادر به عملکرد عادی نخواهد بود.
حملهی ACK
حملهی ACK Floodزمانی اتفاق میافتد که مهاجم سعی میکند ظرفیت سرور را با ارسال بستههای TCP ACK اشباع کند. مانند سایر حملات DDoS، هدف حملهی ACK TCP هم این است که با ارسال درخواستهای زیاد و اشباع منابع سرور، مانع پاسخگویی سرور به درخواستهای عادی شود. بستههای دادهی ACK برای پردازش نیاز به قدرت محاسباتی زیادی دارند که باعث میشود سرور دیگر قادر به ارائهی خدمات به کاربران عادی نباشد.
تمام پیامهایی که از طریق اینترنت ارسال میشوند به قسمتهای کوچکتری به نام بسته تقسیم میشوند. در پروتکل کنترل انتقال TCP از هدر بستهها استفاده میشود تا به گیرندهی بسته بگوید چند بسته وجود دارد و به چه ترتیبی باید وارد شوند. ممکن است هدر شامل اطلاعات دیگری مانند طول بسته، نوع بسته و … نیز باشد. ACK مخفف کلمهی Acknowledgement است. یک بستهی ACK شامل هر بستهی TCP است که دریافت یک پیام یا مجموعهای از بستهها را تأیید میکند. تعریف فنی یک بستهی ACK، شامل یک بستهی TCP با پرچم ACK است.
بستههای ACK بخشی از TCP handshake هستند؛ مجموعهای از سه مرحله که مکالمه بین دو دستگاه متصل به اینترنت را آغاز میکنند. سه مرحلهی TCP handshake عبارتند از:
- SYN
- SYN ACK
- ACK
این سه فرآیند با ارسال و دریافت بستهها مطمئن میشوند که هر دو طرف ارتباط آنلاین بوده و آمادهی برقراری ارتباط و دریافت بستههای دیتا هستند. البته تنها استفاده از بستههای ACK در زمان شروع ارتباط نیست و پروتکل TCP ایجاب میکند که دستگاههای متصل تأیید کنند که همهی بستهها را به ترتیب دریافت کردهاند؛ که این کار با ارسال یک بستهی ACK از دستگاه کاربر به سرور میزبان انجام میشود. اگر این بستهی ACK ارسال نشود، سرور میزبان باید دوباره پاسخ درخواست کاربر را ارسال کند.
عملکرد حملهی ACK Flood
ACK Flood دستگاههایی را که نیاز به پردازش هر بستهی دریافتی دارند مورد هدف قرار میدهند. فایروالها و سرورها محتملترین هدف برای این حمله هستند. بستههای ACK قانونی و غیرقانونی شباهت زیادی به یکدیگر دارند و فیلتر کردن بستههای ACK غیرضروری بدون استفاده از شبکهی توزیع محتوا (CDN) دشوار است. اگرچه بستههای مورد استفاده در حملهی ACK DDoS بسیار شبیه به ترافیک قانونی هستند، اما بخش اصلی بستههای داده را که payload نامیده میشود را شامل نمیشوند. برای اینکه بستههای ارسالی مانند ترافیک عادی به نظر برسند فقط کافیست پرچم ACK را در هدر TCP قرار دهند.
حمله Ping (ICMP) Flood
در حملهی Ping Flood مهاجم سعی میکند با ارسال تعداد زیادی پیامهای ping که از معروفترین پیامهای پروتکل ICMPهستند، سرور را از کار بیندازد. هنگامی که ترافیک حمله از چندین دستگاه مختلف میآید، به آن حملهی منع سرویس توزیعشده (DDoS) میگویند.
پروتکل پیام کنترل اینترنت (ICMP) که در حملهی Ping Flood استفاده میشود، توسط دستگاههای شبکه برای بررسی برقرار ارتباط بین دو دستگاه استفاده میشود. معمولا از پیامهای ICMP-echo-Reply و Echo-Reply برای تشخیص سلامت و اتصال بین دو دستگاه فرستنده و گیرنده استفاده میشود.
حملهی Ping Flood چگونه کار میکند؟
هر درخواست ICMP که به سمت سرور ارسال میشود برای پردازش و ارسال پاسخ نیاز به منابع سرور دارد. هر دستگاه ظرفیت پردازش مشخصی دارد و هدف حملهی Ping Flood این است که با ترافیک جعلی توانایی دستگاه مورد نظر را برای پاسخگویی به درخواستهای واقعی از بین ببرد. در این حمله مهاجم با داشتن تعداد زیادی از دستگاههای باتنت درخواستهای ICMP زیادی را ارسال میکند و باعث اختلال در فعالیت عادی شبکه میشود.
حملهی Ping Flood که از انواع حملات DDoS است با انجام دو مرحلهی تکراری انجام میشود:
- مهاجم با استفاده از چندین دستگاه، تعداد زیادی درخواست ICMP echo را به سمت سرور ارسال میکند.
- سرور پس از پردازش این تعداد درخواست، ملزم به ارسال پاسخ این درخواستها به آدرس IP هر دستگاه درخواستکننده میشود.
میزان اثر مخرب یک حملهی Ping Flood به طور مستقیم با تعداد درخواستهای ارسالشده به سرور متناسب است. ترافیک حملهی Ping Flood متقارن است؛ این بدان معنیست که مقدار پهنای باندی که دستگاه موردنظر دریافت میکند صرفا مجموع کل ترافیک ارسالی از هر ربات است.
حملهی UDP Flood
حملهی UDP Flood یکی از انواع حملهی DDoS یا DoS است که با ارسال تعداد زیادی بستهی User Datagram Protocol (UDP) به یک سرور، توانایی پردازش و پاسخگویی سرور را تحت تأثیر قرار میدهد. فایروال محافظتکننده از سرور هدف هم میتواند در برابر تعداد زیادی از بستههای UDP خسته شده و دیگر پاسخگوی ترافیک عادی سرور نباشد.
حملهی UDP Flood چگونه عمل میکند؟
حملهی UDP Flood اساسا با بهرهگیری از مراحلی که سرور در هنگام پاسخ به بستهی UDP ارسال شده به یکی از پورتهای خود انجام میدهد، کار میکند. در شرایط عادی، هنگامی که یک سرور یک بستهی UDP را در یک پورت خاص دریافت میکند، برای پاسخگویی دو مرحله را انجام میدهد:
- ابتدا سرور بررسی میکند که آیا برنامههای در حال اجرا در حال حاضر به درخواستهای پورت مشخص شده گوش میکنند یا خیر.
- اگر هیچ برنامهی در حال اجرایی در آن پورت بسته را دریافت نکند، سرور با ارسال یک بستهی ICMP (پینگ) به فرستنده اطلاع میدهد که مقصد غیرقابل دسترسی است.
هر زمان که یک بستهی UDP توسط سرور دریافت میشود، سرور با انجام دو مرحلهی بالا درخواست را پردازش میکند. در هنگام انتقال بستهی UDP، آدرس IP دستگاه ارسالکننده هم به همراه بسته به سمت سرور ارسال میشود.
در حملهی UDP Flood مهاجم به طور معمول از آدرس IP واقعی خود استفاده نمیکند. با استفاده از این ترفند هم موقعیت واقعی مهاجم مخفی میماند و هم در هنگام ارسال پیامهای ICMP از سمت سرور، این پیامها به IPهای دیگری ارسال میگردد و شبکهای که مهاجم از آن استفاده میکند با این پاسخها اشباع نمیشوند. در نتیجه زمانی که سرور تعداد زیادی از بستههای UDP را دریافت میکند، منابع سرور صرف بررسی و سپس پاسخگویی به این بستهها میشود و دیگر توانایی ارائهی سرویس به ترافیک عادی وبسایت را نخواهد داشت.
حملهی QUIC Flood
پروتکل QUIC Flood یک روش جدید برای ارسال دادهها از طریق اینترنت است که از پروتکلهای قبلی سریعتر، ایمنتر و کارآمدتر است. از آنجایی که QUIC یک پروتکل برای ارسال درخواست و دریافت پاسخ در اینترنت است، میتواند برای انجام حملات DDoS مورد استفاده قرار بگیرد. به بیان فنی، پروتکل QUIC یک پروتکل لایهی انتقال است که از نظر تئوری میتواند جایگزین TCP (یک پروتکل انتقال) و TLS (یک پروتکل رمزگذاری) شود.
پروتکل QUIC برای افزایش سرعت از پروتکل انتقال UDP به جای TCP استفاده میکند که سریعتر بوده اما قابلیت اعتماد کمتری دارد. در این روش چندین جریان داده به طور همزمان ارسال میگردد که اگر دیتایی در طول مسیر گم شد با این روش جبران شود؛ به این تکنیک مالتیپلکس هم میگویند. پروتکل QUIC همچنین همهی دیتاهای ارسالی را با روش TLS رمزگذاری میکند.
حملهی QUIC Flood چگونه عمل میکند؟
در یک حملهی DDoS یک مهاجم با ارسال تعداد زیادی دیتا از طریق QUIC، منابع سرور را اشغال کرده و سرور دیگر نمیتواند درخواستهای عادی را پردازش کند. مسدود کردن حملات QUIC Flood به دلایل زیر مشکل است:
- پروتکل QUIC از UDP استفاده میکند که اطلاعات بسیار کمی در زمینهی مسدود کردن بسته در اختیار گیرندهی بسته قرار میدهد.
- QUIC دادههای بسته را به گونهای رمزگذاری میکند که گیرنده متوجه قانونی یا جعلی بودن فرستنده نمیشود.
حملات Flood با اشغال منابع سرور توسط ارسال تعداد زیادی درخواست انجام میشوند. این درخواستها از طریق پروتکلهای مختلف و با IP های متفاوت ارسال میشوند و تشخیص آنها از ترافیک عادی وبسایت مشکل است. بهتر است سرورهای خود را از ارائهدهندهای تهیه کنید که توانایی مانیتور کردن درخواستهای ورودی و جلوگیری از این حملات را داشته باشد. سرورهای اَبر دِراک با تجزیه و تحلیل دائمی درخواستهای کاربران طیف گستردهای از حملات DDoS را شناسایی کرده و از ایجاد مشکل برای سرور جلوگیری میکند.
منابع:
- https://www.cloudflare.com/learning/ddos/http-flood-ddos-attack
- https://www.cloudflare.com/learning/ddos/dns-flood-ddos-attack/
- https://www.cloudflare.com/learning/ddos/syn-flood-ddos-attack/
- https://www.cloudflare.com/learning/ddos/ping-icmp-flood-ddos-attack/
- https://www.cloudflare.com/learning/ddos/udp-flood-ddos-attack/
- https://www.cloudflare.com/learning/ddos/what-is-an-ack-flood/
- https://www.cloudflare.com/learning/ddos/what-is-a-quic-flood/