DNS 和 DDoS
分布式拒绝服务 (DDoS) 是指尝试利用分布式机器组成的网络使目标的计算资源不堪重负,直到它无法再正常工作。DNS(域名系统)是常见的 DDoS 攻击目标,因为网站或应用程序的关键服务都依赖于域名不间断地转换为 IP 地址。在不中断合法查询的情况下很难抵御此类恶意流量,因为 DNS 名称服务器通常只能看到解析器的 IP 地址,而解析器是负责对来自大量潜在用户的递归查询进行持续解析的中介。因此,对基于此地址的流量进行拦截或速率限制很可能会导致出现误报。此外,第 3 层净化中心很难成功隔离容量耗尽型 DNS 攻击,因为相比于总体流量,DNS DDoS 查询通常会以相对较低的 bps(每秒位数)或 pps(每秒数据包数)进行播发。
有各种不同的 DNS DDoS 攻击,但大多数攻击可以分为两组:DNS 泛洪攻击和 DNS 放大攻击。
什么是 DNS 泛洪攻击?
DNS 泛洪攻击会尝试通过发送巨量查询来耗尽 DNS 名称服务器的资源。老练的攻击者会利用分布式僵尸网络,通过从各种递归解析器处获取恶意流量来混淆攻击。
一种常见的 DNS 泛洪攻击技术是 NXDOMAIN 攻击,即伪随机子域 (PRSD) 攻击。在此类攻击中,恶意攻击者会触发对不存在的域(例如,doesnotexist.example.com)的过量请求,以消耗授权名称服务器的资源,同时耗尽递归解析器的缓存池。因此,成功的 DNS 泛洪攻击会增加合法查询的 DNS 解析时间,甚至导致彻底的拒绝服务。
什么是 DNS 放大攻击?
与针对响应恶意查询的名称服务器发起的攻击不同, DNS 放大攻击 会尝试通过向欺骗性源 IP 地址发送大量 DNS 请求来严重消耗另一台机器的资源。此攻击类似于在邮包中给某个人发送了一封包含伪造的寄件人地址的信件并要求回信。其结果是,DNS 消息将被定向到一个毫无戒心的第三方,而该第三方最初从未请求过数据。攻击者通常会提交请求以获取尽可能多的区域信息,从而最大限度地提高放大效果,并希望以无用的传入带宽使攻击目标不堪重负。
恶意攻击者通常会选择利用 DNS 进行此类“反射”攻击,因为它提供的攻击手段比 HTTP 更多。HTTP 连接需要 TCP 握手,因此将发送给目标的最大响应会是 TCP SYN-ACK 数据包,其中包含了相对少量的数据。但是,DNS 消息通常由无连接协议 UDP 传输,因此在未经事先确认的情况下较大的消息可以被发送给任何目标。
帮助防御 DNS DDoS 攻击的常用方法有哪些?
虽然很难在不干扰合法用户的情况下检测和抵御 DNS DDoS 攻击,但是推荐采用多种技术来增强防护:
- 地理分布式任播 DNS 网络可以扩大表面积以吸收大规模攻击。
- 增加记录存活时间可帮助减少到达授权名称服务器的合法及非法查询,这会节省名称服务器带宽。
- 禁用 DNS ANY 请求(即,可能的最大 DNS 响应)会阻止攻击利用此记录类型来增强放大攻击。
- 虽然可能难以在不中断合法请求的情况下拦截 DNS 查询,但如果某个解析器正在发送过量的流量,很多 DNS 服务器就能够延迟响应以节省带宽。更复杂的服务器会融合精细的速率限制逻辑,例如将来自造成 NXDOMAIN 响应激增的特定解析器或客户端的请求加入队列。
暂无评论内容