On Saturday 15 November 2025 at 23:51 UTC, a WebSocket connection flood targeted a healthcare portal customer in Latin America. The attack peaked at 327.8 million requests per second and lasted 72 minutes. Traffic originated from 3653 autonomous systems in 74 countries, predominantly residential proxy networks.
| Vector | WebSocket connection flood |
| Peak | 327.8 million requests per second |
| Duration | 72 min |
| Time to mitigation | 0.226 s |
| Attack traffic reaching origin | 0.036% |
| Legitimate traffic challenged | 0.68% |
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 217 within 7 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
A brief increase in p99 latency of 28 ms during the first minute, then normal service.
Recommendations
- Enable authenticated origin pulls.
- Review allow-listed partner ranges quarterly.
- Keep origin IPs out of public DNS history.
Great write-up. We saw almost the same pattern on our login endpoint last month.
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?
Is the risk score exposed in the logs so we can build our own dashboards on it?
Thanks — sharing this with our on-call team.
Nice to read a vendor blog that admits what went wrong.
Nice to read a vendor blog that admits what went wrong.
Is the risk score exposed in the logs so we can build our own dashboards on it?