On Monday 29 May 2023 at 23:07 UTC, a HTTP POST flood targeted a municipal services customer in Iberia. The attack peaked at 557.8 million requests per second and lasted 127 minutes. Traffic originated from 801 autonomous systems in 41 countries, predominantly a Mirai-derived IoT botnet.
| Vector | HTTP POST flood |
| Peak | 557.8 million requests per second |
| Duration | 127 min |
| Time to mitigation | 0.441 s |
| Attack traffic reaching origin | 0.043% |
| Legitimate traffic challenged | 0.15% |
Timeline
The attack was preceded by a breaking political story. Request rates on the targeted routes exceeded their hourly baseline by a factor of 656 within 10 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.
- Enable log streaming to your SIEM for faster correlation.
Our auditors asked for exactly this kind of incident evidence under DORA.
The billing model is what got our finance team on board, honestly.
How do you avoid challenging uptime monitors and partners?
Solid runbook advice. The DNS-at-2am point hit home.
Could you share the dataset behind the percentages?
We moved from a scrubbing provider to always-on last year; time to mitigation went from minutes to basically nothing.
The point about origin IPs leaking through certificate transparency logs is underrated.
How does the proof-of-work challenge behave on older Android devices? Any numbers below Android 10?
Machine-readable ranges are at /ips.json and via the API.
The billing model is what got our finance team on board, honestly.