DNS拒绝服务攻击与对策

2014-03-18 01:41章思宇姜开达
中国教育网络 2014年11期
关键词:域名IP地址攻击者

文/章思宇 姜开达

DNS拒绝服务攻击与对策

文/章思宇 姜开达

面对各种形式攻击对DNS服务构成的威胁,要确保校园网DNS服务的安全可靠运行,需要从基础架构开始进行全面的考虑。

DNS是互联网最关键的基础设施之一,它最主要的功能是将域名与IP地址进行映射。随着互联网应用的发展,DNS被赋予越来越多的职责。然而,由于DNS协议设计之初并没有足够的安全考虑,协议缺陷、实现和配置缺陷等一系列问题一直以来都威胁着DNS的安全运行。

2008年,Dan Kaminsky提出的一种DNS缓存中毒攻击方法引起学术和企业界对DNS安全的广泛关注,时至今日绝大多数DNS服务器都已实现了源端口随机化以加强对缓存中毒攻击的防御。2009年“暴风”事件造成全国多省网络瘫痪,促使运营商重视并加大对DNS运行安全的投入。

尽管如此,DNS安全现状依然不容乐观。一方面,利用DNS发起的各种DDoS攻击泛滥,对DNS服务的正常运行,乃至整个互联网都构成了极大的威胁;另一方面,大量配置和维护不当的DNS服务器正在成为攻击者的帮手。

DNS反射放大攻击

DDoS攻击可以说是目前最难防御的攻击方式之一,如今大规模的DDoS攻击流量都在100Gbps以上,DNS反射是攻击者放大攻击流量的常用手法。

DNS反射攻击利用易于伪造的UDP源IP地址、互联网上数量庞大的开放解析器和DNS回答尺寸的高放大比三个关键因素,达到了可观的DDoS流量放大效果。事实上许多基于UDP的协议都可以用作反射攻击,如NTP、SSDP等,近期都被攻击者利用,但互联网上DNS的反射源(开放解析器)数量是最多的。

Open Resolver Project持续探测互联网上的开放DNS解析器,尽管近一年来开放解析器数量呈缓慢下降趋势,但至今全球依然有超过2000万个IP地址响应DNS请求。2014年5月我们做的教育网范围内的调查也显示,教育网内有2万多个IP地址响应DNS查询,其中6663个能够提供正确的递归解析。

DNS反射攻击主要利用以下几个DNS技术和方法。首先,攻击者发送的DNS请求通常启用EDNS0扩展,以突破DNS消息通过UDP传送时的512字节限制,使服务器向受害者发送更大尺寸的响应包。在利用现有正常域名进行反射攻击时,攻击者通常发送ANY类型的请求,要求服务器返回该域名所有类型的资源记录。同时,攻击者倾向于选择支持DNSSEC的域名,利用RRSIG数字签名记录的大尺寸来达到较好的放大效果。DNS反射对流量的放大比例最高可达90倍以上。

图1 TXT记录反射攻击域名示例

在我们的监测中发现的另一现象是,一些攻击者注册了专门用于反射攻击的域名。这些域名有的设置了上百个A记录IP地址,有的在TXT或MX记录中填入大量无意义内容用于增加回答尺寸,如图1所示。利用自己注册的域名进行反射放大,可以控制回答的尺寸,避免回答尺寸过大被截断。

图2 变前缀域名攻击流量示例

互联网上每一个开放的DNS服务器都可能成为攻击者进行DNS反射攻击的帮手,作为DNS服务的运行和管理者,有责任杜绝自己管理的DNS服务器被DDoS攻击利用。

对于递归(缓存)服务器,其服务的对象通常是一定范围内的,对于高校网络而言,递归服务器一般只为校园网内的用户服务。因此,可以配置ACL规则,只响应校园网IP地址范围内的主机请求,对于来自其他源地址的DNS查询,采取拒绝(回答REFUSED)或丢弃(无任何回应)的方式处理。

授权(权威)域名服务器同样也会被DNS反射攻击所利用。在授权域名服务器上无法进行源地址限制,因此,授权服务器首先应关闭递归解析功能。RRL(Response Rate Limiting)是授权服务器应对DNS反射攻击的一种机制,当服务器收到来自同一IP地址或子网的对相同域名的大量请求时,将丢弃这些重复查询。RRL能大幅降低DNS反射的流量,在BIND 9.9.4以上及NSD 3.2.15以上版本都已实现支持。

随机前缀域名拒绝服务攻击

在DNS反射攻击中,尽管汇聚到受害者的攻击流量是巨大的,但对单个DNS服务器而言流量和负载并不明显。另一种采用随机前缀的针对域名的拒绝服务攻击,则会对递归服务器的正常运行产生严重干扰。

图3 变前缀攻击递归服务器响应状态示例

图4 BIND变前缀攻击测试

这种拒绝服务,攻击者向递归服务器发送目标域名下随机的子域名查询,如图2所示,由于每个请求的前缀都不相同,递归服务器必须把每个请求都转发给目标域名的授权服务器进行解析,攻击者的目的即是让目标域名的授权服务器瘫痪。当目标域名的授权服务器无法正常响应后,递归服务器对这些查询的解析就会失败,产生SERVFAIL的回答,如图3所示。

通过对DNS流量的监测,我们发现此类针对域名的拒绝服务攻击几乎每天都在发生,只是攻击目标域名一直在变化。对特定域名的攻击一般持续数小时,长的可能超过一天。此类攻击的流量也非常巨大,在一个监测点我们就记录了多起单个域名超过1000万QPS的拒绝服务。从被攻击的域名来看,大多数目标都是游戏私服类网站,私服相互争斗已从攻击对手网站服务器转向攻击域名。2013年8月CN顶级域服务器的DDoS攻击,也是起于私服网站域名的攻击。

这种攻击看起来和DNS反射放大攻击有一定的相似性,为何它会对递归服务器也造成巨大的影响呢?究其原因,DNS反射攻击的请求是对同一域名的,递归服务器可用缓存处理所有的查询,而随机前缀攻击的每个查询都必须经过递归解析,尤其在授权服务器无响应时,递归解析过程将等待很长一段超时时间,大量涌入的需要递归解析的查询将耗尽所有的递归解析器资源,从而正常的递归域名解析请求无法被处理。

为了测试这种攻击对DNS服务器的影响,我们选择一个授权服务器无回应的域名,首先对其下一固定子域名进行大量重复查询,此时BIND递归客户端没有明显消耗(图4-a);当我们使用随机生成的子域名进行测试时(图4-b),BIND的递归客户端则迅速耗尽。

这种攻击不仅威胁域名授权服务器,被利用的递归服务器也会出现瘫痪现象,若不采取有效的防护措施可能造成区域网络访问故障,与2009年“暴风”事件中递归服务器过载有几分相似。

一种方法是使用更高效的DNS服务器软件。我们测试对比了BIND和Unbound两个最常用的递归服务器软件,选用10000个域名,正常情况下两者的解析成功率都在98.7%左右。当施加了同样的随机前缀攻击流量后,BIND对正常域名的解析成功率下降到51.3%,而Unbound所受影响轻微,解析成功率仍维持在97.8%。Unbound的良好表现得益于其处理服务器过载的竞争策略,以及服务器超时探测机制。

图5 校园网DNS服务部署架构

之前应对反射攻击时已提到递归服务器应只对服务范围内的IP地址提供递归,但在实际运行中,我们发现有不少校园网内的IP地址正在发起随机前缀攻击。调查后我们排除了这些机器被攻击者控制的可能性,它们一部分是开启了DNS服务的服务器,并配置为转发器,将请求转发给校园网的DNS服务器,另一部分使用了特定型号的家用路由器,因设计缺陷其DNS转发功能对外网开放,难以升级修复。由于一个IP地址转发的攻击流量就可能造成递归服务器过载,而校园网内服务器设备数量庞大难以控制,我们建议在校园网边界丢弃除授权服务器以外的进校UDP 53端口报文。

校园网DNS部署和运行安全

面对各种形式攻击对DNS服务构成的威胁,确保校园网DNS服务的安全可靠运行需要从基础架构开始进行全面的考虑。

首先,从服务器角色上,应做授权、缓存、递归分离的设计。由于三者功能、服务对象和流量特性的不同,将三者部署在独立的服务器上可以有针对性地采取安全防护和服务保障措施。以往对授权和递归功能的分离讨论较多,而将缓存和递归分离则是借鉴了Web缓存的架构,能够提高服务承载能力,更灵活地处理异常和扩展性能。无论缓存(递归)还是授权服务器,都应有足够的冗余,避免单点故障的发生,对于有多个校区的高校,可考虑通过Anycast进行多点部署。

对于授权服务器,除了配置RRL防止被反射攻击利用外,还应注意区传送的配置。多个报告显示互联网上有众多域名的授权服务器对任意IP开放区传送,从而造成内部重要服务器地址暴露,为攻击者寻找渗透目标提供便利。对此应采用ACL和TSIG确保区传送安全,同时利用水平分割(Split-Horizon)的方法避免内部IP地址泄露到公网。由于授权服务器中的主服务器具有特殊的重要性,可将主服务器隐藏起来不直接对外服务(Hidden Master),仅为从服务器提供区传送,避免其遭受直接攻击。校园网DNS缓存与授权服务部署结构总结如图5所示。

DNS部署时服务器软件也应有一定的异构性,选择两种或以上的服务器软件,以避免某个软件出现漏洞影响到所有的服务器。例如,BIND作为最常用的DNS服务器软件,每年都会被报告多个高危漏洞,且以远程拒绝服务为主,远多于其他常用DNS服务器软件。对此可考虑递归和缓存使用Unbound和BIND混合部署,而授权服务器使用NSD和BIND混合部署,并注意软件版本更新。

监控是保障DNS服务稳定运行、及时发现异常所必需的。对DNS服务的监控,可采集服务器软件自身提供的统计信息,服务器也可以配置成记录所有的DNS请求,但过多的日志会降低服务器的性能。较好的方法是对DNS服务器的流量进行镜像分析,利用dsc定制收集各种统计信息,并具有一定的图形展示能力,dnstop则可显示最近一段时间内查询最多的域名和IP地址。利用镜像流量还可自行开发各种分析工具,且不会影响到DNS服务器本身的工作。此外,学校域名和授权服务器配置,可使用DNSCheck工具进行检查。

本文对困扰高校网络DNS服务运行的两类拒绝服务攻击进行了分析,并提供了相应的应对措施,同时也探讨了安全可靠部署和运行校园网DNS服务的一些思路和建议。DNS作为众多互联网应用的基础支撑,其自身的安全性,以及在其之上出现的各种恶意应用,在未来很长一段时间都将是安全界关注的热点。

(作者单位为上海交通大学网络信息中心)

猜你喜欢
域名IP地址攻击者
《江苏教育研究》官方网站域名变更公告
铁路远动系统几种组网方式IP地址的申请和设置
正面迎接批判
正面迎接批判
公安网络中IP地址智能管理的研究与思考
有限次重复博弈下的网络攻击行为研究
《IP地址及其管理》教学设计
顶级域名争夺战:ICANN放出1930个通用顶级域名,申请者有上千家