On Wednesday 19 April 2023 at 08:11 UTC, a search endpoint flood targeted a airline booking customer in the Middle East. The attack peaked at 853.7 million requests per second and lasted 63 minutes. Traffic originated from 3011 autonomous systems in 26 countries, predominantly compromised cloud VMs.
| Vector | search endpoint flood |
| Peak | 853.7 million requests per second |
| Duration | 63 min |
| Time to mitigation | 0.226 s |
| Attack traffic reaching origin | 0.088% |
| Legitimate traffic challenged | 0.75% |
Timeline
The attack was preceded by a ransom note demanding payment in Monero. Request rates on the targeted routes exceeded their hourly baseline by a factor of 691 within 27 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
No customer-visible impact. The on-call engineer was notified and acknowledged the incident from the dashboard.
Recommendations
- Lower challenge thresholds on authentication endpoints during high-risk events.
- Keep origin IPs out of public DNS history.
- Review allow-listed partner ranges quarterly.
Our auditors asked for exactly this kind of incident evidence under DORA.
Great write-up. We saw almost the same pattern on our login endpoint last month.
We moved from a scrubbing provider to always-on last year; time to mitigation went from minutes to basically nothing.
Thanks! Yes — the risk score and its components are included in every log record.
Do you publish the edge IP ranges in a machine-readable format?
Clear and practical, thanks.
Is the risk score exposed in the logs so we can build our own dashboards on it?
The point about origin IPs leaking through certificate transparency logs is underrated.
Machine-readable ranges are at /ips.json and via the API.