一种针对DNS缓存服务器的杠杆式攻击

| 1 Comment | No TrackBacks |

今天发现一台国内的机器流量异常,检查发现这台机器上运行的 DNS 缓存服务被人用作了攻击的放大杠杆,这里简单记一下。

发现流量异常,首先当然是检查服务器上的 TCP 会话,发现了一些不太正常的东西,关闭之后流量减少,但仍然没有回到正常水平。

于是听包。这一听发现一大片:

07:39:53.271744 IP 158.XX.XX.238.53019 > XX.XX.XX.XX.53: 56854+ [1au] ANY? isc.org. (36)
07:39:53.271772 IP 158.XX.XX.238.53019 > XX.XX.XX.XX.53: 56854+ [1au] ANY? isc.org. (36)
07:39:53.271784 IP 158.XX.XX.238.53019 > XX.XX.XX.XX.53: 56854+ [1au] ANY? isc.org. (36)
07:39:53.271792 IP 158.XX.XX.238.53019 > XX.XX.XX.XX.53: 56854+ [1au] ANY? isc.org. (36)
07:39:53.274225 IP 92.XX.XX.148.31650 > XX.XX.XX.XX.53: 23600+ [1au] ANY? isc.org. (36)
07:39:53.274252 IP 92.XX.XX.148.31650 > XX.XX.XX.XX.53: 23600+ [1au] ANY? isc.org. (36)
07:39:53.274262 IP 92.XX.XX.148.31650 > XX.XX.XX.XX.53: 23600+ [1au] ANY? isc.org. (36)
07:39:53.274270 IP 92.XX.XX.148.31650 > XX.XX.XX.XX.53: 23600+ [1au] ANY? isc.org. (36)
07:39:53.291822 IP 158.XX.XX.238.13616 > XX.XX.XX.XX.53: 56854+ [1au] ANY? isc.org. (36)
07:39:53.291850 IP 158.XX.XX.238.13616 > XX.XX.XX.XX.53: 56854+ [1au] ANY? isc.org. (36)
07:39:53.291860 IP 158.XX.XX.238.13616 > XX.XX.XX.XX.53: 56854+ [1au] ANY? isc.org. (36)
07:39:53.291869 IP 158.XX.XX.238.13616 > XX.XX.XX.XX.53: 56854+ [1au] ANY? isc.org. (36)
07:39:53.291877 IP 92.XX.XX.148.56278 > XX.XX.XX.XX.53: 23600+ [1au] ANY? isc.org. (36)

显然,这样来自同一个 IP 地址,在短时间内反复查询同一个域名的现象是不正常的。为什么会是 isc.org?暂时不清楚,但是这样的行为,显然是利用这台机器作为放大攻击的杠杆。攻击者发出伪造成最终受害者为源 IP 地址的 DNS 查询包(这类包的尺寸较回应来说要小的多)到受害的 DNS 缓存服务器,而这些缓存服务器由于在本地已经有了查询到的域名信息副本(这些域名是存在的),会立即向最终的受害者发出回应。这样,攻击者就能够用较小的带宽代价占满最终受害者的下行带宽,实现 DDoS 攻击了。

由于是 DDoS,在防御一方的角度看,阻止这类攻击并不容易。不过,在传统的网络设计中,DNS 缓存服务器是放在 DMZ 里的,因此可以通过在路由上直接过滤掉全部来自外部的 DNS 回应包来缓解这类攻击造成的影响。在运行 DNS 缓存服务器的管理员方面,则应限制对自己运行的 DNS 缓存服务器的访问,例如只在内网接口上监听 DNS 查询请求,而外网接口只用来发出 DNS 请求和接收这些请求的回应,避免被坏人利用成为 DDoS 的杠杆。

No TrackBacks

TrackBack URL: https://blog.delphij.net/mt/mt-tb.cgi/1931

1 Comment

很详细的解释,多谢了

Leave a comment

Monthly Archives

Pages

OpenID accepted here Learn more about OpenID
Powered by Movable Type 5.2.3