حملات DDoS چیست؟

حملات DDoS چیست؟

در یک سرویس آنلاین، Availability به اندازه امنیت و Performance اهمیت دارد. اگر وب‌سایت، API، سامانه پرداخت یا Application شما برای کاربران قابل دسترسی نباشد، حتی بهترین معماری نرم‌افزاری و قوی‌ترین زیرساخت نیز عملاً ارزش خود را از دست می‌دهد.

یکی از مهم‌ترین تهدیدها علیه Availability سرویس‌های اینترنتی، DDoS یا Distributed Denial of Service است؛ حمله‌ای که در آن مهاجم با استفاده از تعداد زیادی منبع، Traffic یا Requestهای مخرب را به سمت یک سرویس هدایت می‌کند تا منابع شبکه، تجهیزات یا Application مصرف شده و کاربران واقعی نتوانند به سرویس دسترسی پیدا کنند.

اما DDoS الزاماً به معنی «ترافیک بسیار زیاد» نیست. بعضی حملات با حجم بسیار بالا انجام می‌شوند و هدفشان اشباع Bandwidth است، در حالی که برخی حملات Application Layer با حجم نسبتاً پایین اما Requestهای پرهزینه می‌توانند CPU، Connection Pool، Database یا سایر منابع Application را تحت فشار قرار دهند.

در این مقاله بررسی می‌کنیم حملات DDoS چیست، چه تفاوتی با DoS دارد، حملات در کدام لایه‌های شبکه رخ می‌دهند، Botnet و Reflection چه نقشی دارند، چگونه DDoS را از افزایش ناگهانی Traffic واقعی تشخیص دهیم و چگونه با استفاده از CDN، WAF، Rate Limiting، Load Balancing، Anycast، Monitoring و طراحی صحیح Origin از زیرساخت محافظت کنیم.

DDoS چیست؟

DDoS مخفف Distributed Denial of Service است و به حمله‌ای گفته می‌شود که در آن منابع متعدد به‌صورت هماهنگ برای ایجاد اختلال در دسترسی به یک سرویس، Server، Network یا Application استفاده می‌شوند.

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

در یک حالت ساده می‌توان معماری را این‌گونه تصور کرد:

                 ┌── Source 1
                 ├── Source 2
Internet ────────┼── Source 3
                 ├── Source 4
                 └── ...
                       │
                       ▼
                 Target Service

در یک حمله Distributed، Traffic از یک سیستم واحد نمی‌آید. منابع متعدد می‌توانند باعث شوند تشخیص و فیلتر کردن Traffic مخرب دشوارتر شود.

NIST نیز DDoS را نوعی حمله Denial of Service تعریف می‌کند که از تعداد زیادی Host برای انجام حمله استفاده می‌کند.

تفاوت DoS و DDoS چیست؟

DoS یا Denial of Service یک مفهوم کلی‌تر برای حملاتی است که هدفشان جلوگیری از دسترسی کاربران مجاز به یک سرویس است.

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

ویژگی DoS DDoS
منبع Traffic معمولاً محدود منابع متعدد
ماهیت توزیع‌شده الزاماً ندارد دارد
تشخیص منبع معمولاً ساده‌تر معمولاً پیچیده‌تر
مقیاس حمله می‌تواند محدود باشد می‌تواند بسیار بزرگ باشد
Mitigation ممکن است در سطح Host انجام شود اغلب به دفاع در سطح Network و Edge نیاز دارد

بنابراین هر DDoS یک نوع Denial of Service است، اما هر DoS الزاماً DDoS نیست.

چرا DDoS خطرناک است؟

یک سرویس آنلاین منابع محدودی دارد.

برای مثال ممکن است Application شما دارای محدودیت‌هایی مانند:

  • Network Bandwidth
  • CPU
  • RAM
  • Concurrent Connections
  • Connection Pool
  • Thread Pool
  • Worker Processes
  • Database Connections
  • Disk I/O
  • Cache Capacity

باشد.

اگر مهاجم بتواند یکی از این منابع را به اندازه کافی مصرف کند، حتی زمانی که خود Server از نظر سخت‌افزاری سالم است، Application می‌تواند برای کاربران واقعی کند یا کاملاً غیرقابل دسترس شود.

DDoS چگونه انجام می‌شود؟

یکی از رایج‌ترین مدل‌ها استفاده از Botnet است.

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

در این مدل، به‌صورت مفهومی:

             Attacker
                 │
                 ▼
              Botnet
        ┌────────┼────────┐
        ▼        ▼        ▼
      Bot 1    Bot 2    Bot 3   ...
        │        │        │
        └────────┼────────┘
                 ▼
              Target

CISA، FBI و MS-ISAC نیز Botnet را یکی از سازوکارهای مهم اجرای حملات DDoS معرفی می‌کنند و اشاره می‌کنند که دستگاه‌های IoT می‌توانند به دلیل ضعف‌های امنیتی یا تنظیمات نامناسب در چنین شبکه‌هایی مورد سوءاستفاده قرار بگیرند.

انواع حملات DDoS

حملات DDoS را می‌توان بر اساس لایه‌ای که هدف قرار می‌دهند به چند دسته اصلی تقسیم کرد.

یک تقسیم‌بندی کاربردی شامل این موارد است:

  • Volumetric Attacks
  • Protocol / Network Attacks
  • Application Layer Attacks
  • Reflection / Amplification Attacks

در عمل ممکن است یک حمله چند Vector مختلف را هم‌زمان یا پشت سر هم استفاده کند.

۱. حملات Volumetric یا حجمی

در حملات Volumetric هدف اصلی مصرف ظرفیت شبکه و Bandwidth است.

مهاجم تلاش می‌کند حجم بسیار زیادی از Traffic را به سمت Target ارسال کند تا ظرفیت ارتباطی یا تجهیزات شبکه در مسیر اشباع شوند.

Large Traffic Volume
        ↓
Internet Link
        ↓
Firewall / Router
        ↓
Origin

اگر ظرفیت لینک اینترنت شما ۱۰Gbps باشد و Traffic حمله بتواند بسیار بیشتر از ظرفیت قابل دریافت شما شود، حتی یک Server بسیار قدرتمند نیز نمی‌تواند به‌تنهایی مشکل را حل کند.

به همین دلیل مقابله با حملات حجمی معمولاً باید قبل از رسیدن Traffic به Origin انجام شود.

۲. حملات Protocol یا Layer 3/4

این حملات بیشتر روی Network و Transport Layer تمرکز می‌کنند و می‌توانند منابع مربوط به Connection، Firewall، Load Balancer یا سایر تجهیزات شبکه را تحت فشار قرار دهند.

یکی از نمونه‌های شناخته‌شده، SYN Flood است.

SYN Flood چیست؟

TCP برای برقراری Connection از فرآیندی به نام Three-Way Handshake استفاده می‌کند:

Client                  Server

  SYN  ------------------->
       <------------------- SYN-ACK
  ACK  ------------------->

در یک SYN Flood، تعداد زیادی Connection Initiation به سمت سرویس ارسال می‌شود و می‌تواند منابع مربوط به Connection Tracking را تحت فشار قرار دهد.

حملات Network و Protocol می‌توانند به شکل‌های مختلفی انجام شوند و فقط به SYN Flood محدود نیستند. مستندات DDoS نیز طیف وسیعی از حملات L3/L4 مانند SYN، UDP، ICMP و برخی Reflection/Amplification Attackها را در این دسته قرار می‌دهند.

۳. حملات Application Layer یا Layer 7

حملات Layer 7 به جای اینکه صرفاً حجم بزرگی از Packet را ارسال کنند، Application را هدف قرار می‌دهند.

برای مثال یک مهاجم ممکن است تعداد بسیار زیادی HTTP Request به Endpoint خاصی ارسال کند.

Clients / Bots
      │
      │ HTTP Requests
      ▼
   Web Server
      │
      ├── Application
      ├── Cache
      └── Database

مشکل اصلی این است که یک HTTP Request ساده ممکن است در سمت Client بسیار ارزان باشد، اما در سمت Server باعث اجرای چندین عملیات شود:

  • Application Processing
  • Database Query
  • External API Call
  • Authentication
  • Template Rendering
  • Cache Lookup

در نتیجه ممکن است مهاجم با حجم Network نسبتاً پایین، منابع زیادی در Backend مصرف کند.

Cloudflare نیز Application Layer DDoS را به‌عنوان حمله‌ای در Layer 7 توصیف می‌کند که می‌تواند با HTTP/S Requestهای ظاهراً معتبر، منابع Application را تحت فشار قرار دهد.

HTTP Flood چیست؟

HTTP Flood یکی از نمونه‌های شناخته‌شده Application Layer DDoS است که در آن حجم زیادی از HTTP Request به سمت Application ارسال می‌شود.

تشخیص این حملات می‌تواند سخت‌تر از بعضی حملات Network Layer باشد؛ زیرا Requestها ممکن است از نظر ساختار شبیه Traffic واقعی کاربران باشند.

به همین دلیل صرفاً Block کردن Packetهای غیرعادی همیشه کافی نیست و ممکن است نیاز به تحلیل رفتار، Rate Limiting، WAF، Bot Detection و سایر روش‌های Application-aware وجود داشته باشد.

۴. Reflection و Amplification چیست؟

در حملات Reflection مهاجم از سیستم‌ها یا سرویس‌های دیگر برای ارسال Traffic به سمت Target استفاده می‌کند.

در حالت ساده:

Attacker
   │
   │ Request with spoofed source
   ▼
Reflector
   │
   │ Response
   ▼
Target

اگر Response بسیار بزرگ‌تر از Request اولیه باشد، مفهوم Amplification نیز وارد می‌شود.

در این حالت مقدار Traffic ایجادشده در سمت Target می‌تواند نسبت به Traffic ارسال‌شده از سمت مهاجم بسیار بزرگ‌تر باشد.

نمونه‌هایی از Reflection/Amplification در منابع امنیتی شامل DNS، NTP، Memcached و برخی پروتکل‌های دیگر است.

مقایسه انواع DDoS

نوع حمله لایه هدف اصلی شاخص مهم دفاع معمول
Volumetric Network اشباع Bandwidth bps Upstream / CDN / DDoS Scrubbing
SYN Flood L4 Connection Resources pps / connections Network Filtering / SYN Protection
UDP Flood L3/L4 Network / Service Resources pps / bps Filtering / Rate Limiting
DNS Amplification L3/L4 Bandwidth bps / pps Upstream Filtering
HTTP Flood L7 Application Resources RPS WAF / Rate Limiting / Bot Detection
Low & Slow L7 Connection / Worker Resources Connections / Duration Timeout / Connection Controls

bps، pps و RPS در DDoS یعنی چه؟

یکی از اشتباهات رایج در تحلیل DDoS این است که فقط به یک عدد مانند Gigabit بر ثانیه توجه کنیم.

bps — Bits per Second

برای سنجش حجم Traffic شبکه استفاده می‌شود.

Gbps / Mbps

این شاخص برای حملات حجمی اهمیت زیادی دارد.

pps — Packets per Second

تعداد Packetهایی که در هر ثانیه منتقل می‌شوند.

یک حمله می‌تواند Bandwidth خیلی بالایی نداشته باشد اما تعداد Packet بسیار زیادی ایجاد کند و تجهیزات Network را تحت فشار قرار دهد.

RPS — Requests per Second

تعداد Requestهای Application در هر ثانیه است.

در حملات HTTP Flood، RPS معمولاً شاخص مهم‌تری از Gbps است.

برای مثال، یک Endpoint بسیار سنگین ممکن است با تعداد نسبتاً محدودی Request نیز Server را تحت فشار قرار دهد.

آیا بزرگ‌ترین DDoS الزاماً خطرناک‌ترین DDoS است؟

خیر.

شدت DDoS را نمی‌توان فقط با حجم Traffic سنجید.

مثلاً:

Attack A
500 Gbps
Simple Network Flood

Attack B
20,000 RPS
Expensive API Endpoint
        ↓
Database
        ↓
Complex Query

بسته به معماری Target، حمله دوم می‌تواند اثر بیشتری روی Application داشته باشد، حتی اگر حجم Network آن بسیار کمتر باشد.

به همین دلیل دفاع DDoS باید متناسب با Resource مورد هدف طراحی شود.

نشانه‌های حمله DDoS چیست؟

هیچ علامت واحدی وجود ندارد که در همه حملات DDoS دیده شود، اما نشانه‌های زیر می‌توانند هشداردهنده باشند:

  • افزایش ناگهانی Traffic
  • افزایش شدید Request Rate
  • افزایش HTTP 5xx
  • افزایش Connectionهای هم‌زمان
  • افزایش CPU یا RAM
  • افزایش Network Bandwidth
  • افزایش Packet Rate
  • افزایش Database Connections
  • افزایش Response Time
  • افزایش Timeout
  • افزایش خطاهای Load Balancer
  • کاهش Cache Hit Ratio در برخی سناریوها
  • عدم دسترسی کاربران واقعی

اما نکته مهم این است که هر افزایش Traffic الزاماً DDoS نیست.

یک کمپین تبلیغاتی موفق، انتشار یک خبر مهم یا Viral شدن محتوا نیز می‌تواند Traffic بسیار زیادی ایجاد کند.

چگونه DDoS را از ترافیک واقعی تشخیص دهیم؟

تشخیص دقیق نیازمند بررسی چند شاخص به‌صورت هم‌زمان است.

برای مثال باید بررسی شود:

  • Traffic از چه جغرافیایی می‌آید؟
  • چه URLهایی بیشتر درخواست می‌شوند؟
  • Request Method چیست؟
  • HTTP Status Codeها چگونه تغییر کرده‌اند؟
  • User-Agentها چه الگویی دارند؟
  • آیا Session و Cookie رفتار طبیعی دارند؟
  • آیا Traffic به یک Endpoint خاص متمرکز شده است؟
  • آیا الگوی زمانی غیرعادی است؟
  • آیا Backend هم‌زمان CPU یا Database Load غیرطبیعی دارد؟

در Application Layer، تشخیص می‌تواند دشوار باشد، زیرا بخشی از Traffic مخرب ممکن است از نظر HTTP شبیه Request واقعی به نظر برسد.

DDoS و Monitoring

بدون Monitoring مناسب، تشخیص DDoS ممکن است زمانی اتفاق بیفتد که کاربران قبلاً با مشکل مواجه شده‌اند.

برای یک سرویس Production بهتر است حداقل موارد زیر Monitoring شوند:

  • Network Throughput
  • Packets per Second
  • HTTP Requests per Second
  • Concurrent Connections
  • HTTP Status Codes
  • Latency
  • CPU
  • Memory
  • Load Average
  • Database Connections
  • Application Errors
  • Firewall Events
  • WAF Events

همچنین بهتر است Baseline مربوط به Traffic عادی سیستم مشخص باشد تا Anomalyها سریع‌تر شناسایی شوند.

برای طراحی این لایه می‌توانید از خدمات Monitoring آلتیمیت کلاد استفاده کنید.

DDoS Mitigation چیست؟

DDoS Mitigation مجموعه اقداماتی است که برای شناسایی، محدود کردن یا حذف Traffic مخرب و حفظ دسترسی کاربران واقعی انجام می‌شود.

Mitigation می‌تواند در نقاط مختلف انجام شود:

Internet
   ↓
Upstream / ISP
   ↓
DDoS Protection
   ↓
CDN / Edge
   ↓
WAF
   ↓
Load Balancer
   ↓
Application

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

CDN چگونه به مقابله با DDoS کمک می‌کند؟

CDN می‌تواند یک لایه مهم برای مقابله با DDoS باشد، زیرا Traffic قبل از رسیدن به Origin وارد شبکه Edge می‌شود.

Attackers
    │
    ▼
CDN / Edge Network
    │
    ├── Filter
    ├── Rate Limit
    ├── WAF
    └── DDoS Mitigation
            │
            ▼
          Origin

شبکه‌های بزرگ CDN می‌توانند Traffic را در نقاط مختلف شبکه دریافت و بخشی از آن را قبل از رسیدن به Origin Drop، Rate Limit یا Challenge کنند.

برای آشنایی بیشتر با CDN می‌توانید مقاله CDN چیست؟ را مطالعه کنید.

WAF چگونه به دفاع در برابر DDoS کمک می‌کند؟

WAF یا Web Application Firewall برای تحلیل و کنترل HTTP/HTTPS Traffic در لایه Application طراحی شده است.

در حملات L7، WAF می‌تواند بر اساس Ruleها و ویژگی‌های Request، Traffic مشکوک را محدود یا مسدود کند.

برای مثال می‌توان روی مواردی مانند:

  • Path
  • HTTP Method
  • IP / Network
  • Headers
  • Request Rate
  • Geographic Rules
  • Bot Signals

Policy تعریف کرد.

با این حال، WAF به‌تنهایی جایگزین DDoS Protection در سطح Network نیست. برای حملات حجیم، Traffic باید پیش از اشباع لینک و زیرساخت شما کنترل شود.

برای آشنایی بیشتر با WAF، مقاله WAF چیست؟ را بخوانید.

Rate Limiting چیست و چه نقشی در DDoS دارد؟

Rate Limiting به معنی محدود کردن تعداد Request یا Connection در یک بازه زمانی است.

برای مثال می‌توان برای یک Endpoint حساس محدودیت‌هایی بر اساس:

  • IP
  • User
  • API Key
  • Session
  • Endpoint
  • Network

تعریف کرد.

Rate Limiting می‌تواند در برابر برخی Application Layer Attackها بسیار مفید باشد، اما باید با احتیاط تنظیم شود.

اگر Limit بیش از حد سخت‌گیرانه باشد، ممکن است کاربران واقعی نیز Block شوند.

Anycast و DDoS

در شبکه‌های توزیع‌شده، Anycast می‌تواند به پخش Traffic در چند نقطه جغرافیایی کمک کند.

                 Anycast Network
              /       |        \
             /        |         \
           PoP A     PoP B      PoP C
             ↑         ↑          ↑
          Traffic   Traffic    Traffic

در چنین معماری‌هایی، حمله لزوماً روی یک نقطه متمرکز نمی‌شود و ظرفیت شبکه می‌تواند در چندین PoP مورد استفاده قرار گیرد.

البته Anycast به‌تنهایی یک DDoS Protection کامل نیست؛ Detection، Filtering و Mitigation نیز باید در کنار آن وجود داشته باشند.

Origin Protection چیست؟

یکی از مهم‌ترین اصول دفاعی این است که Origin Server تا حد امکان مستقیماً در معرض Internet قرار نگیرد.

اگر مهاجم IP واقعی Origin را پیدا کند، ممکن است CDN را دور بزند و Traffic را مستقیماً به Server ارسال کند.

معماری بهتر می‌تواند چنین باشد:

Internet
    ↓
CDN / DDoS Protection
    ↓
WAF
    ↓
Origin Firewall
    ↓
Application

در این حالت Firewall می‌تواند دسترسی به Origin را فقط برای مسیرهای موردنیاز مجاز کند.

این اصل در معماری‌های مدرن DDoS Protection نیز اهمیت زیادی دارد؛ مستندات دفاعی Cloudflare نیز توصیه می‌کنند Origin مستقیماً در معرض Internet قرار نداشته باشد و دسترسی به آن محدود شود.

آیا Firewall به‌تنهایی جلوی DDoS را می‌گیرد؟

معمولاً خیر.

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

برای همین معماری DDoS Protection باید لایه‌ای باشد:

Upstream
   ↓
DDoS Protection
   ↓
CDN / Edge
   ↓
WAF
   ↓
Firewall
   ↓
Load Balancer
   ↓
Application

DDoS Scrubbing چیست؟

DDoS Scrubbing

به‌صورت ساده:

Internet Traffic
       ↓
Scrubbing Center
       │
       ├── Malicious → Drop
       │
       └── Legitimate
               ↓
             Origin

این مدل برای سازمان‌هایی که نیاز به محافظت جدی در سطح Network دارند اهمیت زیادی دارد.

DDoS در برابر سرویس‌های API

APIها می‌توانند هدف جذابی برای Application Layer DDoS باشند، زیرا برخی Endpointها عملیات سنگینی انجام می‌دهند.

برای مثال یک Request ممکن است باعث شود:

HTTP Request
     ↓
Authentication
     ↓
Application Logic
     ↓
Database Query
     ↓
External API
     ↓
Response

بنابراین در طراحی API باید Endpointهای پرهزینه شناسایی و برای آن‌ها Rate Limiting، Caching، Authentication و سایر کنترل‌های لازم در نظر گرفته شود.

DDoS و Database

یکی از خطرناک‌ترین سناریوها زمانی رخ می‌دهد که Traffic مخرب به‌صورت مستقیم یا غیرمستقیم باعث افزایش Queryهای Database شود.

DDoS Traffic
     ↓
API
     ↓
Application
     ↓
Database
     ↓
CPU / Connections / I/O Exhaustion

در این شرایط ممکن است Network Traffic خیلی بزرگ نباشد، اما Database به Bottleneck اصلی تبدیل شود.

راهکارهای دفاعی می‌توانند شامل مواردی مانند:

  • Rate Limiting
  • Caching
  • Query Optimization
  • Connection Limits
  • Queueing
  • Circuit Breaker
  • Load Shedding

باشند.

Load Shedding چیست؟

Load Shedding

برای مثال:

High Load
   ↓
Classify Requests
   ├── Critical → Allow
   ├── Normal   → Limited
   └── Expensive → Reject

این رویکرد می‌تواند در زمان حمله یا Overload از فروپاشی کامل Application جلوگیری کند.

آیا Auto Scaling جلوی DDoS را می‌گیرد؟

نه لزوماً.

Auto Scaling برای افزایش ظرفیت Application در برابر Load واقعی بسیار مفید است، اما اگر Traffic مخرب باشد، Scale کردن می‌تواند حتی هزینه و مصرف منابع را افزایش دهد.

برای مثال:

DDoS Traffic
     ↓
Load increases
     ↓
Auto Scaling
     ↓
More Servers
     ↓
More Cost
     ↓
DDoS continues

بنابراین Auto Scaling باید در کنار DDoS Protection، Rate Limiting و Traffic Filtering استفاده شود.

آیا افزایش Server باعث حل DDoS می‌شود؟

در بسیاری از موارد خیر.

اگر مشکل در Bandwidth باشد، اضافه کردن CPU و RAM کمکی نمی‌کند.

اگر مشکل در Connection Tracking باشد، اضافه کردن Application Server ممکن است کافی نباشد.

اگر مشکل در Database باشد، اضافه کردن Web Serverها حتی می‌تواند فشار بیشتری ایجاد کند.

بنابراین ابتدا باید مشخص شود کدام Resource در حال Exhaust شدن است.

DDoS و High Availability

High Availability می‌تواند اثر برخی اختلالات را کاهش دهد، اما جایگزین DDoS Protection نیست.

برای مثال اگر سه Application Server داشته باشیم:

             Load Balancer
              /    |    \
             /     |     \
          App 1   App 2   App 3

اگر Traffic مخرب از ظرفیت Load Balancer یا Network بیشتر باشد، وجود سه Server مشکل اصلی را حل نمی‌کند.

بنابراین باید Availability و DDoS Protection را در چند لایه طراحی کرد.

برای طراحی معماری High Availability می‌توانید از خدمات High Availability آلتیمیت کلاد استفاده کنید.

DDoS و Disaster Recovery

DDoS با Disaster Recovery یکی نیست.

Disaster Recovery روی بازیابی سرویس و داده پس از یک اختلال جدی تمرکز دارد، در حالی که DDoS Protection روی جلوگیری یا کاهش اثر یک حمله در زمان وقوع آن تمرکز می‌کند.

با این حال، DDoS باید در سناریوهای Business Continuity و Disaster Recovery نیز در نظر گرفته شود.

برای مطالعه بیشتر:

معماری پیشنهادی دفاع در برابر DDoS

برای یک سرویس Production، یک معماری دفاعی می‌تواند به شکل زیر طراحی شود:

                         Internet
                            │
                            ▼
                    DNS / Traffic Routing
                            │
                            ▼
                 CDN / DDoS Protection
                            │
                 ┌──────────┴──────────┐
                 │                     │
                WAF               Rate Limiting
                 │                     │
                 └──────────┬──────────┘
                            ▼
                     Load Balancer
                            │
                     ┌──────┴──────┐
                     ▼             ▼
                  App 1          App 2
                     │             │
                     └──────┬──────┘
                            ▼
                        Database

در کنار این مسیر، یک لایه Observability نیز باید وجود داشته باشد:

CDN / WAF / LB / App / DB
          │
          ▼
       Metrics
          +
         Logs
          +
        Alerts
          │
          ▼
       NOC / SRE

در زمان وقوع DDoS چه کار کنیم؟

در زمان Incident بهتر است واکنش‌ها بر اساس یک Runbook از قبل آماده‌شده انجام شوند.

مرحله اول: تأیید Incident

ابتدا بررسی کنید آیا مشکل واقعاً DDoS است یا یک افزایش طبیعی Traffic، Bug، Deployment اشتباه یا خرابی زیرساختی.

مرحله دوم: مشخص کردن Layer

باید مشخص شود مشکل در کدام سطح قرار دارد:

  • Network
  • Transport
  • HTTP
  • Application
  • Database

مرحله سوم: فعال کردن Mitigation

بسته به نوع حمله می‌توان از قابلیت‌هایی مانند:

  • DDoS Protection
  • WAF Rules
  • Rate Limiting
  • Traffic Filtering
  • Challenge
  • Geo Rules
  • Origin Protection

استفاده کرد.

مرحله چهارم: محافظت از Origin

اگر Origin مستقیماً قابل دسترسی باشد، باید مسیر حمله به Origin نیز بررسی شود.

مرحله پنجم: Monitoring

بعد از اعمال Mitigation باید بررسی شود که آیا:

  • Attack Traffic کاهش یافته است؟
  • Users واقعی دوباره سرویس دریافت می‌کنند؟
  • CPU و Memory به وضعیت عادی برگشته‌اند؟
  • Database سالم است؟
  • Error Rate کاهش یافته است؟

بعد از حمله DDoS چه کنیم؟

تمام شدن حمله به معنی پایان Incident نیست.

پس از Incident بهتر است یک Post-Incident Review انجام شود.

موارد زیر را بررسی کنید:

  • Attack Vector چه بود؟
  • حمله از چه زمانی شروع شد؟
  • چه مدت ادامه داشت؟
  • Peak Traffic چقدر بود؟
  • کدام Resource Bottleneck شد؟
  • کدام Rule حمله را Mitigate کرد؟
  • آیا کاربران واقعی نیز Block شدند؟
  • آیا Origin مستقیماً قابل دسترسی بود؟
  • آیا Monitoring به‌موقع Alert داد؟
  • آیا Runbook کافی بود؟

نتیجه این بررسی باید به تغییرات واقعی در معماری و Policyهای امنیتی منجر شود.

اشتباهات رایج در مقابله با DDoS

۱. فقط روی Firewall حساب کردن

Firewall داخلی برای بسیاری از سناریوها ضروری است، اما نمی‌تواند Trafficی را که قبل از رسیدن به آن لینک اینترنت را اشباع کرده است، حل کند.

۲. افزایش Server بدون تحلیل

Scale کردن Application بدون شناخت Attack Vector ممکن است فقط هزینه بیشتری ایجاد کند.

۳. Cache کردن همه چیز

Cache می‌تواند فشار را کاهش دهد، اما Cache اشتباه می‌تواند مشکل امنیتی و Consistency ایجاد کند.

۴. باز گذاشتن Origin

اگر مهاجم بتواند CDN را دور بزند و مستقیماً به Origin برسد، بخش مهمی از معماری دفاعی بی‌اثر می‌شود.

۵. Rate Limiting بسیار سخت‌گیرانه

Policy نامناسب ممکن است کاربران واقعی را نیز Block کند.

۶. نداشتن Baseline

اگر ندانید Traffic عادی شما چگونه است، تشخیص Anomaly دشوار خواهد بود.

۷. نداشتن Runbook

زمان حمله، جای آزمون و خطا نیست. فرآیند Incident Response باید از قبل مشخص باشد.

DDoS Protection برای چه کسب‌وکارهایی ضروری‌تر است؟

هر سرویس اینترنتی ممکن است هدف DDoS قرار گیرد، اما اهمیت آن برای سرویس‌هایی که Availability مستقیماً روی درآمد یا عملیات آن‌ها اثر دارد بیشتر است.

برای مثال:

  • فروشگاه‌های اینترنتی
  • سرویس‌های پرداخت
  • بانکداری و FinTech
  • پلتفرم‌های SaaS
  • Marketplaceها
  • سرویس‌های API
  • پلتفرم‌های Media
  • سرویس‌های Gaming
  • سرویس‌های B2B حیاتی
  • زیرساخت‌های عمومی سازمان‌ها

چک‌لیست DDoS Protection

  • □ شناسایی دارایی‌های اینترنتی
  • □ مشخص کردن Origin Serverها
  • □ بررسی ظرفیت Network
  • □ استفاده از DDoS Protection متناسب با نیاز
  • □ قرار دادن CDN یا Edge در صورت نیاز
  • □ فعال‌سازی WAF
  • □ طراحی Rate Limiting
  • □ محافظت از Origin
  • □ بررسی DNS و Routing
  • □ Monitoring Network Traffic
  • □ Monitoring HTTP Requests
  • □ Monitoring CPU و Memory
  • □ Monitoring Database
  • □ تعریف Alert
  • □ آماده‌سازی Incident Runbook
  • □ تعریف Contactهای اضطراری ISP / Provider
  • □ تست سناریوهای Failover
  • □ انجام Post-Incident Review

سؤالات متداول درباره DDoS

DDoS چیست؟

DDoS یا Distributed Denial of Service حمله‌ای است که در آن منابع متعدد برای ایجاد اختلال در دسترسی به یک سرویس یا زیرساخت استفاده می‌شوند.

هدف حمله DDoS چیست؟

هدف اصلی معمولاً کاهش Availability و جلوگیری از دسترسی کاربران واقعی به سرویس است.

آیا DDoS فقط با Traffic بسیار زیاد انجام می‌شود؟

خیر. برخی حملات حجمی هستند، اما حملات Application Layer می‌توانند با Requestهای نسبتاً کم اما پرهزینه، منابع Application را مصرف کنند.

Botnet چیست؟

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

آیا CDN جلوی DDoS را می‌گیرد؟

CDN می‌تواند یکی از لایه‌های مهم DDoS Mitigation باشد، اما میزان حفاظت به معماری و قابلیت‌های Provider بستگی دارد. CDNهای مدرن می‌توانند حملات Network و Application Layer را در Edge شناسایی و Mitigate کنند.

آیا WAF همان DDoS Protection است؟

خیر. WAF بیشتر روی HTTP/HTTPS و Application Layer تمرکز دارد، در حالی که DDoS Protection می‌تواند لایه‌های Network، Transport و Application را پوشش دهد.

آیا Firewall برای مقابله با DDoS کافی است؟

معمولاً خیر. اگر لینک اینترنت یا مسیر upstream پیش از Firewall اشباع شود، Firewall داخلی نمی‌تواند مشکل ظرفیت شبکه را حل کند.

آیا Auto Scaling می‌تواند DDoS را حل کند؟

خیر. Auto Scaling ظرفیت Application را افزایش می‌دهد، اما در برابر Traffic مخرب ممکن است فقط باعث مصرف منابع و افزایش هزینه شود.

چگونه بفهمیم Traffic زیاد واقعاً DDoS است؟

باید Traffic Pattern، Request Rate، منابع مصرف‌شده، Endpointهای درگیر، Geography، Status Codeها، Connectionها و رفتار کاربران بررسی شود. افزایش Traffic به‌تنهایی اثبات DDoS نیست.

آیا DDoS به Database هم آسیب می‌زند؟

بله. به‌خصوص در حملات Application Layer، Requestهای زیاد می‌توانند باعث افزایش Query، Connection و مصرف CPU و I/O Database شوند.

آیا DDoS باعث از بین رفتن اطلاعات می‌شود؟

هدف مستقیم DDoS معمولاً ایجاد اختلال در Availability است، نه حذف داده. با این حال، هر Incident امنیتی باید از نظر سایر تهدیدها و پیامدهای جانبی نیز بررسی شود.

جمع‌بندی

DDoS یا Distributed Denial of Service یکی از مهم‌ترین تهدیدها برای Availability سرویس‌های آنلاین است. این حملات می‌توانند از اشباع Bandwidth و Packet Flood گرفته تا حملات پیچیده Application Layer را شامل شوند.

مهم‌ترین نکته این است که DDoS را نباید صرفاً یک «حمله با ترافیک زیاد» در نظر گرفت. حمله ممکن است دقیقاً منبعی را هدف قرار دهد که در معماری شما محدودتر است؛ از Bandwidth و Firewall گرفته تا Connection Pool، CPU، Application Worker یا Database.

به همین دلیل دفاع مؤثر باید چندلایه باشد:

Internet
   ↓
DDoS Protection
   ↓
CDN / Edge
   ↓
WAF
   ↓
Rate Limiting
   ↓
Load Balancer
   ↓
Application
   ↓
Database

        +
   Monitoring
        +
   Alerting
        +
 Incident Response

در یک معماری حرفه‌ای، هدف این نیست که امیدوار باشیم هیچ‌وقت حمله‌ای اتفاق نمی‌افتد؛ هدف این است که زیرساخت طوری طراحی شود که در زمان وقوع حمله، Traffic مخرب تا حد ممکن قبل از رسیدن به منابع حیاتی شناسایی و کنترل شود و سرویس بتواند برای کاربران واقعی ادامه پیدا کند.

طراحی معماری مقاوم در برابر DDoS با آلتیمیت کلاد

مقابله با DDoS فقط خرید یک سرویس امنیتی نیست. باید مشخص شود نقطه ورود Traffic کجاست، Origin کجاست، چه بخش‌هایی قابل Cache هستند، کدام Endpointها حساس‌ترند، چه مقدار Traffic عادی دارید و در زمان حمله چه لایه‌ای باید وارد عمل شود.

آلتیمیت کلاد می‌تواند معماری دفاعی متناسب با زیرساخت شما را طراحی و پیاده‌سازی کند؛ از CDN، Reverse Proxy و WAF تا Monitoring، Load Balancing، High Availability، Security Hardening و معماری Multi-Data Center.

برای تکمیل معماری امنیتی می‌توانید خدمات Security Hardening، خدمات Monitoring، خدمات High Availability و خدمات Scaling آلتیمیت کلاد را نیز بررسی کنید.

همچنین برای درک بهتر لایه‌های مرتبط با DDoS، مطالعه مقالات CDN چیست؟، Reverse Proxy چیست؟ و WAF چیست؟ پیشنهاد می‌شود.

اگر Availability سرویس برای کسب‌وکار شما حیاتی است، معماری DDoS Protection را باید قبل از وقوع Incident طراحی کنید.

درخواست مشاوره و طراحی زیرساخت از آلتیمیت کلاد

درخواست مشاوره تخصصی

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

تلفن: 021-91692276
مورد اعتماد شرکت‌های بزرگ
گلرنگ
تومن
اسنپ
روم ویو
دماتجهیز
لپیور
اورس
گاما
لطفا حداقل یک خدمت را انتخاب کنید
مشاوره تخصصی