On Sunday 11 May 2025 at 22:41 UTC, a HTTP GET flood targeted a ticketing customer in the Middle East. The attack peaked at 599.7 million requests per second and lasted 150 minutes. Traffic originated from 82 autonomous systems in 68 countries, predominantly a Mirai-derived IoT botnet.
| Vector | HTTP GET flood |
| Peak | 599.7 million requests per second |
| Duration | 150 min |
| Time to mitigation | 0.507 s |
| Attack traffic reaching origin | 0.071% |
| Legitimate traffic challenged | 0.30% |
Timeline
The attack was preceded by a breaking political story. Request rates on the targeted routes exceeded their hourly baseline by a factor of 136 within 20 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.
- Enable authenticated origin pulls.
- Enable log streaming to your SIEM for faster correlation.
How does the proof-of-work challenge behave on older Android devices? Any numbers below Android 10?
Interesting that most attacks are under ten minutes. Our experience is similar.
How does the proof-of-work challenge behave on older Android devices? Any numbers below Android 10?
Could you share the dataset behind the percentages?
Thanks! Yes — the risk score and its components are included in every log record.
We had the exact false-positive issue with CGNAT carriers. The weighting change makes sense.
How do you avoid challenging uptime monitors and partners?
Clear and practical, thanks.