حملات DDoS یا حمله محروم سازی از سرویس، یکی از رایجترین و قدرتمندترین حملات سایبری به شمار میرود که سرورها و سرویسهای آنلاین را مورد هدف قرار میدهد. در این نوع حملات، نفوذگر با ارسال درخواستهای مکرر به یک سرور و افزایش ترافیک، باعث میشود از دسترس خارج شده و ترافیک نرمال دچار اختلال شود.
حملات DDoS، از سیستمهای کامپیوتری پرخطر از جمله رایانهها و منابع شبکه مانند دستگاههای IOT، به عنوان منابع ایجاد ترافیک استفاده میکنند. از منظری دیگر، حملات DDoS همانند ترافیک جادهای هستند، و از ورود منظم ترافیک، به مقصد مورد نظر جلوگیری به عمل میآورند.
عملکرد حملات DDoS چگونه است؟
حملات دیداس، جهت دستیابی و کنترل شبکههای آنلاین و هدایت صحیح حمله، به یک مهاجم نیاز دارد. در این پروسه، کامپیوترها و سایر دستگاهها مانند تجهیزات IOT توسط بدافزار (malware) آلوده میشوند و هر یک را به یک ربات (bot) تبدیل میکنند. سپس مهاجم این توانایی را پیدا میکند تا به رباتها دسترسی پیدا کرده و آنها را از راه دور کنترل کند، که این عملکرد به botnet مشهور است.
پس از ایجاد یک بات نت (botnet)، این امکان برای مهاجم وجود دارد که با ارسال دستورالعملهای بهروز شده به هر ربات از طریق سیستم کنترل از راه دور، دیوایسها را هدایت کند. زمانی که یک آدرس آی پی خاص، مورد هدف بات نت قرار میگیرد، هر ربات شروع به ارسال درخواستهای مکرر به سرور یا شبکه هدف مینمایند. این امر منجر به افزایش بیش از حد ترافیک میشود.
خبر بد این است که چون در دنیای اینترنت، هر ربات به عنوان یک دستگاه قانونی شناخته میشود، پس جداسازی ترافیک ناشی از حمله از ترافیک نرمال، بسیار مشکل است.
انواع حملات DDoS
بردارهای مختلف حملات DDoS، اجزا مختلف اتصال به شبکه را مورد هدف قرار میدهند. برای درک بهتر چگونگی عملکردهای متفاوت حملات DDoS، ابتدا باید بدانید چگونه یک اتصال شبکه ایجاد میگردد.
هر اتصال شبکه بر روی بستر اینترنت، از چندین جزء یا لایههای مختلف، تشکیل شده است. دقیقا مانند مراحل ساخت یک خانه؛ هر مرحله دارای هدف متفاوتی است. مدل OSI یک چارچوب مفهومی جهت توصیف و تفسیر اتصال شبکه در هفت لایه مجزا است.
برای کسب اطلاعات بیشتر در خصوص مدل OSI میتوانید این مقاله را مطالعه کنید: مدل OSI چیست؟
با این که میتوان گفت تقریبا تمامی حملات DDoS با غافلگیر کردن دستگاههای هدف با ایجاد ترافیک بیش از حد اتفاق میافتند، اما باز هم میتوان حملات را به سه دسته تقسیم نمود:
1- Application Layer Attacks
گاهی اوقات با توجه به حملات لایه 7 گفته میشود این حملات با هدف فرسایش منابع مورد نظر ایجاد شدهاند. این حملات، لایهای را مورد هدف قرار میدهند که صفحات وب در سرور بر روی آن ایجاد میگردد و درخواستهای HTTP در آن جا پاسخ داده میشوند.
یک درخواست HTTP، از سمت مشتری به آسانی اجرا میشود اما میتواند برای سرور هدف بسیار مشکل باشد، زیرا سرور باید چندین فایل را لود (load) کند و درخواست پایگاه دادهها را به منظور ایجاد یک صفحه وب اجرا کند. بنابراین دفاع از حملات لایه 7، دشوار است.
این حمله مشابه refresh کردن مکرر مرورگر وب در کامپیوترهای مختلف در یک زمان است. به عبارتی تعداد زیادی درخواست HTTP به سمت سرور ارسال میشوند و در نتیجه سرور از دسترس خارج میگردد. این نوع حمله از ساده تا پیچیده متغیر است.
پیاده سازی سادۀ آن ممکن است دستیابی به یک URL باشد. نوع پیچیده آن ممکن است از تعداد زیادی آدرسهای آی پی جهت حمله استفاده کند و URL ها را به صورت تصادفی مورد هدف قرار دهد.
2- Protocol Attacks
به این نوع حملات، حملات state-exhaustion نیز گفته میشود، که در آن، با مصرف تمامی ظرفیت سرورهای برنامههای وب یا منابعی مانند فایروالها و load balancing ایجاد اختلال میکند. Protocol Attacks از نقاط ضعف موجود در لایه سه و چهار استفاده میکند و دسترسی به هدف را غیر ممکن میکند.
این حمله دقیقا مانند این است که یک کارگر در انباری، درخواست خود را از قسمت جلوی فروشگاه تحویل بگیرد. کارگر، درخواست را دریافت میکند، میرود و بسته مورد نظر را دریافت میکند و قبل از این که بسته را خارج کند، منتظر تاییدیه میماند.
حالا این کارگر درخواستهای خیلی زیادی را بدون تاییدیه دریافت میکند، به طوری که دیگر قادر به حمل آنها نمیباشد و از این پس نمی تواند به درخواست ها پاسخی بدهد.
این حمله با ارسال تعداد زیادی درخواست اتصال (Initial Connection Request)، از قربانی سوء استفاده می کند. دیوایس هدف به هر درخواست کانکشنی (connection request) پاسخ می دهد و منتظر آخرین مرحله در handshake می ماند که قرار نیست اتفاق بیافتد، بلکه باعث فرسایش منابع هدف می گردد.
3- Volumetric Attacks
این دسته از حملات سعی بر ایجاد تراکم بالا بین هدف و اینترنت بزرگ تر، با مصرف کلیه پهنای باند دارند. داده های بسیار زیادی با استفاده از ایجاد ترافیک گسترده مانند درخواست هایی از botnet، به هدف ارسال می گردند.
DNS Amplification مانند این است که شخصی به رستوران زنگ بزند و تمامی آیتمهای منوی رستوران را سفارش بدهد و سپس بگوید حالا به من تلفن کنید و سفارش من را یک به یک بخوانید. به عبارتی با یک تلاش بسیار کم، یک پاسخ بسیار طولانی ایجاد میشود.
توسط ایجاد یک درخواست با آدرس آی پی Spoofed (آدرس آی پی حقیقی هدف) و ارسال آن به open DNS server، آدرس آی پی هدف درخواستی از سرور دریافت میکند. در این حالت مهاجم درخواستها را به گونهای تنظیم میکند که DNS server با مقادیر بسیار زیادی داده به هدف پاسخ دهد. در نتیجه هدف با درخواستهای فراوان ارسال شده از مهاجم روبرو میگردد.
روشهایی برای کاهش حملات DDoS
نگرانی اصلی در مورد کاهش حملات DDoS، تمایز ترافیک معمولی از ترافیک ناشی از حمله میباشد. در اینترنت مدرن، ترافیک DDoS در شکلهای مختلفی ظاهر میشود. کاهش حملات چندبرداری (multi-vector) نیاز به استراتژیهای مختلفی دارد تا بتواند با روشهای مختلف مقابله کند.
به طور کلی هرچه حمله پیچیدهتر باشد، به همان اندازه تشخیص آن از ترافیک نرمال مشکلتر خواهد بود. هدف مهاجم پیچیدهتر کردن این فرایند و در نتیجه مسدود کردن روشهای کاهش حملات است.
تلاشهایی که برای محدود کردن ترافیک صورت میگیرد ممکن است منجر به کاهش ترافیک نرمال گردد. به عبارت دیگر بهترین روش راهحلهای layered میباشند.
– Black Hole Routing
یکی از راهحلهایی که میتوان گفت تقریبا میتواند در دسترس تمامی شبکهها قرار بگیرد، ایجاد یک blackhole route و هدایت ترافیک به مسیر مورد نظر میباشد. زمانی که عمل فیلترینگ بدون هیچگونه معیار محدود کنندهای انجام میشود، کل ترافیک اعم از مخرب و نرمال به blackhole هدایت میگردند و از شبکه دور میشوند.
در صورتی که یکی از ویژگیهای اینترنت تجربه حملات DDoS باشد، ممکن است ISP کل ترافیک را برای دفاع به blackhole بفرستد.
– Rate Limiting
محدود کردن تعداد درخواستهایی که یک سرور در طی یک بازه زمانی خاص میپذیرد، نیز یکی از راههای کاهش حملات DDoS است. قابل ذکر است با اینکه این روش در کاهش سرقت محتوا و کاهش brute force login موثر است، اما به تنهایی برای مقابله با حملات کافی نیست.
– Web Application Firewall
WAF ابزاری برای کمک به کاهش حملات در لایه 7 میباشد. با قرار دادن WAF بین اینترنت و سرور مبدا، WAF همانند سرور پراکسی عمل میکند. به عبارتی از سرور هدف در مقابل انواع خاصی از ترافیکهای مخرب، محافظت میکند. با فیلتر کردن درخواستها بر اساس یک سری قوانینی که برای شناسایی ابزارهای DDoS استفاده شده، میتوان از حملات لایه 7 جلوگیری به عمل آورد.
– Anycast Network Diffusion
این روش از شبکه Anycast استفاده میکند تا ترافیک ناشی از حمله را در شبکه توزیع شده در سرور کاهش دهد به طوری که ترافیک توسط شبکه جذب میگردد. درست مانند روش هدایت یک رودخانه به سمت کانالهای کوچک و جداگانه.
این روش تاثیر ترافیک ناشی از حمله را تا جایی که قابل کنترل باشد، پراکنده میکند. در ضمن قابلیت اطمینان این روش بستگی به ابعاد حمله و کارایی شبکه دارد.
تفاوت حملات DoS و DDoS
در حمله DOS یا denial of service یک کامپیوتر، حجم زیادی از ترافیک را به سمت کامپیوتر قربانی ارسال مینماید و سپس آن را خاموش میکند. حمله DoS یک حمله آنلاین است که به منظور خارج کردن یک وب سایت از دسترس کاربران، مورد استفاده قرار میگیرد.
حمله DoS با ارسال حجم زیادی ترافیک به سمت سرور یک وب سایت، آن را از کار میاندازد. این در حالی است که حملات DDoS از سیستمهای مختلفی که در محلهای گوناگون قرار دارند، ترافیک ارسال میکند.
انواع حمله DoS:
- Buffer overflow attacks
- Ping of Death or ICMP flood
- 3Teardrop Attack
انواع حمله DDoS:
- Volumetric Attacks
- Fragmentation Attacks
- Application Layer Attacks