On Saturday 6 August 2022 at 01:28 UTC, a TLS handshake exhaustion targeted a municipal services customer in North America. The attack peaked at 439.4 million requests per second and lasted 169 minutes. Traffic originated from 187 autonomous systems in 69 countries, predominantly a headless-browser farm.
| Vector | TLS handshake exhaustion |
| Peak | 439.4 million requests per second |
| Duration | 169 min |
| Time to mitigation | 0.529 s |
| Attack traffic reaching origin | 0.008% |
| Legitimate traffic challenged | 0.54% |
Timeline
The attack was preceded by a competitor’s product launch. Request rates on the targeted routes exceeded their hourly baseline by a factor of 174 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 68 ms during the first minute, then normal service.
Recommendations
- Review allow-listed partner ranges quarterly.
- Add a dedicated rate limit for the targeted route.
- Enable authenticated origin pulls.
How does the proof-of-work challenge behave on older Android devices? Any numbers below Android 10?
Verified good bots and allow-listed partners bypass challenges entirely.
How do you avoid challenging uptime monitors and partners?
Solid runbook advice. The DNS-at-2am point hit home.
The billing model is what got our finance team on board, honestly.
Nice to read a vendor blog that admits what went wrong.
This matches what we see in iGaming around big matches.