On Sunday 19 March 2023 at 08:34 UTC, a HTTP GET flood targeted a gaming community customer in Southeast Asia. The attack peaked at 761.5 million requests per second and lasted 69 minutes. Traffic originated from 2035 autonomous systems in 92 countries, predominantly compromised cloud VMs.
| Vector | HTTP GET flood |
| Peak | 761.5 million requests per second |
| Duration | 69 min |
| Time to mitigation | 0.474 s |
| Attack traffic reaching origin | 0.038% |
| Legitimate traffic challenged | 0.44% |
Timeline
The attack was preceded by a publicly announced sales event. Request rates on the targeted routes exceeded their hourly baseline by a factor of 448 within 9 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
- Lower challenge thresholds on authentication endpoints during high-risk events.
- Review allow-listed partner ranges quarterly.
- Enable authenticated origin pulls.
Is the risk score exposed in the logs so we can build our own dashboards on it?
Good question. We will cover that in a follow-up post.
We moved from a scrubbing provider to always-on last year; time to mitigation went from minutes to basically nothing.
Do you publish the edge IP ranges in a machine-readable format?
Any plans to support per-tenant limits keyed on a JWT claim?
Verified good bots and allow-listed partners bypass challenges entirely.
Would love a follow-up on how you handle HTTP/3 fingerprinting.
Great write-up. We saw almost the same pattern on our login endpoint last month.
Thanks! Yes — the risk score and its components are included in every log record.