DNS相关安全¶
安全事件¶
参见: 链接-时间线
攻击手段¶
query flood 通过不断的发 DNS 请求报文来耗尽目的 DNS 资源,形成拒绝服务。具体分类包括源 IP 是否随机以及目的域名是否随机等。
response flood 通过不断的发 DNS 响应报文来达到拒绝服务的目的。
udp floodv DNS 底层协议为 UDP,基于 UDP 的各种 flood 攻击也都会给 DNS 带来危害。
折射攻击(反射攻击) 伪造源 IP 为第三方,借助 DNS 的回包来达到 DoS 掉第三方的目的。属于 “借刀杀人” 的手段。
放大攻击 折射攻击的一种。通过恶意的构造响应报文来达到流量放大作用,从而对第三方形成带宽攻击。请求报文几十字节,响应报文几千字节,意味着可以形成百倍以上流量放大系数。
缓存投毒 每一台 DNS 都有缓存,缓存投毒指的是通过恶意手段污染 DNS 缓存,形成 DNS 劫持或者拒绝服务。
漏洞攻击 利用各种漏洞来达到入侵并控制 DNS 服务器目的。漏洞不仅仅指 DNS 程序本身的,也有可能是机器或者网络其它的 “问题点”。
社会工程学手段 所有的系统都需要人的维护,而人永远是安全中最脆弱的一环。
防御手段¶
对于权威 DNS 来说:
由于请求来源多是运营商或者公共 DNS 厂商的递归 DNS,源 IP 相对比较固定,可以实施源 IP 白名单策略。
该策略对于伪造源 IP 的攻击具有一定削弱作用。
对于域名随机的攻击来说,如果权威 DNS 本身承载的域名量不是很大,可以考虑域名白名单策略。
如果源 IP 就是运营商的,然后请求域名也是合法的,只能靠一定限速策略以及 DNS 服务器本身性能了。
对于递归 DNS 来说:
各种白名单策略误伤都会很严重,因此也主要靠 DNS 服务器本身性能了。
高性能 DNS 服务器目前比较流行的做法是基于 Intel DPDK 来实施。
另外一种推荐实施的策略是 RRL(Response Rate Limit),该策略对于防御折射攻击 / 放大攻击有一定效果。尽管折射攻击的目标不是 DNS 本身,但是不防御的话如果把第三方打挂仍然会产生连带责任,因此建议实施 RRL。