一年前,安全研究员Dan Kaminsky披露DNS存在严重漏洞曾经轰动了整个IT世界,如今已经过去了一年,黑客们仍有可能利用这个bug发起缓存中毒攻击,在无人察觉的情况下,将网络流量从一个合法的网站重定向到虚假的网站。
Kaminsky漏洞揭示了DNS自身固有的弱点,它的发现为网络供应商和ISP敲响了警钟,人们开始关注DNS这个长久以来为IP地址匹配域名的互联网基本标准,也极大的推动了DNS安全扩展协议(DNS Security Extensions,DNSSEC)的发展,DNSSEC作为附加安全机制曾经由于缺乏需求而长期不受到网络管理员的重视。
Kaminsky的发现"不仅帮助人们提高了对DNS漏洞的认识,也让人们更加重视普遍的互联网安全,让我们看到之前的协议在安全方面确实存在缺陷,"美国国家标准与技术协会计算机科学家与DNS安全专家Scott Rose说。
"从前DNS漏洞和有关DNSSEC部署的问题总是在社群中讨论来讨论去,但最终反而是从外部得到了最大的推动力,"这要感谢Kaminsky,Rose说。"他揭示了攻击DNS会发生什么问题,不仅是浏览器的重定向,还包括转换电子邮件。还有Kaminsky描述的所有其他攻击都把DNS的问题推到了台面上。"
专家说,由于Kaminsky的发现,在过去12个月里,为了加强DNS安全所做的工作已经超过了前十年的总和。然而,如今的DNS在面对缓存中毒攻击时,仍然和往常一样脆弱。 Kaminsky漏洞"是互联网的大问题",Secure64首席运营官Joe Gersch说,他的公司销售DNS服务器软件和迁移到DNSSEC的自动化工具。Gersch是去年夏天Kaminsky在黑帽大会作报告的现场听众之一,当时在Kaminsky详述DNS缓存中毒威胁时,现场挤得水泄不通。–51CTO编者按,DNS缓存中毒攻击防不胜防,其影响之大很受大家关注。
"Kaminsky花了20分钟解释它如何工作,在随后的一个半小时里,他一个接一个的展示被感染的案例,"Gersch说。"他展示了DNS一旦被感染,一切就都被黑客控制了。你甚至不知道袭击是怎么发生的,灾难就突然来临了。" Gersch说Kaminsky让人们认识到DNS内在的不安全性。"这比任何宣传都更有效,人们马上就开始打补丁程序,然后进行……DNSSEC部署,"Gersch说。自那时起,大多数–尽管不是全部–网络工程师都已经针对Kaminsky发现的漏洞修补了他们的DNS服务器。
然而补丁只是Kaminsky建议用来短期修补漏洞用的。阻止缓存中毒,对付Kaminsky式攻击的长期办法是DNSSEC,允许网站使用数字签名和公共密钥加密来验证域名和相应的IP地址。现在的问题是,DNSSEC要在互联网达到充分部署才能发挥最佳作用,也就是说从DNS层次的最顶端包括顶级域名如.com和.net等,一直到最底端的个人域名都要部署上DNSSEC。而在此之前,网站仍然容易受到Kaminsky式攻击。
Kaminsky漏洞"是部署DNSSEC的最主要催化剂",NeuStar高级副总裁Rodney Joffe说。而什么时候才能达到充分部署呢?Joffe认为还需要一年或更长的时间。与此同时,ISP和网站运营商们却看到了越来越多的缓存中毒攻击,尽管其中很少被公开披露。7月17日爱尔兰的ISP Eircom报告说它遭受了缓存中毒攻击,导致两个主要服务中断,访问Facebook等网站的客户被重定向到虚假的网站。
今年4月,巴西银行Bradesco也证实它的一些顾客被重定向到恶意网站,试图窃取他们的密码,原因是银行的ISP Net Virtua遭受了缓存中毒攻击。 "我们看到缓存中毒攻击事件正变得越来越多,"Joffe说。"一年前,这还是一个理论上的威胁。而今天,它正在爆发。"缓存中毒攻击的危险实际上比一年前还要大得多,因为Kaminsky漏洞在黑客届已经变的众所周知。
而作为最终的解决办法,DNSSEC部署在过去的一年也取得了重大进展。美国政府确认到2009年底将在其.gov域名完成DNSSEC部署,而且正在采取步骤以确保DNS根服务器也能在同一时间完成部署。.org域名已率先使用了DNSSEC,另外瑞典、巴西、波多黎各、保加利亚和捷克等国的顶级域名也已经开始提供支持。最重要的是VeriSign为.com和.net部署DNSSEC的计划,它表示将在2011年完成。
"今年无疑将成为DNSSEC之年,"Joffe说。"为此我们已经努力了十三年,但这一年DNSSEC将迎来真正的飞跃。" 然而DNSSEC仍然存在一些技术故障,专家警告说当域名切换到新的安全协议时网站可能会无法使用,因为一些配置问题。"我们已经知道的最大的操作障碍就是一些小型家庭路由器以及一些入侵检测系统和防火墙的默认配置和DNSSEC配合不好,"Rose说,"用户必须重新配置这些系统来处理DNSSEC密钥和签名。"–51CTO编者按:DNS 客户端并不在自身实施DNS 授权,而是等待服务器返回授权结果。