On Friday 17 March 2023 at 15:43 UTC, a TLS handshake exhaustion targeted a healthcare portal customer in Western Europe. The attack peaked at 440.2 million requests per second and lasted 60 minutes. Traffic originated from 3314 autonomous systems in 106 countries, predominantly mobile carrier ranges.
| Vector | TLS handshake exhaustion |
| Peak | 440.2 million requests per second |
| Duration | 60 min |
| Time to mitigation | 0.793 s |
| Attack traffic reaching origin | 0.032% |
| Legitimate traffic challenged | 0.47% |
Timeline
The attack was preceded by no stated motive. Request rates on the targeted routes exceeded their hourly baseline by a factor of 699 within 30 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
- Add a dedicated rate limit for the targeted route.
- Enable log streaming to your SIEM for faster correlation.
- Enable authenticated origin pulls.
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 billing model is what got our finance team on board, honestly.
Do you publish the edge IP ranges in a machine-readable format?
Great to hear, thanks for sharing your experience.
How does the proof-of-work challenge behave on older Android devices? Any numbers below Android 10?
How does the proof-of-work challenge behave on older Android devices? Any numbers below Android 10?