Skip to main content

DDoS Protection: Strategies and Best Practices

Published: February 21, 2026 Updated: July 30, 2026 Larry Qu 18 min read

Introduction

DDoS attacks can cripple services. In 2026, attackers routinely launch terabit-per-second floods using botnets of compromised IoT devices, residential routers, and cloud VMs. The largest recorded DDoS peaked at 5.6 Tbps in 2024, and campaigns routinely exceed 1 Tbps. Most attacks are still under 10 Gbps, but application-layer attacks of millions of requests per second are routine.

This guide covers the complete taxonomy of DDoS attacks, defense strategies at every layer, mitigation techniques, provider selection, and building resilient infrastructure. DDoS defense is a well-understood discipline — but you have to defend against three very different categories of attack, each requiring different tools.

Understanding DDoS Attacks

What Is a DDoS Attack?

DDoS stands for Distributed Denial of Service. The goal is simple: make your service unavailable by overwhelming it — with traffic, with malformed packets, or with expensive requests. “Distributed” means the attack comes from many sources at once, often thousands or millions of compromised devices.

Attack Types

DDoS attacks are categorized by which OSI layer they target:

volumetric_attacks:
  description: "Saturate network bandwidth with massive traffic"
  layer: "Layer 3/4"
  examples:
    - "UDP Flood"
    - "ICMP Flood"
    - "DNS/NTP/Memcached Amplification"
  measured: "Gbps or Tbps"

protocol_attacks:
  description: "Exploit protocol weaknesses to exhaust state"
  layer: "Layer 3/4"
  examples:
    - "SYN Flood"
    - "ACK Flood"
    - "Ping of Death"
  measured: "Mpps (packets per second)"

application_layer_attacks:
  description: "Overwhelm application logic with valid-looking requests"
  layer: "Layer 7"
  examples:
    - "HTTP Flood"
    - "Slowloris"
    - "Slow POST / RUDY"
    - "Credential Stuffing"
  measured: "Requests per second"

Why Mpps Often Matters More Than Tbps

Network engineers instinctively think about bandwidth (bps), but modern DDoS attacks often win on packets per second (pps), not raw bandwidth. Every packet — regardless of size — consumes CPU cycles: interrupt handling, kernel network stack traversal, routing table lookup, and connection state management.

A 10 Gbps link carries a maximum of 14.88 Mpps of minimum-size (64-byte) Ethernet frames. A SYN flood using 64-byte packets at 14.88 Mpps sends 10 Gbps of traffic but consumes packet-processing slots at 18x the rate of large-packet traffic on the same bandwidth. This is why mitigation systems must handle hundreds of Mpps, not just peak bandwidth.

Attack Vector Example

# Simple SYN flood (for understanding only)
# Never execute actual attacks

def syn_flood(target_ip, target_port, duration):
    """Concept: Send many SYN packets without completing handshake"""
    # In reality, use hping3 or similar tools
    # This is pseudocode for understanding
    pass

The Three Attack Categories in Depth

Volumetric Attacks (Layer 3/4)

The simplest and most common type. Volumetric attacks try to saturate your bandwidth — if your transit link is 10 Gbps and the attacker pushes 50 Gbps, no legitimate packet can squeeze through.

Common techniques:

Technique Description Mitigation
UDP flood Random UDP packets at random ports Rate limit per source, drop unexpected ports
ICMP flood Ping floods with large payloads Rate limit ICMP at edge
DNS amplification 40-byte query → 3,000-byte response (70x) Block inbound UDP port 53, RRL
NTP amplification 234-byte request → 48,000-byte response (206x) Block inbound UDP port 123
Memcached amplification 15-byte request → 1MB response (51,000x) Never expose memcached, block UDP 11211
Carpet bombing Spread across entire /24 to evade per-IP limits Upstream scrubbing, FlowSpec

Defenses: Upstream scrubbing absorbs the flood before it reaches your network. BGP blackholing announces the attacked /32 with a community that tells upstream to drop all traffic to it. Anycast distributes your service across many PoPs so no single one is overwhelmed. Massive bandwidth headroom — buying more capacity than you’ll ever need — is expensive but effective.

# iptables: rate limit UDP and drop excess
iptables -A INPUT -p udp -m limit --limit 500/s --limit-burst 1000 -j ACCEPT
iptables -A INPUT -p udp -j DROP

# Block unsolicited DNS responses (amplification defense)
iptables -A INPUT -p udp --sport 53 -m state --state NEW -j DROP

Protocol Attacks (Layer 3/4)

Protocol attacks abuse the way TCP, UDP, and other protocols work to exhaust state on your servers, firewalls, or load balancers — even at relatively low bandwidth.

Technique Mechanism Mitigation
SYN flood Open millions of half-open TCP connections SYN cookies, connection rate limits
ACK flood Spoofed ACKs force firewall lookups Stateful firewall, drop NEW ACK
RST flood Spoofed resets tear down connections TCP sequence validation, tcp_rfc1337
Fragment flood Malformed fragments crash IP stacks Fragment filtering
GRE flood Overwhelm decapsulation processing Drop GRE (protocol 47) if unused

SYN cookies are the modern standard defense — the OS encodes connection state in the SYN-ACK sequence number so it doesn’t need to keep half-open connections:

# Enable SYN cookies (Linux)
sysctl -w net.ipv4.tcp_syncookies=1

# Increase SYN backlog and reduce timeout
sysctl -w net.ipv4.tcp_max_syn_backlog=4096
sysctl -w net.ipv4.tcp_synack_retries=2

# Rate limit SYN packets
iptables -A INPUT -p tcp --syn -m limit --limit 100/s --limit-burst 200 -j ACCEPT
iptables -A INPUT -p tcp --syn -j DROP

Application-Layer Attacks (Layer 7)

The most sophisticated and hardest to detect. Layer 7 attacks send valid-looking requests to your application — but at a rate or pattern designed to exhaust resources. Individual requests look legitimate, so no bandwidth anomaly triggers upstream ISP alarms.

Technique Mechanism Mitigation
HTTP flood Millions of GET/POST to expensive endpoints WAF, rate limiting, bot detection
Slowloris Open connections, send headers slowly Aggressive timeouts, event-driven servers
Slow POST Send large Content-Length, drip body Body size limits, transfer timeouts
Cache-busting Random query strings bypass CDN caches Normalize URLs, origin shielding
Credential stuffing Brute-force logins exhaust auth capacity CAPTCHA, MFA, IP reputation

Mitigation strategies:

  • Web Application Firewall (WAF) — fingerprint and block bad traffic by signature, behavior, or rate
  • Bot detection — JavaScript challenges, browser fingerprinting, CAPTCHA
  • Rate limiting per session — cap per-user request rate
  • Caching aggressively — keep dynamic responses out of the origin path
  • Origin shielding — only allow your CDN/WAF IPs to reach your origin
# nginx rate limiting for HTTP flood protection
limit_req_zone $binary_remote_addr zone=api:10m rate=10r/s;

location /api/ {
    limit_req zone=api burst=20 nodelay;
}

# Limit connections per IP and set header timeout (Slowloris defense)
limit_conn_zone $binary_remote_addr zone=connlimit:10m;
limit_conn connlimit 20;
client_header_timeout 10s;
client_body_timeout 10s;

Defense Strategies

Multi-Layer Defense

defense_layers:
  - name: "Edge/CDN"
    purpose: "Absorb volumetric attacks, cache content"
    tools: ["Cloudflare", "Akamai", "AWS CloudFront"]
    
  - name: "Network Layer"
    purpose: "Filter bad traffic, absorb floods"
    tools: ["DDoS protection services", "Border firewalls", "Scrubbing centers"]
    
  - name: "Application Layer"
    purpose: "Block application attacks"
    tools: ["WAF", "Rate limiting", "CAPTCHA", "Bot detection"]

mitigation_phases:
  1. "Detection - Identify attack early"
  2. "Diversion - Route traffic through scrubbing"
  3. "Filtering - Block malicious requests"
  4. "Analysis - Understand attack pattern"
  5. "Return - Gradually return to normal"

How DDoS Scrubbing Works

Scrubbing is the dominant defense against volumetric and protocol attacks:

  1. Detection — flow telemetry (sFlow, NetFlow, IPFIX) detects an anomaly
  2. Diversion — BGP route advertisement reroutes traffic for the attacked prefix to a scrubbing center
  3. Cleaning — the scrubbing center filters out malicious traffic and forwards only legitimate packets
  4. Re-injection — clean traffic flows back to your network through a GRE tunnel or direct cross-connect

Modern scrubbing infrastructures handle multi-Tbps attacks across globally distributed PoPs.

Always-On vs On-Demand

Mode Traffic Flow Cost Protection
Always-on All traffic through scrubber Higher Highest — no diversion delay
On-demand Direct until attack detected Lower 30-120s diversion delay

Best practice: always-on for critical services, on-demand for less critical ones. Look for sub-10-second mitigation in your provider.

BGP Blackholing (RTBH)

Remotely Triggered Blackhole is the simplest DDoS response: drop all traffic to the attacked IP. You announce a /32 with a special community (typically 666 or a provider-specific value), and your upstream drops everything destined for that IP.

This stops the attack from saturating your pipe — but it also takes the attacked service completely offline. It’s a sacrifice play, useful when only one IP is being targeted and the alternative is the entire network going down.

Challenge-Based Mitigation

For L7 attacks, network-layer scrubbing is insufficient. Challenge-based mitigation presents clients with computational or behavioral challenges:

Challenge Type Description User Impact
CAPTCHA Human visual recognition High friction
JavaScript challenge Browser solves puzzle, sets cookie Transparent to real users
Proof-of-Work Client solves SHA-256 hash puzzle ~100ms added latency

AI/ML Behavioral Defense

Static rules and signature matching struggle against adaptive attacks. Modern DDoS mitigation platforms use machine learning to establish baseline behavioral profiles:

  • Normal requests per second per endpoint
  • Geographic distribution of legitimate users
  • Typical request size distributions
  • Expected protocol field values (TTL ranges, window sizes)
  • Session-level behavior (time on page, navigation patterns)

When observed traffic deviates from baseline, the ML model adjusts mitigation thresholds automatically. Adaptive rate limiting targets specific source ASNs, URI paths, or request patterns rather than blanket blocking that harms legitimate users.

Cloudflare DDoS Protection

# Cloudflare configuration

# Under Attack Mode
# Enable in Cloudflare dashboard or via API

# Rate limiting
rules = [
    {
        "id": "rate-limit-1",
        "action": "block",
        "expression": "ip.src eq 10.0.0.0/8",
        "config": {
            "target": "ip",
            "rate": 100,
            "period": 60
        }
    }
]

# JavaScript challenge for suspicious traffic
challenge_rules = [
    {
        "action": "js_challenge",
        "expression": "cf.threat_score gt 10"
    }
]

Cloudflare operates a global anycast network with multi-Tbps scrubbing capacity. Its network absorbs most volumetric and many Layer 7 attacks. For non-HTTP services (game servers, custom protocols), you need a dedicated scrubber.

AWS Shield

# AWS DDoS protection layers

aws_protection:
  - name: "AWS Shield Standard"
    included: "All AWS customers"
    protects:
      - "Layer 3/4 attacks"
      - "DDoS attacks on CloudFront, Route 53"
      
  - name: "AWS Shield Advanced"
    cost: "$3,000/month"
    protects:
      - "All Standard protections"
      - "Application-layer DDoS"
      - "24/7 DDoS Response Team"
      - "DDoS cost protection"

Implementation

Rate Limiting at Edge

# Cloudflare Workers rate limiting

addEventListener('fetch', event => {
  event.respondWith(handleRequest(event.request))
})

async function handleRequest(request) {
  const ip = request.headers.get('CF-Connecting-IP')
  
  // Check rate limit
  const limit = 100 // requests per minute
  const key = `rate_limit:${ip}`
  
  const current = await RATE_LIMIT.get(key)
  
  if (current && parseInt(current) >= limit) {
    return new Response('Rate limit exceeded', {
      status: 429,
      headers: {
        'Retry-After': '60'
      }
    })
  }
  
  // Increment counter
  await RATE_LIMIT.put(key, (current ? parseInt(current) + 1 : 1), { expirationTtl: 60 })
  
  return fetch(request)
}

IP Reputation System

# IP reputation checking

class IPReputation:
    """Check IP reputation"""
    
    def __init__(self):
        self.blocklist = set()
        self.allowlist = set()
    
    def is_malicious(self, ip):
        if ip in self.allowlist:
            return False
        
        if ip in self.blocklist:
            return True
        
        # Check threat intelligence feeds
        return self.check_threat_feeds(ip)
    
    def check_threat_feeds(self, ip):
        # Check various threat intelligence sources
        # - AbuseIPDB
        # - Project Honey Pot
        # - Spamhaus
        pass
    
    def get_score(self, ip):
        """Get threat score (0-100)"""
        score = 0
        
        # Check if in any blocklist
        if ip in self.blocklist:
            score += 50
        
        # Check geographic risk
        # Check attack history
        # Check if proxy/VPN
        
        return score

Choosing a DDoS-Protected Provider

Criterion What to Look For
Network capacity Multi-Tbps scrubbing capacity
Detection time Under 30s is good, under 10s is excellent
Mitigation time How fast does the scrubber start cleaning?
Layer 7 protection Pure network scrubbing won’t stop HTTP floods
Always-on option For revenue-critical services
BGP community support For blackholing and FlowSpec
Reporting Post-attack reports for understanding
SLA Uptime guarantees during attacks

Attack Metrics and Cost Analysis

Cost of Downtime

Service Type Cost per Hour of Downtime Impact
E-commerce $100K-300K Lost sales, cart abandonment
SaaS B2B $25K-100K SLA penalties, churn
Ad-supported $10K-50K Lost impressions
Financial services $500K-1M+ Trading disruption, compliance
Gaming $50K-200K Player churn, reputation

A 2-hour DDoS outage on a mid-size e-commerce platform can cost $200K-600K in lost revenue alone, not counting recovery and reputation damage.

Mitigation Cost Comparison

Protection Level Monthly Cost Protection
CDN + basic DDoS $20-200 Volumetric, some L7
Managed DDoS service $500-5,000 Full volumetric + protocol
Always-on scrubbing $1,000-10,000+ Full protection, no diversion delay
Enterprise protection $5,000-50,000+ Multi-vector, 24/7 SOC

Basic always-on scrubbing typically adds 10-30% to bandwidth costs. Specialized always-on with Layer 7 WAF can be more.

Real-World Attack Examples

Attack Year Scale Target Impact
Memcached amplification 2018 1.35 Tbps GitHub ~17,000 servers, 20 min
Largest recorded DDoS 2024 5.6 Tbps Cloudflare customer UDP flood from IoT botnet
Record pps attack 2024 100M+ pps Various Packet-rate exhaustion
Ransom DDoS (RDoS) 2026 Routine Various Extortion campaigns

Monitoring and Detection

Key Metrics to Track

def detect_ddos_anomaly(traffic_stats):
    """Detect potential DDoS based on traffic anomalies."""
    alerts = []
    
    # Bandwidth anomaly
    if traffic_stats['bps'] > 2 * traffic_stats['baseline_bps']:
        alerts.append({
            'type': 'volumetric',
            'metric': f"Bandwidth {traffic_stats['bps']/1e9:.1f} Gbps vs baseline {traffic_stats['baseline_bps']/1e9:.1f} Gbps"
        })
    
    # Packet rate anomaly
    if traffic_stats['pps'] > 3 * traffic_stats['baseline_pps']:
        alerts.append({
            'type': 'protocol',
            'metric': f"Packet rate {traffic_stats['pps']/1e6:.1f} Mpps vs baseline {traffic_stats['baseline_pps']/1e6:.1f} Mpps"
        })
    
    # SYN/ACK ratio anomaly
    syn_ack_ratio = traffic_stats['syn_count'] / max(traffic_stats['ack_count'], 1)
    if syn_ack_ratio > 3:
        alerts.append({
            'type': 'syn_flood',
            'metric': f"SYN/ACK ratio {syn_ack_ratio:.1f} (normal < 1)"
        })
    
    # Connection rate anomaly
    if traffic_stats['connections_per_sec'] > 5 * traffic_stats['baseline_cps']:
        alerts.append({
            'type': 'connection_flood',
            'metric': f"Connection rate {traffic_stats['connections_per_sec']}/s vs baseline {traffic_stats['baseline_cps']}/s"
        })
    
    return alerts

Monitoring Tools

Tool Layer Detection Capability Integration
NetFlow/sFlow L3/L4 Bandwidth, flow anomalies All major routers
vnStat / nload L3/L4 Real-time traffic Linux
CloudWatch/Grafana L3-L7 Custom metrics AWS, self-hosted
WAF analytics L7 Request patterns, bot behavior Cloudflare, AWS WAF
SIEM (Splunk, ELK) L3-L7 Correlated threat detection Enterprise

Rate Limiting Strategies

Fixed Window vs Token Bucket

Strategy Description Pros Cons
Fixed window Reset counter every N seconds Simple Burst at window edge
Sliding window Continuous window tracking Smooth More complex
Token bucket Refill tokens at fixed rate Allows bursts Tuning needed
Leaky bucket Fixed output rate Very smooth Rejects bursts
Adaptive ML-based thresholds Handles legit spikes Requires baseline
class TokenBucketRateLimiter:
    """Token bucket rate limiter for API endpoints."""
    
    def __init__(self, rate, burst):
        self.rate = rate          # tokens per second
        self.burst = burst        # max tokens
        self.tokens = burst
        self.last_refill = time.time()
    
    def allow(self):
        """Check if request is allowed."""
        now = time.time()
        elapsed = now - self.last_refill
        self.tokens = min(self.burst, self.tokens + elapsed * self.rate)
        self.last_refill = now
        
        if self.tokens >= 1:
            self.tokens -= 1
            return True
        return False

Layer-Specific Defense Configuration

Application Layer (L7) Defense Stack

# Complete L7 DDoS defense stack
defense_stack:
  layer7:
    cdn_caching: "Cache all static + semi-dynamic content"
    waf: "OWASP CRS ruleset, PL2 default"
    bot_management: "JS challenge + browser fingerprinting"
    rate_limiting: "Per-IP, per-session, per-endpoint"
    api_protection: "Schema validation, auth, quotas"
    origin_shielding: "Only CDN IPs can reach origin"
    load_balancing: "Distribute across multiple origins"

Origin Protection Checklist

  • Only CDN/WAF IP ranges allowed to reach origin
  • No direct public access to origin servers
  • Rate limiting at every layer (CDN, WAF, app, DB)
  • Aggressive timeouts for slow connections
  • Request body size limits
  • Caching headers configured for static content
  • TLS termination at edge (not origin)

Security Hardening for Botnets

Prevent Becoming an Attacker

Compromised devices form the botnets that power DDoS attacks. Your infrastructure should not become part of the problem:

Control Purpose
BCP 38 / source-address validation Prevent spoofed-source traffic leaving your network
Close open DNS resolvers Prevent DNS amplification
Disable NTP monlist Prevent NTP amplification
Never expose memcached to internet Prevent 51,000x amplification
Disable UPnP on public devices Prevent SSDP amplification
Patch IoT devices Reduce botnet recruitment
Monitor outbound traffic Detect anomalous outbound floods

Multi-Vector Attack Defense

The most dangerous DDoS attacks in 2026 are multi-vector: they combine a volumetric UDP flood to stress the network with a simultaneous L7 HTTP flood targeting a specific endpoint, while a Slowloris campaign occupies remaining server connections. Single-layer defenses fail against this approach.

Building a resilient defense requires defense-in-depth: network-layer scrubbing to handle volumetric attacks, protocol-layer defenses for state exhaustion, and intelligent L7 inspection for application attacks. No single control is sufficient against modern multi-vector campaigns.

Best Practices

# DDoS protection best practices

infrastructure:
  - "Use CDN with DDoS protection"
  - "Enable rate limiting globally"
  - "Design for partial failure"
  - "Maintain spare capacity"
  - "Implement BCP 38 (source-address validation)"
  - "Enable SYN cookies at every public-facing host"
  - "Set sane connection limits on all servers"
  - "Deploy BGP FlowSpec for fine-grained drops"

monitoring:
  - "Monitor traffic patterns"
  - "Set up alerts for anomalies"
  - "Track pps and rps, not just bandwidth"
  - "Test defenses regularly"
  - "Have runbooks ready"
  - "Predefine steps for common attack types"

response:
  - "Have incident response plan"
  - "Contact provider early"
  - "Document everything"
  - "Post-mortem after attack"
  - "Practice response through tabletop exercises"

Incident Response Runbook

1. DETECT: Monitor flow telemetry, receive alert
2. ASSESS: Determine attack type and scale (volumetric/protocol/L7)
3. DIVERT: If volumetric, trigger BGP diversion or blackhole
4. MITIGATE: Enable L7 defenses (rate limiting, JS challenge, WAF rules)
5. COMMUNICATE: Update status page, notify stakeholders
6. ANALYZE: Capture attack data for post-mortem
7. RESTORE: Gradually return traffic to normal after attack subsides
8. DOCUMENT: Write post-mortem, update runbooks and rules

Testing and Validation

DDoS Testing Tools

Tool Purpose Risk Level
hping3 Protocol-level packet generation High
LOIC/HOIC Volumetric floods (avoid) Very high
Slowloris Connection exhaustion testing Medium
OWASP ZAP L7 application attack testing Low-Medium
MHDDoS Multi-vector testing High
Cloud-based load testing Simulated high traffic Low

Warning: Only test your own infrastructure with explicit authorization. Testing against third parties is illegal.

Test Checklist

  • Verify SYN flood protection (SYN cookies enabled)
  • Test UDP flood absorption at CDN edge
  • Confirm rate limiting activates during traffic spikes
  • Validate JS challenge / CAPTCHA during L7 attacks
  • Test BGP blackhole / diversion triggers
  • Verify monitoring alerts fire within 30s
  • Time the diversion-to-mitigation transition
  • Confirm origin servers stay isolated from direct access

The Cost of Not Protecting

Scenario Cost
2-hour outage, e-commerce $200K-600K lost revenue
Ransom DDoS payment $5K-100K+ (no guarantee of stop)
SLA breach penalties $50K-500K
Customer churn 10-20% of affected users
Recovery and forensic work $10K-50K
Reputation damage Long-term, hard to quantify

The math is clear: even basic CDN-level DDoS protection ($20-200/month) is vastly cheaper than the cost of a single significant outage.

DDoS Protection Decision Guide

Service exposed to public internet?
├── Yes → HTTP/HTTPS service?
│   ├── Yes → CDN with DDoS protection
│   │   ├── Critical revenue service?
│   │   │   ├── Yes → Always-on scrubbing + WAF
│   │   │   └── No → On-demand scrubbing
│   │   └── Add: rate limiting, bot management, origin shielding
│   └── No (game servers, custom protocols) → Dedicated scrubber
├── No → Internal service → Minimal protection needed
└── All services → Monitoring, runbooks, incident response plan

Best Practices Checklist

Infrastructure

  • Use CDN with DDoS protection for all public services
  • Enable rate limiting globally (edge + application)
  • Design for partial failure (graceful degradation)
  • Maintain spare capacity (10-20% headroom)
  • Implement BCP 38 source-address validation
  • Enable SYN cookies on all public hosts
  • Set sane connection limits on all servers
  • Isolate origin servers from direct public access

Monitoring

  • Monitor traffic patterns (bps, pps, rps, SYN/ACK ratio)
  • Set up alerts for anomalies (30s detection target)
  • Test defenses regularly (quarterly)
  • Have runbooks ready (documented steps)
  • Track both peak and sustained metrics

Response

  • Have incident response plan
  • Contact provider early (they have tools you don’t)
  • Document everything during incident
  • Conduct post-mortem after attack
  • Practice response through tabletop exercises

DDoS Protection Resources

Resource Type URL
OWASP DDoS Prevention Cheat Sheet Guide owasp.org
Cloudflare DDoS Protection Docs Documentation developers.cloudflare.com
AWS Shield Documentation Documentation aws.amazon.com/shield
CISA DDoS Guidance Government guide cisa.gov
NIST DDoS Mitigation Guidelines Standards nist.gov

Summary

Key takeaways for DDoS protection in 2026:

  1. Three attack categories — volumetric (bps), protocol (pps), application (rps) — each needs different defenses
  2. Defense-in-depth — CDN edge, network scrubbing, protocol defenses, WAF, bot detection
  3. Monitor the right metrics — pps and rps often matter more than bandwidth
  4. Design for failure — graceful degradation, spare capacity, runbooks
  5. Choose providers carefully — detection time, mitigation speed, L7 capability, SLA
  6. Don’t become a botnet member — implement BCP 38, close amplifiers
  7. Test regularly — tabletop exercises, quarterly attack simulations

Conclusion

DDoS protection requires multiple layers:

  • Edge: CDN absorbs volumetric attacks
  • Network: Filter at network perimeter
  • Application: Rate limiting, WAF, bot detection
  • Planning: Response plans and runbooks

The three attack categories require different defenses. A mitigation rule that stops a UDP flood will do nothing against an HTTP flood. Understanding the specific characteristics of each attack type is essential for choosing the right mitigation method.

Invest in DDoS protection services for production applications. Most attacks are short — under 10 minutes — designed as smoke screens or extortion, but some last for days. The cost of not having protection, measured in lost revenue and reputation, is usually far higher than the cost of protection.

Decision Matrix: When to Deploy Each Defense

Scenario Recommended Defense Priority
Static website CDN + basic rate limiting High
E-commerce Full stack: CDN, WAF, scrubbing, bot detection Critical
API service WAF, rate limiting, schema validation High
Game server Dedicated scrubber, UDP protection Critical
Internal tool Firewall, minimal protection Low
Financial service Enterprise protection, 24/7 SOC Critical

Continuous Improvement

DDoS protection is not a one-time deployment. Attack patterns evolve continuously. Review your defenses quarterly:

  1. Analyze recent attack trends and new amplification vectors
  2. Update WAF rules (OWASP CRS releases)
  3. Re-baseline ML detection thresholds
  4. Test new attack simulations
  5. Update runbooks and incident response plans
  6. Review provider SLAs and costs

Frequently Asked Questions

Q: How big is a typical DDoS attack in 2026? A: Most attacks are still under 10 Gbps, but record-setting attacks now exceed 5 Tbps and 100 million packets per second. Application-layer attacks of millions of requests per second are routine.

Q: Can a CDN protect me from DDoS? A: For HTTP traffic, yes — major CDNs absorb most volumetric and many Layer 7 attacks. For non-HTTP services (game servers, custom protocols), you need a dedicated scrubber.

Q: What is the difference between DoS and DDoS? A: DoS comes from a single source; DDoS comes from many sources simultaneously. Modern attacks are essentially always distributed.

Q: How long do DDoS attacks last? A: Most are short — under 10 minutes — designed as smoke screens or extortion. Some last for days, especially during disputes or politically motivated campaigns.

Q: Is DDoS protection expensive? A: Basic always-on scrubbing typically adds 10-30% to bandwidth costs. The cost of not having it — measured in lost revenue and reputation — is usually far higher.

Q: What’s the best DDoS protection strategy? A: Defense-in-depth: CDN at the edge, scrubbing for volumetric attacks, protocol defenses for state exhaustion, and WAF + bot detection for application attacks. No single control is sufficient.

Defense Configuration Reference

# Complete DDoS defense configuration checklist
defense_config:
  edge:
    cdn: true
    always_on_scrubbing: false
    on_demand_scrubbing: true
    detection_timeout_seconds: 30
  network:
    bgp_flow_spec: true
    syn_cookies: true
    connection_rate_limit: 10000
    blackhole_community: "666"
  application:
    waf_ruleset: "owasp_crs_pl2"
    rate_limit_rps: 100
    bot_detection: true
    js_challenge_enabled: true
    origin_shielding: true
    request_body_limit_kb: 16
  monitoring:
    bps_threshold: 2.0
    pps_threshold: 3.0
    syn_ack_ratio_threshold: 3.0
    alert_webhook: true
    status_page: true

Comments

👍 Was this article helpful?