On Tuesday 28 September 2021 at 20:16 UTC, a HTTP GET flood targeted a municipal services customer in the Nordics. The attack peaked at 841.2 million requests per second and lasted 30 minutes. Traffic originated from 1608 autonomous systems in 89 countries, predominantly mobile carrier ranges.
| Vector | HTTP GET flood |
| Peak | 841.2 million requests per second |
| Duration | 30 min |
| Time to mitigation | 0.824 s |
| Attack traffic reaching origin | 0.085% |
| Legitimate traffic challenged | 0.32% |
Timeline
The attack was preceded by no stated motive. Request rates on the targeted routes exceeded their hourly baseline by a factor of 802 within 14 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 202 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.
We moved from a scrubbing provider to always-on last year; time to mitigation went from minutes to basically nothing.
Solid runbook advice. The DNS-at-2am point hit home.
Thanks! Yes — the risk score and its components are included in every log record.
Do you publish the edge IP ranges in a machine-readable format?
We moved from a scrubbing provider to always-on last year; time to mitigation went from minutes to basically nothing.
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.
Do you publish the edge IP ranges in a machine-readable format?