DNS 放大攻击

DNS 放大是 DDoS 攻击的一种,它利用 DNS 解析器产生大量流量,使受害者不堪重负。

学习目标

阅读本文后,您将能够:

  • 定义 DNS 放大攻击
  • 说明 DNS 放大攻击的工作原理
  • 了解 DNS 放大攻击的几种缓解策略

复制文章链接

什么是 DNS 放大攻击?

这种 DDoS 攻击是基于反射的大规模分布式拒绝服务 (DDoS) 攻击,其中,攻击者利用开放 DNS 解��器的功能产生大量流量,使目标服务器或网络不堪重负,导致服务器及其周围基础设施无法访问。

DNS 放大攻击的工作原理是什么?

所有放大攻击都利用攻击者和目标 Web 资源之间的带宽消耗差异。当消耗差异经过多次请求而被放大时,所产生的流量可导致网络基础设施中断。通过发送小型请求来导致大规模响应,恶意用户就能达到四两拨千斤的效果。当通过某个僵尸网络中的每个自动程序都发出类似请求来使这种放大效果倍增时,攻击者既能躲避检测,又能收获攻击流量大增的好处。

在 DNS 放大攻击中,其中一个机器人好比是一个心怀恶意的青少年打电话给一家餐厅,说“我要每样东西点一份,请给我回电话,告诉我整个订单”。当餐厅询问回电号码时,提供的是目标受害者的电话号码。然后目标会接到来自餐厅的电话,提供其并未请求的大量信息。

由于每个自动程序向开放 DNS 解析器提出请求时都提供欺骗性 IP 地址,也就是目标受害者���真实源 IP 地址,目标随后会收到来自 DNS 解析器的响应。为了产生大量流量,攻击者会以某种方式来构造请求,以便让 DNS 解析器产生尽可能大的响应。因此,目标接收攻击者的初始流量的放大结果,其网络被虚假流量堵塞,导致拒绝服务

DNS 放大可分为四个步骤:

  1. 攻击者使用受损的端点将有欺骗性 IP 地址的 UDP 数据包发送到 DNS 递归服务器。数据包上的欺骗性地址指向受害者的真实 IP 地址。
  2. 每个 UDP 数据包都向 DNS 解析器发出请求,通常传递一个参数(例如“ANY”)以接收尽可能最大的响应。
  3. DNS 解析器收到请求后,会向欺骗性 IP 地址发送较大的响应。
  4. 目标的 IP 地址接收响应,其周边的网络基础设施被大量流量淹没,从而导致拒绝服务。

尽管少量请求不足以导致网络基础设施下线,但在这一过程通过多个请求和 DNS 解析器翻倍后,目标最终接收的数据量变得非常大。进一步了解有关反射攻击的技术细节

如何防护 DNS 放大攻击?

对于运行网站或服务的个人或公司来说,缓解选择并不多。这是因为,尽管个人或公司的服务器可能是攻击目标,但其并非容量耗尽攻击影响最大的地方。鉴于攻击所产生的大量流量,服务器周围的基础设施感受到影响。互联网服务提供商(ISP)或其他上游基础设施提供商可能无法处理传入流量而不堪重负。因此,ISP 可能会将向受害者 IP 地址发送的所有流量传送到一个黑洞路由,以保护自己并将目标站点下线。除了象 Cloudflare DDoS 防护这样的异地保护服务外,缓解策略大多是预防性的互联网基础设施解决方案。

减少开放 DNS 解析器的总数

DNS 放大攻击的一个重要组成部分是对开放 DNS 解析器的访问权限。如果互联网上有配置不当的 DNS 解析器,那么攻击者只要找到这种 DNS 解析器就能加以利用。理想情况下,DNS 解析器应仅向源自受信任域名的设备提供服务。在基于反射的攻击中,开放 DNS 解析器将响应来自互联网任何位置的查询,因此有可能被利用。限制 DNS 解析器,使其仅响应来自受信任来源的查询,即可使服务器无法被用于任何类型的放大攻击。

源 IP 验证 —— 阻止欺骗性数据包离开网络

由于攻击者僵尸网络发送的 UDP 请求必须有一个伪造为受害者 IP 地址的源 IP 地址,对于基于 UDP 的放大攻击,降低其有效性的一个关键是互联网服务提供商(ISP)拒绝带有伪造 IP 地址的所有内部流量。如果一个从网络内部发送的数据包带有一个看起来像来自网络外部的源地址,那么它就有可能是伪造数据包并可被丢弃。Cloudflare 强烈建议所有提供商实施入口过滤,并不时联系无意中参与了 DDoS 攻击的 ISP,帮助其了解自己的漏洞。

Cloudflare 如何缓解 DNS 放大攻击?

拥有正确配置的防火墙和足够的网络容量(这不一定是易事,除非您达到 Cloudflare 的规模),阻止诸如 DNS 放大之类的反射攻击将易如反掌。尽管攻击会针对单一 IP 地址,我们的 Anycast 网络将把所有攻击流量分散到不再具有破坏力的地步。Cloudflare 能利用其规模优势来将攻击的力度分散到众多数据中心,平衡负载,这样服务始终不会中断,攻击也永远无法导致目标服务器的基础设施过载。在最近一段六个月期间,我们的 DDoS 缓解系统 “Gatebot” 检测到 6,329 次简单反射攻击(相当于每 40 分钟一次),我们的网络成功缓解了所有攻击。进一步了解 Cloudflare 的高级 DDoS 防护。