DNS 服务是整个互联网的基础服务,在我们链接互联网的时候,需要通过 DNS 解析将域名转化成对应的 IP 地址。理论上来说 ISP 的 DNS 服务器只响应来自它自己客户 IP 的 DNS Query 响应,但事实上互联网上大量 DNS 服务的默认配置缺失,导致了会响应所有 IP 的 DNS Query 请求。
同时,DNS 大部分使用 UDP 协议,UDP 协议没有握手过程让其去验证请求的源 IP。攻击者(实际上是攻击者控制的傀儡机)发送大量伪造了 Victim IP 的请求给 DNS 服务器,DNS 服务器成为放大器将 DNS 响应回复给受害者。
不幸的是,目前互联网上存在大量的 DNS 服务器可以被利用,黑客使用网络扫描器工具可以很容易的发现这些 DNS 服务器并加以利用。这需要:
1. 如果您是 DNS 的管理员,需要加固 DNS 服务器,可以按照下面的配置关闭递归功能和限制可查询的 IP 地址。
options { recursion no;};
options { allow-query {192.168.1.0/24;};};
2.如果是受害者,首先可以通过网络层的 ACL 规则来防御, 或者使用抗 DDoS 系统进行流量清洗,目前大部分的云服务商都有这类功能。
参考文献: