On Thursday 21 September 2023 at 00:42 UTC, a TLS handshake exhaustion targeted a education platform customer in the Nordics. The attack peaked at 657.8 million requests per second and lasted 176 minutes. Traffic originated from 317 autonomous systems in 14 countries, predominantly misconfigured open reflectors.
| Vector | TLS handshake exhaustion |
| Peak | 657.8 million requests per second |
| Duration | 176 min |
| Time to mitigation | 0.319 s |
| Attack traffic reaching origin | 0.090% |
| Legitimate traffic challenged | 0.33% |
Timeline
The attack was preceded by a publicly announced sales event. Request rates on the targeted routes exceeded their hourly baseline by a factor of 672 within 33 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
- Enable log streaming to your SIEM for faster correlation.
- Lower challenge thresholds on authentication endpoints during high-risk events.
- Keep origin IPs out of public DNS history.
Clear and practical, thanks.
Could you share the dataset behind the percentages?
Solid runbook advice. The DNS-at-2am point hit home.
Would love a follow-up on how you handle HTTP/3 fingerprinting.
How does the proof-of-work challenge behave on older Android devices? Any numbers below Android 10?
Good question. We will cover that in a follow-up post.
Would love a follow-up on how you handle HTTP/3 fingerprinting.
The point about origin IPs leaking through certificate transparency logs is underrated.