攻击者进行特定的操控,就有可能将缓存中的授权记录长期保持,使得一个被删除的域名持续保持可解析的状态,成为所谓的“鬼”域名。鬼域名的存在,如达摩克利斯之剑一样悬于互联网之上。
假设攻击者注册了一个域名,比如phishing.com,用来进行网络钓鱼攻击,但很快被人发现并通知域名注册商把这个域名删掉。在正常情况下,一段时间之后,phishing.com这个域名应该会在互联网上消失,无法解析。然而,攻击者却可以通过操作域名服务器,使得这个域名保持可解析状态,“钓鱼”依然进行着!
我们在研究过程中发现现有域名系统(Domain Name System,DNS)的标准确实可能导致这一问题,其原因在于DNS授权机制的逻辑不完备,我们将这一现象称为鬼域名(Ghost Domain Name)问题。这一问题的相关论文发表在2012年2月于美国加州圣地亚哥举行的第19届网络与分布式系统安全(NDSS)会议,并引起业界的关注和积极响应。在本文中,我们简单介绍发现这一问题的背景、基本原理以及可能的解决方法。
互联网重要的基础设施——DNS
DNS将人们可以理解的名字,如网址和电子邮箱中的域名,翻译成计算机可寻址的IP地址,是互联网最重要的基础设施之一。在DNS系统中,域名服务器通过从上到下的授权形成一个倒置的树状结构。当用户通过一个域名如www.example.com来访问一个网站时,用户的计算机通常询问一个由本地ISP所设置的递归解析服务器(Recursive Resolver)来获得对应的IP地址,域名解析过程见图1。递归解析服务器通过一个迭代查询的过程来完成域名的解析。
图1 域名解析过程
首先通过询问预先配置的根域名服务器(Root Server)来获得相关的.com顶级域名服务器(TLD Server)的地址,再得到Example.com的权威域名服务器(Authoritative Server)地址,最后从权威服务器得到最终结果。为提高后续查询的效率,递归解析服务器通常在查询过程中将中间结果缓存起来,所以递归解析服务器也被称为缓存服务器(Caching Server)。
保证DNS的健壮运行主要体现在两个方面:一是性能,即保证域名解析过程的速度;二是安全,即保证域名和IP地址对应关系的正确性。性能是DNS设计之初着重考虑的因素。其整体架构的高度可扩展性和简洁的查询协议使得DNS从1980年以来的20多年中,面对持续指数级增长的网络用户和应用,在初始设计几乎没有任何变化的情况下仍然能够高效稳定运行,但是安全性却始终是DNS的弱点。与很多其他互联网协议和系统一样,DNS的初始设计场景为可信环境,并没有过多考虑安全问题。互联网在发展过程中出现多种针对DNS的攻击。早期Steve Bellovin所发现的DNS欺骗攻击,以及2008年Dan Kaminsky发现的一种高效的缓存污染攻击(DNS Cache Poisoning)都曾震动整个网络安全学术界和工程界。
删除恶意域名应对攻击
对于普通用户来说,注册域名通常需要选择一个域名注册商(Domain Registrar),由这个注册商在上级域名服务器(比如顶级域TLD)中添加相应的授权记录(delegation data)来完成注册。在用户注册期限过期后,相应注册机构会删除授权记录,并对域名进行回收。
近几年来攻击者利用域名解析相对静态IP地址的灵活性,注册大量的域名用于各种攻击活动,比较典型的有网络钓鱼(Phishing)以及僵尸网络的命令与控制(Botnet Commandand Control)等,及时发现并强制删除恶意域名成为对付相应攻击最为有效的手段之一。微软在2010年联合全球范围内多个域名注册机构同时删除200多个恶意域名,成功关停大规模垃圾邮件僵尸网络Waledac,在2011年又以同样的方式成功关停垃圾邮件僵尸网络Rustock。
特别声明:本站注明稿件来源为其他媒体的文/图等稿件均为转载稿,本站转载出于非商业性的教育和科研之目的,并不意味着赞同其观点或证实其内容的真实性。如转载稿涉及版权等问题,请作者在两周内速来电或来函联系。