文/本刊记者 王左利
1 9 8 3年,保罗·莫卡派乔斯 (P a u l M o c k a p e t r is)在南加州大学信息科学学院提出了关于D N S体系结构的R F C s 8 8 2和8 8 3,本质上就是我们今天所使用的D N S。
早期,S t e v e B e llo v in发现D N S欺骗攻击。
2 0 0 8年,D a n K a m in s k y发现一种高效的缓存污染(D N S C a c h e P o is o n in g)攻击。
3 0年前,保罗·莫卡派乔斯 (P a u l M o c k a p e t r i s)在南加州大学信息科学学院提出D N S架构。从那以后,D N S成为互联网重要的基础设施之一。正如许多事物一样,在它诞生的第一天里,人们就意识到了它的好处,但其潜在缺点却在日后慢慢显现。
任何成功的系统,当它变大的时候需求就会变化,系统也要相应变化,所以如果想取得成功要遵照这个循环,也就是成功、规模扩大、发现问题、解决问题。然后才能迈上新台阶。D N S同样适用于此原则。
3月份,一场DDoS攻击引发。这次攻击吸引了安全界人士的目光,其原因在于攻击峰值前所未有。高达300Gbps的攻击峰值让即使是专门提供云安全网络服务的专业厂商也几临崩溃。这又一次让人们重新审视DNS的安全。
30年前,保罗·莫卡派乔斯 (Paul Mockapetris)在南加州大学信息科学学院提出了关于DNS体系结构的RFCs882和883,本质上就是我们今天所使用的DNS。从那以后,DNS成为互联网重要的基础设施之一。正如许多事物一样,在它诞生的第一天里,人们就意识到了它的好处,但其潜在缺点却在日后慢慢显现。
与很多其他互联网协议一样,DNS的初始设计场景为可信环境,并没有过多考虑安全问题。互联网在发展过程中出现多种针对DNS的攻击。早期Steve Bellovin所发现的DNS欺骗攻击,以及2008年Dan Kaminsky发现的一种高效的缓存污染(DNS Cache Poisoning)攻击都曾震动整个网络安全学术界和工程界。
保证DNS的健壮运行主要体现在两个方面:一是性能,即保证域名解析过程的速度;二是安全,即保证域名和IP地址对应关系的正确性。性能是DNS设计之初着重考虑的因素。其整体架构的高度可扩展性和简洁的查询协议使得DNS从1983年以来的30年中,面对持续指数级增长的网络用户和应用,在初始设计几乎没有任何变化的情况下仍然能够高效稳定运行,但是安全性却始终是DNS的软肋。
在国内,互联网也多次吃过DNS安全的亏。4年前的5月,由暴风影音引起的域名查询泛滥使得DNSPod当机,造成多个省份互联网中断。2010年1月, 百度域名被劫持,DNS解析被篡改,网民访问百度的结果是看到一个被黑客黑掉的页面。
“作为互联网基础设施,一旦DNS出现问题,整个互联网就会混乱甚至瘫痪。”相关人士表示,DNS目前为止面临的安全挑战主要有几个方面。第一,域名欺骗。包括缓存感染、域名劫持、DNS重定向等常见的几种方式。第二,DDoS攻击。数据显示,自2010年以来,数10Gbps的DDoS攻击已是常事,而本文一开始提到的针对云安全厂商的攻击则刷新了DDoS攻击记录。未来会不会有比这更强的网络攻击?这种流量的DDoS攻击会不会演变为未来的常态?极有可能。因为在安全领域一直是:“道高一尺,魔高一丈。”
互联网的历史告诉我们,许多系统在一开始就可以成功,如果它拥有成功的设计。然而,随着用户规模的成长,系统将面临“成长的烦恼”。这时,它就要做出改变。
DNSSEC(Domain Name System Security Extensions ,DNS安全扩展)就是为了解决DNS信息安全的问题,它采用非对称密钥的签名认证机制来认证消息的来源。从理论上来说,DNSSEC可以解决DNS信息安全问题,因为现有的运算能力无法在私钥更换之前破解私钥。DNSSEC给解析服务器提供了防止受骗的武器,即一种可以验证应答信息真实性和完整性的机制。“DNS是一个巨大无比的网络地图,导引冲浪者的航线,而DNSSEC则相当于灯塔,保证航行的安全。”相关人士表示。
图1 中国境内镜像根发展历程
DNSSEC有其优点也有缺点,在推出的若干年中,存在不少争议。从1997年第一个有关DNSSEC的标准RFC2065发布,中间经过几次修订使其更加可用。直到现在DNSSEC的标准仍在发展过程中。迫于DNS安全问题的日趋严重化,负责管理互联网的非赢利组织ICANN设置了一个推动时间表。2010年5月5日,互联网史上又一个重要的日子,全球13台DNS根服务器升级到支持 DNSSEC的版本。
目前,各个国家基本上都意识到DNSSEC对于互联网体系的重要性,也在一层一层往下部署。ICANN正在全面部署DNSSEC,它为用户DNS查询的每一步增加一个数字签名验证,以防止第三方伪造DNS数据。
相关专家表示,作为一种“打补丁”的方式,DNSSEC不可能尽善尽美,但这是解决互联网域名欺骗目前来看最有效的方式。如果DNS能够普遍部署,将对互联网的安全体系产生重大的影响,因为有了DNSSEC的数字签名,把DNS作为密钥分发的PKI在很多应用场合已经具有了可行性。它不仅可以加强DNS本身的安全,还给其他的应用,特别是端到端的移动通信、IPv6网络环境的安全问题提供新的解决方案。
ICANN 或许是受了《指环王》的启发,它制定了一项计划——当DNSSEC崩溃,分布在全世界的7个人将拿着密钥,来到美国的一个秘密数据中心合作解开DNSSEC的根密钥,重建DNSSEC。7个人只需5位就能破解根密钥——这种加密方法被称为 Shamir's Secret Sharing——密钥被分成几部分,每一部分都独一无二,其中几部分或全部联合起来就能解密密钥。
不过,DNSSEC的部署挑战很多。首先是部署难度大。 DNSSEC的公钥发布要求有一个信任链。根被认为可信并签名,然后顶级域要把自身的公钥的hash值,也就是DS记录放到根。以此类推二级域要把DS记录放到顶级域。以COM.CN举例说明,首先根签名,然后CN区的运行者要把DS记录放到根,之后COM.CN要把DS记录放到CN区中。这样递归查询服务器逐级认证公钥的可信性,直到COM.CN区的公钥是可信的,然后递归查询服务器用这个公钥来验证COM.CN区的权威服务器的应答。可以看到,如果CN不签名即使COM.CN想签名也是徒劳的,因此在短时间内要想达到所有区都签名不现实。
互联网名称与数字地址分配机构(ICANN)第46届会议。
其次,容量膨胀导致成本增加。由于采用签名认证机制,每个记录都要有一个签名记录RRSIG记录,根据统计计算区数据要膨胀10倍(这个值和密钥长度相关),相应的通信量也要膨胀10倍。这样现有的服务器和网络都要升级。显然这样做成本很高。
第三,管理难度大。由于要定期签名,增加系统的复杂性,相应的管理成本增加了很多。需要购置新的管理软件。
总之,DNSSEC部署和实施是一个复杂,全球性的系统工程。DNSSEC的实施,非技术方面的问题大于技术方面,特别是对现有DNS体系的向下兼容性方面,是DNSSEC实施成败的关键。
当然,DNSSEC显然在解决一些问题的时候还带来了另外一些问题。如,DNSSEC一个争议和担忧就是过强的流量放大效应,此效应将造成更大规模的DDoS攻击。不过这似乎也并非无药可医,相关人士表示,
在互联网发展的过程中,人们需要认识的是,互联网问题的解决中,不可能十全十美,任何解决方案都是一种“成功的妥协”。正如美国加州大学洛杉矶分校张丽霞教授所言:“互联网本身是一个生长的系统,它会不断地发展,不断地面临新的挑战。一个好的设计在于很好地做出妥协。”
DNS将在未来更加重要,首先,IPv4 地址耗尽使IPv6日渐成为主流,IPv6的地址段数远远大于IPv4的,人们几乎不太可能通过记忆地址数段来打开网页。在这种情况下,DNS的作用更加重要。但是这一切的基础是安全。
相关人士指出,目前许多DNS创新应用得以蓬勃发展。DNS新技术的发展孵化出众多的创新应用,使DNS展现出前所未有的生命力,在这些应用发展的同时,也同样督促着DNS协议本身的不断进步,使得DNS协议常用常青。
CNNIC 2012年《中国域名服务安全状况与态势分析报告》显示,当前全球域名服务在安全方面应重点关注以下几个方面的工作,以全面应对DNS的不断演进,特别是DNSSEC部署步伐的加快和IPv6普及程度的深入。
首先,服务器的操作系统和DNS软件应进行及时升级,保证对最新漏洞的及时修补。对采用BIND的DNS服务器,应关闭软件的版本应答功能,提供一定程度的安全保证。
其次,测试表明,实施DNSSEC后(以RSA/SHA1算法、密钥长度ZSK为1024、KSK为2048为例),权威区文件增大4倍,网络带宽增大为4.5倍,CPU 使用率增大7%,内存容量增大205%;递归服务器DNS应答包增大5倍,网络带宽增大5倍,CPU使用率增大20%,内存占用率增大66.7%。因此,随着新通用顶级域申请的开放,应加快对DNSSEC技术的培训和实际部署测试,以及时发现DNSSEC大规模部署之后密钥更新和数据加密操作中存在的故障。
图2 顶级域名分类
第三,IPv6成为下一代互联网的基本特征,DNS系统对于IPv6资源记录和过渡环境的全面支持需要进一步完善。
第四,对于大数据包的支持不仅能使DNS平滑支持DNSSEC和IPv6,也为DNS以后的演进奠定基础,这不仅需要协议层面的功能支撑,而且需要整个网络环境对于大数据包的传输支持。
第五,DNS已经成为互联网恶意攻击的主要对象之一,因此,在服务架构方面增强DNS抗高强度DoS攻击能力不仅是提高DNS 权威服务体系生存性的有效方法,还能够为物联网、CDN等需要大规模、高性能DNS解析支撑的新型应用环境提供基本支持。
互联网的发展告诉我们,设计的成功推动了技术的革新,而技术的进步也推动了设计的成功,有一条忠告是,任何成功的系统,当它变大的时候需求就会变化,系统也要相应变化,所以如果想取得成功要遵照这个循环,也就是成功、规模扩大、发现问题、解决问题。然后才能迈上新台阶。
在3月份欧洲反垃圾邮件组织Spamhaus宣称遭受300G流量以上 DDoS攻击后不久,4月在高校也发生了一起针对DNS服务器的同种攻击事件。DNS安全对校园网来说同样值得警钟长鸣。
相关人士表示,目前校园网内的DNS安全攻击主要有:DDoS攻击、缓存中毒等。
最近几年,DNS被用作DDoS攻击的事件屡见不鲜。上海交通大学邹福泰分析认为,其原因有:1. DNS包不受防火墙限制并且具有连续高速发包的优势。2.广泛存在的开放递归服务器,成为天然的好资源。Open DNS Resolver Project已统计了近3000万的开放递归服务器,并在持续增加中。3.EDNS0的支持越来越普遍,使得DNS攻击具有放大效应。如一个70字节左右的请求包可达到数K字节的攻击包。“可以预见,如果我们不加防范,这种利用DNS的放大攻击事件将会越来越严重。”
邹福泰表示,针对攻击放大的原理,可以限制EDNS0。但这有一定的负面影响,因为IPv6以及DNSSEC需要EDNS0,否则对于任何大于512解析响应包都转为TCP传输会对DNS服务器带来较大的影响。因此,比较好的安全实践是限定可请求解析的IP地址,不在限定IP范围内的请求都拒绝。在目前主流的DNS服务器做这种安全配置都是很容易的。
在DDoS攻击中,有一些通过路由器来进行。郑州大学张子蛟介绍说,目前一般高校都是一个宿舍分配一个IP地址,宿舍里几个学生通过路由器上网。但共用路由器会带来新的安全问题。有的路由器用户名和密码都是admin,而且不会提示修改用户名及密码。这样很容易让攻击趁虚而入。一般情况下,学校DNS服务器一秒钟的用户请求数为数千次,但在有僵尸网络的情况下,一秒钟会有数万次的用户请求。而且,成为僵尸的机器会不断影响网内的其他机器,使僵尸机器大范围扩散。
针对此,郑州大学的解决方式是,只让校内用户使用学校所提供的DNS服务器,将DDoS攻击降低到一个较小的范围。
在目前DNS安全现状下,必须实施可行的安全策略。张子蛟表示,可通过设置DNS网关的办法解决此问题,其最大特点是,DNS协议做不到的事,DNS体系难以做到的事,可以由DNS网关实现。在个性化需求和DNS规范之间进行妥协。只要保证DNS网关与其他DNS服务器和客户端的接口符合DNS协议和标准即可。
另外,值得关注的一点变化是,DNS服务器成为越来越重要的安全防护关卡。尤其是目前各大网站为了达到一个良好的负载均衡效果,几乎都是通过DNS别名实现域名的分布式服务,不支持对IP地址的直接访问,这意味着未来DNS的安全将更加重要。校园网作为一张连接了千万人的大网,连接了校园与校外,其涵盖的不安全因素也多种多样。这些安全隐患可为攻击者利用,因此,对DNS服务器管理人员来说,应当加强DNS安全配置,以减小安全风险,提升校园网DNS的安全感。