On Thursday 20 April 2023 at 19:22 UTC, a HTTP GET flood targeted a news publisher customer in Latin America. The attack peaked at 25.2 million requests per second and lasted 19 minutes. Traffic originated from 1119 autonomous systems in 77 countries, predominantly a rented booter service.
| Vector | HTTP GET flood |
| Peak | 25.2 million requests per second |
| Duration | 19 min |
| Time to mitigation | 0.283 s |
| Attack traffic reaching origin | 0.084% |
| Legitimate traffic challenged | 0.71% |
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 435 within 17 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.
- Review allow-listed partner ranges quarterly.
- Keep origin IPs out of public DNS history.
We moved from a scrubbing provider to always-on last year; time to mitigation went from minutes to basically nothing.
Any plans to support per-tenant limits keyed on a JWT claim?
The point about origin IPs leaking through certificate transparency logs is underrated.
Would love a follow-up on how you handle HTTP/3 fingerprinting.
This matches what we see in iGaming around big matches.
Nice to read a vendor blog that admits what went wrong.
Do you publish the edge IP ranges in a machine-readable format?
Thanks! Yes — the risk score and its components are included in every log record.