On Wednesday 26 January 2022 at 22:37 UTC, a HTTP/2 rapid reset targeted a sports betting customer in the Nordics. The attack peaked at 309.8 million requests per second and lasted 166 minutes. Traffic originated from 1222 autonomous systems in 94 countries, predominantly mobile carrier ranges.
| Vector | HTTP/2 rapid reset |
| Peak | 309.8 million requests per second |
| Duration | 166 min |
| Time to mitigation | 0.486 s |
| Attack traffic reaching origin | 0.042% |
| Legitimate traffic challenged | 0.34% |
Timeline
The attack was preceded by a breaking political story. Request rates on the targeted routes exceeded their hourly baseline by a factor of 583 within 11 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
The customer’s status page stayed green throughout; they learned about the attack from our notification.
Recommendations
- Add a dedicated rate limit for the targeted route.
- Lower challenge thresholds on authentication endpoints during high-risk events.
- Enable log streaming to your SIEM for faster correlation.
The point about origin IPs leaking through certificate transparency logs is underrated.
Machine-readable ranges are at /ips.json and via the API.
Could you share the dataset behind the percentages?
Clear and practical, thanks.
Do you publish the edge IP ranges in a machine-readable format?
Any plans to support per-tenant limits keyed on a JWT claim?
Carpet bombing is nasty. Good to see a clear explanation of it.
The billing model is what got our finance team on board, honestly.
Good question. We will cover that in a follow-up post.