随机前缀攻击是指有人向极不可能存在但仍与你的主域名(example.com)关联的子域(12345.example.com、abcdefg.example.com)发送大量流量。
通常,对每个随机子域(或前缀)的 DNS 查询不会重复,因此解析器或任何其他代理无法缓存,始终到达权威 nameserver。基于源 IP 的速率限制或阻止查询可能引入大量误报,因为随机前缀攻击通常通过公共解析器进行。这使得此类攻击特别有效且难以缓解。
如果请求仅涉及不存在的域名,NXDOMAIN 错误将仅由 com. 的顶级域名(TLD)nameserver 提供。这意味着查询永远不会到达权威 nameserver。
flowchart TD
accTitle: Random prefix attacks diagram
A[End user query to <code>example.com</code>] --"1)"--> B[<code>1.1.1.1 resolver</code>]
B --"2)"--> C[<code>com.</code> TLD NS]
C --"3)" <code>NXDOMAIN error</code>--> B
B --"4)" <code>NXDOMAIN error</code>--> A
D[Authoritative NS]
这些攻击之所以成功,是因为它们针对子域名,这需要域权威 nameserver 的响应。
flowchart TD
accTitle: Random prefix attacks diagram
A[End user query to <code>random.example.com</code>] --"1)"--> B[<code>1.1.1.1 resolver</code>]
B -- "2)" --> C[<code>com.</code> TLD NS]
C -- "3)" Query Authoritative NS --> B
B -- "4)" --> D[Authoritative NS]
D --"5)" <code>NXDOMAIN error</code>--> B
B --"6)" <code>NXDOMAIN error</code>--> A
针对现有域名子域名的攻击,resolver 被迫针对权威 nameserver 完全解析,因为这些随机子域名可能未被 resolver 或任何其他代理缓存。如果攻击者发送足够多的此类查询,且权威 nameserver 无法处理查询负载,它将变得无响应甚至崩溃,导致其托管的所有 zone 宕机,不仅仅是受攻击的 zone。
此攻击难以缓解有几个原因。从权威 nameserver 的角度来看,攻击者看起来是 Cloudflare(1.1.1.1),因为这是查询的来源。阻止 Cloudflare 不是选项,因为这会阻止合法流量。
当您启用随机前缀攻击缓解时,Cloudflare 监控传入查询以检测潜在的随机前缀攻击。
当我们检测到攻击时,我们将暂时停止查询您的上游 nameserver 以获取子域名、子子域名等。Cloudflare 然后将响应缓存的响应(如果其 TTL 尚未过期)。