On Wednesday 1 January 2025 at 09:38 UTC, a credential stuffing targeted a tax authority portal customer in Central Europe. The attack peaked at 349.8 million requests per second and lasted 59 minutes. Traffic originated from 3033 autonomous systems in 93 countries, predominantly hijacked home routers.
| Vector | credential stuffing |
| Peak | 349.8 million requests per second |
| Duration | 59 min |
| Time to mitigation | 0.169 s |
| Attack traffic reaching origin | 0.046% |
| Legitimate traffic challenged | 0.76% |
Timeline
The attack was preceded by a hacktivist channel announcing the target. Request rates on the targeted routes exceeded their hourly baseline by a factor of 511 within 33 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 94 ms during the first minute, then normal service.
Recommendations
- Review allow-listed partner ranges quarterly.
- Enable log streaming to your SIEM for faster correlation.
- Enable authenticated origin pulls.
We had the exact false-positive issue with CGNAT carriers. The weighting change makes sense.
Any plans to support per-tenant limits keyed on a JWT claim?
Clear and practical, thanks.
Our auditors asked for exactly this kind of incident evidence under DORA.
How does the proof-of-work challenge behave on older Android devices? Any numbers below Android 10?
Solid runbook advice. The DNS-at-2am point hit home.
The billing model is what got our finance team on board, honestly.
Clear and practical, thanks.