On Saturday 13 November 2021 at 06:00 UTC, a TLS handshake exhaustion targeted a B2B SaaS customer in the UK. The attack peaked at 612.0 million requests per second and lasted 136 minutes. Traffic originated from 3879 autonomous systems in 65 countries, predominantly misconfigured open reflectors.
| Vector | TLS handshake exhaustion |
| Peak | 612.0 million requests per second |
| Duration | 136 min |
| Time to mitigation | 0.641 s |
| Attack traffic reaching origin | 0.053% |
| Legitimate traffic challenged | 0.33% |
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 422 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
- Keep origin IPs out of public DNS history.
- Enable log streaming to your SIEM for faster correlation.
- Lower challenge thresholds on authentication endpoints during high-risk events.
Is the risk score exposed in the logs so we can build our own dashboards on it?
How do you avoid challenging uptime monitors and partners?
Is the risk score exposed in the logs so we can build our own dashboards on it?
Thanks! Yes — the risk score and its components are included in every log record.