Blue Team Companion

DoS / DDoS Simulator — Volumetric & Application-Layer Attack Detection

Volumetric attacks are trivially visible and largely a bandwidth-procurement problem. Application-layer attacks are the ones that hurt, and they hide beneath every volumetric threshold — which is why response time and error rate, not request count, are the metrics that matter.

Open in Red Team Toolkit — ddos
This tool models attack shapes for defensive planning. Generating denial-of-service traffic against any system you do not own and have written authorisation to test is a criminal offence in most jurisdictions, and is prohibited by essentially every hosting provider's terms of service. Use it to size your controls, not to test someone else's.

DoS / DDoS Simulator — Volumetric & Application-Layer Attack Detection

Volumetric attacks are trivially visible and largely a bandwidth-procurement problem. Application-layer attacks are the ones that hurt, and they hide beneath every volumetric threshold — which is why response time and error rate, not request count, are the metrics that matter.

Telemetry generated

Log sourceField / identifierWhat it shows
NetFlow / IPFIXpacket_count / byte_count / flow_durationPacket and connection counters at the network layer. The primary signal for volumetric and reflection attacks. A SYN flood appears as a massive increase in half-open TCP flows with no corresponding ACK. A reflection attack appears as a spike in UDP traffic from unexpected source ports (DNS/53, NTP/123, memcached/11211) to a single destination.
Load Balancer / CDN Logrequest_rate / connection_table / health_check_statusRequest rate, active connection count, and origin health check results. A saturated connection table causes new legitimate connections to be dropped before they appear in access logs — health check failures are often the first alert that an attack is succeeding.
Web Access / Error Logstatus_code / response_time503 volume and response time degradation. These are the metrics that define whether an attack succeeded from the user perspective. A volumetric attack that is absorbed at the CDN produces no 503s; an L7 exhaustion attack targeting a slow database endpoint produces 503s and high response times at low request volume.
APM / Synthetic Monitoringlatency_p99 / error_rateThe metric that actually defines whether an attack succeeded. Synthetic probes from outside your network confirm whether the service is reachable from a user perspective, independent of what your internal metrics show. An attack that degrades P99 latency above SLA thresholds has succeeded even if request volume looks normal.

Detection rules

Sigma — TCP SYN Flood per Destination
title: TCP SYN Flood — High SYN Rate per Destination
id: b8c9d0e1-f2a3-4567-bcde-678901234567
status: experimental
description: >
  Counts TCP SYN packets per destination over 1 minute. A threshold of
  10,000 SYN/min is a conservative starting point — tune to 3x your
  legitimate peak SYN rate for the destination. Requires firewall or
  flow telemetry with per-packet flag visibility.
logsource:
  category: firewall
detection:
  selection:
    tcp.flags: SYN
    tcp.flags_ack: false
  timeframe: 1m
  condition: selection | count() by dst.ip > 10000
falsepositives:
  - Flash-crowd traffic spikes from legitimate viral events
  - Load testing during authorised performance tests
level: high
tags:
  - attack.impact
  - attack.t1498

Evasion & counters

Evasion

Low-volume L7 attacks targeting expensive endpoints (database queries, file uploads, search) that exhaust backend resources without triggering volumetric thresholds.

Counter

Monitor response time and error rate per endpoint rather than request volume. The L7 Splunk query above uses req_ratio, avg_rt_ms, and 503 count as the signal — an endpoint that is slow and erroring under modest load is the pattern to catch.

Evasion

Slowloris and slow-body attacks that hold connections open by sending headers or body bytes extremely slowly, exhausting the connection table without sending many packets.

Counter

Monitor concurrent connections and time-to-first-byte at the reverse proxy. Enforce request timeout, header timeout, and body read timeout at the proxy layer — most default configurations have no timeout or a very long one. Nginx: client_header_timeout, client_body_timeout. Apache: RequestReadTimeout.

Evasion

Wide botnet distribution spreading traffic across thousands of source IPs so no individual source triggers per-source rate limits.

Counter

Detect at the aggregate destination level — the VOLUMETRIC_DISTRIBUTED classifier above fires on the destination traffic shape regardless of how many sources contribute. Source-based rate limiting is ineffective against wide distribution; destination-aggregate detection is not.

Evasion

Rotating attack targets across multiple endpoints to stay below per-path thresholds.

Counter

Aggregate at the service and origin level as well as per path. A service whose total error rate or average response time is degrading is under attack even if no single endpoint exceeds its individual threshold.

Rule tuning

Preventive control

Upstream scrubbing or CDN absorption for volumetric attacks — the CDN absorbs the traffic before it reaches your origin. Edge rate limiting and bot management for L7 attacks. SYN cookies and connection timeouts at the load balancer to resist SYN floods without dropping legitimate traffic. Autoscaling with a hard budget ceiling so an attack degrades service gracefully rather than exhausting your cloud spend — autoscaling without a ceiling turns a DoS into a bill.

Back to Detection Library