On Friday 14 July 2023 at 13:02 UTC, a cache-busting query flood targeted a fashion retail customer in Western Europe. The attack peaked at 166.9 million requests per second and lasted 75 minutes. Traffic originated from 550 autonomous systems in 86 countries, predominantly hijacked home routers.
| Vector | cache-busting query flood |
| Peak | 166.9 million requests per second |
| Duration | 75 min |
| Time to mitigation | 0.688 s |
| Attack traffic reaching origin | 0.019% |
| Legitimate traffic challenged | 0.15% |
Timeline
The attack was preceded by no stated motive. Request rates on the targeted routes exceeded their hourly baseline by a factor of 144 within 39 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
- Add a dedicated rate limit for the targeted route.
- Lower challenge thresholds on authentication endpoints during high-risk events.
- Keep origin IPs out of public DNS history.
Any plans to support per-tenant limits keyed on a JWT claim?
Any plans to support per-tenant limits keyed on a JWT claim?
Would love a follow-up on how you handle HTTP/3 fingerprinting.
Solid runbook advice. The DNS-at-2am point hit home.
Nice to read a vendor blog that admits what went wrong.
The billing model is what got our finance team on board, honestly.
How do you avoid challenging uptime monitors and partners?