حمله DDOS چیست؟
حمله DDOS یا DOS (مخفف Denial Of Service Attack) به زبان ساده یعنی سرازیر کردن تقاضاهای زیاد به یک سرور یا کامپیوتر هدف.
این حمله باعث استفاده زیاد از منابع سرور شده و سرویسدهی عادی آن دچار اختلال میشود.
در این نوع از حملات، در طی یک بازه زمانی مشخص و به صورت مداوم، از یک سرور (با ip مشخص) توسط تعداد زیادی کامپیوتر، درخواست دریافت اطلاعات میشود.
به دلیل محدود بودن قدرت پردازش سرور، سرور دچار اختلال در سرویسدهی یا حتی down میشود.
با استفاده از ابزارهای مانیتورینگ سرور میتوانید تغییرات ناگهانی مصرف از منابع خود را مشاهده کنید.
آموزش استفاده از این ابزارها در “میزان استفاده از منابع” و “مانیتورینگ در Proxmox” قابل دسترسی است.
حملات DDOS اثربخشی خود را با استفاده از چندین سیستم کامپیوتری در معرض خطر به عنوان منابع حمله ترافیک بدست میآورند.
هدفهای حمله، میتوانند شامل کامپیوترها و دیگر منابع شبکه مثل دستگاههای lOT باشند.
به بیان سادهتر، حمله DDOS مانند ترافیک نامنظمی است که بزرگراه را بندآورده و مانع از حرکت منظم ماشینها برای رسیدن به مقصد شده است.
حمله DDOS چگونه انجام میگیرد؟
حمله DDOS، به یک مهاجم برای کنترل یک شبکه از دستگاههای آنلاین و انجام حمله نیاز دارد.
کامپیوترها و دیگر دستگاهها (مانند دستگاههای IOT) با نرمافزارهای مخرب آلوده شده و هر کدام به یک ربات که از دستورات مهاجم پیروی میکند، تبدیل میشوند.
بعد از آن مهاجم گروهی از رباتها را دارد که به عنوان یک باتنت ( botnet) نامگذاری میشوند.
هنگام ایجاد یک باتنت، مهاجم با ارسال دستورالعملهایی به هر ربات، قادر به هدایت رباتها میباشد.
هنگامی که آدرس ip یک قربانی توسط باتنت مورد هدف قرار میگیرد، هر ربات با ارسال درخواستهایی به هدف، سرور یا شبکه هدف را با انبوهی از درخواستها روبرو میکند.
در نتیجه سرویسدهی سرور دچار اختلال میشود.
از آنجا که هر ربات یک دستگاه اینترنت قانونی است، تفکیک ترافیک حمله از ترافیک عادی کار دشواریست.
انواع متداول حمله DDOS چیست؟
بردارهای متفاوت حمله DDOS اجزای مختلف یک اتصال شبکه را هدف قرار میدهند.
برای درک اینکه حملات DDOS مختلف چگونه کار میکنند، ابتدا لازم است که بدانید یک اتصال شبکه چگونه ایجاد میشود.
یک اتصال شبکه در اینترنت از مجموعه اجزای مختلف یا “لایهها” تشکیل شده است.
همانند شروع ساختن یک خانه از سطح زمین، در مدل هر مرحله هدف متفاوتی دارد.
مدل OSI، یک چارچوب مفهومی است که برای توصیف اتصال شبکه در ۷ لایه متمایز استفاده میشود.
در حالی که تقریبا تمام حملات DDOS شامل غافلگیر کردن یک وسیله یا شبکه هدف با ترافیک میشوند، حملات را می توان به سه دسته تقسیم کرد.
مهاجم ممکن است از یک یا چند بردار حمله مختلف استفاده کند یا به طور بالقوه بردارهای چرخه حمله بر اساس اقدامات متقابلی که توسط هدف انجام می شود پایه ریزی میگردد.
حملات لایه کاربردی (Application)
هدف حمله:
این نوع حمله گاهی اوقات با نام حمله DDOS لایه ۷ خوانده میشود(با اشاره به لایه ۷ مدل OSI).
هدف این حملات، خسته کردن منابع هدف است.
این دسته از حملات، لایهای را که در آن وبسایتها روی سرور ایجاد شده هدف قرار میدهند.
اجرای یک درخواست HTTP ساده، در سمت کلاینت ارزان است اما پاسخ به آن در سمت سرور هدف پرهزینه است، چون اغلب سرور بایستی چندین فایل را بارگذاری کرده و کوئریهای پایگاهداده را برای ایجاد یک صفحه وب اجرا کند.
مقابله با حملات لایه ۷ دشوار است چون تشخیص اینکه ترافیک مخرب است یا عادی کار سختی است.
انواع حملات لایه کاربردی:
حملات HTTP Flood
این حمله مثل زدن دکمه refresh در مرورگر است که بارها در چندین کامپیوتر مختلف در یک زمان انجام شود.
بنابراین تعداد زیادی از درخواست های HTTP، سرور را منهدم کرده و منجر به انکار سرویس میشود.
این مدل از حملات DDOS میتواند از ساده تا پیچیده باشد.
پیاده سازیهای سادهتر این نوع حمله ممکن است به یک URL با همان محدوده آدرس IP حمله، مراجع و عوامل کاربر دسترسی داشته باشد. نسخههای پیچیده ممکن است از تعداد زیادی آدرس IPهای حمله استفاده کنند و آدرسهای تصادفی را با استفاده از ارجاعهای تصادفی و عوامل کاربر هدف قرار دهند.
حملات پروتکل
هدف حمله:
حملات پروتکل به عنوان حملات خستگی نیز شناخته میشوند.
این حملات با مصرف تمام ظرفیت موجود وبسرورها یا منابع واسط مانند فایروالها و متعادل کنندههای بار، باعث اختلال در خدمات میشوند.
حملات پروتکل، از نقاط ضعف لایه ۳ و ۴ پشته پروتکل استفاده میکنند تا هدف غیرقابل دسترس را به دست آوردند.
مثالی از حمله پروتکل:
حمله SYN flood
حمله SYN Flood مشابه یک کارگر در اتاق انبار است که درخواستی(درخواست مشتری) از قسمت جلوی فروشگاه دریافت میکند.
این کارگر پس از دریافت درخواست، می رود و بسته را برمیدارد و قبل از آوردن بسته به جلو فروشگاه منتظر تایید میماند.
سپس این کارگر درخواست بستههای زیادی را بدون تأیید دریافت میکند.
این روند تا زمانی ادامه پیدا میکند که کارگر غرق در درخواستهای بدون تایید میشود و عملا از کار میافتد و نمیتواند بستههای بیشتری را تحویل دهد و درخواستها بی پاسخ میمانند.
این حملات از TCP handshake با فرستادن تعداد زیادی از بستههای SYN “درخواست اتصال اولیه” TCP با آدرس IPهای منبع جعلی، سوء استفاده میکنند. ماشین هدف به تک تک درخواستهای اتصال پاسخ میدهد و سپس منتظر مرحله نهایی handshake میماند که هرگز اتفاق نمیافتد و باعث خسته کردن منابع هدف در این فرآیند میگردد.
حملات حجمی :
هدف حمله:
این دسته از حملات تلاش میکنند با استفاده از تمام پهنای باند موجود بین هدف و اینترنت بزرگتر، باعث ایجاد تراکم شوند. حجم زیادی از دادهها با استفاده از یک فرم تقویت یا وسیلهای دیگر برای ایجاد ترافیک بزرگ به سمت یک هدف ارسال میشود، مثل درخواستهای یک باتنت.
حمله DNS Amplification (حمله تقویت DNS ) :
حمله DNS Amplification مثل این است که شخصی با یک رستوران تماس بگیرد و بگوید من یک عدد از تمام غذاهایی که دارید میخواهم، لطفا با من تماس بگیرید و تکتک موارد سفارشم را بگویید، و شماره تلفنی که میدهد همان شماره تلفن هدف باشد.
جالب است نه؟ با یک تلاش بسیار کوچک، نتیجهای بزرگ ایجاد میشود.
با ارسال درخواست با یک آدرس IP تقلبی (آدرس IP واقعی هدف)، به یک سرور DNS باز، آدرس IP مقصد از سرور پاسخ دریافت میکند.
مهاجم درخواست را طوری طراحی کرده است که سرور DNS با مقدار زیادی از دادهها به هدف پاسخ میدهد.
در نتیجه، هدف، یک نسخه تقویت شده از درخواست اولیه مهاجم را دریافت میکند.
چطور می توان میزان خطر حمله را کاهش داد؟
نکته کلیدی در کاهش خطر حمله DDOS، توانایی تمایزدادن بین ترافیک عادی و ترافیک حمله است.
به عنوان مثال، یک شرکت مشهور را در نظر بگیرید که محصول جدید خود را ارائه داده است.
مشتریان مشتاق برای بررسی یا خرید این محصول به وبسایت آن شرکت هجوم میآورند.
در آن زمان قطع ترافیک وبسایت کاری صد در صد اشتباه است.
حال اگر همین شرکت ناگهان با حجم بالایی از ترافیک از سمت افراد ناشناخته مواجه شود، تلاش برای کاهش حملات احتمالا ضروری است.
مشکل اینجاست که جدا کردن مشتری واقعی از ترافیک حمله واقعا سخت است.
چگونه میتوان از حمله DDOS جلوگیری کرد؟
در اینترنت مدرن، ترافیک DDOS به شکلهای مختلفی بوجود می آید.
ترافیک از لحاظ طراحی میتواند از حملات تک منبع غیرمحرمانه تا حملات پیچیده و انعطاف پذیر چند برداری متفاوت باشد.
یک حمله چند برداری DDOS از چندین مسیر حمله به منظور غلبه بر هدف از راههای مختلف استفاده میکند.
این حملات به طور بالقوه مانع تلاشهای مهار حمله در هر یک از این مسیرها میشود.
حملهای که چندین لایه پشته پروتکل را همزمان هدف قرار دهد، مانند DNS amplification (لایه های ۳/۴ هدف گرفته میشود) و حمله HTTP flood (لایه ۷ هدف گرفته میشود)، نمونهای از حمله DDOS چند برداری است.
مقابله با حمله چند برداری DDOS نیاز به استراتژیهای متفاوت برای مقابله با مسیرهای مختلف دارد.
به طور کلی، هرچقدر حمله پیچیدهتر باشد، جدا کردن ترافیک عادی از ترافیک حمله دشوارتر است.
هدف مهاجم این است که این دو را تا حد ممکن با هم ترکیب کند و عمل مهار حملات را تا حد ممکن ناکارآمد کند.
بی تردید تلاشهایی که شامل حذف یا محدود کردن ترافیک میشود، ترافیک خوب را از بد جدا میکند.
همچنین ممکن است با ایجاد تغییر و سازگاری در حمله، اقدامات مخالف متوقف شود.
به منظور غلبه بر یک تلاش اختلال پیچیده، راه حل لایهای مفیدتر خواهد بود.
مسیریابی چاله سیاه
یک راه حل موجود برای تقریبا تمام مدیران شبکه، ایجاد یک مسیر چاله سیاه(Blackhole) و هدایت ترافیک در این مسیر است.
در سادهترین شکل آن، فیلترکردن Blackhole بدون معیار محدودیت خاصی اجرا میشود.
در این حالت هر دو ترافیک مشروع و مخرب شبکه به مسیر صفر یا Blackhole منتقل و از شبکه حذف میشوند.
اگر یک منبع اینترنتی حمله DDOS را تجربه کند، ارائه دهنده اینترنت(ISP) به عنوان یک حرکت دفاعی ممکن است تمام ترافیک سایت را به سیاه چاله هدایت کند.
محدودیت سرعت
یک راه کاهش حملات انکار سرویس، محدود کردن درخواستها میباشد.
منظور،«محدودکردن تعداد درخواستهایی که سرور در یک بازه زمانی مشخص قبول میکند» است.
در حالی که محدودکردن سرعت باعث کاهش سرعت سرقت محتوا از وبسایتها و کاهش میزان حملات بروت فورس میگردد.
به احتمال زیاد به تنهایی برای مقابله با یک حمله پیچیده DDOS مؤثر نخواهد بود.
با این وجود، محدودیت سرعت جزء مفیدی در استراتژی کاهش اثربخشی DDOS است.
فایروال برنامه وب (Web Application Firewall)
یک فایروال برنامه وب یا WAF ابزاریست که میتواند در کاهش حمله DDOS لایه ۷ کمک کند.
با قرار دادن WAF بین اینترنت و یک سرور مبدا، WAF میتواند به عنوان یک پروکسی معکوس عمل کند و کار محافظت سرور هدف از انواع مشخصی از ترافیک مخرب را انجام دهد.
با فیلتر کردن درخواستها بر اساس یک سری از قوانین مورد استفاده برای شناسایی ابزارهای DDoS، با حملات لایه ۷ میتوان مقابله کرد.
یک مقدار کلیدی از یک WAF موثر، توانایی اعمال سریع قوانین سفارشی در پاسخ به حمله است.
انتشار شبکه Anycast
این رویکرد، از شبکه Anycast برای پراکندن ترافیک حمله در یک شبکه استفاده میکند.
مثل تقسیم شدن یک رودخانه خروشان به چندین کانال آب مجزای کوچکتر ، این روش نیز تاثیر ترافیک حمله توزیع شده را به نقطه ای که در آنجا قابل کنترل باشد، و انتشار هر گونه قابلیت اختلال غیرممکن باشد، پخش می کند.