On Wednesday 1 June 2022 at 13:28 UTC, a WebSocket connection flood targeted a electronics retail customer in North America. The attack peaked at 585.6 million requests per second and lasted 154 minutes. Traffic originated from 488 autonomous systems in 101 countries, predominantly hijacked home routers.
| Vector | WebSocket connection flood |
| Peak | 585.6 million requests per second |
| Duration | 154 min |
| Time to mitigation | 0.375 s |
| Attack traffic reaching origin | 0.074% |
| Legitimate traffic challenged | 0.73% |
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 770 within 17 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
- Lower challenge thresholds on authentication endpoints during high-risk events.
- Enable log streaming to your SIEM for faster correlation.
- Add a dedicated rate limit for the targeted route.
How does the proof-of-work challenge behave on older Android devices? Any numbers below Android 10?
Do you publish the edge IP ranges in a machine-readable format?
The billing model is what got our finance team on board, honestly.
Would love a follow-up on how you handle HTTP/3 fingerprinting.
Good question. We will cover that in a follow-up post.
Any plans to support per-tenant limits keyed on a JWT claim?
Good question. We will cover that in a follow-up post.
Our auditors asked for exactly this kind of incident evidence under DORA.
The billing model is what got our finance team on board, honestly.