حمله DDoS (Distributed Denial of Service یا به اصطلاح دیداس) یکی از انواع حملات سایبری است که با هدف ایجاد اختلال در ترافیک یک سرور، سرویس یا شبکه انجام میشود. نتیجه این حمله از کار افتادن سرویس مورد نظر و قطع دسترسی کاربران عادی به آن است. با ابر زَس همراه باشید تا در این مقاله بررسی کنیم که حمله محرومسازی از سرویس (DoS) و نوع خطرناکتر آن یعنی محرومسازی از سرویس توزیعشده یا حمله DDoS چیست، چگونه کار میکند و چطور باید با آن مقابله کنیم.
حمله DDoS چیست؟
حملات سایبری از زمان پیدایش اینترنت وجود داشته و روزبهروز پیشرفتهتر و پیچیدهتر شدهاند. بسیاری از این حملات از آسیبپذیریهای ساختاری بالقوه در سرویسهای آنلاین سوء استفاده میکنند. ویژگیهای خاصی مانند متمرکز بودن سرور در معماری کلاینت/سرور و منابع متعدد در معماری همتا به همتا (Peer to Peer) به روشهای مختلف قابل سوء استفاده هستند. بین حملات مبتنی بر شبکه، حمله محرومسازی از سرویس (Denial of Service یا DoS) یکی از مشهورترین و البته پرکاربردترین حملات محسوب میشود. این حمله با هدف ایجاد سربار روی یک سرویس موجود در یک شبکه متصل به اینترنت صورت میگیرد تا آن را از دسترس خارج کند. حمله محرومسازی از سرویس میتواند از یک منبع (DoS) یا منابع متعدد (DDoS یا حمله محرومسازی از سرویس توزیع شده) انجام شود.
حمله محرومسازی از سرویس (DoS) چگونه انجام میشود؟
حمله محرومسازی از سرویس (DoS) بهمنظور افزایش بار یک سرویس در شبکه و از دسترس خارج کردن آن انجام میشود. متداولترین شکل اجرای این حمله، ارسال تعداد بسیار زیادی درخواست به سرویسدهنده است و این کار تا جایی ادامه پیدا میکند که سرور نتواند به هیچ درخواستی پاسخ دهد.
معمولا DoS به حمله با تعداد پرشماری درخواست اطلاق میشود اما روشهای دیگری برای محرومسازی از سرویس نیز وجود دارند که از ویژگیهای خاص یک سرویس نشأت میگیرند. در این روشها میتوان با تعداد کمتری درخواست نیز سرویس را از کار انداخت. برای اجرای یک حمله ساده DoS مهاجم باید یک هدف (مانند یک سرور در معماری کلاینت/سرور) را انتخاب کرده و بهطور منظم درخواستهای زیادی را برای آن ارسال کند. از آنجا که این درخواستها از اساس معتبر نیستند، مهاجم پاسخهای سرور را نادیده میگیرد و خودش دچار مشکل نمیشود.
علاوه بر این، فرد مهاجم دائما آدرس منبع درخواستهای خود را تغییر میدهد تا سامانههای امنیتی نصب شده روی سرور یا شبکه نتوانند درخواستها را شناسایی کرده و آنها را مسدود نمایند. بدین ترتیب یک فرد مهاجم میتواند خود را بهعنوان دهها یا صدها کاربر جعلی جا بزند. همچنین هدف چنین حملاتی تنها خود سرویس بهعنوان یک نرمافزار کامل و یکپارچه نیستند. گاهی اوقات مهاجمین میتوانند آسیبپذیریهای موجود در پروتکلها یا زیرسیستمهای تشکیل دهنده سرویس را هدف بگیرند.
اگرچه استراتژیهای حمله محرومسازی از سرویس (DoS) کاملا عمومی و قابل استفاده مجدد هستند، اما یک مهاجم با تعداد معدودی کامپیوتر و تعداد زیادی کاربر جعلی نمیتواند بهاندازه کافی ترافیک تولید کند. این محدودیتها معمولا ریشه سختافزاری دارند، یعنی بهعنوان مثال کارت شبکه شما قادر نیست تعداد زیادی درخواست را در ثانیه به مقصد بفرستد. مهاجمین برای غلبه بر این مشکل از رویکردهای توزیع شده برای اجرای حمله محرومسازی از سرویس استفاده میکنند که به آن DDoS میگویند.
حمله DDoS چیست؟
شاید برایتان سوال باشد که تفاوت حمله DoS و حمله DDoS چیست؟ این دو حمله از نظر روش اجرا و هدف نهایی کاملا شبیه یکدیگر هستند، اما استفاده از تعداد زیادی منبع توزیع شده و غیر جعلی باعث میشود تا حمله دیداس (DDoS) بسیار قدرتمندتر و مخربتر باشد. ابتدا باید بدانیم چطور میتوان حمله DoS را بهشکل توزیعشده انجام داد.
برای توزیع حمله، فرد مهاجم ابتدا باید تعداد زیادی کامپیوتر متعلق به کاربران واقعی اینترنت را آلوده کند. برای انجام این کار از برنامههای بدافزار (malware) استفاده میشود. بنابراین فرد مهاجم قبل از تصمیمگیری برای از دسترس خارج کردن یک سرویس باید این بدافزار را از طریق اینترنت و به روشهای معمول مانند مهندسی اجتماعی (Social Engineering)، ورمینگ (Worming) یا دیگر تکنیکهای متداول آلودهسازی، به کامپیوترهای مختلف تزریق کند. این بدافزار میتواند کامپیوترهای آلوده را به ابزار حمله DDoS تبدیل نماید که به آنها بات (bot) گفته میشود.
در حالت معمول، بدافزار DDoS در سیستم کامپیوتری میزبان پنهان شده و خللی در عملیات روزمره آن ایجاد نمیکند. تنها زمانی که مهاجم حمله دیداس خود را شروع میکند، بدافزار از حالت پنهان خارج شده و فعالیت خود را آغاز مینماید. بنابراین کاربران بهسختی میتوانند حضور این بدافزار را داخل کامپیوتر خود تشخیص داده و آن را حذف کنند. مجموعه کامپیوترهای آلوده به این بدافزار را باتنت (botnet) میگویند. فرد مهاجم، باتنت را یه گونهای پیکربندی میکند که همزمان بتوانند درخواستهای خود را با یک هدف مشخص به سرور هدف ارسال کنند. حمله DDoS بهطور کلی کارآمدتر از حمله DoS است و دلیل آن به موارد زیر برمیگردد:
- سختی شناسایی و مسدود کردن منابع: از آنجا که حمله DDoS از موقعیتهای مکانی مختلفی انجام میشود، بهسختی میتوان درخواستهای باتنت را از درخواستهای کاربران واقعی تفکیک کرد.
- سرعت و حجم ترافیک بالا: حمله DDoS با شدت بالا شروع میشود و سیستمهای امنیتی زمان کافی برای پاسخ و مسدود کردن آن را ندارند. حجم ترافیک این نوع حملات دیداس نیز فوقالعاده زیاد است.
- استراتژی پیچیده: فرد مهاجم با در اختیار داشتن تعداد زیادی کامپیوتر آلوده میتواند سیستمهای امنیتی را فریب داده و رفتار باتها را تا جای ممکن به رفتار کاربران عادی نزدیک کند. در چنین شرایطی، حمله DDoS شباهت زیادی به اورلود شدن معمول سرویس خواهد داشت.
در صورتیکه قصد دارید در مورد مقایسه این دو حمله بیشتر بدانید پیشنهاد میکنیم مطلب «تفاوت حمله Dos و DDoS» را مطالعه کنید.
تکنیکهای انواع حملات DDoS چیست؟
در ادامه مطلب «حمله DDoS چیست؟» به انوع تکنیکهای این حمله میپردازیم. همانطور که گفتیم، حملات DDoS و DoS هدف مشترکی دارند: از کار انداختن یک سرویس. برای دسترسی به این هدف، مهاجمین معمولا یکی از دو هدف زیر را دنبال میکنند: مصرف تمام منابع سرور هدف تا زمانی که سرور به راهاندازی مجدد نیاز داشته باشد، یا افزایش بار کانال ارتباطی به گونهای که سرور قابلیت ارتباط خود با کاربران را از دست بدهد. از نظر الگوریتمی، مهاجمین معمولا پروتکلها و ویژگیهای سرویسها را برای اجرای حمله هدف میگیرند. در حال حاضر چهار روش متداول برای حمله DDoS مورد استفاده قرار میگیرد که در ادامه مطلب «حمله DDoS چیست؟» بهطور خلاصه آنها را مرور میکنیم.
حمله DDoS به روش SYN Flood
حمله DDoS با روش SYN Flood یا جریان سیلآسای SYN که گاهی اوقات حمله نیمه-باز (half-open) نیز نامیده میشود، از روش برقراری ارتباط در پروتکل TCP استفاده میکند. هدف اصلی این تکنیک، ارسال تعداد پرشماری درخواست همگامسازی به سرور TCP است. برای آشنایی بیشتر با حملات فلاد پیشنهاد میکنیم مطلب انواع حمله flood را مطالعه نمایید. علاوه بر این در مطلبی دیگر در مورد حملات SYN Flood و نحوه مقابله با آن توضیح دادهایم.
مشکل اینجاست که پس از این درخواستهای همگامسازی (Synchronization)، پیام تأیید (Acknowledgement) به سرور برنمیگردد و هیچ ارتباط واقعی شکل نمیگیرد. بدین ترتیب، سرور TCP تا مدتی منتظر دریافت پیام تأیید کاربران جعلی باقی میماند و در نهایت بهخاطر اتمام زمان انتظار (timeout) ارتباط قطع میشود. با این حال تعداد بسیار زیاد درخواستهای جعلی باعث مصرف منایع سرور خواهد شد. اورلود شدن سرور با این درخواستها و انتظار برای دریافت پیام تأیید، ظرفیت سرور برای برقراری ارتباط جدید را پر کرده و حتی کاربران واقعی نیز نمیتوانند پیامی را از این سرور دریافت نمایند.
حمله DDoS به روش TTL Expiry
در روش حمله TTL Expiry روترهای شبکه مرکزی هدف قرار میگیرند. ایده اصلی در این حمله DDoS این است که تعداد پرشماری بسته به یک روتر خاص ارسال شود اما به شرط اینکه شمارشگر TTL این بستهها دقیقا در همان روتر خاص به پایان برسد. زمانی که شمارشگر TTL یا در واقع طول عمر بسته به پایان برسد، روتر باید منابع پردازشی خود را به خدمت گرفته و پیام ۱۱ پروتکل ICMP یعنی «تجاوز از حد زمانی» را ارسال نماید.
از آنجا که تعداد زیادی بسته در روتر منقضی میشوند و منابع پردازشی روترها نیز بسیار محدود هستند، این حمله باعث اختلال و از کار افتادن روتر خواهد شد. پس از حمله DDoS با این روش، روتر تبدیل به گلوگاه شبکه میشود و دیگر توان پاسخدهی را ندارد.
حمله DDoS به روش Amplification
حملات Amplification از روش جعل درخواستهایی با آدرس IP سرور قربانی و ارسال آنها به دیگر سرویسها استفاده میکند. این سرویسها معمولا حجم زیادی از داده و ترافیک را به درخواستکننده برمیگردانند. نمونه سرویسهای مورد استفاده در این نوع حمله، سرویسهای نام دامنه (DNS) و سرویس پروتکل زمان شبکه (NTP) هستند.
در حمله DDoS از نوع Amplification با استفاده از سرویس DNS، مهاجم میتواند پاسخ درخواستهای جعلی برای جستجوی نام دامنه را به سرور قربانی فرستاده و ترافیک ورودی شدیدی ایجاد نماید. در روش دوم یعنی NTP فرد مهاجم از فرایندی به نام monlist استفاده میکند. فرایند monlist اطلاعات صدها میزبان که اخیرا درخواست خود را به سرور NTP ارسال کردهاند، برمیگرداند. بنابراین یک درخواست ساده و عادی میتواند حجم بسیار زیادی از ترافیک را به سرور قربانی ارسال نماید.
از حملات DDoS که از تکنیک Amplification استفاده میکنند میتوان به حمله Smurf اشاره کرد. در این حمله، هکر بستههای درخواست ICMP (یا ICMP Echo Requests) را به همه دستگاههای موجود در یک شبکه بهصورت برادکست (broadcast) ارسال میکند. اما در هر یک از این بستهها، به جای اینکه آدرس آیپی فرستنده قرار گرفته باشد، یک آدرس آیپی جعلی برای بازگشت پاسخ (ICMP Echo Reply) ذکر شده که در واقع آدرس آیپی قربانی است.
حمله DDoS هدفمند با نرخ پایین
برخلاف دیگر انواع تکنیکهای حمله دیداس که عمومی محسوب میشوند، حملات هدفمند با نرخ پایین (Low-Rate Targeted Attack) بهطور ویژه برای سوء استفاده از ویژگیهای متمایز یک سرویس خاص طراحی شدهاند. در این حملات، هدف اصلی ایجاد حجم بسیار زیاد ترافیک مصنوعی شبکه نیست، بلکه مهاجمین میخواهند با ارسال حداقل مقدار ترافیک، بیشترین تأثیر مخرب را روی سرویس داشته باشند.
بهعنوان مثال میتوان یک سرویس صوتی/تصویری (AV) تحت شبکه را در نظر گرفت. فرد مهاجم میتواند بستههایی را جعل کرده و امضاها و الگوهای متعددی را داخل آن تعبیه کند تا پردازش آنها به مصرف منابع سختافزاری و نرمافزاری زیادی نیاز داشته باشد. مهمترین مزیت حمله DDoS هدفمند این است که مهاجم میتواند بهسادگی رفتار کاربران واقعی را جعل کرده و شناسایی حمله توسط سیستمهای امنیتی را دشوار سازد.
چگونه حمله DDoS را دفع کنیم؟
مهمترین نکته برای دفع حمله DDoS تفکیک ترافیک ورودی واقعی و ترافیک جعلی ناشی از حمله است. اگر وبسایت شما با عرضه یک محصول جدید با هجوم کاربران مواجه شده، نمیتوان این وضعیت را مشابه حمله DDoS در نظر گرفت. بنابراین باید کاربران واقعی را از مهاجمین یا باتنت تفکیک کرد. در شرایط کنونی دنیای تکنولوژی و اینترنت، مهاجمین از تکنیکهای مختلفی برای حمله دیداس استفاده کرده و حتی گاهی اوقات با ترکیب تکنیکهای مختلف، شناسایی و مقابله با حمله را دشوار میکنند. بهعنوان مثال میتوان تکنیکهای DNS Amplification و HTTP Flood را در لایههای مختلف شبکه با یکدیگر ترکیب کرد. در ادامه بعضی از روشهای دفع حمله دیداس یا پیشگیری از بروز آنها را مرور میکنیم.
مسیریابی سیاهچاله
یکی از روشهای مقابله با حمله DDoS در تمامی شبکهها، ایجاد یک سیاهچاله و هدایت ترافیک به سمت آن است. در سادهترین حالت این روش و زمانی که فیلترینگ سیاهچاله بدون شرط خاصی پیادهسازی میشود، تمام ترافیک شبکه واقعی و جعلی به یک مقصد پوچ یا سیاهچاله هدایت شده و از شبکه خارج میگردند. بهعنوان مثال اگر سرور شما مورد حمله DDoS قرار بگیرد، شرکت تأمینکننده اینترنت (ISP) برای دفاع از این سرور میتواند تمام ترافیک سایت را به سیاهچاله هدایت کند. البته این راهکار چندان ایدهآل نیست، چون مهاجم دقیقا به هدف خودش یعنی از کار انداختن شبکه یا سرور شما خواهد رسید.
محدودیت نرخ درخواست
کاهش تعداد درخواستهای قابل قبول توسط سرور در بازه زمانی مشخص یکی دیگر از روشهای دفع حمله محرومسازی از سرویس توزیعشده (DDoS) است. این راهکار میتواند جلوی سرقت محتوا را بگیرد یا تلاش برای حمله بروت فورس (brute force) برای دسترسی غیر مجاز را بیاثر کند اما بهتنهایی برای مقابله با حملات پیچیده DDoS کافی نیست. با این حال همواره میتوان به این روش برای کاهش اثر حمله DDoS اعتماد کرد.
فایروال وب اپلیکیشن
فایروال وب اپلیکیشن (Web Application Firewall یا WAF) ابزاری است که به دفع حمله دیداس به لایه هفت مدل OSI یا همان لایه اپلیکیشن کمک میکند. با تعبیه WAF بین اینترنت و سرور، این دیوار آتش میتواند نقش یک پراکسی معکوس (Reverse Proxy) را ایفا کرده و سرور را از انواع خاصی از ترافیک مخرب محافظت نماید. این ابزار با فیلتر کردن درخواستها بر اساس قواعد مشخص و شناسایی حمله دیداس به دفع حمله به لایه اپلیکیشن کمک میکند. یکی از مهمترین مزایای WAF این است که میتوانید بسته به نوع حمله، بهسرعت قوانین را تغییر داده یا قوانین جدیدی را پیادهسازی کنید. علاوه بر WAF، فایروال لایه ۳ و ۴ میتواند از حملات DDoS مبتنی بر لایه ۳ و ۴ مدل OSI جلوگیری نماید.
انتشار شبکه Anycast
این رویکرد از شبکه Anycast برای پخش ترافیک مخرب بین شبکه توزیعشدهای از سرورها استفاده میکند تا در نهایت، ترافیک ورودی از حمله DDoS در شبکه پراکنده و بیاثر شود. اثربخشی شبکه Anycast برای دفع حمله دیداس به ابعاد حمله و گستردگی شبکه هدف بستگی دارد.
جمعبندی
در مطلب «حمله DDoS چیست؟» به تکنیکهای این حمله، انواع و راهکارهای جلوگیری از آن پرداختیم. حملات محرومسازی از سرویس (DoS) و نوع مخربتر آن یعنی محرومسازی از سرویس توزیعشده (DDoS) هر سال قویتر، پیچیدهتر و گستردهتر از قبل میشوند. مایکروسافت در سال ۲۰۲۲ میلادی بهطور میانگین در هر روز ۱۴۳۵ حمله دیداس را شناسایی کرده است. توجه کنید که این آمار فقط مربوط به مایکروسافت است و آمار کلی بسیار بیشتر از اینهاست. بنابراین باید هرچه سریعتر به فکر محافظت از اپلیکیشنها، سرویسها و زیرساخت فیزیکی سازمان خود باشید. یکی از بهترین راهکارها برای پیشگیری از حمله DDoS استفاده از سرویسهای حفاظتی از جمله سرویس کلود گارد زَس است.
در بلاگ ابر زَس میتوانید مطالب بیشتر در حوزه رایانش ابری را مطالعه نمایید.