On Thursday 23 February 2023 at 22:48 UTC, a HTTP/2 rapid reset targeted a online payments customer in Latin America. The attack peaked at 963.2 million requests per second and lasted 64 minutes. Traffic originated from 116 autonomous systems in 52 countries, predominantly residential proxy networks.
| Vector | HTTP/2 rapid reset |
| Peak | 963.2 million requests per second |
| Duration | 64 min |
| Time to mitigation | 0.069 s |
| Attack traffic reaching origin | 0.030% |
| Legitimate traffic challenged | 0.37% |
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 16 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
No customer-visible impact. The on-call engineer was notified and acknowledged the incident from the dashboard.
Recommendations
- Lower challenge thresholds on authentication endpoints during high-risk events.
- Keep origin IPs out of public DNS history.
- Review allow-listed partner ranges quarterly.
We had the exact false-positive issue with CGNAT carriers. The weighting change makes sense.
How do you avoid challenging uptime monitors and partners?
How do you avoid challenging uptime monitors and partners?
Great write-up. We saw almost the same pattern on our login endpoint last month.
Any plans to support per-tenant limits keyed on a JWT claim?
Solid runbook advice. The DNS-at-2am point hit home.
Any plans to support per-tenant limits keyed on a JWT claim?
The billing model is what got our finance team on board, honestly.