مقابله با حملات DDoS؛ معماری دفاع و Runbook حادثه

ساعت ۱۱:۲۰ است؛ صفحه فروشگاه باز نمی‌شود، CPU سرور ۹۵٪ است و پشتیبانی می‌گوید «احتمالاً DDoS شده‌ایم». اگر نخستین اقدام تیم Block کردن چند IP یا روشن‌کردن یک Challenge عمومی باشد، ممکن است کاربران واقعی را حذف کند و علت اصلی—Release خراب، Query سنگین، قطعی درگاه یا حمله مستقیم به Origin—همچنان باقی بماند.

مقابله با حملات DDoS خرید یک دکمه جادویی نیست. باید بدانید کدام Service و Resource در حال Exhaust شدن است، ترافیک مخرب کجا فیلتر می‌شود، کاربر واقعی چگونه عبور می‌کند، چه کسی اختیار تغییر دارد و با چه شاهدی می‌فهمید Mitigation اثر کرده است.

خلاصه اجرایی: ابتدا Service map، SLO و Baseline بسازید؛ Exposureهای DNS/IP/API و Origin را ببندید؛ دفاع L3/L4 را به Edge/Provider و دفاع L7 را به WAF و خود برنامه متصل کنید؛ Rate limit را بر هزینه Endpoint و هویت قابل‌اعتماد تنظیم کنید؛ Runbook و کانال ارتباط خارج Failure domain داشته باشید؛ و با Drill مجاز، Telemetry و Postmortem اثربخشی را ثابت کنید.

حمله DDoS چیست و چه چیزی نیست؟

DDoS یا Distributed Denial of Service تلاشی توزیع‌شده برای مصرف ظرفیت شبکه، State پروتکل یا منابع برنامه است تا سرویس برای کاربران مجاز کند یا غیرقابل‌دسترس شود. DoS می‌تواند از یک مبدأ و DDoS از مبدأهای متعدد باشد؛ ولی برای Incident commander مهم‌تر از نام، Resource تحت فشار و نقطه Mitigation است.

DDoS در درجه اول تهدید Availability است. خودش به معنی نفوذ، SQL Injection یا سرقت داده نیست؛ هرچند ممکن است هم‌زمان با حمله دیگری رخ دهد یا تیم را منحرف کند. پس در Incident، نشانه‌های دسترسی غیرمجاز و تغییر داده را نیز بررسی کنید، اما آن‌ها را بدون شاهد به DDoS نسبت ندهید.

نوعResource هدفTelemetry کلیدیمحل اصلی دفاع
Volumetricظرفیت Link و Transitbps، پکت Dropشده، SaturationISP، Anycast edge و Scrubbing
Protocol/State exhaustionConnection table، Load balancer و TLSpps، SYN/ACK، Connection state، HandshakeNetwork edge و Managed L3/L4 protection
Application-layerWorker، CPU، Cache، DB و Dependencyrps، Cost/request، Cache hit، Queue، Error/LatencyWAF، Rate limit، App و معماری Resilience
Functional/resource abuseSearch، Export، OTP، Email، Upload یا GraphQLعملیات/هویت، Complexity، هزینه ثالثAuthorization، Quota، Async job و Cost budget

راهنمای CISA برای شناخت و پاسخ به DDoS و راهنمای OWASP برای Denial of Service نیز بر لایه‌های متفاوت حمله و نیاز به دفاع چندلایه تأکید دارند. یک WAF نمی‌تواند Link اشباع‌شده پیش از دیتاسنتر را نجات دهد؛ یک سرویس L3/L4 نیز منطق گران Search یا API را به‌جای شما نمی‌شناسد.

پیش از ابزار: Service map و Failure budget بسازید

از دامنه اصلی شروع نکنید؛ از Journey حیاتی شروع کنید. کاربر برای تکمیل خرید، ورود یا مشاهده پرونده از چه زنجیره‌ای عبور می‌کند؟

لایهنمونه Asset/DependencyFailure محتملمالک
نام و مسیرRegistrar، Authoritative DNS، DNSSECDNS unavailable یا تغییر غیرمجازNetwork/Security
EdgeCDN، Anycast، DDoS service، WAFAttack pass-through یا False positivePlatform/Security
Origin entryLoad balancer، Reverse proxy، Public IPOrigin bypass یا Connection exhaustionInfrastructure
ApplicationWeb، API، Auth، Search، ExportWorker/CPU/Memory exhaustionEngineering
StateCache، Queue، DB و SessionStampede، Lock، Queue saturationEngineering/Data
Third partyدرگاه، پیامک، Map، Email و CRMQuota/Latency/Callback failureProduct/Operations
ResponseStatus page، On-call، Support و Vendorکانال ارتباط روی همان دامنه از کار بیفتدIncident commander

برای هر Journey، SLO و Guardrail تعیین کنید: Availability، p95/p99 latency، Error rate، درصد سفارش موفق، Queue delay و حداکثر هزینه Scaling. ظرفیت Provider به‌تنهایی SLO شما نیست؛ ممکن است Edge فعال باشد اما DB، OTP یا درگاه زودتر اشباع شود.

Attack surface inventory

  • همه Hostnameها، Public IPها، پورت‌ها و Protocolهای اینترنتی؛
  • Origin، پنل مدیریت، API، Webhook، فایل و Media endpoint؛
  • رکوردهای DNS-only، History DNS، گواهی، Email header و Git/Config که IP را فاش می‌کنند؛
  • Endpointهای گران مانند Search، Login، OTP، Export، Report، Upload و GraphQL؛
  • Dependencyهایی که Quota یا هزینه Per-request دارند؛
  • Single point of failure و مسیرهای Failover که همان Exposure را تکرار می‌کنند.

برای سایت ایرانی، مسیر داخلی و بین‌المللی، محل Origin، اپراتور/ISP، WebView درگاه و سرویس‌های خارجی را جدا ببینید. اختلال مسیر یا سرویس ثالث ممکن است از دید یک Probe شبیه DDoS باشد. Probe داخل و خارج کشور، User journey و Telemetry Provider را کنار هم قرار دهید.

Baseline: بدون رفتار عادی، «غیرعادی» را نمی‌شناسید

یک Spike فروش، خزنده جست‌وجو، Campaign، Cache purge یا Release تازه می‌تواند ترافیک و CPU را بالا ببرد. Baseline را بر ساعت/روز/فصل، Endpoint، Status، Cache state، ASN/منطقه، User type و Device بسازید.

سیگنالچرا مهم است؟مقایسه لازم
bps / pps / connectionsفشار Network/ProtocolEdge در برابر Origin و ظرفیت Link
rps و Cost/requestحمله کم‌حجم ممکن است گران باشدEndpoint، Method، Cache، Auth state
HTTP status و Latencyاثر واقعی بر کاربرEdge/Origin/Dependency و p50/p95/p99
WAF actionAllow/Challenge/Block و False positiveRule ID، Path و نتیجه کاربر
Cache hit ratioافت Hit فشار را به Origin می‌بردقبل/حین حمله و Cache key
CPU/Memory/Pool/Queue/DBگلوگاه واقعی را نشان می‌دهدUtilization، Saturation و Error
Business taskسرویس ۲۰۰ ولی خرید شکست‌خورده استBrowse→Cart→Pay→Verify
CostAutoscaling و سرویس ثالث ممکن است قبض بسازندForecast، سقف و Anomaly

Log خامِ IP به‌تنهایی کافی نیست و داده شخصی/امنیتی محسوب می‌شود. Retention، دسترسی، Redaction و Export اضطراری را از قبل تعریف کنید. در حمله ممکن است Origin log ناقص یا پرهزینه شود؛ Telemetry لبه، Metric کم‌حجم و Probe بیرونی باید مستقل بمانند. طراحی این لایه در راهنمای Observability و مانیتورینگ سایت و سنجش بیرونی در راهنمای مانیتورینگ Uptime تشریح شده است.

آیا واقعاً DDoS است؟ تریاژ پنج‌دقیقه‌ای

  1. اثر را تأیید کنید: کدام Region/ISP/Journey کند یا قطع است؟ Probe بیرونی و تراکنش مصنوعی چه می‌گویند؟
  2. زمان را Correlate کنید: Release، Migration، DNS/TLS change، Campaign، Cache purge یا Incident ثالث رخ داده؟
  3. لایه را پیدا کنید: Edge چه می‌بیند و Origin چه می‌بیند؟ Link، Connection، TLS، HTTP، App یا Dependency اشباع است؟
  4. Telemetry Provider را بخوانید: Attack flag، Vector، Mitigation state، Dropped traffic و Support case وجود دارد؟
  5. Severity اعلام کنید: Impact، Scope، Start time، SLO breach، Incident commander و Update cadence را ثبت کنید.
نشانهDDoS محتملجایگزین محتمل
Edge traffic بالا، Origin عادیMitigation لبه فعال و مؤثرCampaign Cacheable
Edge عادی، Origin CPU بالاOrigin bypass یا L7 کم‌حجمRelease/Query/Job داخلی
فقط یک ISP/منطقه قطعحمله مسیرمحور ممکنRouting/DNS/شبکه اپراتور
DB/Queue اشباع با rps متوسطEndpoint پرهزینهN+۱، Cache stampede یا Dependency slow
همه Endpointها ۴۰۳Rule دفاعی بیش‌ازحدWAF misconfiguration

معماری دفاع لایه‌ای

مدل هدف برای Web معمولاً چنین است:

User → Resilient DNS → Anycast/Edge DDoS → CDN/WAF/Bot control → Load balancer → Origin/App → Cache/Queue/DB/Third party

هر پیکان یک Trust boundary و یک نقطه Saturation است. دفاع خوب Attack traffic را تا حد ممکن دور از Resource کمیاب دفع می‌کند و برای ترافیک Legitimate مسیر قابل‌پیش‌بینی نگه می‌دارد.

DNS و Registrar

  • Registrar و DNS را با MFA، Role حداقلی، Lock و Audit log محافظت کنید.
  • Authoritative DNS با ظرفیت و DDoS protection مناسب انتخاب کنید.
  • TTL و تغییر Emergency را تمرین کنید؛ TTL پایین دائمی هزینه و بار DNS را بالا می‌برد.
  • Status page و راه تماس اضطراری را روی Failure domain مستقل نگه دارید.

Edge، Anycast و Scrubbing

حملات حجمی باید پیش از اشباع Link باریک شما دفع شوند. Anycast، ظرفیت توزیع‌شده و Scrubbing در Provider/ISP این نقش را دارند. راهنمای رسمی AWS برای معماری DDoS-resilient استفاده از سرویس‌های Edge، DNS، Load balancing، WAF، Metrics و Runbook را به‌صورت لایه‌ای توضیح می‌دهد. مستند Azure DDoS Protection نیز دفاع شبکه L3/L4 را از WAF لایه ۷ جدا می‌کند.

CDN همه Protocolها یا Endpointها را خودکار پوشش نمی‌دهد. مشخص کنید HTTP/S، TCP/UDP، DNS، API، WebSocket و پورت‌های غیروب هرکدام کجا محافظت می‌شوند. راهنمای انتخاب و راه‌اندازی CDN برای سایت ایرانی مسیر تصمیم Provider، Cache، Purge و Failover را تکمیل می‌کند.

Origin را واقعاً ببندید

«استفاده از CDN» مساوی «مخفی بودن Origin» نیست. رکورد DNS-only، Subdomain قدیمی، Mail header، Certificate history یا IP قبلی می‌تواند Origin را آشکار کند. پس:

  • در Firewall فقط Rangeهای معتبر Edge و مسیرهای مدیریت لازم را Allow کنید؛
  • در صورت امکان از Private connectivity، Tunnel یا mTLS میان Edge و Origin استفاده کنید؛
  • Origin certificate و Host validation را فعال کنید؛
  • DNS history و همه Hostnameها را Audit و IP فاش‌شده را در صورت امکان Rotation کنید؛
  • Direct-to-origin probe مجاز برای تیم عملیات داشته باشید، نه Endpoint عمومی ناشناس.

راهنمای رسمی Cloudflare برای محافظت Origin نیز Proxy رکوردها، بررسی افشای DNS و محدودکردن ورودی Origin را توصیه می‌کند. Allowlist IP به‌تنهایی، به‌ویژه در برابر Spoofing یا تغییر Range، نیازمند طراحی و نگهداری است.

WAF، Rate limit و Bot control چه نقشی دارند؟

WAF درخواست HTTP را می‌بیند و برای حمله لایه Application مفید است؛ اما جایگزین دفاع Network نیست. Policy باید از Endpoint، Method، Auth state و هزینه عملیات آگاه باشد. معماری و Rollout قانون‌ها در راهنمای فایروال و WAF سایت عمیق‌تر آمده است.

Rate limit بر پایه هزینه، نه یک عدد عمومی

قانون «۱۰۰ درخواست در دقیقه برای هر IP» ممکن است دفتر مشترک، NAT اپراتور یا خزنده مجاز را مسدود و بات توزیع‌شده را عبور دهد. Budget را براساس رفتار Legitimate و Cost endpoint بسازید:

Endpointکلید شمارشBudgetAction پله‌ای
صفحه CacheableIP/ASN + Fingerprint محافظت‌شدهنسبتاً بالاObserve → Challenge → Temporary limit
Login/OTPAccount + Device + IPکم و جدا برای Send/VerifyDelay/Challenge/Quota بدون Lockout قربانی
SearchSession/User + Query costComplexity budgetCache، محدودیت Filter، Degrade
Export/ReportAuthenticated user/tenantConcurrency و Daily quotaQueue و Asynchronous job
GraphQL/APIToken/Client/OperationDepth/Complexity/CostReject/Throttle و Retry-After

مستند رسمی Cloudflare برای Rate limiting نیز سناریوهای Endpoint، هویت و Complexity را جدا می‌کند. از Log/Simulate شروع کنید، False positive را بسنجید، Rule را Canary و Expiry تعیین کنید. Emergency rule بدون TTL/Owner معمولاً ماه‌ها باقی می‌ماند و کاربر سالم را آسیب می‌زند.

برای API، Rate limit فقط یکی از کنترل‌هاست؛ Authorization سطح Object/Function، Inventory، Schema validation، Resource bound و Log نیز باید کنار آن باشند. جزئیات پیاده‌سازی در راهنمای امنیت API و OWASP آمده است.

Challenge و CAPTCHA را کمینه کنید

Challenge می‌تواند Automation بد را کم کند، اما Cost، Accessibility، Privacy، SEO و کاربر شبکه ضعیف را تحت‌تأثیر می‌گذارد. CAPTCHA دفاع Volumetric نیست و حتی ممکن است هزینه Render/Application را بالا ببرد. آن را فقط برای Risk بالاتر و مسیر قابل‌دسترس جایگزین به‌کار ببرید؛ Search bot تأییدشده، Monitoring و Integration شریک را بی‌دلیل Challenge نکنید.

Geo-blocking و IP blocking؛ کنترل‌های موقت و ناقص

منبع IP می‌تواند توزیع‌شده، Proxyشده یا Spoofed باشد و کاربر ایرانی ممکن است به‌دلیل VPN از منطقه دیگری دیده شود. Geo-block فقط وقتی قابل‌دفاع است که بازار مجاز، الزام حقوقی و False positive روشن باشد. IP block دستی برای چند مبدأ غالب می‌تواند زمان بخرد، اما در DDoS گسترده مقیاس‌پذیر نیست. برای مقابله ریشه‌ای با Source spoofing، کنترل‌های شبکه اپراتورها مانند Ingress filtering در BCP ۳۸/۸۴ اهمیت دارند؛ این مسئله صرفاً با Firewall سایت حل نمی‌شود.

خود برنامه را در برابر Resource exhaustion مقاوم کنید

حمله L7 ممکن است با RPS کم، Query یا Dependency گران را مصرف کند. کنترل‌های دفاعی:

  • Bounded work: حد Size، Depth، Page size، Upload، Timeout و Complexity؛
  • Cache: محتوای عمومی، Negative cache و جلوگیری از Stampede؛
  • Queue: Job سنگین Async با Capacity و Backpressure؛
  • Bulkhead: Pool جدا برای Login، Checkout، Search و Admin تا یک مسیر همه را نخواباند؛
  • Circuit breaker: قطع موقت Dependency خراب با Fallback کنترل‌شده؛
  • Load shedding: رد زودهنگام درخواست کم‌اولویت پیش از مصرف DB؛
  • Idempotency: جلوگیری از چندبار اجرا شدن Payment/Order/OTP در Retry؛
  • Query budget: Index، Cursor pagination و جلوگیری از N+۱/Unbounded filter؛
  • Degraded mode: Read-only catalog، صف سفارش یا غیرفعال‌سازی Feature غیرحیاتی.

Autoscaling ظرفیت می‌دهد اما Filter نیست. می‌تواند حمله را تا DB یا سرویس پیامک تقویت و هزینه ایجاد کند. سقف، Cooldown، Downstream capacity و Cost alert تعیین کنید. Failover منطقه‌ای هم اگر Attack با DNS به مقصد جدید دنبال شود، فقط قربانی را جابه‌جا می‌کند؛ Secondary باید همان کنترل و Telemetry را داشته باشد.

سناریوی WordPress و WooCommerce

در WordPress، افزونه امنیتی روی Origin نمی‌تواند Link اشباع‌شده را نجات دهد. دفاع را از Edge آغاز کنید و نقاط پرهزینه را بشناسید:

سطحکنترلAcceptance
EdgeCache صفحه ناشناس، WAF، Bot و Rate ruleOrigin hit و Cache key اندازه‌گیری شود
Originفقط Edge، TLS/Host validation و Admin path کنترل‌شدهDirect public request رد شود
wp-login.phpRate/step-up بر Account+IP، MFA مدیرکاربر NATشده و Recovery قفل نشود
xmlrpc.phpاگر Integration نیاز ندارد Disable؛ در غیر این صورت LimitJetpack/App/Integration قبل از تغییر تست شود
admin-ajax.php/RESTRoute owner، Auth، Nonce، Cache/Quota و CostEndpoint عمومی بدون حد وجود نداشته باشد
WooCommerceCart/Checkout جدا از Cache عمومی، Idempotency و Queueپرداخت/Callback/Refund با Retry سالم باشد
DatabaseTop query، Pool، Lock و Slow log محدودحمله Search همه Worker/DB را نگیرد

تغییر کورکورانه XML-RPC یا REST می‌تواند Integration را بشکند. هر Rule را با Inventory، Owner، Log mode، Test و Rollback اعمال کنید. اگر Shared hosting دارید، سقف اتصال، سیاست Provider و مسیر Escalation تعیین‌کننده‌اند؛ راهنمای امنیت هاست اشتراکی و زمان مهاجرت برای سنجش این محدودیت‌هاست.

Runbook مقابله با DDoS

Runbook باید کوتاه، قابل‌اجرا و خارج از سامانه تحت حمله در دسترس باشد. NIST SP 800-61 Rev.3 Incident response را بخشی از مدیریت ریسک مستمر می‌داند: آمادگی، تشخیص، پاسخ، بازیابی و یادگیری باید به هم متصل باشند.

۰ تا ۱۵ دقیقه: تأیید و فرماندهی

  1. Incident ID، Start time، Severity و Incident commander را اعلام کنید.
  2. اثر واقعی بر Journey/SLO را با Probe و Business metric ثبت کنید.
  3. Release/Change و Incidentهای Provider/ISP/Dependency را بررسی کنید.
  4. Edge/Origin/Network/App telemetry را Snapshot و Retention را حفظ کنید.
  5. Case اضطراری با Hosting/CDN/DDoS provider باز و شماره Escalation ثبت کنید.

۱۵ تا ۳۰ دقیقه: Mitigation کم‌ریسک

  1. لایه/Vector/Target endpoint را تعیین و Rule ازپیش‌تأییدشده را فعال کنید.
  2. Cache و Origin lockdown را بررسی؛ IP/Port دورزننده Edge را ببندید.
  3. Endpoint پرهزینه را با Rate/Concurrency/Queue یا Degraded mode محافظت کنید.
  4. Critical path مانند Login/Checkout را از Feature کم‌اهمیت Bulkhead کنید.
  5. False positive، Latency، Error، Origin load و Business success را هم‌زمان ببینید.

۳۰ تا ۶۰ دقیقه: تثبیت و ارتباط

  1. اگر کنترل مؤثر نیست، Escalation Provider و Scrubbing/Route ازپیش‌توافق‌شده را اجرا کنید.
  2. Status page مستقل را با Impact و زمان Update بعدی به‌روز کنید؛ درباره Attribution حدس نزنید.
  3. Support script برای کاربران، سفارش نیمه‌کاره و پرداخت نامشخص بدهید.
  4. هر تغییر Rule، Threshold، Owner، زمان و نتیجه را در Timeline ثبت کنید.
  5. اگر نشانه نفوذ یا تغییر داده هست، Workstream امنیتی جدا باز کنید.

بازیابی و خروج از حالت دفاعی

پس از افت ترافیک فوراً همه کنترل‌ها را خاموش نکنید. Attack ممکن است موجی باشد. Exit criteria تعیین کنید: پایداری SLO برای بازه مشخص، Queue تخلیه‌شده، Dependency سالم، False positive قابل‌قبول و تأیید Provider. Emergency ruleها را مرحله‌ای Rollback و User journey را Smoke test کنید.

Backup از DDoS جلوگیری نمی‌کند، اما اگر Incident هم‌زمان با خرابی یا تغییر داده باشد Recovery لازم است. RTO/RPO، Restore و ارتباط با DR در راهنمای بازیابی فاجعه و Backup سایت آمده است.

جدول تصمیم Mitigation

شاهداقدام محتملریسک/Guardrail
Link/pps اشباع پیش از OriginProvider L3/L4، Anycast و ScrubbingRoute change و پوشش همه IP/Protocol
HTTP flood روی صفحات عمومیCache، WAF managed rule و adaptive challengeSEO/Accessibility/False positive
Search/GraphQL گرانCost budget، Depth/Filter limit و Queueکاربر Power و Partner API
Origin bypassFirewall allow Edge، rotate IP و audit leaksWebhook/Monitoring/Admin مجاز
DB/Pool اشباعLoad shedding، concurrency و CacheConsistency و Critical writes
Region/ISP خاصRoute/Provider escalation و Probe مستقلاختلال شبکه را حمله فرض نکنید
WAF همه را مسدود کردهRollback/Scope rule و Allow trusted flowAttack دوباره عبور نکند

چگونه سرویس DDoS Protection را ارزیابی کنیم؟

قیمت ماهانه بدون Scope ارزشی ندارد. این پرسش‌ها را مکتوب بپرسید:

حوزهپرسش خریدشاهد پذیرش
Coverageکدام Domain/IP/Protocol و L3/L4/L7 پوشش دارد؟Asset-to-control matrix
ModeAlways-on یا On-demand؟ زمان Route/Mitigation؟Runbook و Drill result
OriginPrivate path/mTLS/Allowlist و IP rotation چگونه است؟Direct-origin negative test
DetectionBaseline/Threshold/Custom policy و False positive؟Metric و Sample incident report
CapacityClean traffic، Regional limit و Shared capacity چیست؟SLA/Architecture، نه شعار «نامحدود»
Operations۲۴×۷، زبان/کانال، Severity و Escalation؟Call tree و response target
TelemetryReal-time log/metric، Retention و API export؟Test dashboard و SIEM path
CostAttack traffic، WAF request، Log، Scale و overage؟سناریوی Cost spike و سقف
Data/AccessTLS termination، log location، Privacy و تحریم؟DPA، Key ownership و continuity plan
ExitDNS/IP/Rule/Log چگونه منتقل می‌شود؟Export و rollback rehearsal

در ایران، امکان پرداخت و تمدید، احراز هویت، مالکیت Account، دسترسی تیم در زمان Incident، مسیر داخلی/خارجی، پشتیبانی فارسی، Data locality و قابلیت انتقال Ruleها را هم بسنجید. سرویس خارجی قدرتمند که هنگام Incident نتوانید وارد حسابش شوید، Control قابل‌اتکا نیست. بودجه را بر Loss exposure، RTO، Coverage gap و Evidence ببندید؛ روش کامل در راهنمای بودجه امنیت سایت آمده است.

تست DDoS را ایمن و قانونی انجام دهید

هرگز برای «تست» بدون مجوز مکتوب به سامانه Production یا زیرساخت ثالث ترافیک حمله نفرستید. ممکن است قرارداد Hosting/CDN، قانون یا کاربران دیگر را نقض کند. تست را چندلایه کنید:

  1. Tabletop: سناریو، تماس‌ها، اختیار Rule، ارتباط و Decision gate را تمرین کنید.
  2. Configuration test: Origin lockdown، Alert، Rule در Log mode، Status page و Export telemetry را بررسی کنید.
  3. Load/performance test: ظرفیت Legitimate را در محیط و سقف توافق‌شده، جدا از شبیه‌سازی حمله بسنجید.
  4. Provider-approved simulation: فقط با Partner/Range/Window/Stop condition و مجوز همه مالکان اجرا کنید.
  5. Game day: Alert تا Escalation، Mitigation، Communication، Recovery و Postmortem را زمان‌گیری کنید.

هدف «بزرگ‌ترین ترافیک» نیست؛ اثبات Control است: آیا Alert رسید؟ آیا On-call پاسخ داد؟ آیا Origin مستقیم بسته بود؟ آیا Checkout سالم ماند؟ آیا Rule Rollback شد؟ مستند Azure نیز Runbook، Telemetry و Simulation مجاز را جزو آمادگی عملیاتی می‌داند.

Postmortem و شواهد اثربخشی

پرسششاهد
چه زمانی Impact آغاز و کشف شد؟Probe، SLO، Provider flag و Timeline
کدام Resource اول اشباع شد؟Network/App/DB/Dependency metrics
چه مقدار Attack در Edge دفع شد؟Allowed/Challenged/Dropped و Origin delta
کاربر واقعی چقدر آسیب دید؟Task success، Error، Support و Segment
کدام Rule کمک یا آسیب زد؟Rule ID، Before/After و False positive
هزینه مستقیم/فرصت چه بود؟Scale، Egress، Provider، Refund و Contribution
چه تغییر سیستمی لازم است؟Owner، Deadline، Acceptance و Retest

Postmortem نباید فقط «IPهای بد را مسدود کردیم» باشد. Root cause اثر کسب‌وکاری ممکن است Origin exposure، نبود Queue، Rule بدون Owner، Escalation کند یا Status page هم‌دامنه باشد. Action item بدون Owner و Verification بدهی عملیاتی است.

برنامه ۳۰روزه افزایش مقاومت DDoS

  1. روز ۱ تا ۵: Service/Journey/Public asset/Dependency map، SLO و Contact tree بسازید.
  2. روز ۶ تا ۱۰: DNS/IP/Port/Origin leak را Audit و Edge coverage را با Provider تطبیق دهید.
  3. روز ۱۱ تا ۱۵: Baseline و Dashboard برای bps/pps/rps/Cost/Cache/App/Business و Alert چندسیگنالی بسازید.
  4. روز ۱۶ تا ۲۰: Endpoint cost، WAF/Rate/Quota/Queue/Timeout/Load shedding و Degraded mode را تعریف کنید.
  5. روز ۲۱ تا ۲۵: Runbook، Severity، Emergency rule، Expiry، Status page و متن ارتباط را آماده کنید.
  6. روز ۲۶ تا ۳۰: Tabletop و Drill مجاز اجرا، Gapها را اصلاح و Evidence pack را به‌روز کنید.

چک‌لیست مقابله با حملات DDoS

  • Journey، SLO، RTO و Loss exposure مشخص‌اند.
  • همه Domain/IP/Port/API/Webhook و Third partyها Inventory شده‌اند.
  • Coverage دفاع L3/L4 و L7 به تفکیک Asset روشن است.
  • Origin فقط از مسیرهای مجاز Edge/Management قابل‌دسترسی است.
  • DNS، Registrar، Account و Rule تغییرات MFA/RBAC/Audit دارند.
  • Baseline فصلی و Segmentشده برای Network/App/Business وجود دارد.
  • Rate limit بر Endpoint cost و هویت مناسب است، نه IP عمومی تنها.
  • WAF rule ابتدا Log/Canary و سپس Block می‌شود و Expiry دارد.
  • Cache، Queue، Bulkhead، Timeout، Circuit breaker و Load shedding بررسی شده‌اند.
  • Autoscaling سقف هزینه و Downstream guardrail دارد.
  • Checkout/OTP/Payment و حالت Retry/Unknown در ایران آزموده شده‌اند.
  • Probe و Status page خارج Failure domain هستند.
  • Runbook، Incident commander، Call tree و Provider case آماده‌اند.
  • Communication از Attribution تأییدنشده پرهیز می‌کند.
  • Drill فقط با مجوز، Window، Range و Stop condition اجرا می‌شود.
  • Recovery، Rollback rule و Postmortem با Owner/Acceptance تعریف شده‌اند.

پرسش‌های متداول

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

خیر. Coverage به Provider، Plan، Protocol و معماری بستگی دارد. CDN می‌تواند HTTP Cacheable و بخشی از ترافیک Edge را جذب کند، اما Origin افشاشده، L3/L4 خارج Coverage، API یا Endpoint گران Application به کنترل‌های دیگری نیاز دارند.

هنگام حمله DDoS اول چه کاری انجام دهیم؟

اثر و لایه را با Probe، Edge/Origin telemetry و تغییرات اخیر تأیید کنید؛ Incident commander تعیین و Provider را طبق Runbook درگیر کنید. سپس Mitigation ازپیش‌تأییدشده را روی Target مشخص فعال و هم‌زمان False positive و موفقیت Journey را بسنجید.

آیا Block کردن IP یا کشور راه‌حل مؤثری است؟

گاهی کنترل موقت است، نه دفاع کامل. DDoS می‌تواند توزیع‌شده یا Proxyشده باشد و NAT/VPN کاربران سالم را پشت همان IP/Region قرار دهد. IP/Geo rule باید Evidence، زمان انقضا، استثنا و پایش False positive داشته باشد.

تفاوت WAF و سرویس DDoS Protection چیست؟

سرویس Network DDoS معمولاً حملات حجمی و Protocol در L3/L4 را پیش از Origin دفع می‌کند؛ WAF درخواست HTTP لایه ۷ و رفتار Endpoint را می‌بیند. وب‌سایت پرریسک معمولاً هر دو، به‌علاوه Resilience داخل برنامه و Runbook عملیاتی می‌خواهد.

آیا DDoS باعث سرقت اطلاعات می‌شود؟

DDoS مستقیماً Availability را هدف می‌گیرد و به‌خودی‌خود اثبات نفوذ یا سرقت داده نیست. اما می‌تواند هم‌زمان با حمله دیگری رخ دهد. Logهای هویت، تغییر داده و دسترسی غیرعادی را جدا بررسی و در صورت وجود شاهد، Incident امنیتی مستقل مدیریت کنید.

جمع‌بندی: مقاومت DDoS از خرید Capacity شروع و تمام نمی‌شود. Service map، Origin بسته، دفاع Edge و Application، Rate limit هزینه‌محور، Telemetry مستقل، Runbook تمرین‌شده و Recovery قابل‌اثبات باید یک سیستم باشند. هدف نهایی «صفر ترافیک مخرب» نیست؛ حفظ کار حیاتی کاربر با هزینه و ریسک کنترل‌شده است.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *