On Sunday 21 January 2024 at 02:26 UTC, a TLS handshake exhaustion targeted a tax authority portal customer in the Nordics. The attack peaked at 693.3 million requests per second and lasted 63 minutes. Traffic originated from 1662 autonomous systems in 110 countries, predominantly compromised cloud VMs.
| Vector | TLS handshake exhaustion |
| Peak | 693.3 million requests per second |
| Duration | 63 min |
| Time to mitigation | 0.415 s |
| Attack traffic reaching origin | 0.044% |
| Legitimate traffic challenged | 0.79% |
Timeline
The attack was preceded by a hacktivist channel announcing the target. Request rates on the targeted routes exceeded their hourly baseline by a factor of 669 within 28 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
A brief increase in p99 latency of 71 ms during the first minute, then normal service.
Recommendations
- Lower challenge thresholds on authentication endpoints during high-risk events.
- Keep origin IPs out of public DNS history.
- Enable authenticated origin pulls.
Clear and practical, thanks.
Thanks! Yes — the risk score and its components are included in every log record.
The point about origin IPs leaking through certificate transparency logs is underrated.
Solid runbook advice. The DNS-at-2am point hit home.
Thanks! Yes — the risk score and its components are included in every log record.
This matches what we see in iGaming around big matches.
Any plans to support per-tenant limits keyed on a JWT claim?
Do you publish the edge IP ranges in a machine-readable format?
How does the proof-of-work challenge behave on older Android devices? Any numbers below Android 10?