On Thursday 5 October 2023 at 10:59 UTC, a WebSocket connection flood targeted a developer platform customer in the Benelux. The attack peaked at 112.9 million requests per second and lasted 75 minutes. Traffic originated from 1508 autonomous systems in 21 countries, predominantly compromised cloud VMs.
| Vector | WebSocket connection flood |
| Peak | 112.9 million requests per second |
| Duration | 75 min |
| Time to mitigation | 0.553 s |
| Attack traffic reaching origin | 0.027% |
| Legitimate traffic challenged | 0.07% |
Timeline
The attack was preceded by a ransom note demanding payment in Monero. Request rates on the targeted routes exceeded their hourly baseline by a factor of 881 within 22 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
Checkout conversion was unchanged compared with the same hour of the previous week.
Recommendations
- Enable authenticated origin pulls.
- Review allow-listed partner ranges quarterly.
- Add a dedicated rate limit for the targeted route.
Thanks — sharing this with our on-call team.
We had the exact false-positive issue with CGNAT carriers. The weighting change makes sense.
We moved from a scrubbing provider to always-on last year; time to mitigation went from minutes to basically nothing.
Is the risk score exposed in the logs so we can build our own dashboards on it?
Could you share the dataset behind the percentages?
Interesting that most attacks are under ten minutes. Our experience is similar.