使用 ntp 服务器进行 DDOS

使用 ntp 服务器进行 DDOS

我听说过一种新型的 DDOS,ntp 用于反射

我的问题很简单:

  1. 您能否详细说明它们的工作原理并进行解释?由于 ntp 是通过 UDP 运行的,我猜想某处一定存在某种伪造的数据包?

  2. 如何才能详尽地检查某些 ntp 服务器是否存在漏洞(并且不会受到任何攻击)?

  3. 如果我们成为此类攻击的目标,有什么办法可以缓解?


由于这种攻击在 2014 年已被广泛使用,下面再详细介绍一下:

预防和缓解此类问题的一个简单方法是默认监听 127.0.0.1?我猜这对任何服务(bind9、mysql 等)都适用?

答案1

这些攻击已经存在很久了,只是最近几个月才再次流行起来。它们的工作原理与任何常规放大攻击一样:主机欺骗查询,使源 IP 地址看起来像是目标主机。NTP 服务器将其答案发送到欺骗的地址。由于特定查询类型的答案可能非常大,并且通常是 UDP,因此这可能会很快成为目标主机的问题:它被 NTP 数据包淹没。

不幸的是,这不是 NTP 服务器的漏洞,而是一个被滥用的功能。需要考虑的一件事是,您是否需要运行可从整个互联网查询的 NTP 服务器。如果不需要,请创建访问列表或防火墙策略来阻止来自不受信任来源的查询。然后,您可以检查您的 NTP 服务器是否存在漏洞,方法是从不受信任的来源执行 NTP 查询,并验证是否得到了答案。但不幸的是,有相当多的 NTP 服务器是故意公开的(例如 中的所有服务器pool.ntp.org)。如果您需要运行公共 NTP 服务器,您可以考虑实施查询速率限制,以减少滥用时对目标主机的影响。

解决方案的另一个更通用的部分是网络需要实现BCP38,这告诉他们过滤离开其网络的流量,这样发送欺骗数据包就是不可能的。不幸的是,仍然有大量网络没有实现这种过滤,因此所有使用欺骗源数据包的攻击(使用任何协议,如 NTP、DNS 或 chargen)仍然是可能的。

你能做些什么来缓解这种攻击取决于你的网络和可用的工具,但有一件事你应该考虑,那就是阻止来自不受信任来源的传入 NTP 数据包(因此请检查你正在使用的 NTP 服务器)。当然,如果你的上行链路拥塞,这无济于事。在这种情况下,你需要让你的 ISP 帮助你过滤流量。

答案2

我的答案:

  1. 攻击使用 monlist 命令(在 tcpdump 中显示为 ntpv2 保留)。这些命令不受正常速率限制的速率限制。Monlist(和其他监控命令)仅适用于允许“查询”您的服务器的 IP,因此请将“noquery”添加到您的默认值中。
  2. 尝试从外部 IP 执行 ntpdc -nc monlist yourip 来查看您的服务器是否应答。
  3. 对传入的 ntp 流量进行速率限制。不是在 ntpd 本身中,而是在它到达守护进程之前。如何在 Linux 中设置它,请参阅ntp 池邮件列表中的“我的速率限制设置”

答案3

  1. 您能否详细说明它们的工作原理并进行解释?由于 ntp 是通过 UDP 运行的,我猜想某处一定存在某种伪造的数据包?

US-CERT 对这次攻击进行了详细描述,网址为“警报(TA14-017A)基于 UDP 的放大攻击“ 和 ”警报 (TA14-013A) 使用 CVE-2013-5211 的 NTP 放大攻击“。

TA14-013A 对此进行了最好的阐述:

描述

UDP 的设计初衷是无连接协议,不验证源 IP 地址。除非应用层协议使用会话启动等对策,否则很容易伪造 IP 数据包数据报以包含任意源 IP 地址 [7]。当许多 UDP 数据包的源 IP 地址被伪造为单个地址时,服务器会响应该受害者,从而造成反射式拒绝服务 (DoS) 攻击。

最近,我们发现某些 UDP 协议对某些命令有特定的响应,这些响应比初始请求大得多。以前,攻击者受到直接发送到目标的数据包数量的线性限制,以进行 DoS 攻击,而现在单个数据包可以在其响应中产生数十倍或数百倍的带宽。这被称为放大攻击,当与大规模反射式 DoS 攻击相结合时,进行 DDoS 攻击变得相对容易。

所附的“带宽放大系数 (BAF)”图表显示 NTP 表现最差。由于 NTP 是一种极为常见的协议,并且许多 Linux 操作系统都附带有活动 NTP 服务器,因此这个问题尤其严重。

相关内容