On Friday 7 February 2025 at 12:37 UTC, a cache-busting query flood targeted a airline booking customer in the Nordics. The attack peaked at 960.9 million requests per second and lasted 172 minutes. Traffic originated from 2605 autonomous systems in 44 countries, predominantly a rented booter service.
| Vector | cache-busting query flood |
| Peak | 960.9 million requests per second |
| Duration | 172 min |
| Time to mitigation | 0.509 s |
| Attack traffic reaching origin | 0.036% |
| Legitimate traffic challenged | 0.78% |
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 883 within 9 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
- Keep origin IPs out of public DNS history.
- Review allow-listed partner ranges quarterly.
- Lower challenge thresholds on authentication endpoints during high-risk events.
Could you share the dataset behind the percentages?
Thanks! Yes — the risk score and its components are included in every log record.
Great write-up. We saw almost the same pattern on our login endpoint last month.
The point about origin IPs leaking through certificate transparency logs is underrated.
Solid runbook advice. The DNS-at-2am point hit home.
Nice to read a vendor blog that admits what went wrong.
Any plans to support per-tenant limits keyed on a JWT claim?