本栏目责任编辑:冯蕾网络通讯及安全Computer Knowledge and Technology 电脑知识
与技术第5卷第11期(2009年4月)基于DNS 攻击的安全防范策略研究
刘冰,胡风华
(河南师范大学计算机与信息技术学院,河南新乡453007)
摘要:DNS 是目前大部分网络应用的基础,对它的攻击将影响整个Internet 的正常运转。DNS 欺骗攻击是攻击者常用的手法,它具有隐蔽性强、打击面广、攻击效果明显的特点,但是目前对这种攻击还没有好的防范策略。该文分析了DNS 协议的工作原理,讨论了DNS 协议在Internet 中欺骗的实现,最后提出了一些检测和防范的措施。
关键词:DNS ;DNS 欺骗;攻击检测;防范措施
中图分类号:TP393文献标识码:A 文章编号:1009-3044(2009)11-2824-02
The Study of Security Defending Policies Bad on DNS Attacking
LIU Bing,HU Feng-hua
(Henan Normal University College of Computer &Information Technology,Xinxiang 453007,China)addressing
Abstract:DNS is a critical component of the operation of Internet applications.The Internet is greatly affected if DNS is attacked.DNS spoofing is one of the most popular attack means with the character of high dormancy and good attack effection.But so far,little is done to defend the system against this attack.This papar makes analysis of the work principle of the DNS protocols dicuss the implementation of DNS spoofing attack,in the end some means of the detection and the countermeasures are put forward.
Key words:domain name system (DNS);DNS spoofing;attack detection;countermeasures
1引言
DNS 是英文Domain Name System(域名系统)的缩写,它是一种以层次结构分布的命名系统。在如Internet 之类的TCP/IP 网络中,使用DNS 名字来定位计算机,如果在应用程序中输入DNS 名,就可以由DNS 服务器中的数据库提供包括IP 地址在内的与名称相关的信息。例如,在浏览Web 时,人们通常使用如 之类容易记忆的名称来定位计算机,但计算机直接通讯时使用的是数字地址。为了解决这一问题,可以使用DNS 来实现字符形式的名称到计算机实际的数据地址之间的映射。
域名系统是一个分布式数据库,它使本地负责控制整个分布式数据库的部分段,每一段中的数据通过客户、服务器模式在整个网络中均可存取,且通过采用复制技术和缓存技术使整个数据库在可靠运行的同时,又拥有了良好的性能,但是这种缓存技术也引起了一些安全隐患,如数据报易被拦截、ID 测和查询预测、缓冲区中毒、骗取服务器信任、易受拒绝服务攻击等等。为了有效地防御针对DNS 的各种攻击,可以加强事务安全,也可以加强域名服务器的安全,甚至可以对区数据采用数字签名技术等等。
2DNS 欺骗的定义及其原理
2.1DNS 欺骗的定义
DNS (Domain Name Server )是指域名服务器,而DNS 欺骗就是攻击者冒充域名服务器的一种欺骗行为。
2.2DNS 欺骗的原理
DNS 解析有两种方式:①interative 迭代。如果服务器查找不到对应的记录,会返回另一个可能知道结果的服务器的IP 地址给查询的发起者,以便它向新的服务器发起查询请求。②re-cursive 递归。当客户向DNS 服务器提出请求之后,此服务器就负责查询出相应记录,如果不能从该服务器本地得到解
析,由该DNS 服务器向其它DNS 服务器发出请求,直到得到查询结果或出现超时错误为止,相当于由收到递归请求的DNS 服务器来完成迭代查询中用户的工作。
兼职英语翻译例如客户要解析 查询过程如下:
1)客户查询本机缓存是否有对应记录(hosts 文件已预读到缓存中)。
2)客户向本地DNS 服务器发送递归查询 的请求。
smooth是什么意思3)本地DNS 服务器收到请求并在本地数据库中查找记录,如果找不到对应记录,则向自己的根域服务器发出迭代查询请求。4)若根域服务器无法解析 则换回管理com 域的DNS 服务器的IP 地址。
5)本地DNS 服务器向管理com 域的DNS 服务器发出迭代查询请求。
6)若授权管理com 域的DNS 服务器无法在本地数据库中找到对应记录,则返回授权管理 域的DNS 服务器的IP 地址。
7)本地DNS 服务器向管理 域的DNS 服务器发出迭代查询请求。
8)若授权管理 域的DNS 服务器在本地数据库中找到 的A 记录,则返回www.mi - 的IP 地址,否则返回超时错误信息。
收稿日期:2009-01-24
作者简介:刘冰(1987-),河南永城人,河南师范大学计算机与信息技术学院计算机科学与技术专业2006级学生,主要研究方向:计
算机科学;胡风华(1988-),河南原阳人,河南师范大学计算机与信息技术学院计算机科学与技术专业2006级学生,主要
研究方向:计算机科学。
ISSN 1009-3044Computer Knowledge and Technology 电脑知识与技术Vol.5,No.11,April 2009,pp.2824-2825,2832E-mail:info@cccc www.dnzs Tel:+86-551-569096356909642824
网络通讯及安全本栏目责任编辑:冯蕾9)本地DNS 服务器向客户返回 的IP 地址或者超时错误信息。
结合DNS 服务器工作的方式,攻击者可以冒充域名服务器,然后把查询的IP 地址设为攻击者的IP 地址,这样的话,用户上网就只能看到攻击者的主页,而不是用户想要取得的网站的主页了,这就是DNS 欺骗的基本原理。DNS 欺骗其实并不是真的“黑掉”了对方的网站,而是冒名顶替、招摇撞骗罢了。
3DNS 欺骗的实现
3.1DNS 高速缓冲存储器麻痹(DNS Cache Poisoning )
可以想象,DNS 服务器不可能将所有现存的域名或IP 地址存储在本身的存储空间里。这就是为什么DNS 服务器有一个高速缓冲存储器(cache ),它使得服务器可以存储DNS 记录一段时间。事实上,一台DNS 服务器只会记录本身所属域中的授权的主机,如果它想要知道在自身域以外主机的信息,就必须向信息持有者(另一台DNS 服务器)发送请求,同时,为了不每次都发送请求,这台DNS 服务器会将另一台DNS 服务器返回的信息又记录下来。
3.2DNS ID 欺骗(DNS ID Spoofing )
荆棘的意思
当主机X 要与主机Y 联系时需要有Y 的IP 地址。然而在绝大多数情况下,X 只有Y 的名字,这样,DNS 协议就是来解决名字到IP 地址的问题的。因此,X 就会向它所在域的DNS 服务器询问Y 的IP 地址。其间,主机X 分配一个随机数,这个数也将会出现在从DNS 服务器返回的信息里。当X 收到回复后,X 会对比两个数字,如果一致,则收到信息被视为有效。
因为DNS 协议的提出请求是依赖于UDP 的(只有在zonetransfer 时才用TCP ),所以没有SYN/ACK 号,这也就意味着发送一个伪造的包是极其简单的。
攻击者用嗅探器拦获ID ,回复构造过的包给受害主机。但即使攻击者拦截了请求,数据包还是会传去DNS 服务器,而DNS 服务器也照样会回复(除非攻击者拦截并阻止对网关的请求或实施ARP 缓存麻痹才可能在转换网络中攻击)。这就意味着攻击者必须在真DNS 服务器前回复,即为了攻击成功,攻击者必须和被攻击者在同一个LAN ,只有这样他才可以获得快速的ping 并且捕获对方的数据包。
4DNS 欺骗攻击的检测
如果受到欺骗攻击,那么客户端应该至少收到两个应答包,一个合法应答包,一个欺骗攻击包。根据这个特点就可以通过一定的方法检测这种攻击。根据检测手段的不同,将其分为被动监听检测、虚假报文探测和交叉检查查询3种:
1)被动监听检测:该检测手段是通过旁路监听的方式,捕获所有DNS 请求和应答数据包,并为其建立一个请求应答映射表。如果在一定的时间间隔内,一个请求对应两个或两个以上结果不同的应答包,则怀疑受到了DNS 欺骗攻击,因为DNS 服务器不会给出多个结果不同的应答包,即使目标域名对应多个IP 地址,DNS 服务器也会在一个DNS 应答包中返回,只是有多个应答域(An -swer Section)而已。
2)虚假报文探测:该检测手段采用主动发送探测包的手段来检测网络内是否存在DNS 欺骗攻击者。这种探测手段基于一个简单的假设:攻击者为了尽快地发出欺骗包,不会对域名服务器IP 的有效性进行验证。这样如果向一个非DNS 服务器发送请求包,正常来说不会收到任何应答,但是由于攻击者不会验证目标IP 是否是合法DNS 服务器,他会继续实施欺骗攻击,因此如果收到了应答包,则说明受到了攻击。
3)交叉检查查询:所谓交叉检查即在客户端收到DNS 应答包之后,向DNS 服务器反向查询应答包中返回的IP 地址所对应的DNS 名字,如果二者一致说明没有受到攻击,否则说明被欺骗。
以上讨论了3种DNS 欺骗攻击的检测手段,其中被动监听检测法属于被动方式,其它两种属于主动方式。被动监听检测法不会造成网络的附加流量,但它是一种消极的应对方式,无法检测潜在的攻击。虚假报文探测法需要主动发送大量探测包,会增加网络负担。另外DNS 欺骗攻击一般只欺骗特定的域
名,这样探测包中待解析域名的选择就有很大的不确定性,从而增加了探测的难度。而交叉检查查询位于二者之间,在被动检测的基础上,对收到的应答包进行主动验证,但是这种方法更多地依赖于DNS 服务器的反向查询服务,大量的DNS 服务器并没有提供这种服务。
3种检测手段各有优缺点,在实际应用中可以将三者有效地结合起来,取长补短,从而达到好的检测效果。
5DNS 欺骗防范方法
5.1DNS 服务器冗余
在网络工程的设计与数据库的维护中,为了保证整个网络和数据的稳定性和抗突发事件的能力,避免存在单点故障的危险,一般都对关键设备或数据进行“备份”,即设备在Internet 中的冗余性。借助于这种“备份”思想,我们可以在一定的程度上降低DNS 欺骗的发生。
对于每台接入Internet 的计算机来说,在具体的某一时
刻都有一台DNS 服务器为它提供域名解析服务。然而,实际
上该网络中可能存在着类似的、满足要求的其它服务器可以
haste为该计算机提供服务。如图1所示。
现有主机A 欲发送请求查询www.123,服务器a 和服
务器b 分别收到请求后,依据自身已存储的内容或是通过查
询其它服务器的方式获得与域名www.123 相对应的IP 地
址,然后返回给主机A 。
当主机A 接收到第1个REPLY (不妨假设来自于服务butthole
器A )后,暂且忽略REPLY 中信息的正确性,存储下REPLY1
中的信息并按照REPLY1中的信息来完成访问www.123 的动作。
(下转第2832页)
图1利用服务器冗余防范攻击
刘冰等:基于DNS 攻击的安全防范策略研究
2825
本栏目责任编辑:冯蕾网络通讯及安全Computer Knowledge and Technology 电脑知识与技术第5卷第11期(2009年4月)(上接第2825页)
当接收到第2个REPLY 之后,主机A 便将收到的两个REPLY 中包含的信息进行对比,如果两个REPLY 中返回的www.123 的服务器的IP 相同,而且发送这两个REPLY 报文的主机的IP 地址不同,则可以证明此台计算机未受到欺骗。否则,如果返回 的IP 地址不同或是返回的与域名 相对应的IP 地址相同,而且返回的服务器A 和B 的IP 也相同,就表明为该计算机提供服务的DNS 服务器受到攻击,此时主机A 可以采取相应的应对措施防止损失进一步扩大。如果某用户对服务质量要求很高,可以一定程度上继续增加DNS 服务器的数量,这样就可以提高对DNS 欺骗的监测力度,提高服务质量。
5.2静态MAC 绑定
DNS 欺骗是通过改变或冒充DNS 服务器的IP 地址,所以可以采用MAC 地址和IP 静态绑定来进行防范,因为每一张网卡的MAC 地址是唯一的,将DNS 服务器的MAC 地址与其IP 地址绑定,并存放在网内主机网卡的EPROM 中,当主机每次向DNS 发出请求后,便检查DNS 服务器应答中的MAC 地址是否与保存的MAC 地址一致,如果不一致,就说明该区域的DNS 服务器遭到攻击。但此方法也有一
定的缺陷,如果是局域网内部的主机,仍可以进行DNS 欺骗,因为它也保存了DNS 服务器的MAC 地址,所以此方法具有一定的局限性。
rest5.3设置数字密码鉴别
在域文件数据的传输过程中,为了防止出现意外,可以设置任务数字签名(TSIG )。在主从域名服务器中设置相同的密码和算法。要求传输通讯时予以鉴别和确认。由于有密码认证,使得主从服务器的身份难以伪造。增强了域名数据传输的可靠性。
更强有力的可靠域名服务是利用DNS 安全扩展(DNSSEC ),用数字签名的方法对查询中的数据源进行鉴别,对数据完整性进行检查。DNSSEC 的规范可参考RFC2605。由于在建立域时就要生成加密密码,并且要求上级域名也要完成相应的域密码签名,过程比较的繁琐。InterNIC 域名管理至今未采用。但是从理论上看,DNSSEC 应当是可靠的域名建立和解析方法。对防止域名欺骗等行为是有效的。
5结束语
域名系统安全DNSSEC(DNS Security)是当前网络安全领域的一个重要课题,是关系到国家利益的重大问题,本文对DNS 解析及DNS 欺骗的原理进行了阐述,分析了DNS 存在的一些安全问题,同时指出了保证DNS 安全的一些措施。
someone like you歌词DNSSEC 强大的优越性和现行DNS 的安全脆弱性一方面促使我们要抓紧全面实施DNSSEC ,另一方面我们还要不断改进DNSSEC 中存在的不足,例如简化认证机制、减少数字签名的时间等,同时需要将多种防范措施相结合才能有效解决DNS 安全问题。在不断完善的DNSSEC 技术下,DNS 安全问题将逐步得到全面的解决。
参考文献:
[1]
Eastlake,D."Domain Name System Security Extensions",RFC 2535.March 1999.[2]
everyMOCKAPETRIS P.Domain names -Concepts and Facilities,RFC 1034[S].1987.[3]
ITU-T.H.235-2000Security and Encryption for H-ries (H.323and Other H.245-bad)Multimedia Terminals[S].2000.[4]
ITU -T.X.509|ISO/IEC 9594-8-2001Information Technology –Open Systems Interconnection –The Directory:Authentication Framework[S].2001.[5]
RTP Payload for Redundant Audio Data[S].IETF RFC 2198,1997.[6]
罗杰云.DNS 协议的安全漏洞及其防范浅析[J].福建电脑,2003.[7]
孙永兴,邵庆东,李斌,等.建立安全可靠的DNS 系统[J].计算机工程,2000.[8]闫伯儒,方滨兴,李斌,王垚.DNS 欺骗攻击的检测和防范[J].计算机工程,2006.
4结束语
当前,网络中P2P 应用的数目不断增加,流量继续呈现上升的趋势,而且,分布式、加密、匿名P2P 应用越来越成为主流。在这种情况下,为了满足服务质量、网络规划、计费和审计等要求,必须对P2P 流量进行有效的识别和监测。本文所描述的几种P2P 流量识别方法,分别针对P2P 流量不同方面的特征对其进行了分析和识别。但是,随着P2P 技术的不断发展,上述识别方法还需要相应的改进。另外,在未来网络的发展过程中,应当考虑在网络体系结构设计引入这种流量识别监测机制,以便对网络中相关P2P 流量进行实时、高效的监控。同时能够根据网络的运行状况以及用户设定的处理规则对其进行智能控制,从而为网络管理人员提供一个便利的管理平台。
参考文献:
[1]Y.Zhao B,Huang L,Stribing J,et al.Taestry:A Resilient Global-Scale Overlay for Service Deployment,IEEE Journal on Selected Areas
in Communications,2004,22(1).
[2]王逸欣.P2P 流量检测技术初探[J].计算机与数字工程,2006,6:161-164.sodas
[3]刘琼.Peer-to-Peer 文件共享系统的测量研究[J].软件学报,2006,10:2131-2138.
2832