On Monday 15 May 2023 at 08:22 UTC, a credential stuffing targeted a B2B SaaS customer in the Nordics. The attack peaked at 729.8 million requests per second and lasted 136 minutes. Traffic originated from 41 autonomous systems in 96 countries, predominantly residential proxy networks.
| Vector | credential stuffing |
| Peak | 729.8 million requests per second |
| Duration | 136 min |
| Time to mitigation | 0.852 s |
| Attack traffic reaching origin | 0.058% |
| Legitimate traffic challenged | 0.38% |
Timeline
The attack was preceded by a breaking political story. Request rates on the targeted routes exceeded their hourly baseline by a factor of 350 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
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.
- Review allow-listed partner ranges quarterly.
- Enable authenticated origin pulls.
Carpet bombing is nasty. Good to see a clear explanation of it.
Would love a follow-up on how you handle HTTP/3 fingerprinting.
Nice to read a vendor blog that admits what went wrong.
Would love a follow-up on how you handle HTTP/3 fingerprinting.
We had the exact false-positive issue with CGNAT carriers. The weighting change makes sense.
Is the risk score exposed in the logs so we can build our own dashboards on it?