حملات DDoS یکی از سادهترین حملات خرابکارانه در بین هکرها و مهاجمان میباشد. در این مقاله به طور مفصل با DDoS و انواع آن آشنا خواهید شد. در ادامه نیز به معرفی روشهای پیشگیری و مقابله با حملات DDoS پرداخته شده است.
بر اساس گزارش eSecurity Planet، DDoS یکی از تهدیدات سایبری است که سازمانها کمترین آمادگی را برای مقابله با آن دارند و این امر این گونه حملات را به نبرد مهمی در جنگهای سایبری کنونی تبدیل کرده است.
آنچه در این مقاله می خوانید
حمله DDoS چیست؟
یک حمله DoS اغلب شامل ارسال تعداد زیادی درخواست به یک نشانی IP (نشانی IP مربوط به یک سرور وب) است که موجب مصرف بیش از حد منابع سرور و حجم زیادی از ترافیک میشود. در این صورت به دلیل حجم بالای ترافیک غیرمنتظره، سرور از دسترس خارج شده و سایت از کار میافتد.
نوع دیگری از حمله DoS، حمله Flood است که در آن به گروهی از سرورها درخواستهایی ارسال میشود که بایستی توسط دستگاههای قربانی پردازش شوند. این درخواستها اغلب از طریق اسکریپتهایی بر روی ماشینهای آسیبپذیر که بخشی از یک شبکه مخرب (Botnet) میباشند، تولید و اجرا شده و منجر به مصرف زیاد منابع سرور قربانی (مانند پردازنده، حافظه، پهنای باند و …) میشوند.
مزیت حملات توزیع شده برای مهاجمان نسبت به حمله مستقیم به قربانیان، این است که آنها با پهنای باند بسیار محدود نیز قادر به اجرای این نوع از حملات میباشند.
یک حمله DDoS نوع خاصی از حمله DoS است که تعداد زیادی درخواست بصورت هماهنگ از چندین مبدا مختلف به نشانی IP سرویسدهنده ارسال شده و موجب مصرف بیش از حد منابع سرور و حجم زیادی از ترافیک میشود. در این صورت به دلیل حجم بالای ترافیک غیرمنتظره، سرور از دسترس خارج شده، به گونهای که کاربران معتبر نیز نمیتوانند از سرویس مربوطه استفاده کنند.
حملات DDoS در عین کمهزینه بودن، سودآور نیز میباشد و باعث میشود افراد بیشتری از این نوع حملات استفاده کنند. این بدان معناست که هر کسی از جمله گروهی باجگیر، کارمند سابق یک سازمان، یک رقیب ناراضی و یا حتی مجرمان سازمانیافته میتوانند این گونه حملات را اجرا کنند.
دستهبندی حملات DDoS
از طرفی هر کسی هم میتواند قربانی این گونه حملات DDoS شود. با این که حملات DDoS نسبت به سایر انواع حملات سایبری پیچیدگی کمتری دارند اما روز به روز پیشرفتهتر و پیچیدهتر میشوند. حملات DDoS به سه دسته اصلی تقسیم میشوند:
- حملات مبتنی بر حجم (Volume-based attack)، که از ترافیک بالایی برای اشباع پهنای باند شبکه استفاده میکنند.
- حملات مبتنی بر پروتکل (Protocol attack)، که بر روی بهرهجویی از منابع سرور تمرکز دارند.
- حملات مبتنی بر برنامهکاربردی (Application attack)، که بر روی برنامههای کاربردی تحت وب تمرکز دارند و پیچیدهترین و جدیترین نوع از حملات DDoS محسوب میشوند.
انواع مختلف حملات DDoS بر اساس میزان ترافیک و آسیبپذیریهایی که مورد سوءاستفاده قرار گرفتهاند، به دستههای مختلفی تقسیم میشوند.
انواع حملات DDoS
در اینجا فهرستی از انواع رایج حملات DDoS آمده است:
SYN Flood
SYN Flood از نقاط ضعف موجود در توالی اتصال TCP (TCP Connection Sequence)، که موسوم به Three-way handshake میباشد، سوءاستفاده میکند. ماشین میزبان یک پیام همگام (SYN) را جهت شروع handshake دریافت میکند. سرور با ارسال یک پیام تصدیق موسوم به Acknowledgement – به اختصار ACK به میزبان اولیه، پیام را تأیید نموده و سپس اتصال را میبندد. با این حال، در حملات DDoS از نوع SYN Flood، انبوهی از پیامهای جعلی ارسال شده و اتصال بسته نمیشود و منجر به توقف و از دسترس خارج شدن سرویس میشود.
UDP Flood
در این حمله، مهاجم از User Datagram Protocol – به اختصار UDP – که یک پروتکل شبکه بدون Session (بدون اتصال) است، استفاده میکند. حملات UDP Flood از بستههای حاوی UDP برای قراردادن درگاههای تصادفی در یک کامپیوتر یا شبکه استفاده میکند. میزبان آن درگاهها را شنود نموده اما هیچ برنامه مرتبط با آن درگاه را جهت ارجاع درخواست، شناسایی نمیکند.
HTTP Flood
در حملات DDoS از نوع HTTP Flood، مهاجم به منظور هدف قرار دادن سرور، از تعداد زیادی درخواست GET یا POST به ظاهر معتبر استفاده میکند. این نوع از حملات، از پهنای باند کمتری نسبت به انواع دیگر حملات DDoS استفاده میکند اما میتواند سرور را مجبور به استفاده حداکثری از منابع کند.
Ping of Death
در حملات Ping of Death مهاجم با ارسال تقاضاهای مخرب Ping به یک سیستم، پروتکلهای IP را دستکاری میکند. این حمله DDoS در دو دهه پیش محبوب بوده اما امروزه کمتر موثر واقع میشود.
Smurf Attack
Smurf Attack با استفاده از یک برنامه مخرب به نام smurf از IP و ICMP سوءاستفاده میکند. این نوع حمله DDoS، ضمن جعل یک نشانی IP، با بکارگیری ICMP، نشانیهای IP را در یک شبکه خاص Ping میکند.
Fraggle Attack
یک Fraggle Attack نیز از حجم زیادی از ترافیک UDP در دامنه Broadcast روتر (Router Broadcast Network) استفاده میکند. این نوع از حمله DDoS، شبیه به حمله smurf است که از UDP به جای ICMP استفاده میکند.
Slowloris
Slowloris به مهاجمان اجازه میدهد تا با بکارگیری حداقل منابع در طول حمله، به سرور حمله کنند. هنگامی که مهاجم به هدف مورد نظر خود وصل شد، Slowloris آن اتصال را تا زمانی که ممکن است با سیلی از درخواستها و هدرهای HTTP باز نگه میدارد اما هیچوقت آنها را تکمیل نمیکند. بنابراین سرور درگیر حجم بالایی از اتصالات تقلبی شده و در نتیجه امکان پاسخگویی به درخواستهای واقعی را از دست میدهد. مقابله با این نوع از حملات DDoS بسیار دشوار میباشد.
Application Level Attacks
حملات DDoS از نوع Application Level، از ضعفهای موجود در برنامههای کاربردی سوءاستفاده میکنند. هدف از این نوع حملات، هک کردن و از کار انداختن کل سرور نیست، بلکه حمله به برنامههایی با نقاط ضعف شناخته شده است.
NTP Amplification
حملات NTP Amplification از Network Time Protocol – به اختصار NTP – سوءاستفاده میکنند. این پروتکل که برای همگامسازی زمان کامپیوتر استفاده میشود، ترافیک UDP را تحتالشعاع قرار میدهد. این حمله از نوع توزیع شده است و پاسخی از طرف سرور به نشانی IP جعلی میباشد. نسخه توزیع شده به این معنی است که پاسخ سرور با درخواست اصلی نامتناسب است. به دلیل حجم و پهنای باند بالایی که هنگام رخداد حملات DDoS استفاده میشود، این نوع حمله میتواند بسیار مخرب و خطرناک باشد.
Advanced Persistent DoS
حملات موسوم به Advanced Persistent DoS – به اختصار APDoS – نوع خاصی از حمله است که اغلب توسط هکرهایی که میخواهند آسیب جدی وارد کنند، مورد استفاده قرار میگیرد. این حمله، از انواع تکنیکهایی که قبلاً ذکر شد، استفاده میکند (HTTP flooding، SYN flooding، و غیره) و به طور منظم چندین بردار حمله را که میلیونها درخواست در ثانیه ارسال میکنند، مورد هدف قرار میدهد. حملات APDoS میتوانند عمدتاً به دلیل توانایی هکرها در تغییر لحظهای تاکتیکها جهت گمراه نمودن مسئولان سازمان و فرار از راهکارهای امنیتی، هفتهها نیز به طول بینجامند.
Zero-Day DDoS Attack
حملات Zero-Day DDoS Attack حملاتی است که به روشهای جدید حملات DDoS نسبت داده میشود، حملاتی که در آنها از آسیبپذیریهایی که هنوز وصله نشدهاند، سوءاستفاده میشود.
معروفترین نمونههای حملات DDoS کدامند؟
- در پاییز سال 1395، بدافزار Mirai دستگاههای اینترنت اشیا موسوم به IoT را آلوده کرد و آنها را به شبکههای مخرب (Botnet) تبدیل کرد و بواسطه حملات DDoS دسترسی به اینترنت را در سراسر کشور لیبریا مختل نمود.
- در اسفند سال 1391، بزرگترین حمله DDoS تاریخ، در شبکه CloudFlare رخ داد. شرکت کلودفلر (CloudFlare, Inc.) به میزبانی org، مقابله با حملات DDoS در سرویسهای امنیتی اینترنت و سرویسهای سرویسدهنده توزیعشده دامنه را فراهم میکند. اما حمله DDoS مذکور، آنقدر سریع کاهش یافت که هرگز SpamHaus.org را آفلاین نکرد.
- خدمات بانکداری اینترنتی انگلستان (HSBC Internet Banking Service) در 9 بهمن 1394 برای چند ساعت از دسترس خارج شد. این اتفاق در روز پرداخت بسیاری از مشتریان HSBC رخ داد. حمله DDoS مذکور به سرعت کاهش یافت و قطعی اینترنت منجر به بهخطر افتادن سوابق مشتریان نشد.
- در کارزار بدافزاری Dyre Wolf ترکیب بدافزار و حملات DDoS جهت دنبال کردن حسابهای بانکی مورد استفاده قرار گرفت. این بدافزار از طریق بکارگیری تاکتیکهای پیچیده مهندسی اجتماعی اجرا شد. حمله DDoS به منظور منحرف کردن توجه مورد استفاده قرار گرفت تا انتقال وجوه سرقت شده، مورد توجه قرار نگیرد.
پیشگیری از حملات DDoS
1) خرید پهنای باند بیشتر
در میان تمام راههای جلوگیری از حملات DDoS، اساسیترین قدمی که میتوانید به منظور مقاومسازی زیرساخت VPS Hosting بردارید، این است که اطمینان حاصل کنید که پهنای باند کافی برای مدیریت حجم بالای ترافیک ایجاد شده در اثر فعالیتهای مخرب را دارید.
در گذشته، با اطمینان از اینکه پهنای باند بیشتری نسبت به هر یک از مهاجمین در اختیار داشتید، امکان جلوگیری از حملات DDoS وجود داشت. اما با افزایش حملات تقویت شده، این روش دیگر عملی نیست. در عوض، با خرید پهنای باند بیشتر اکنون مهاجمان باید تلاش بیشتری برای اجرای یک حمله DDoS موفق انجام دهند، پس به خودی خود، خرید پهنای باند بیشتر راهکار پیشگیری از حمله DDoS نیست.
2) ایجاد افزونگی در زیرساخت
برای اینکه حمله موفق آمیز DDoS علیه سرورها تا حد ممکن دشوار شود، اطمینان حاصل کنید که سرورها را با بکارگیری یک سیستم توازن بار در چندین مرکز داده جهت توزیع متعادل ترافیک پخش کردهاید. در صورت امکان، این مراکز داده باید در کشورهای مختلف یا حداقل در مناطق مختلف یک کشور باشند.
برای اینکه این استراتژی واقعاً مؤثر باشد، لازم است اطمینان حاصل شود که مراکز داده به شبکههای مختلف متصل شده و هیچ گلوگاه (Bottleneck) یا نقطه شکست (Single Point of Failure) آشکاری در این شبکهها وجود نداشته باشد. توزیع سرورها از نظر جغرافیایی و توپوگرافی، حمله موفقیتآمیز به بخش اعظم سرورها را برای مهاجم دشوار میکند و اکثر سرورها را تحت تأثیر قرار نمیدهد. در این صورت این سرورها قادر به پردازش حداقل بخشی از ترافیک اضافی که سرورهای آسیبپذیر معمولاً مدیریت میکنند، میباشند.
3) پیکربندی مناسب تجهیزات شبکه در برابر حملات DDoS
با اعمال تغییراتی ساده در پیکربندی سختافزاری، میتوان از حمله DDoS جلوگیری کرد. برای مثال، پیکربندی دیواره آتش (Firewall) یا روتر (Router) شبکه را جهت توزیع بستههای ICMP ورودی یا متوقفسازی پاسخهای DNS از خارج از شبکه (با مسدود کردن پورت 53 UDP) تغییر داد. این امر میتواند مانع از حملات مبتنی بر ping و تقویت شده DNS شود.
4) پیادهسازی ماژولهای سختافزاری و نرمافزاری ضد حملات DDoS
سرورهای شما باید توسط فایروالهای شبکه و فایروالهای مجهز به قابلیت WAF (Web Application Firewall) محافظت شوند و احتمالاً باید از سرویسهای متعادلکننده بار نیز استفاده شود. بسیاری از سازندگان سختافزار در حال حاضر با بکارگیری نرمافزارهایی از حملاتDDoS همچون SYN Flood Attack پیشگیری میکنند. برای مثال، با نظارت بر تعداد اتصالات ناتمام موجود و خاتمه دادن به آنهایی که تعدادشان به مقدار آستانه تنظیمشده رسیده است.
ماژولهای نرمافزاری خاص نیز میتوانند به برخی از نرمافزارهای سرور وب اضافه شوند تا از حملات DDoS جلوگیری شود. به عنوان مثال، Apache 2.2.15 با ماژولی به نام mod_reqtimeout ارائه میشود که میتواند از خود در برابر حملات در سطح نرمافزار (Application-layer attack) همچون حمله Slowloris محافظت کند. این ماژول، اتصالات را به یک سرور وب برقرا نموده و سپس تنها تا زمانی که سرور توانایی پاسخگویی به درخواستها را دارد، اتصالات جدیدی را میپذیرد.
همچنین بخوانید: WAF چیست؟
5) پیادهسازی ابزار یا یک محصول اختصاصی ضد حملات DDoS
بسیاری از سازندگان محصولات امنیتی از جمله NetScout Arbor، Fortinet، Check Point،Cisco وRadware ، دستگاههایی را ارائه میکنند که در مقابل فایروالهای شبکه قرار میگیرند و برای جلوگیری از حملات DDoS قبل از شناسایی این نوع حملات توسط فایروالها طراحی شدهاند. آنها این کار را با بکارگیری تکنیکها و معیارهایی همچون تعریف مبنای رفتاری ترافیک (Traffic Behavioral Baseline) و سپس مسدودسازی ترافیک غیرعادی و شناسایی ترافیکهای متداول براساس امضاء، انجام میدهند. ضعف اصلی این رویکرد در جلوگیری از حملات DDoS این است که خود این دستگاهها در میزان ترافیکی که میتوانند مدیریت کنند، دارای محدودیت میباشند.
با اینکه که دستگاههای رده بالا ممکن است بتوانند ترافیک ورودی را با سرعت 80 گیگابیت بر ثانیه یا بیشتر بررسی کنند، حملات DDoS امروزی به راحتی میتوانند بسیار سریعتر از این باشند.
6) محافظت از سرورهای DNS
فراموش نکنید که مهاجم میتواند با حملات DDoS بر روی سرورهای DNS، سرورهای وب را از کار بیندازد. به همین دلیل توصیه میشود برای سرور DNS چندین نسخه در نظر گرفته شود و در عین حال نسخههای مختلف سرور DNS در مراکز داده مختلف از سیستمهای متعادل کننده بار استفاده کنند.
برای آشنایی بیشتر با سرورهای DNS پیشنهاد می شود مقاله dns چیست را مطالعه نمایید.
راهکار بهتر حتی ممکن است بکارگیری یک DNS مبتنی بر ابر باشد که میتواند پهنای باند بالا و حضور در چندین مراکز داده در سراسر جهان را فراهم کند. سرویسهای مبتنی بر ابر به طور خاص جهت پیشگیری از DDoS طراحی شدهاند.
چگونه میتوان یک حمله DDoS را متوقف نمود؟
دانستن اینکه چگونه میتوانید به سرعت (در سریعترین زمان ممکن) یک حمله DDoS را متوقف کنید، میتواند مرز بین پیشرفت سازمان یا شکست کسب و کار شما باشد. دلیل آن این است که تأثیرات یک حمله DDoS موفقیتآمیز میتواند بسیار مخرب باشد و منجر به توقف فعالیت سازمان شما از بستر اینترنت و عدم برقراری ارتباط و تعامل با مشتریان سازمان شود.
اگر قربانی یک حمله DDoS شدید، تنها نیستید. سازمانها و سایتهای متعددی همچون گوگل، آمازون، پلیاستیشن، پینترست و گیتهاب نیز در سال 2018 از جمله قربانیان این حملات بودند که بیشترین حجم حملات DDoS را دریافت کردند.