On Thursday 5 January 2023 at 21:11 UTC, a TLS handshake exhaustion targeted a video streaming customer in Central Europe. The attack peaked at 186.6 million requests per second and lasted 159 minutes. Traffic originated from 4070 autonomous systems in 17 countries, predominantly misconfigured open reflectors.
| Vector | TLS handshake exhaustion |
| Peak | 186.6 million requests per second |
| Duration | 159 min |
| Time to mitigation | 0.265 s |
| Attack traffic reaching origin | 0.068% |
| Legitimate traffic challenged | 0.16% |
Timeline
The attack was preceded by an extortion email received two days earlier. Request rates on the targeted routes exceeded their hourly baseline by a factor of 793 within 5 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
The customer’s status page stayed green throughout; they learned about the attack from our notification.
Recommendations
- Review allow-listed partner ranges quarterly.
- Lower challenge thresholds on authentication endpoints during high-risk events.
- Keep origin IPs out of public DNS history.
The billing model is what got our finance team on board, honestly.
Any plans to support per-tenant limits keyed on a JWT claim?
Do you publish the edge IP ranges in a machine-readable format?
We had the exact false-positive issue with CGNAT carriers. The weighting change makes sense.
Do you publish the edge IP ranges in a machine-readable format?
Thanks! Yes — the risk score and its components are included in every log record.