حملات DDoS یکی از رایجترین روشهای حمله به سرویسدهندهها و وبسایتهای امروزی جهت ایجاد اختلال در عملکرد آن ها است. این نوع حملات، به شکل گسترده و همزمان جهت استفاده بیش از حد از منابع سرورها انجام میشوند تا امکان پاسخدهی به درخواستهای کاربران امکان پذیر نباشد و در نهایت منجر به قطع شدن سرویس میشود.
این حملات برای بانکها، سایتهای خبری، فروشگاههای آنلاین، سازمانهای دولتی و ... بسیار خطرناک هستند و میتوانند خسارات جدی به آنها وارد کنند.
متخصصان امنیتی با استفاده از تکنولوژیها و روشهایی میتوانند این نوع حملات را شناسایی کنند و با استفاده از راههای مختلفی، مانند ایجاد تغییرات در تنظیمات کانفیگ سرور، استفاده از فایروال، و استفاده از سیستمهای تشخیص ترافیک مشکوک، به مقابله با آنها بپردازند.
در این مقاله، به بررسی جزئیات کامل در مورد حملات DDoS و راهکارهای مقابله با آنها خواهیم پرداخت. با دانستن اطلاعات کافی دربارهی این نوع حملات و راهکارهای مقابله با آن، میتوانید اقدامات مناسبی را برای محافظت از سایتها و سرویسهای خود انجام دهید.
حمله DDoS چیست؟
حمله محرومسازی از سرویس (به انگلیسی Distributed Denial-of-Service) یک تلاش خرابکارانه و هدفمند برای ایجاد اختلال در ترافیک عادی یک سرور، سرویس یا شبکه از طریق سیلی از ترافیک اینترنت است.
عمدتاً منابع حملهی ترافیکی در حملات DDoS، چندین سیستم کامپیوتری هستند که دچار نقص امنیتی شدهاند. دستگاههای مورد سوءاستفاده میتوانند شامل کامپیوترها و سایر منابع شبکهای مانند دستگاههای IoT نیز باشند.
حمله DDoS چگونه انجام می شود؟
حملات DDoS با شبکههایی از ماشینهای متصل به اینترنت انجام میگردد.
این شبکهها شامل کامپیوترها و دستگاههای مختلفی (مانند دستگاههای اینترنت اشیا) هستند که به بدافزار آلوده شدهاند تا از راه دور توسط مهاجم کنترل شوند. این دستگاهها به عنوان ربات (یا زامبی) نیز شناخته میشوند و به گروهی از رباتها باتنت (Botnet) میگویند.
پس از ایجاد بات نت، مهاجم میتواند با ارسال دستورالعملها از راه دور به هر ربات، حمله را هدایت و کنترل نماید.
هنگامی که سرور یا شبکه قربانی توسط بات نت مورد هدف قرار میگیرد، هر ربات درخواستهایی را به آدرس IP هدف ارسال مینماید، که به طور بالقوه باعث میشود سرور یا شبکه تحت فشار قرار گیرد و در نتیجه امکان ارائه سرویس به ترافیک عادی با مشکل مواجه میگردد.
از آنجایی که هر ربات یک دستگاه اینترنتی قانونی محسوب میشود، جداسازی ترافیک حمله از ترافیک عادی میتواند بسیار دشوار باشد.
نحوه شناسایی حمله DDoS
یکی از بارزترین نشانههای حمله DDoS این است که سایت یا سرویسی ناگهان کند میشود یا از دسترس خارج میگردد. اما از آنجایی که دلایل گستردهای میتوانند مشکلات مشابهی را ایجاد کنند، معمولاً این موضوع به بررسی بیشتری نیاز دارد. ابزارهای مختلفی برای تجزیه و تحلیل ترافیک وجود دارند که قادر هستند به شما کمک کنند تا برخی از این نشانههای آشکار حمله DDoS را شناسایی کنید:
• ترافیکهای مشکوکی که از یک آدرس IP یا رنج IP هستند
• سیل ترافیک از سوی کاربرانی که مشخصات مشترکی دارند، مانند نوع دستگاه، موقعیت جغرافیایی، یا نسخه مرورگر وب
• افزایش غیر منطقی درخواستها به یک صفحه
• بروز الگوهای ترافیکی عجیب و غریب، مانند افزایش ترافیک در ساعات یا روزهای فرد
حملات DoS و DDoS چه تفاوتی با یکدیگر دارند؟
حملات DoS (Denial of Service) و DDoS (Distributed Denial of Service) هر دو به معنای نقص در سرویسدهی هستند، اما تفاوتی در روش و شیوه انجام آنها وجود دارد.
در حمله DoS، حمله کننده با ارسال ترافیک بیش از حد به یک سرور یا شبکه، تلاش می کند تا منابع سرویس دهی را محدود کند و سرویسدهی را با اختلال روبهرو سازد. به عنوان مثال، حملهکننده میتواند بستههای بسیار زیادی را به یک سرور وب ارسال کند تا آن سرور به دلایل عدم تحمل بار، نتواند پاسخگو درخواستهای معمول کاربران باشد.
اما در حمله DDoS، حمله کننده از چندین دستگاه در شبکه استفاده می کند تا به صورت همزمان ترافیک بسیار زیادی را به سرور هدف ارسال نماید. همانطور که گفته شد، این دستگاه ها را به عنوان بات نت (Botnet) میشناسند. حمله کننده می تواند از باتنت ها برای پوشش دادن هویت واقعی خود استفاده نماید، زیرا ترافیک بیش از حد از طریق بات نت ها ارسال می شود و منابعی مانند آدرس IP حمله کننده نشان داده نمیشود.
به طور کلی، تفاوت اصلی بین حملات DoS و DDoS در تعداد دستگاه هایی است که برای حمله استفاده میشوند. در حملات DoS، تنها از یک دستگاه استفاده می شود، در حالی که در حملات DDoS، بیش از یک دستگاه برای انجام حمله مورد استفاده قرار میگیرد.
برخی از انواع رایج حملات DDoS
انواع مختلفی از حملات DDoS وجود دارند که هر یک، اجزای مختلفی از اتصال شبکه را مورد هدف قرار میدهند. برای درک نحوه عملکرد حملات DDoS مختلف، لازم است بدانیم که چگونه یک اتصال شبکه ایجاد میشود.
یک اتصال شبکه در اینترنت از اجزای مختلف یا "لایه ها" تشکیل شده است.
مدل OSI، که در زیر قابل مشاهده است، یک چارچوب مفهومی برای توصیف اتصال شبکه در 7 لایه مجزا میباشد.
در حالی که تقریباً هدف تمامی حملات DDoS، غلبه بر دستگاه یا شبکه هدف با روانه کردن سیلی از ترافیک است، این نوع حملات را میتوان به سه دسته تقسیمبندی کرد. یک مهاجم ممکن است از یک یا چند روش حمله مختلف در پاسخ به اقدامات مقابلهای انجام شده توسط هدف استفاده نماید.
حملات لایه اپلیکیشن
هدف حمله
حمله لایه Application که اغلب از آن به عنوان حمله DDoS لایه 7 (با اشاره به لایه هفتم مدل OSI) از آن یاد می شود، با هدف تخلیه منابع هدف برای ایجاد اختلال در سرویسدهی صورت میپذیرد.
این حملات، لایهای را مورد هدف قرار میدهند که در آن صفحات وب روی سرور تولید میگردند و به درخواست های HTTP تحویل داده می شوند. اجرای یک درخواست HTTP از نظر محاسباتی در سمت کلاینت ارزان است، اما پاسخگویی به آن برای سرور هدف ممکن است گران باشد، زیرا سرور اغلب برای ایجاد یک صفحه وب چندین فایل را بارگیری میکند و از پایگاه داده کمک میگیرد.
دفاع و مقابله با حملات لایه 7 به دلیل دشوار بودن تشخیص ترافیک مخرب از ترافیک قانونی امری دشوار است.
حملات HTTP Flood
این حمله شبیه به رفرش کردن یک مرورگر وب بصورت متعدد، همزمان و در کامپیوترهای مختلف است. در این صورت، تعداد زیادی درخواست HTTP به سرور سرازیر میشود که در نتیجه، منجر به عدم امکان سرویس دهی میگردند.
در حملات HTTP Flood، حملهکننده از روشی مشابه با حمله DoS استفاده میکند، با این تفاوت که درخواستهای زیادی به سرور وب ارسال میکند. این درخواستها معمولاً به شکل درخواستهای HTTP مطرح میشوند، مانند درخواستهای GET، POST و HEAD. این درخواستها ممکن است حاوی دادههای نامعتبر، ناشناخته یا جعلی باشند که به منظور محدود کردن سرور وب ارسال میگردند.
علاوه بر این، حملهکننده ممکن است از باتنتها برای انجام حمله استفاده کند و بدین ترتیب از چندین دستگاه به طور همزمان به سرور وب درخواستهای بیرویه ارسال میشود. این باعث میشود حجم ترافیک به سمت سرور وب افزایش یابد و در نهایت ممکن است منجر به قطع سرویسدهی شود.
برای مقابله با حملات HTTP Flood، میتوان از روشهای متعددی مانند فیلترینگ درخواستهای غیرمجاز، استفاده از واسطههای CDN، محدود کردن تعداد درخواستها از یک آدرس IP و استفاده از سیستمهای تشخیص حملات استفاده نمود.
حملات پروتکلی
هدف حملات پروتکلی
حملات پروتکلی، که به عنوان حملات State-Exhaustion نیز شناخته میشوند، با مصرف بیش از حد منابع سرور و یا منابع تجهیزات شبکه مانند فایروال ها و Load Balancerها، باعث اختلال در سرویس میشوند.
هدف اصلی حملات پروتکلی ایجاد اختلال در سرویسدهی سیستم مورد هدف است. حملهکنندگان تلاش میکنند منابع سرور و شبکه را به طور نامحدود مصرف کرده و به سرویسدهی آنها آسیب بزنند. این منابع میتواند شامل سختافزارها (مثل پردازنده و حافظه) یا منابع شبکه (مانند پهنای باند) باشند.
منابع سرور و شبکه در برابر حملات پروتکلی به دلیل آسیبپذیری در طراحی پروتکل، به راحتی قابل تخریب هستند. حملهکنندگان در این نوع حملات از آسیبپذیریهای پروتکلی برای باز کردن ارتباط و ارسال درخواست بیش از حد استفاده میکنند، به همین دلیل، منابع سرور و شبکه به دلیل استفاده بیش از حد اشباع میشوند و سرویسدهی مختل میگردد.
حملات SYN Flood
SYN Flood نوعی حمله بر بستر شبکه است که با استفاده از پروتکل TCP، سرورها را به شکل غیرمنتظره بارگیری میکند و از منابع سرور به طور بیش از حد استفاده مینماید. حملهکننده با ارسال پیغام SYN تلاش میکند تا یک اتصال TCP برقرار کند، اما پس از دریافت پاسخ SYN-ACK از سرور، پاسخ ACK را ارسال نمیکند و اتصال را بسته و درخواست جدیدی را ارسال میکند. این عمل تکراری میتواند باعث ایجاد صدمات جدی به سرور و شبکه شود و سرور را از دسترس خارج نماید.
از جمله روشهای پیشگیری از SYN Flood میتوان به استفاده از روشهایی مانند شناسایی ترافیک ناهنجار، تنظیم سرورها به منظور محدودسازی تعداد اتصالات همزمان و استفاده از راهکارهای مقاومت در برابر حملات SYN Flood مانند Rate Limiting اشاره نمود.
حملات حجمی (Volumetric Attack)
هدف حملات
این دسته از حملات با مصرف تمام پهنای باند موجود، باعث ایجاد ازدحام می شوند. در حملات حجمی یا Volumetric Attacks، حملهکننده با ایجاد ترافیک بالا و یا با دسترسی به منابعی که برای مقاومت در برابر این نوع حملات طراحی شدهاند، سعی در از کار انداختن سیستمها دارد.
در این نوع حملات، حملهکننده معمولا از روشهای مختلفی برای افزایش ترافیک استفاده میکند، مانند استفاده از برنامههای نفوذی (malware)، سوئیچهای شبکه (switches)، رباتهای شبکه (botnets) و ... . در هر صورت، هدف اصلی این نوع حملات، ایجاد اختلال در عملکرد سیستم و از کار انداختن آن است.
حمله DNS Amplification
حمله DNS Amplification یک نوع حمله توزیع شده است که در آن، هکرها از طریق استفاده از سرورهای DNS، تعداد زیادی درخواست را به سرورهای هدف ارسال میکنند تا پهنای باند را اشغال کنند و باعث کاهش سرعت و یا قطعی خدمات شوند.
در این نوع حمله، هکرها از یک سرور DNS کمک میگیرند که قادر است به درخواست های DNS پاسخ دهد. این سرور DNS میتواند به عنوان یک سرور میانی عمل کرده و درخواستهای DNS را از کاربران دریافت کرده و سپس آن ها را به سرور DNS های دیگر برای پاسخ دادن ارسال کند.
در حمله DNS Amplification، حجم دادههای ارسالی به سرور هدف افزایش مییابد و سرعت پاسخ سرور هدف به شدت کاهش مییابد.
راه های مقابله با حملات DDoS
همانطور که گفته شد، حمله DDoS (Distributed Denial of Service) یکی از شیوه های شایع حملات سایبری است که در آن حمله کنندگان با استفاده از دستگاه های مختلف، به صورت همزمان ترافیک غیرمعمول بر روی یک سرور یا سرویس ارسال می کنند تا سرویس مورد نظر برای کاربران از دسترس خارج شود. برای مقابله با حملات DDoS، می توان از روش های زیر استفاده نمود:
1. تشخیص و مانیتورینگ: تشخیص زودهنگام حملات DDoS و مانیتورینگ ترافیک شبکه و سیستم، اولین و مهم ترین راهکار برای مقابله با حملات DDoS است. برای این منظور، می توان از سیستم تعبیه شده (Embedded System) در شبکه، سیستم های مانیتورینگ ترافیک شبکه و سرویس های مشابه استفاده نمود.
2. توزیع بار: توزیع بار یا Load Balancing، راهکار دیگری است که به راحتی میتوانید از آن برای مقابله با حملات DDoS استفاده کنید. با استفاده از این روش، ترافیک ورودی به سرور به چندین سرور توزیع میشود و این امکان را به شما میدهد تا ترافیک را به چندین قسمت تقسیم کرده و حملات DDoS را کاهش دهید.
3. استفاده از Firewall: فایروال، به عنوان یکی از اصلیترین ابزار محافظت از شبکه و سرور، میتواند در مقابله با حملات DDoS موثر باشد. با استفاده از Firewall، شما میتوانید ترافیک مشکوک را شناسایی و از ورود آن به شبکه و سرور جلوگیری نمایید.
4. استفاده از CDN: با استفاده از CDN یا شبکه توزیع محتوا، شما میتوانید سرورهای خود را با سرورهای مختلفی در اقصی نقاط جهان ارتباط داده و ترافیک خود را به سایر سرورها انتقال دهید. این به شما کمک میکند که بار خود را توزیع کنید و ترافیک را کاهش دهید.
5. محافظت از سیستم عامل و برنامههای نصب شده: یکی از روشهایی که به شما کمک میکند تا با حملات DDoS مقابله کنید، محافظت از سیستم عامل و برنامههای نصب شده است. با انجام به روزرسانی های لازم و رعایت تمامی روشهای امنیتی، میتوانید سیستم خود را در برابر حملات DDoS و سایر حملات سایبری ارتقاء بخشید.
6. استفاده از راهکارهای Anti-DDoS: راهکارهای Anti-DDoS، ابزارهایی هستند که برای مقابله با حملات DDoS طراحی شدهاند. این راهکارها میتوانند شامل سخت افزارهایی مانند سوئیچهای Anti-DDoS و یا نرمافزارهایی مانند شبیهسازهای حملات DDoS باشند.
مسیریابی سیاه چاله (Black Hole Routing)
مسیریابی سیاه چاله یا Black Hole Routing یک تکنیک مسیریابی در شبکههای کامپیوتری است که برای دفع حملات محرومسازی از سرویس مورد استفاده قرار میگیرد. در این تکنیک، ترافیک شبکه به سمت یک مسیریاب یا Router که به عنوان سیاه چاله شناخته میشود، هدایت میشود. این روتر بدون ارسال هیچ پاسخی به منبع درخواست کننده، بستههای دریافتی را حذف میکند.
این روش به منظور جلوگیری از حملات DDoS و همچنین به منظور پیشگیری از انجام حملات اسکن و پراکندهشدن بستههای ناخواسته در شبکه استفاده میشود. به عنوان مثال، در صورتی که روتری به علت حملهی DDoS زیر بار برود، میتوان آن را به صورت داینامیک به عنوان سیاه چاله تعریف نمود تا بار ترافیکی را از بین ببرد. همچنین در صورتی که نفوذگری در شبکه وجود داشته باشد، روتر سیاه چاله میتواند بستههای دریافتی را حذف کند و به این صورت از بروز مشکلات امنیتی جلوگیری نماید.
محدودیت نرخ درخواست (Rate Limiting)
محدودیت نرخ درخواست (Rate Limiting) به معنای اعمال محدودیت بر روی تعداد درخواستهایی است که یک کاربر میتواند در یک بازه زمانی مشخص به یک سرویسدهنده ارسال کند. این محدودیت به منظور جلوگیری از سوء استفاده یا حملات DDoS به سرویسهای وب و API ها اعمال میشود.
محدودیت نرخ درخواست به صورت زمانی یا تعدادی میتواند تعریف شود، به عنوان مثال، ممکن است یک سرویسدهنده محدودیتی را اعمال کند که کاربران فقط بتوانند حداکثر ۱۰ درخواست در دقیقه ارسال نمایند. در این صورت، اگر کاربر بیشتر از ۱۰ درخواست در دقیقه به سرویسدهنده ارسال کند، درخواستهای اضافی توسط سرویسدهنده نادیده گرفته میشوند و پاسخی به کاربر ارسال نمیگردد.
فایروال برنامه های وب (Web Application Firewall)
فایروال برنامههای وب (Web Application Firewall) نوعی فایروال است که برای حفاظت از برنامههای وب در برابر حملات و تهدیدات امنیتی از جمله SQL Injection، Cross-Site Scripting (XSS)، Cross-Site Request Forgery (CSRF) و بسیاری دیگر از حملات مورد استفاده قرار میگیرد.
این نوع فایروال قادر است ترافیک ورودی به یک برنامه وب را با استفاده از فیلترینگ درون سطح وب بررسی کند تا هرگونه نشتی از اطلاعات حساس یا حملات مخرب، شناسایی و مسدود شود. برخلاف فایروال شبکه که تنها بر اساس نوع ترافیک ورودی به شبکه فیلترینگ را انجام میدهد، فایروال برنامههای وب قادر است به صورت مستقیم بر روی دادههای مربوط به برنامههای وب فیلترینگ را اعمال نماید.
فایروال برنامههای وب میتواند به صورت سختافزاری یا نرمافزاری پیادهسازی و اجرا شود. در هر دو حالت، این فایروال باید بهروزرسانی های لازم روی آن بطور مستمر اعمال گردد تا قادر باشد در برابر حملات جدید و پیشرفته، ایمنی بیشتری را فراهم نماید.
نتیجه گیری
در کل، حملات DoS و DDoS یکی از مشکلات جدی امنیتی هستند که میتوانند به شدت سیستمهای شبکه را تحت تأثیر قرار دهند و مانع از دسترسی کاربران به سرویسهای آنلاین شوند. حملات پروتکلی، SYN Flood و حملات حجمی از جمله حملات رایج در این زمینه هستند.
برای جلوگیری از این حملات، لازم است که سیستمهای شبکه با استفاده از راهکارهایی مانند شبکههای CDN و WAF، امنیت خود را افزایش داده و منابع سرور و پهنای باند را ارتقاء دهند. همچنین، شناسایی سریع و به موقع ترافیک ناهنجار نیز میتواند به شدت در جلوگیری از حملات شبکه و افزایش امنیت شبکه مؤثر باشد.
مقالات مرتبط
چگونه اثر حمله های DosوDDOS را با روترهای میکروتیک کاهش دهیم؟