On Saturday 13 March 2021 at 04:34 UTC, a search endpoint flood targeted a fashion retail customer in Latin America. The attack peaked at 461.6 million requests per second and lasted 185 minutes. Traffic originated from 2013 autonomous systems in 113 countries, predominantly mobile carrier ranges.
| Vector | search endpoint flood |
| Peak | 461.6 million requests per second |
| Duration | 185 min |
| Time to mitigation | 0.232 s |
| Attack traffic reaching origin | 0.079% |
| Legitimate traffic challenged | 0.65% |
Timeline
The attack was preceded by no stated motive. Request rates on the targeted routes exceeded their hourly baseline by a factor of 77 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
- Lower challenge thresholds on authentication endpoints during high-risk events.
- Review allow-listed partner ranges quarterly.
- Keep origin IPs out of public DNS history.
We had the exact false-positive issue with CGNAT carriers. The weighting change makes sense.
Great to hear, thanks for sharing your experience.
Nice to read a vendor blog that admits what went wrong.
Great to hear, thanks for sharing your experience.
Thanks — sharing this with our on-call team.
Interesting that most attacks are under ten minutes. Our experience is similar.
Thanks! Yes — the risk score and its components are included in every log record.
How does the proof-of-work challenge behave on older Android devices? Any numbers below Android 10?
Could you share the dataset behind the percentages?
Thanks — sharing this with our on-call team.
Machine-readable ranges are at /ips.json and via the API.
We had the exact false-positive issue with CGNAT carriers. The weighting change makes sense.