.CN根域名遭受有史以来最大规模DDoS攻击
2013年8月25日凌晨,.CN域名凌晨出现大范围解析故障,经分析.CN的根域授权DNS全线故障,导致大面积.CN域名无法解析。事故造成大量以.cn和.com.cn结尾的域名无法访问。直到当日凌晨4点左右,CN根域名服务器的解析才有部分恢复。此后,经CNNIC确认,国家域名解析节点遭受到有史以来规模最大的拒绝服务攻击,导致访问延迟或中断,部分网站的域名解析受到影响。而距本次事故发生一个月之后,本月24号,CNNIC和工信部终于揪出了本次攻击事件的始作俑者--一名来 自山东青岛的黑客。
据调查发现,该黑客本意是要攻击一个游戏私服网站,使其瘫痪,后来他为了更快达到这个目的,直接对.CN的根域名服 务器进行了DDoS攻击,发出的攻击流量堵塞了.CN根服务器的出口带宽(据工信部数据:攻击时峰值流量较平常激增近1000倍,近15G),致使.CN 根域名服务器的解析故障,使得大规模的.CN域名无法正常访问。
DDoS攻击背后的利益链条
大家可能会有疑问,看似普通的DDoS攻击其背后究竟隐藏着什么?一句话:为了利益。本次事故中攻击者使用的手法(譬如攻击一些“私服”的网站或主机) 并不罕见,且近些年有愈演愈烈的趋势。自国内的互联网事业兴起以来,国内有一些常年进行DDoS攻击的组织或个人,胁迫某些“私服”游戏的运营团队并收取 “保护费”,如果不合作便采取DDoS暴力攻击,使其无法正常运营。而这些“私服”的运营团队本身业务就涉及侵权,所以他们在遇到DDoS威胁时绝不敢报 警或维权,往往是被迫接受。这种恶性循环的结果就是这些网络中的恶意胁迫越来越肆无忌惮,这些从事DDoS攻击商业行为的组织或个人也演变成了各式各样的 “网络黑帮”,各式黑色产业链也层出不穷。由于当今互联网上DDoS攻击的门槛已经越来越低,雇主可以购买DDoS攻击服务,攻击可指定时间、指定流量、 指定攻击效果。总的来说,同行业间的恶意竞争是导致DDoS攻击愈演愈烈的最大原因,同时被攻击后定位攻击者所花费的成本较高也是这类事件层出不穷的重要 原因。
为何选择针对DNS服务器进行DDoS攻击
一直以来作为网络基础设施的DNS系统,给我们提供了访问互联网的便利,用户只需记住域名就可以访问到互联网上的对应主机。当你在浏览器中输入一个域名时,DNS的解析过程就开始了,一般的DNS解析过程如图1、图2所示:
图1:DNS解析的一般过程(有缓存时)
图2:DNS解析的一般过程(无缓存时)
下面来聊一聊现有互联网上运行的DNS系统所可能遭受到的风险。大家应该都了解,根域名服务器是DNS系统中最高级别的域名服务器,全球一共有13台, 多数分布在美国。首先,DNS系统是一个中心化的树形结构,很容易遭受DDoS攻击,且越靠近中心攻击效果越为显著;其次,现有DNS系统的迭代查询方式,对根域和顶级域解析服务器依赖非常严重;再次,现有互联网上存在着大量开放式的DNS域名服务器,这些服务器通常拥有强大的性能和带宽,利用DNS反 射技术的放大效应,可以产生近其带宽百倍的攻击流量。所以这些开放式的DNS服务器极其容易成为黑客们青睐的DDoS攻击“肉鸡“。这对整个互联网的基础 设施都是巨大的安全威胁。
在对现有DNS协议的风险评估上,DNS协议是很脆弱且不安全的。为什么说DNS协议很脆弱呢?一方面DNS 协议是明文协议,协议里带的信息可以很容易的被篡改、伪造,使得DNS协议易成为暴露用户行为的工具;另一方面,若在现有协议传输上采用加密手段,现有 DNS体系无法承受加密带来的开销和技术升级的成本。
正因为DNS系统的脆弱性和其协议设计上的缺陷,所以历史上针对DNS的攻击事件也比较多,影响比较大有2013年针对Spamhaus的攻击事件、2009年5.19断网、2008年DNS缓存投毒,以及2002年全球根域名服务器被攻击等等。
深入剖析本次.CN被攻击事件
从本次.CN根服务器被DDoS攻击的手法上来看,有两种可能性,一种可能是黑客使用DDoS方法攻击某个.CN域名,而较大的攻击流量或海量的查询请 求却把该.CN域名上一级根服务器打挂;第二种可能是黑客直接把DDoS攻击矛头指向了.CN的根域名服务器。针对DNS系统,常见的DDoS攻击手法 是:
1)传统DDoS攻击: 流量型(以堵塞网络带宽为主要攻击目的),包括UDP洪水攻击;TCP流量攻击;资源消耗型(以消耗目标机器可用资源为攻击目的),包括SYN洪水攻击,ACK洪水攻击,ACK反射攻击,慢速消耗攻击等;
2)DNS特有DDoS攻击:DNS反射攻击(放大效应)、DNS查询攻击(僵尸主机发起的海量请求)、变域名攻击:构造随机域名(或畸形域名)的查询请求,利用僵尸网络对目标域名或主机进行攻击(如图3所示)。
图3:DNS QUERY洪水攻击原理
为了最大限度的降低命中DNS缓存的可能,一般攻击者在构造攻击包时都会随机伪造查询源IP地址、伪造随机源端口,伪造随机查询ID以及待解析的域名。 从笔者获取到本次.CN攻击的数据包来看(见下图4),攻击者就是把经过特殊构造的海量的随机域名的查询请求直接发给了.CN的根服务器,也就是上文中提 到的变域名攻击方式。不过,笔者认为其中可能还混合有其他一些诸如UDP洪水、DNS放大和DNS僵尸查询等DDoS攻击,最终的目的就是让被攻击网络的 链路带宽超出服务的带宽,让目标机或集群处理能力超出极限,从而达到DNS解析不能提供正常服务的状态。
图4:.CN的攻击数据包(部分)
后续:DNS攻击的新趋势
在笔者看来,本次针对.CN根服务器的攻击为我们再一次敲响了互联网基础设施安全性的警钟,建议主管部门加强对基础设施的保障力度,以避免此类事故重演。
从笔者的日常工作中也能够发现不同针对DNS基础系统的攻击手法,譬如今年3月份针对国际公司Spamhaus的300G超大流量的DDoS攻击,攻击者主要采取的手法就是DNS反射攻击,这种攻击技术的特点就是利用互联网上开放的DNS递归服务器作为攻击源,利用“反弹”手法攻击目标机器。攻击原理如 图5所示:
图5:DNS反射攻击的原理
在DNS反射攻击手法中,假设DNS请求报文的数据部分长度约为40字节,而响应报文数据部分的长度可能会达到4000字节,这意味着利用此手法能够产 生约100倍的放大效应。因此,对于.CN遇袭事件,攻击者只需要控制一个能够产生150M流量的僵尸网络就能够进行如上规模(15G)的DDoS攻击。 据不完全统计,国内外总计有超过250W台开放DNS服务器可以充当这种“肉鸡”,开放的DNS服务器简直是互联网上无处不在的定时炸弹。
我们如何应对这种DDoS攻击?
我们DNS系统的运维人员在日常部署时要尽量做到DNS应用的负载均衡,提升DNS服务器的处理性能,尽量将解析节点分散,能够做到按不同的IDC或城 市实现冗余和容灾机制,通过这些手段可以有效的减轻大流量DDoS攻击发生时所带来的危害。但是如上文所言,针对于如此不堪一击的DNS系统,我们未来还 能够从哪些方面出发去应对一般规模或是超大规模的DDoS攻击呢?笔者认为有如下一些解决方案可以值得尝试。
第一,在你的主机遭受DDoS攻击时,最简单的是在本机做策略,譬如iptables等,或是事先将主机kernel加固以应对随时可能出现的风险,但是这种方法不能解决DDoS的根本问题,且非常不灵活。
第二,若通过对流量和攻击报文分析已知DDoS攻击类型,那么也可以通过配置一些策略来减轻攻击带来的危害。譬如对DNS反射攻击的防护,首先若被攻击 的服务器并未提供DNS业务,那么可以通过设置访问控制策略直接阻断所有的DNS请求/回应;如果被攻击的服务器是DNS相关服务器,那么最有效的方法是 配置DNS服务器,只响应合法区域的查询。不过这种方法需要一定的专业知识,需要运维人员介入,同样是不灵活的。
第三,提供充足的带宽 和性能很强的DNS服务器,也就是俗称的“堆机器,拼资源”,不过这种方法也如同饮鸩止渴,期望“魔高一尺,道高一丈”是不太现实的。不过建议管理人员还 是需要对DNS服务器的上联链路的负载情况及时做好监控,避免因链路拥塞导致丢包的情况出现,同时还是需要在物理带宽上投入一定的资源以防止上联链路拥 塞。
第四,在互联网的核心路由入口侧部署专业的DDoS流量检测设备和DDos流量清洗设备,通过DDoS检测设备与清洗设备之间进行 的策略联动,及时对恶意的攻击行为进行发现、清洗、阻断,这也是当下较为为业界所认可的防护方案。通过DNS协议的自身特点,依托Intel、 Tilera和Cavium等高效的硬件平台,开发专门针对DDoS流量清洗的系统。这里可以构建专用的DNS防护算法,如DNS QUERY FLOOD防护算法、DNS反射攻击防护等,用于从根本上过滤掉攻击流量。
但对于大量的中小网站、企业而言,花费重金购买防护资源是不现实的,不过现在随着互联网云技术的发展,很多大型互联网公司都提供了云主机服务,如腾讯云,阿里云等,并且免费提供专业的DDoS检测、清洗防护功能, 如果广大业务运营者担心自己的业务或主机会遭受到DDoS攻击,选择现有的云服务也不失为一种有效的解决方案。
除了上述提到的几种解决 方案,还有一些业界比较成熟的方案值得我们借鉴。比如CloudFlare公司采用的Anycast技术,该技术基于IP路由原理实现了自动流量负载均衡,在发生DDoS攻击时,这种技术能够有效的将攻击流量分流到不同区域的防护节点,进行流量清洗。该方案已经成功的在用户环境中部署。
最后,随着网络上DDoS攻击规模的不断扩大,DDoS工具的自动化,资源充足和带宽充裕,黑客发起DDoS攻击成本越来越低,而针对DDoS的攻防对抗,又是一个博弈对抗的过程。在非技术层面上,事先需要制定好应急预案和应对措施,如业务的自身调整、与运营商的沟通和应急措施同步。当DDoS攻击发生时,需要多个部门间快速的响应,实施应急方案和及时同步处理结果。同时,建议从立法上,对这类攻击进行严惩,提升攻击违法的成本。