On Friday 29 September 2023 at 19:09 UTC, a HTTP GET flood targeted a developer platform customer in the Middle East. The attack peaked at 775.9 million requests per second and lasted 40 minutes. Traffic originated from 3813 autonomous systems in 64 countries, predominantly residential proxy networks.
| Vector | HTTP GET flood |
| Peak | 775.9 million requests per second |
| Duration | 40 min |
| Time to mitigation | 0.456 s |
| Attack traffic reaching origin | 0.032% |
| Legitimate traffic challenged | 0.43% |
Timeline
The attack was preceded by a breaking political story. Request rates on the targeted routes exceeded their hourly baseline by a factor of 358 within 32 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
- Enable authenticated origin pulls.
- Enable log streaming to your SIEM for faster correlation.
- Add a dedicated rate limit for the targeted route.
Do you publish the edge IP ranges in a machine-readable format?
Solid runbook advice. The DNS-at-2am point hit home.
The point about origin IPs leaking through certificate transparency logs is underrated.
Thanks! Yes — the risk score and its components are included in every log record.
Any plans to support per-tenant limits keyed on a JWT claim?
Is the risk score exposed in the logs so we can build our own dashboards on it?
This matches what we see in iGaming around big matches.