On Monday 22 January 2024 at 13:56 UTC, a HTTP GET flood targeted a fashion retail customer in North America. The attack peaked at 161.5 million requests per second and lasted 13 minutes. Traffic originated from 650 autonomous systems in 51 countries, predominantly residential proxy networks.
| Vector | HTTP GET flood |
| Peak | 161.5 million requests per second |
| Duration | 13 min |
| Time to mitigation | 0.267 s |
| Attack traffic reaching origin | 0.022% |
| Legitimate traffic challenged | 0.70% |
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 93 within 31 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
No customer-visible impact. The on-call engineer was notified and acknowledged the incident from the dashboard.
Recommendations
- Keep origin IPs out of public DNS history.
- Enable authenticated origin pulls.
- Lower challenge thresholds on authentication endpoints during high-risk events.
We moved from a scrubbing provider to always-on last year; time to mitigation went from minutes to basically nothing.
Thanks! Yes — the risk score and its components are included in every log record.
This matches what we see in iGaming around big matches.
Great to hear, thanks for sharing your experience.
Any plans to support per-tenant limits keyed on a JWT claim?
Good question. We will cover that in a follow-up post.
Nice to read a vendor blog that admits what went wrong.
Would love a follow-up on how you handle HTTP/3 fingerprinting.
Thanks! Yes — the risk score and its components are included in every log record.