On Sunday 25 December 2022 at 04:32 UTC, a HTTP POST flood targeted a video streaming customer in the Middle East. The attack peaked at 964.8 million requests per second and lasted 63 minutes. Traffic originated from 4131 autonomous systems in 48 countries, predominantly a headless-browser farm.
| Vector | HTTP POST flood |
| Peak | 964.8 million requests per second |
| Duration | 63 min |
| Time to mitigation | 0.042 s |
| Attack traffic reaching origin | 0.074% |
| Legitimate traffic challenged | 0.09% |
Timeline
The attack was preceded by a breaking political story. Request rates on the targeted routes exceeded their hourly baseline by a factor of 664 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
A brief increase in p99 latency of 22 ms during the first minute, then normal service.
Recommendations
- Review allow-listed partner ranges quarterly.
- Keep origin IPs out of public DNS history.
- Enable log streaming to your SIEM for faster correlation.
Any plans to support per-tenant limits keyed on a JWT claim?
Great to hear, thanks for sharing your experience.
Interesting that most attacks are under ten minutes. Our experience is similar.
Great to hear, thanks for sharing your experience.
Clear and practical, thanks.
Good question. We will cover that in a follow-up post.
Great write-up. We saw almost the same pattern on our login endpoint last month.
Is the risk score exposed in the logs so we can build our own dashboards on it?
Great to hear, thanks for sharing your experience.
The point about origin IPs leaking through certificate transparency logs is underrated.
The billing model is what got our finance team on board, honestly.
How do you avoid challenging uptime monitors and partners?
How do you avoid challenging uptime monitors and partners?