DNS是互联网运行重要的基础设施,在全球互联网运转中扮演重要作用。互联网中的每一次访问都开始于一次DNS查询,从而将人们更好辨识的域名转换为数字化的IP地址。随着互联网的快速发展以及网络技术的快速发展,DNS固有的缺陷逐步暴露出来,并引发越来越多的网络安全问题。本文重点讨论目前DNS所面临的典型威胁,包括基于DNS的分布式拒绝攻击、DNS缓存投毒等,分析了不同攻击的原理和危害,并提出相应的防护建议。
1.DNS攻击类型
1.1DNS缓存投毒
缓存投毒是最常见的一种DNS攻击类型,其主要基于DNS缓存进行攻击。DNS缓存是DNS系统为了节省DNS查询时间而引入的一种机制,DNS缓存广泛存在于全球各地开放的DNS服务器中。当用户对某个域名发起请求时,DNS服务器首先会在自身DNS缓存中查看是否有对应的结果,如果命中结果,会直接告知客户主机,而无需进行全球解析查询。
这种机制虽然提升了解析查询的效率,但是为攻击者利用DNS缓存发动攻击提供了条件。如果攻击者冒充权威服务器,在权威服务器之前,将应答数据包发送给递归服务器,就能够成功污染DNS缓存,将错误的解析数据传递给客户主机,从而将客户机的访问引导至攻击者控制的服务器上。
1.2 DNS DDoS攻击
DNS DDoS攻击根据攻击目标可以分为DNS查询攻击和DNS反射放大攻击两种。DNS查询攻击目标是DNS服务器,可以是递归服务器也可能是权威服务器,攻击者通过控制大量的僵尸网络对DNS服务器发起解析请求,导致DNS服务器资源耗尽,无法响应正常的解析请求。
DNS反射放大攻击目标是web服务器或客户主机,攻击者伪造受攻击者的IP,控制僵尸网络对DNS服务器发起解析请求,DNS服务器不会验证解析来源的真实性,而是会对所有解析请求进行应答。而DNS应答数据包往往是请求包的数十倍甚至是数百倍,因此被攻击目标就可能承受来自DNS服务器数百倍的攻击流量,从而形成反射放大攻击,耗尽被攻击目标的网络资源。
1.3随机子域/非存在域名攻击
随机子域名攻击是指攻击者通过递归服务器查询合法域名的随机子域名或者根本不存在的子域名来进行攻击。攻击者通过控制僵尸网络发送大量的此类请求,以此来耗尽权威服务器的带宽和资源,从而导致权威服务器无法提供正常的解析服务。
非存在域名攻击类似随机子域名攻击,攻击者向递归服务器发送大量非存在的域名请求,这些域名解析缓慢或者不能解析,以此让DNS服务器一直等待解析响应,从而达到消耗DNS服务器资源,实现拒绝服务攻击的目的。
1.4DNS劫持
从结果上来看,DNS劫持与缓存投毒十分类似,也是将用户劫持到受攻击者控制的IP地址。但与缓存投毒不同的是,DNS劫持通常是通过直接修改域名解析记录达成,主要有两种方式,一种是直接控制域名管理平台权限,修改域名解析记录,另一种是直接攻击权威域名服务器,修改区域文件内的资源记录。DNS劫持对于企业和机构客户而言影响非常严重,它会导致失去对域名的控制,造成客户的流失,业务的严重受损。
2.防御及缓解措施
2.1 DNSSEC
从目前来看,DNSSEC是解决DNS安全问题最有效的方式之一。DNSSEC是指通过数字签名和公钥来实现DNS数据的完整性和可靠性。权威域名服务器用自身的私钥来签名资源记录,然后递归服务器用权威服务器的公钥来认证应答数据,如果认证成功,则表明接收到的数据确实来自权威服务器,如果认证失败,则表明接收到的数据是伪造的,就会抛弃数据。由国科云自研的二代云解析系统已经具备DNSSEC功能,能够有效应对DNS缓存投毒、DNS劫持等攻击手段,确保DNS解析数据的准确性。
2.2 Anycast
Anycast是一种网络路由方式,通过部署anycast,提供相同服务的一组服务器可以使用相当的IP地址,客户请求的数据将会被转发到这组服务器中路由拓扑结构最近的一台主机,因而可以起到有效抵御DDoS攻击的效果。如果攻击者利用僵尸网络对DNS服务器发动DDoS攻击,这些巨量的网络信息会通过anycast转发到不同DNS服务器上,进而缓解单一服务器的运行压力。
2.3响应速率限制
响应速率限制是指权威服务器可以统计来自相同DNS查询所对应的DNS响应频次,并设置发送次数的阈值。如果某一时间段内,发送响应的频次超过设定的阈值,权威服务器就会停止发送响应。如果在一段时间内,权威服务器没有收到高于阈值的查询,则取消限制。这样就有效保护了权威服务器远离DDoS攻击。
但这种方式同样具有一些局限性,一方面它只对权威服务器有效,无法应用于递归服务器,另一方面,攻击者可以通过发送一组不同的查询绕过限制规则。
2.4设置递归服务器查询权限
利用DNS实现反射放大攻击的关键点在于,大部分开放式的递归服务器可以让任何人执行DNS查询请求,因此DNS递归服务器设置一定的接入权限,保证授权的用户才能执行DNS查询请求,能够有效降低DNS反射放大攻击的危害。
综上所述,DNS由于其自身设计方面的缺陷以及其在互联网中的基础地位,导致针对DNS的攻击事件愈发显著,DNS的可靠性和稳定性下降,严重影响网络的稳定运行,因此加强DNS安全风险防控能力至关重要,可以通过采用DNSSEC技术、Anycast技术等多种网络安全技术提升DNS的安全性能,为用户提供更加安全可靠的DNS服务。
相关推荐:
DNS风险分析及安全防护研究(三):DNS缓存投毒及防御策略