On Tuesday 14 May 2024 at 07:22 UTC, a credential stuffing targeted a municipal services customer in the Middle East. The attack peaked at 940.3 million requests per second and lasted 154 minutes. Traffic originated from 318 autonomous systems in 71 countries, predominantly a rented booter service.
| Vector | credential stuffing |
| Peak | 940.3 million requests per second |
| Duration | 154 min |
| Time to mitigation | 0.501 s |
| Attack traffic reaching origin | 0.035% |
| Legitimate traffic challenged | 0.46% |
Timeline
The attack was preceded by no stated motive. Request rates on the targeted routes exceeded their hourly baseline by a factor of 210 within 7 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
The customer’s status page stayed green throughout; they learned about the attack from our notification.
Recommendations
- Add a dedicated rate limit for the targeted route.
- Lower challenge thresholds on authentication endpoints during high-risk events.
- Review allow-listed partner ranges quarterly.
Would love a follow-up on how you handle HTTP/3 fingerprinting.
We moved from a scrubbing provider to always-on last year; time to mitigation went from minutes to basically nothing.
Good question. We will cover that in a follow-up post.
Clear and practical, thanks.
Machine-readable ranges are at /ips.json and via the API.
Clear and practical, thanks.