DNS(Domain Name System,域名解析系统)的一些漏洞细节在Black Hat 2008大会发布之前已经泄露,让本身就不够安全的互联网更增添了恐慌和猜测。
正是基于目前互联网上曝出的DNS漏洞问题,ICANN(国际域名与IP地址管理机构)迫不得已在最近批准了一项符合公众利益的重要决定——.org域名将率先转移为使用DNS安全扩展(DNSSEC)协议的顶级域名。开发周期长达11年的DNSSEC协议,其创建目的就是为了解决原DNS协议中的漏洞问题,使之不再容易遭受攻击。
互联网的核心漏洞
DNS服务在互联网中扮演着极为重要的角色。简单地说,DNS就是互联网的核心,它作为可以将域名和IP地址相互映射的一个分布式数据库,能够使用户方便地访问互联网,而不用去记住能被机器直接读取的IP数串。比如,用户只需要在浏览器中输入www.abc.com,而不需要记住长长的IP地址。不只浏览网页需要DNS,E-mail和SSL证书同样需要DNS。
DNS的安全漏洞可能会导致“钓鱼”诈骗攻击。诈骗分子可以把人们引诱到假冒的银行和信用卡公司等商业网页,欺骗用户泄漏自己的账户号码、口令和其他信息。黑客还能利用这个安全漏洞把用户引导到其想让用户访问的网页,无论用户在网络浏览器上输入什么地址。
正因如此,DNS就像一块磁铁,吸引着那些试图对某个网站进行破坏性攻击的黑客。一旦DNS受到威胁,他们就可以随意改变互联网信息的流动方向,可以让一个合法的网站瞬间变成黑客手中的傀儡,对用户进行金融欺诈。
甚至有业内人士担忧地说:“该漏洞的危害性不容忽视,它涉及到整个互联网域名框架如何运行的问题。如果不及时修复这一漏洞,虽然互联网仍将存在,但那已不再是你想要的互联网了——届时,控制权将掌握在黑客手中。”
DNS自身的缺陷最早被发现于1990年,但一直没有相应的解决方法。而最新的“Cache投毒”方法则据称可以有效伪造DNS信息,利用DNS缓存服务器来达到劫持网站的目的。
虽然获取交易ID猜测和转介记录这两种DNS漏洞早已被业界熟知,尽管获取交易ID的可能性在1/65535,但仍然给攻击者很大的几率让攻击成为可能。转介记录的安全问题与DNS服务器的性能也息息相关,比如某个站点的主域不仅仅有abc.com的IP地址,而且还包括一些额外信息,因此只要攻击者在所谓的abc.com站点上拥有DNS服务器,就可以对请求做出响应。
这两种漏洞在很早以前就得到了解决,而且已经被网络运营商竭力修补。他们的解决方案就是抛弃任何与请求地址不相关的一切信息,比如输入搜狐的DNS地址http://61.135.179.166时,并不会访问搜狐的主页,而是出现报错页面,在策略上已经形成了范围保护。
Dan Kaminsky,曾在思科工作,现在就职于IOActive网络安全公司。10年来,他9次站在Black Hat大会上发言。现年29岁的Dan Kaminsky自称为DNS Geek(DNS极客),在今年年初时曾发现了DNS系统的一个严重漏洞,为了不让互联网遭受重创,他一直不肯透露漏洞细节。
还包括一些额外信息,因此只要攻击者在所谓的abc.com站点上拥有DNS服务器,就可以对请求做出响应。
这两种漏洞在很早以前就得到了解决,而且已经被网络运营商竭力修补。他们的解决方案就是抛弃任何与请求地址不相关的一切信息,比如输入搜狐的DNS地址http://61.135.179.166时,并不会访问搜狐的主页,而是出现报错页面,在策略上已经形成了范围保护。
为DNS打补丁
那么,Dan Kaminsky的新发现何以让安全业内人士恐慌呢?在2008年的Black Hat大会上,资深安全专家Dan Kaminsky向公众展示了DNS更为脆弱的一面。新发现的DNS漏洞引人注意之处就在于,它将交易ID猜测和转介记录以一种新方式进行了结合。当服务器提出DNS请求时,它使用一个独特的交易ID来确定请求。这个特殊的交易ID使服务器可以验证响应,并且确保它们来自正确的搜索请求。
Dan Kaminsky表示:“这基本上就是黑客和合法服务器之间的一场竞赛,攻击者可以发送100个错误的响应,那么,1/65535的机率就可以提高到一个更有利的水平——1/655。”
幸运的是,Dan Kaminsky在过去几个月中,一直孜孜不倦地试图说服DNS服务器运营商,并在运营商的圈子中尽力传播这一消息。Dan Kaminsky说,他向运营商建议随机选择使用DNS源端口,这样可以消除现有DNS源端口的可预见性,并且用随机选择技术替代该性质。现在,攻击者不仅仅需要猜测正确的交易ID,也需要猜测正确的充满答复的UDP端口。这将会带来一个更难于操作的成功率——1/163840000,使该攻击变得无效。
为了测试服务器中的漏洞,Dan Kaminsky还提供了一种简易的DNS检验工具(可以访问http://www.doxpara.com,用户可以检查各自的电脑是否存在该DNS漏洞),发送大量查询到DNS检验服务器,然后对查询进行分析。据统计,世界上80%以上的DNS服务器都已经经过修补了,包括许多主要供应商使用的服务器。
一些大型ISP,诸如澳洲电信、Optus(新加坡电信旗下子公司)、Internode(澳大利亚宽带运营商)和iiNet(澳大利亚的互联网服务提供商)都表示,已经对DNS服务器安装了补丁。不过,还是有消息人士指出,尽管众多安全机构再三叮嘱要及时修复该漏洞,但是还是有不少DNS管理员并没有真正修复这一漏洞。
iiNet网络工程师Mark Newton 说,由于那些小的ISP需要做大量工作来保障DNS服务器的正常运行,因而他们在修补DNS漏洞方面可能会比较滞后。另外,他们为了降低成本,还缺乏独立分隔开的DNS服务器,所有的数据运行都整合在一台服务器当中,更容易遭受巨大风险。
拯救受困的DNS
虽然一些企业已经修补了其DNS服务器,但这并没有结束,仍然有很多工作需要完成。当用户在企业基础结构的使用范围内进行操作时,用户是受到保护的。但是,这并不是用户惟一访问互联网的途径,用户还可能会出现在不同的商业ISP、酒店、咖啡馆、飞机场、火车站等具备Wi-Fi的场所,通过他们提供的DNS服务,访问互联网,同样存在遭受DNS攻击的可能。
Dan Kaminsky建议,目前看上去用户还处于一种不设防的状态,最好的策略是确保员工使用VPN连接返回到企业基础设施,确保这种联网方式不使用分离的信道,同时保证用户通过VPN获得DNS的正确配置,这样可以确保远程用户可以使用他们的企业DNS服务器,而不是依赖访问站点提供的那些服务器。
Dan Kaminsky揭露了DNS新漏洞,DNS服务器的缓存会被随意修改,即便是在防火墙后的主机也不能幸免,因此在更彻底的解决方案出台以前需要一些临时措施来修补由此造成的各类Bug。著名的信息安全博客Chaos提供了一些解决方案:
1.针对终端桌面用户,最好的办法是等待公司或ISP的工作人员修正问题,通过安装适当的补丁,消除DNS的这两种漏洞。
2.对于FreeBSD 用户,减轻这类问题影响的办法是在/etc/rc.conf中加入named_enable="YES",执行/etc/rc.d/named restart并在/etc/resolv.conf中将127.0.0.1配置为域名服务器。这样一来,黑客对缓存服务器的单点攻击,就变成了对所有桌面系统的攻击行为,从而大大提高黑客的攻击成本。但缺点是,这样做意味着无法有效利用上游DNS的缓存。
3.如果是缓存DNS服务器的管理员,那么除了需要打补丁之外(如果你的系统中存在这个漏洞),还需要考虑部署DNSSEC。DNS协议的漏洞通过随机化查询端口和TXID只能部分缓解,而DNSSEC才是解决问题的根本。
4.如果是权威DNS服务器的管理员,那么事实上什么都做不了,因为缓存DNS服务器并不受DNS服务器管理员控制。唯一可以做的事情就只剩下为自己的权威域名配置DNSSEC了。遗憾的是,目前并不是所有的顶级域名以及域名注册服务提供商都支持DNSSEC。