On Monday 30 August 2021 at 19:45 UTC, a HTTP/2 rapid reset targeted a municipal services customer in the Benelux. The attack peaked at 394.5 million requests per second and lasted 48 minutes. Traffic originated from 4052 autonomous systems in 23 countries, predominantly hijacked home routers.
| Vector | HTTP/2 rapid reset |
| Peak | 394.5 million requests per second |
| Duration | 48 min |
| Time to mitigation | 0.117 s |
| Attack traffic reaching origin | 0.090% |
| Legitimate traffic challenged | 0.62% |
Timeline
The attack was preceded by an extortion email received two days earlier. Request rates on the targeted routes exceeded their hourly baseline by a factor of 269 within 28 seconds. The risk score of participating clients crossed the challenge threshold automatically and proof-of-work difficulty rose with origin load.
What the customer saw
A brief increase in p99 latency of 209 ms during the first minute, then normal service.
Recommendations
- Review allow-listed partner ranges quarterly.
- Keep origin IPs out of public DNS history.
- Lower challenge thresholds on authentication endpoints during high-risk events.
Our auditors asked for exactly this kind of incident evidence under DORA.
Is the risk score exposed in the logs so we can build our own dashboards on it?
Solid runbook advice. The DNS-at-2am point hit home.
Would love a follow-up on how you handle HTTP/3 fingerprinting.
Verified good bots and allow-listed partners bypass challenges entirely.
We had the exact false-positive issue with CGNAT carriers. The weighting change makes sense.
The billing model is what got our finance team on board, honestly.