On Saturday 7 September 2024 at 21:01 UTC, a HTTP/2 rapid reset targeted a B2B SaaS customer in North America. The attack peaked at 384.2 million requests per second and lasted 101 minutes. Traffic originated from 1124 autonomous systems in 60 countries, predominantly a headless-browser farm.
| Vector | HTTP/2 rapid reset |
| Peak | 384.2 million requests per second |
| Duration | 101 min |
| Time to mitigation | 0.921 s |
| Attack traffic reaching origin | 0.010% |
| Legitimate traffic challenged | 0.66% |
Timeline
The attack was preceded by a hacktivist channel announcing the target. Request rates on the targeted routes exceeded their hourly baseline by a factor of 275 within 23 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
Checkout conversion was unchanged compared with the same hour of the previous week.
Recommendations
- Lower challenge thresholds on authentication endpoints during high-risk events.
- Keep origin IPs out of public DNS history.
- Add a dedicated rate limit for the targeted route.
Thanks — sharing this with our on-call team.
Nice to read a vendor blog that admits what went wrong.
Thanks — sharing this with our on-call team.
How do you avoid challenging uptime monitors and partners?
The point about origin IPs leaking through certificate transparency logs is underrated.
Thanks — sharing this with our on-call team.
Good question. We will cover that in a follow-up post.
Interesting that most attacks are under ten minutes. Our experience is similar.
This matches what we see in iGaming around big matches.
Any plans to support per-tenant limits keyed on a JWT claim?