On Sunday 31 October 2021 at 01:45 UTC, a credential stuffing targeted a retail banking customer in Iberia. The attack peaked at 67.7 million requests per second and lasted 175 minutes. Traffic originated from 4008 autonomous systems in 37 countries, predominantly a headless-browser farm.
| Vector | credential stuffing |
| Peak | 67.7 million requests per second |
| Duration | 175 min |
| Time to mitigation | 0.482 s |
| Attack traffic reaching origin | 0.082% |
| Legitimate traffic challenged | 0.71% |
Timeline
The attack was preceded by a publicly announced sales event. Request rates on the targeted routes exceeded their hourly baseline by a factor of 888 within 25 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 58 ms during the first minute, then normal service.
Recommendations
- Enable authenticated origin pulls.
- Keep origin IPs out of public DNS history.
- Review allow-listed partner ranges quarterly.
Is the risk score exposed in the logs so we can build our own dashboards on it?
Solid runbook advice. The DNS-at-2am point hit home.
Our auditors asked for exactly this kind of incident evidence under DORA.