021-91014197 call

DDoS چیست؟ | CDN چگونه می‌تواند از حملات DDoS جلوگیری کند؟

مریم جاوید
در تاریخ: 4 دی 1400

یکی از دغدغه‌های اصلی مدیران وب‌سایت‌، به ویژه فروشگاه‌های آنلاین، مواجه شدن با حملات مخرب DDoS است، که منجر به از دسترس خارج شدن وب‌سایت می‌شود. اهمیت این موضوع زمانی آشکار می‌شود که این‌گونه وب‌سایت‌ها مشغول فروش ویژه در مناسب‌های مختلف هستند. اَبر دِراک برای جلوگیری از این‌گونه حملات، راه حل‌های مختلفی را به کار می‌برد تا پایداری سرویس وب‌سایت شما را حفظ کند.

در این مقاله قصد داریم به توضیح مفهوم DDoS و نحوه انجام این‌گونه حملات بپردازیم. سپس، راه‌های جلوگیری از حملات DDoS، که توسط راهکارهای فنی اَبر دِراک انجام می‌پذیرد، را بیان می‌کنیم.

DDoS چیست؟

حملات Distributed Denial of Service (DDoS) تلاش مخرب هکرها و بات‌نت‌هایی (Botnets) است که با ارسال سیل ترافیک، قصد ایجاد اختلال در ترافیک عادی یک سرور، سرویس یا شبکه‌ای را دارند که می‌خواهند آن را از سرویس‌دهی خارج کنند. معمولا، این حملات بر روی وب‌سایت‌های پرطرفدار، فروشگاه‌های آنلاین و هر نوع کسب و کار یا سازمانی که به ارائه خدمات آنلاین وابسته است، انجام می‌شود.

حمله DDoS را می‌توان مانند یک ترافیک غیرمنتظره در بزرگراه در نظر گرفت، که از رسیدن ترافیک منظم به مقصد جلوگیری کرده و کل بزرگراه را مسدود می‌کند.

چرا حمله DDoS انجام می‌شود؟

منابع شبکه، مانند سرورهای وب، برای پاسخگویی به درخواست‌هایی که به‌طور همزمان باید سرویس‌دهی شوند، محدودیت دارند. علاوه بر محدودیت ظرفیت سرور، کانالی که سرور را به اینترنت متصل می‌کند، دارای پهنای باند / ظرفیت محدودی است. هرگاه تعداد درخواست‌ها از محدودیت‌های ظرفیت هر یک از اجزای زیرساخت بیشتر شود، سطح خدمات احتمالا به یکی از روش‌های زیر آسیب می‌بیند:

  • پاسخ به درخواست‌ها بسیار کندتر از حالت عادی می‌شود.
  • همه یا برخی از درخواست‌های کاربران ممکن است به‌طور کامل نادیده گرفته شوند.

گاهی‌اوقات، حمله DDoS ممکن است تلاشی برای بی‌اعتبار کردن یا آسیب رساندن به تجارت رقیب باشد. در برخی موارد، مهاجم حتی ممکن است برای توقف حمله، درخواست پول کرده و از این طریق اخاذی کند.
اما به‌طور کلی، هدف نهایی مهاجم، جلوگیری کامل از عملکرد عادی منبع وب است – «انکار کامل خدمات – Denial of Service».

DDoS چگونه کار می‌کند؟

DDoS چگونه کار میکند

حملات DDoS با شبکه‌ای از ماشین‌های متصل به اینترنت انجام می‌شود.

این ماشین‌ها از رایانه‌ها و سایر دستگاه‌ها (مانند دستگاه‌های اینترنت اشیا) تشکیل شده‌ و به بدافزار آلوده شده‌اند، که باعث می‌شود مهاجم بتواند آن‌ها را از راه دور کنترل کند. هر یک از این دستگاه‌ها به‌عنوان ربات (یا زامبی) شناخته می‌شود و به گروهی از این ربات‌ها، بات‌نت گفته می‌شود.

بعد از این‌که یک بات‌نت ایجاد شد، مهاجم می‌تواند با ارسال دستورالعمل‌هایی از راه دور به هر ربات، حمله را هدایت کند.

هر دستگاه متصل به اینترنت در شبکه، شامل سرورها، دارای آدرس IP است. هنگامی که سرور یا شبکه توسط بات‌نت مورد حمله قرار می‌گیرد، هر ربات به‌طور فزاینده‌ای درخواست‌هایی را به آدرس IP مورد نظر ارسال می‌کند، که این کار باعث می‌شود سرور یا شبکه تحت فشار قرار بگیرد و در نتیجه سرویس‌دهی به ترافیک عادی مختل شود.

از آنجایی که هر ربات (طبق تعریف بالا) یک دستگاه اینترنتی قانونی است، جداسازی ترافیک حمله از ترافیک عادی می‌تواند کاری دشوار باشد.

نحوه شناسایی حملات DDoS

بارزترین نشانه حمله DDoS این است که یک وب‌سایت یا سرویس آنلاین ناگهان کند شده یا از دسترس خارج شود. اما، از آن‌جایی که دلایل مختلفی نیز از نظر فنی می‌تواند باعث ایجاد چنین مشکلاتی شود، معمولا به تحقیقات بیشتری در این مورد نیاز است.
ابزارهای تجزیه و تحلیل ترافیک می‌توانند به شما کمک کنند تا برخی از نشانه‌های آشکار حمله DDoS را شناسایی کنید:

  • مقادیر مشکوک ترافیک، که ناشی از یک آدرس IP یا محدوده IP مشخص هستند.
  • سیل ترافیک از سوی کاربرانی که مدل رفتاری مشترکی دارند، مثلا از یک نوع دستگاه، موقعیت جغرافیایی، یا نسخه مرورگر وب مشابه استفاده می‌کنند.
  • افزایش غیر قابل توضیح درخواست‌ها به یک صفحه‌ی خاص
  • الگوهای ترافیکی عجیب و غریب، مانند افزایش ترافیک در ساعات مشخصی از روز یا الگوهایی که غیرطبیعی به نظر می‌رسند (مثلا هر 10 دقیقه یک بار ترافیک افزایش می‌یابد).

نشانه‌های دیگری از حملات DDoS نیز وجود دارند، که با توجه به نوع حمله متفاوت هستند.

انواع رایج حملات DDoS

حملات DDoS انواع مختلفی دارند، که هر یک از آن‌ها اجزای مختلفی از اتصال شبکه را هدف قرار می‌دهند. برای درک نحوه‌ی انجام این کار، لازم است بدانیم که اتصال شبکه چگونه ایجاد می‌شود.

اتصال شبکه در اینترنت از چند لایه تشکیل شده است، که هر یک از این لایه‌ها وظیفه و کاربرد خاص خودش را دارد.

مدل OSI، که در زیر نشان داده شده است، یک چارچوب مفهومی است که برای توصیف اتصال شبکه در 7 لایه مجزا استفاده می‌شود.

مدل OSI

به‌طور کلی، حملات DDoS را می‌توان به سه دسته تقسیم کرد: حملات لایه‌ی کاربرد، حملات پروتکل و حملات حجمی.
مهاجم ممکن است از یک یا هر سه روش برای حمله استفاده کند تا بتواند با اقدامات پیشگیرانه اتخاذ شده توسط هدف (هر دستگاهی که مورد حمله قرار گرفته است)، مقابله کند.

حملات لایه‌ی کاربرد (Application layer attacks)

هدف از حمله به لایه کاربرد، که به حمله DDoS لایه 7 (اشاره به لایه هفتم مدل OSI) نیز معروف است، استفاده بیش از حد از منابع برای ایجاد یک موقعیت انکار سرویس (denial-of-service) است.

در لایه‌ی کاربرد، صفحات وب روی سرور تولید شده و سپس در پاسخ به درخواست‌های HTTP تحویل داده می‌شوند. از نظر محاسباتی، اجرای درخواست HTTP در سمت کلاینت هزینه‌ای ندارد، اما پاسخگویی به آن برای سرور مورد نظر می‌تواند گران و هزینه‌بر باشد، زیرا سرور اغلب چندین فایل را بارگیری می‌کند و کوئری‌های پایگاه داده را برای ایجاد یک صفحه وب اجرا می‌کند.

تشخیص ترافیک مخرب از ترافیک قانونی بسیار دشوار است، بنابراین دفاع در برابر حملات لایه 7 کار آسانی نیست.

مثالی از حمله لایه کاربرد:

HTTP flood

این حمله شبیه به فشار دادن مکرر دکمه‌ی به‌روزرسانی مرورگر وب در رایانه‌های مختلف به طور همزمان است، که در نتیجه تعداد زیادی درخواست HTTP به سرور سرازیر شده و منجر به Denial-of-Service می‌شود.

این نوع حمله می‌تواند ساده یا پیچیده باشد. حملات ساده‌تر ممکن است به یک URL با همان محدوده از آدرس‌های IP مهاجم انجام شود. درحالیکه حملات پیچیده ممکن است از تعداد زیادی آدرس IP مهاجم استفاده کند و URLهای تصادفی را با استفاده از ارجاع‌دهنده‌های تصادفی، هدف قرار دهند.

حملات پروتکل (Protocol attacks)

حملات پروتکل، که به عنوان حملات حالت خستگی (state-exhaustion attacks) نیز شناخته می‌شوند، با مصرف بیش از حد منابع سرور و/یا منابع تجهیزات شبکه، مانند فایروال‌ها و متعادل کننده‌های بار (load balancers)، باعث اختلال در ارائه‌ی سرویس می‌شوند.

حملات پروتکل از نقاط ضعف لایه 3 و لایه 4 پشته پروتکل استفاده می‌کنند تا هدف را غیرقابل دسترس نشان دهند.

مثالی از حمله پروتکل:

SYN flood

SYN Flood شبیه به کارگری است که در اتاق تأمین کالا، درخواست‌هایی را از بخش فروش یک فروشگاه دریافت می‌کند.

کارگر بعد از دریافت درخواست، می‌رود و بسته را می‌گیرد و قبل از بیرون بردن بسته منتظر تأیید می‌شود. سپس، کارگر درخواست‌های زیادی را بدون آن‌که بتواند تأییدی برای آن‌ها بگیرد، دریافت کرده و مدام همین کار را تکرار می‌کند. این درخواست‌ها تا زمانی که کارگر خسته شود و دیگر نتواند بسته‌ای را حمل کند، ادامه پیدا می‌کند و بعد از آن، دیگر نمی‌تواند به درخواست‌های جدید پاسخ دهد.

اتصالات شبکه‌ی مبتنی بر پروتکل TCP/IP، بدین گونه است که برای ارسال هر بسته (Packet) در شبکه، سه مرحله Handshaking (دست‌دهی) باید انجام شود:

TCP handshaking

مرحله 1 (SYN): در مرحله اول که کلاینت می‌خواهد با سرور ارتباط برقرار کند، یک قطعه SYN (Synchronize Sequence Number) از طرف کلاینت به سمت سرور ارسال می‌شود تا به سرور اطلاع دهد که کلاینت قرار است یک اتصال برقرار کند و قطعه بعدی قرار است با چه توالی شماره‌ای برسد.

مرحله 2 (SYN + Ack): سرور با تنظیم بیت‌های سیگنال SYN-ACK به درخواست کلاینت پاسخ می‌دهد. Acknowledgement (Ack) نشان‌دهنده پاسخ قطعه‌ای است که دریافت کرده است و SYN نشان می‌دهد که احتمالا قطعه‌ها را با چه توالی شماره‌ای شروع می‌کند.

مرحله 3 (ACK): در مرحله آخر، کلاینت پاسخ سرور را تأیید می‌کند و هر دو یک اتصال قابل اعتماد ایجاد کرده و از این طریق، انتقال واقعی داده‌ها را آغاز می‌کنند.

مهاجم با استفاده از آدرس‌های IP جعلی، حمله خود را با ارسال تعداد بسیار زیاد بسته‌های SYN (SYN packets) برای «درخواست اتصال اولیه» TCP آغاز می‌کند تا از روند handshake پروتکل TCP سوءاستفاده ‌کند.

بدین ترتیب، سرور یا هر دستگاهی که در شبکه مورد هدف قرار گرفته است، به هر درخواست اتصال پاسخ می‌دهد و سپس منتظر مرحله نهایی Handshaking می‌شود، اما این مرحله هرگز اتفاق نمی‌افتد و منابع هدف در این فرآیند تلف شده و درنهایت، از دسترس خارج می‌شوند.

حملات حجمی (Volumetric attacks)

این دسته از حملات با مصرف تمام پهنای باند موجود بین دستگاه هدف و اینترنت، ازدحام ایجاد می‌کنند. در این حمله، حجم زیادی از داده‌ها با استفاده از ابزارهایی، شامل بات‌نت، برای ایجاد ترافیک گسترده به سمت هدف ارسال می‌شود.

مثالی از حمله حجمی:

DNS Amplification

DNS Amplification مانند این است که شخصی با رستوران تماس بگیرد و بگوید “من از هر غذایی که در منو دارید، می‌خواهم یکی سفارش بدهم، لطفا با شماره‌ای که به شما می‌دهم تماس بگیرید و تمام غذاهایی که سفارش داده‌ام را تکرار کنید”! در این‌جا این شخص (مهاجم)، شماره تماس یک قربانی را به رستوران می‌دهد تا با او تماس بگیرند. بنابراین، رستوران یک لیست از تمام غذاهایی که دارد ایجاد کرده و برای قربانی ارسال می‌کند.

به همین ترتیب، مهاجم با آدرس IP جعلی (آدرس IP دستگاه قربانی)، درخواستی را به سمت سرور DNS ایجاد کرده و این سرور پاسخ‌های با حجم بالا را به سمت آدرس IP قربانی ارسال می‌کند. اینگونه، دستگاه شامل این آدرس IP با سیلی از پاسخ‌هایی که هرگز درخواست نکرده بود، مواجه می‌شود و در نهایت از کار می‌افتد.

روند کاهش حمله DDoS

نگرانی اصلی در کاهش حمله DDoS، تمایز بین ترافیک حمله و ترافیک عادی است.

به‌عنوان مثال، یک فروشگاه آنلاین به مناسبت شب یلدا اقدام به فروش محصولات خود با تخفیف‌های ویژه می‌کند و تعداد زیادی از مشتریان مشتاق، به سمت صفحه فروش محصولات سرازیر می‌شوند. در این هنگام، مهاجم نیز با ارسال ترافیک حمله، سعی در انکار سرویس وب‌سایت فروشگاه را دارد. در این شرایط، قطع کردن کل ترافیک کار اشتباهی است، اما جلوگیری از حملات، امری ضروری محسوب می‌شود.

مشکل در تشخیص مشتریان واقعی و جداکردن آن‌ها از ترافیک حمله است.

در اینترنت مدرن، ترافیک DDoS در اشکال مختلفی وجود دارد و می‌تواند از نظر طراحی متفاوت باشد؛ از حملات تک منبع غیر جعلی (un-spoofed single source) گرفته تا حملات چند بردار (multi-vector) پیچیده و تطبیقی.

حمله DDoS چند بردار از مسیرهای حمله متعدد و روش‌های مختلفی برای غلبه بر دستگاه هدف استفاده می‌کند تا بتواند تلاش‌های کاهش حمله، که توسط هدف اتخاذ می‌شود را در هر مسیری منحرف و خنثی سازد.

حمله‌ای که چندین لایه پشته پروتکل را به‌طور همزمان هدف قرار می‌دهد، مانند DNS amplification (هدف قراردادن لایه‌های 3 یا 4) همراه با سیل HTTP (هدف قراردادن لایه 7) نمونه‌ای از DDoS چند برداری است.

کاهش حمله DDoS چند برداری به استراتژی‌های مختلفی نیاز دارد. به‌طور کلی، هرچه حمله پیچیده‌تر شود، جداسازی ترافیک حمله از ترافیک عادی سخت‌تر می‌شود – هدف مهاجم این است که تا حد امکان ترافیک عادی و ترافیک حمله را با هم ترکیب کند و تلاش‌های کاهش حملات توسط هدف را ناکارآمد سازد.

تلاش‌های کاهش حمله، از جمله حذف یا محدود کردن ترافیک بی‌رویه، ممکن است ترافیک خوب را همراه با ترافیک بد از بین ببرد. همچنین، مهاجم ممکن است برای دور زدن اقدامات متقابل، حملات خودش را اصلاح و سازگار کند. بنابراین، به منظور غلبه بر حملات پیچیده، داشتن راه حل چندلایه بیشترین تأثیر را به همراه خواهد داشت.

مسیریابی سیاهچاله (Blackhole routing)

اغلب، مدیران شبکه راه حل «مسیریابی سیاه‌چاله» را به‌عنوان اولین راه حل جلوگیری از حملات DDoS درنظر می‌گیرند. در این رویکرد، یک مسیر سیاه‌چاله ایجاد شده و ترافیک در آن مسیر به شکل قیف هدایت می‌شود. در ساده‌ترین حالت، زمانی که فیلتر سیاهچاله بدون هیچ معیار و محدودیت خاصی تنظیم شود، هر دو ترافیک قانونی و ترافیک مخرب به یک مسیر پوچ یا همان سیاه‌چاله هدایت شده و از شبکه حذف می‌شوند.

اگر یک وب‌سایت اینترنتی مورد حمله DDoS قرار بگیرد، ارائه‌دهنده خدمات اینترنت (ISP) آن ممکن است برای دفاع در برابر حمله، تمام ترافیک وب‌سایت را به سمت سیاه‌چاله ارسال کند. این راه حل اصلا ایده‌آل نیست، زیرا با از دسترس خارج کردن شبکه، درواقع هدف مهاجم برآورده شده است.

محدودکردن نرخ (Rate limiting)

محدود کردن تعداد درخواست‌هایی که سرور در یک بازه زمانی معین می‌پذیرد نیز راهی برای کاهش حملات انکار سرویس (DoS) است.

محدودیت نرخ شاید بتواند سرعت سارقان وب (web scrapers) را در سرقت محتوا و تلاش‌های brute force برای ورود به سیستم (لاگین وب‌سایت) کاهش دهد، اما نمی‌تواند به تنهایی برای مدیریت مؤثر حملات پیچیده DDoS کافی باشد.

با این وجود، محدودکردن نرخ نیز یک استراتژی موثر در کاهش حملات DDoS محسوب می‌شود.

فایروال برنامه‌های وب (Web application firewall)

فایروال برنامه کاربردی وب (WAF) ابزاری است که می‌تواند به کاهش حمله DDoS لایه 7 کمک کند. WAF بین اینترنت و سرور مبدأ قرار می‌گیرد و می‌تواند به‌عنوان یک پروکسی معکوس (reverse proxy) عمل کرده و از سرور مورد نظر در برابر انواع خاصی از ترافیک‌های مخرب محافظت کند.

با فیلتر کردن درخواست‌ها بر اساس یک سری قوانین مورد استفاده جهت شناسایی ابزارهای DDoS، می‌توان از حملات لایه 7 جلوگیری کرد. یکی از مزایای مهم WAF، توانایی اجرای سریع قوانین سفارشی در پاسخ به حملات مخرب است.

انتشار شبکه Anycast (Anycast network diffusion)

این روش، از شبکه Anycast برای انتشار و گسترش ترافیک حمله در سراسر یک شبکه توزیع شده از سرورها استفاده می‌کند، تا جایی‌که این ترافیک توسط شبکه کاملا جذب شود.

برای درک بهتر این رویکرد، رودخانه خروشانی را در نظر بگیرید که از یک کانال آب عبور می‌کند. برای جلوگیری از طغیان، آب رودخانه به چند کانال مختلف منشعب می‌شود تا از شدت آن کاسته شده و درنهایت به حالت عادی بازگردد.
بدین ترتیب، شبکه Anycast ترافیک حمله را تا جاییکه بتوان آن را مدیریت کرد، میان سرورهای متعدد توزیع می‌کند.

قابلیت اطمینان شبکه Anycast برای کاهش حمله DDoS به میزان گستردگی حمله و اندازه و کارایی شبکه بستگی دارد.


اَبر دِراک با استفاده از روش‌های ذکر شده در بالا، از حملات DDoS جلوگیری کرده و پایداری و امنیت وب‌سایت شما را تضمین می‌کند. راهکار محافظت دربرابر DDoS که در ابر دراک پیاده‌سازی می‌شود، چندوجهی بوده و قادر است تا بسیاری از حملات پیچیده را کاهش دهد.

برای کسب اطلاعات بیشتر با ما تماس بگیرید و از مشاوره رایگان ما بهره‌مند شوید.

منابع: