On Monday 20 February 2023 at 17:18 UTC, a WebSocket connection flood targeted a online casino customer in the UK. The attack peaked at 329.6 million requests per second and lasted 149 minutes. Traffic originated from 2105 autonomous systems in 95 countries, predominantly mobile carrier ranges.
| Vector | WebSocket connection flood |
| Peak | 329.6 million requests per second |
| Duration | 149 min |
| Time to mitigation | 0.229 s |
| Attack traffic reaching origin | 0.071% |
| Legitimate traffic challenged | 0.08% |
Timeline
The attack was preceded by no stated motive. Request rates on the targeted routes exceeded their hourly baseline by a factor of 808 within 24 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
- 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.
The billing model is what got our finance team on board, honestly.
Thanks — sharing this with our on-call team.
Thanks — sharing this with our on-call team.
Any plans to support per-tenant limits keyed on a JWT claim?
Great to hear, thanks for sharing your experience.
Is the risk score exposed in the logs so we can build our own dashboards on it?