DNS协议分析与安全检测(1)

DNS 协议分析与安全检测吴海涛,郭丽红(南京工程学院 通信工程学院, 江苏 南京 211167)摘 要:DNS 是Internet 上解决网上机器命名的一种系统。在Internet 上,当一台主机

DNS 协议分析与安全检测

吴海涛,郭丽红

(南京工程学院 通信工程学院, 江苏 南京 211167)

摘 要:DNS 是Internet 上解决网上机器命名的一种系统。在Internet 上,当一台主机要访问另外一台主机时,必须首先获知其地址,这就是DNS 所要解决的问题。在对DNS 的报文格式详细分析的基础上,研究了DNS 服务及应用所面临的安全问题及存在的漏洞,最后提出了一些防范措施和相关建议。关键词: 域名系统;资源记录;DNS安全

The Protocol Analysis and Security Detection of DNS

WU Hai-tao GUO Li-hong

(School of Communications Engineering, Nanjing Institute of Technology, Nanjing,jiangsu 211167, China)

Abstract: DNS is a kind of system that solves the machine’s name in internet. When a machine wants to visite another machine in internet ,it must know another machine’s address at first .this article analyses the DNS’s message format in detail.In this basis,researches the security and loophole of DNS,at last,gives some defanding means and corresponding advice.Key words: domain name system; resource record;DNS Security

域名系统(DN S)是一种用于T C P /I P 的分布式数据库,它是多种Internet 应用的基础,如E-mail、www、t e l n e t 等,DN S 的应用极为广泛而且非常重要。近几年来,DNS遭受到了一系列的攻击,导致Internet 的通信受到严重影响。在某些严重的情况下导致数据被骗取,造成一些公司、机构等遭受巨大损失。因此,众多业内人士开始关注D N S 的安全问题, 并且D N S 的安全已经成为互联网安全研究的焦点。本文在分析D N S 报文格式基础上,着重讨论了D N S 的安全问题,并且在综合运用多种网络安全技术的基础上提出了一系列的安全解决方案。

资源记录是与名字相关的一些数据。从概念上说,每个结点和域名空间树的叶子结点都有一定的信息,而查询是要查询出一些与之相关的特定信息。

(2) 域名服务器是服务器程序,它保留域名树结构和相应的信息,它可以缓冲各种数据,保存域名树中的任何部分,但是通常它保存域名空间的一个子集,如果需要查询其他信息, 可以通过指向其他域名服务器的地址寻找。这个域名服务器是这一部分的认证权威,所有的认证信息组成一个单元称为区,这些区可以分布于不同的服务器上以保证数据的冗余。

(3) resolver 是向域名服务器提出查询请求并将结果返回给客户的程序,它必须可以访问至少一个域名服务器,并将结果直接返回给用户或向别的域名服务器进行查询。

1 DNS基本信息

1.1 DNS的概念

所谓DNS,是Domain Name System 的英文缩写,又称域名系统,它是一种组织成层次结构的计算机和网络服务的命名系统。DN S 命名用于T C P /I P 网络,如I n t e r n e t,用来通过用户友好的名称(比如"www.enanshan.com")代替难记的IP 地址(比如"202.101.139.188"),以定位计算机和服务。

[1]

1.3 DNS服务器的工作原理

客户机将域名查询请求发送到本地D N S 服务器,D N S 服务器将在本地数据库中查找客户机要求的映射;如果本地D N S 服务器不能在本地找到客户机查询的信息,则将客户机请求发送到根域名DNS 服务器。根域名DNS 服务器负责解析客户机请求的根域部分,它将包含下一级域名信息的D N S 服务器地址返回给客户机的D N S 服务器;客户机的D N S 服务器利用根域名服务器解析的地址

1.2 DNS的组成

(1) 域名空间和资源记录,域名空间是一种树状结构,

,

访问下一级DNS 服务器,得到维护再下一级域名的DNS 服务器地址;按照上述递归方法逐级接近查找目标,最后在维护有目标域名的DNS 服务器上找到相应的IP 地址信息;客户机的本地D N S 服务器将递归查询结果返回客户机;客户机利用从本地DNS 服务器查询得到的IP 地址访问目标主机。

2 DNS报文分析

D N S 定义了两种报文[2],一种为查询报文;另一种是对查询报文的响应,称为响应报文。

2.1 查询报文格式

查询报文格式如图1所示。

图1 DNS查询报文格式

2.2 响应报文格式

响应报文格式如图2所示。

图2 DNS响应报文格式

2.3报文细节分析

无论是查询报文还是响应报文,都有12个字节的头和查询问题。

(1)标识:占两个字节,同一个问题的查询和响应标识必须相同。

(2)标志:占两个字节,表示如图3所示。

图3 DNS报文标志

Q R:这一位是查询和响应报文的标志,0表示查询报文,1表示响应报文;Opcode:操作码占4 bit, 值为

万方数据

0表示标准查询,值为1表示反向查询,值为2表示服务器状态请求。标准查询是给出主机名查询其对应的I P;反向查询是给出IP 查询其对应的主机名;AA:占1 bit,表示该域名服务器是否是授权给该域的,1表示授权,0表示未授权;TC:占1 b i t,表示是否可截断。当使用UDP 时,若此位为1,表示当响应报文的总长度超过512字节时,只返回前512个字节,是可截断的;RD:占1 b i t,表示是否期望递归。为1时表示查询方式是递归查询;如果该位为0,且被请求的域名服务器没有一个授权回答,则查询方式为迭代查询;RA:占1 bit,表示是否可用递归。如果域名服务器支持递归查询,则在响应中将该比特设置为1,大多数名字服务器都提供递归查询,除了某些根服务器;随后的3 b i t 字段必须为0;Rc o d e:结果代码占4 b i t,值为0表明没有差错,值为1表明报文格式出错,值为2表明服务器查询失败,值为3表明名字出错。

(3) 问题数、回答资源记录数、授权资源记录数、附

加资源记录数分别描述各自的记录数目。对于查询报文,问题数通常是1,而其他三项则均为0。响应报文随问题不同而变化。

(4)查询问题:由查询名、查询类型、查询类三部分组成。查询名是要查找的名字,它是一个或多个标识符的序列,它的存储方法是先存储每个子域的字符数,再存储相应的字符,依次存储,最后填写一个0字节;查询类型占两个字节,常用的有(A,1)代表I P 地址、(NS,2)代表名字服务器、(PT R,12)代表指针记录;查询类占两个字节,通常为(IN,1),指互联网地址。

(5)资源记录:只出现在响应报文中,它们有一种统一的格式如图4所示。

图4 资源记录格式

2.4 DNS报文解析

下面分析一个正向解析

[3,4]的查询和响应报文:即已

知主机名

www.safepro.com.cn 查询其对应的IP 值。查询报文(用嗅探器抓的包),如图5所示。

,

图5 DNS查询报文实例

DNS 查询报文

header: Opcode=standard query, query question: qname= www.safepro.com.cn,qtype= A, qclass=IN

响应报文:

header: Opcode=standard query, responsequestion: qname= www.safepro.com.cn, qtype= A,qclass=IN

answer: www.safepro.com.cn 8093 IN A 211.154.170.7

authority1:safepro.com.cn 23343 IN NS ns1.cendata.net

authority2:safepro.com.cn 23343 IN NS ns2.cendata.net

additional1:ns1.cendata.net 98296 A 211.154.160.4

a d d i t o n a l2:ns2. c e n d a t a. n e t 159916 A 211.154.168.4

响应报文中的回答资源记录列出了查询结果,即www.safepro.com.cn 对应的IP 为211.154.170.7;授权资源记录列出了该主机名所属域由ns1.cendata.net 和ns2.cendata.net 这两个域名服务器来进行管理;附加资源记录列出了这两个域名服务器所对应的I P 地址,也就说执行主机名www.safepro.com.cn 查询的可以是这两个域名服务器之一。

3 DNS安全问题及解决方案

3.1 DNS安全问题

D N S 安全一直是人们关注的焦点。但是直到今天,大部分的D N S 服务器还没有采取足够的措施来防止这一类的D N S 攻击,恶意的攻击者可以很容易地通过D N S 欺骗取得用户的账号密码、个人信息、商务机密等等资料。

D N S 系统目前遭受到的最主要的攻击手段,主要包括拒绝服务攻击、误导目的地址和DNS 缓存中毒。

(1)拒绝服务攻击(Denial of Service)

D N S 采用层次化的树状结构,由树叶走向树根就可以形成一个全资格域名。每个全资格域名都是惟一的。D N S 的网络拓扑结构如图6所示:DN S 服务器A2为网络节点a、b、c、d工作,如果A2不能正常工作,则其

所辖的所有节点都无法通过域名连接到网络,A2成为该子网的瓶颈,存在单点故障风险问题。并且A2不能正常工作时,其所管辖的子域都无法解析域名,仅能通过难以记忆的I P 地址访问网络,对多数网络用户而言,无法接入网络,甚至还会被利用来对其他主机进行反弹式攻击。

图6 DNS网络拓扑结构图

(2)误导目的地址

当用户需要取得D N S 服务时,被攻击者提供了一条虚假D N S 响应,让解析器认为是来自本地D N S 名字服务器的正确响应,于是用户得到的I P 地址是一个伪造的地址。接着,用户在客户端输入账号密码,攻击者轻易地得到了该用户的账号密码。这类攻击的发生,主要在于目前的路由器没有能力禁止错误的源地址,因此,只要攻击者能够路由到你的主机,他就能够伪造一个看起来像是从一个值得信赖的名字服务器返回的响应报文。在上述例子中,攻击者只需要采用D o S 攻击名字服务器,使得名字服务器不能回应给客户的请求,而攻击者这时候伪造响应报文就很容易得手了。

(3)DNS缓存中毒(DNS Cache Poisoning)

D N S 为了提高查询的效率, 普遍采用了高速缓存技术, 这项技术能够带来查询的高效率,但是也给攻击者提供了一个良好的场所。具体过程:在D N S 的缓存数据还没有过期之前, 如果D N S 的缓存区中已存在的记录一旦被客户查询,DNS 服务器将把缓存区中的记录直接返回给客户。DNS缓存区中毒就是利用了

DNS

的缓存机制,在缓存区中存入错误的数据使其被其他查询客户所获得。在缓存数据的生存期内,缓存区中毒的机器又可能将错误的

,

数据传播出去,导致更多的服务器缓存中毒。如果减少缓存数据的生存期,可以减少缓存中毒的影响范围,但过于频繁的缓存数据更新将大大增加服务器的负担。

3.2 DNS安全解决方案

3.2.1 采用DNSSEC 技术保护DNS 系统

针对DNS 的安全特点,IETF于1999年3月发布了DNSSEC,它是一个DNS 协议的扩展。DNSSEC并不是针对DNS 协议本身的补丁,而是一个DNS 的安全协议[5]。从对D N S 几种攻击方法的分析中知道,DN S 系统之所以容易受到欺骗的一个最根本原因就是D N S 服务器或者解析器无法分辨出D N S 报文来源的真伪以及无法分辨出DNS 报文是否被修改过。所以对于DNS 系统,最主要的是需要保护数据包的完整性和数据源的合法性。DNSSEC的根本目标就是保护D N S 查询报文的数据完整性和数据源的正确性。它主要采用的机制是非对称加密机制和数字签名机制,DN S S E C 采用非对称加密算法中的公钥加密机制以及基于Hash 函数的数字签名技术,在某些特殊情况下,DN S S E C 也采用共享密钥和M A C 机制来保证消息完整性。

3.2.2 利用主机的cookie 缓存功能

对一台主机而言,利用浏览器本身的缓存能力,可以做到保存经常访问的网站的c o o k i e 记录, 当下次访问时即可快速访问, 仅当与W e b 站点建立初次连接时需要进行DNS 查询。所以,即使DNS 服务器暂时不能提供服务,主机也可以通过c o o k i e 记录访问到经常访问的网站, 并通过Web 站点的超链接访问Web 站点内容。扩展主机的cookie 缓存功能, 即相当于为DNS 服务器提供了一条旁路。此方法采用弱化D N S 功能的策略,将D N S 所承担的单点故障风险分散到网络的各个层次,包括主机、其他服务器、路由器等。它主要是利用主机的c o o k i e 缓存功能, 采用网状延伸的办法将D N S 体系单点故障的风险大大降低, 改变了原有的主机只能通过查询固定D N S 服务器访问Internet 的单路径结构, 增加了旁路, 同时减小了DNS 服务器的负荷。

3.2.3 通过D N S 服务器本身的配置以及与防火墙等的合作来加强DNS 的安全性

(1)包过滤防护[6]

:限制访问D N S 服务器的网络数据包的类型,实施包过滤的依据主要是端口、IP、流量。端口过滤指仅允许对53端口的访问;IP 地址限制指只允许具有合法I P 地址的用户访问该I D S 服务器;流量限制指

万方数据

对每个IP 地址的DNS 请求加以流量限制,正常用户数据包的长度应不大于512字节。

(2)防火墙保护:该技术把D N S 系统划分为内部和外部两部分,外部D N S 负责对外的正常解析工作;内部D N S 系统则专门负责解析内部网络的主机。仅当内部主机要查询Internet 上的域名,而内部DNS 上没有缓存记录时,内部DNS 才将查询任务转发到外部DNS 服务器上,由外部D N S 服务器完成查询任务,以保护内部服务器免受攻击,同时减少了信息泄漏。

(3)网络拓扑限制:为了减少单点故障的威胁,从网

络拓扑结构角度应避免将D N S 服务器置于无旁路的环境下,不应将所有的D N S 服务器置于同一子网、同一租用链路、同一路由器、同一自治域甚至同一物理位置。

4 结束语

本文在介绍DNS 的基本概念、工作原理、DNS协议的工作流程基础上,研究了D N S 服务及应用所面临的安全问题及存在的漏洞,同时给出了一些保护D N S 安全的措施。在DNS 应用极为广泛的今天有一定的现实意义。

参考文献:

[1]Mockapetris P. Domain names-concepts and facilities. STD13,RFC 1034,November 1987.

[2]Mockapetris.P. Domain names-implementation and specification. STD13,RFC 1035,November 1987.

[3] Eastlake D,Kaufman C. Domain name system security extensions. RFC 2535,March 1999.

[4]Douglas E. Comer. TCP/IP网络互联技术(卷1)[M]. 北京:清华大学出版社, 2002.

[5]Rob Scrimger 等著. TCP/IP宝典[M]. 北京:电子工业出版社, 2002.

[6]钟乐海. D N S :域名系统分析与研究[J ]. 计算机科学,2002,29(8):54-56.

作者简介:吴海涛(1974-),男,硕士,讲师,研究方向:数据安全与计算机网络。收稿日期:2008-09-20

,

DNS协议分析与安全检测

作者:

作者单位:

刊名:

英文刊名:

年,卷(期):

引用次数:吴海涛, 郭丽红, WU Hai-tao, GUO Li-hong南京工程学院通信工程学院,江苏,南京,211167计算机安全NETWORK AND COMPUTER SECURITY2009,(4)0次

参考文献(6条)

1. Mockapetris P Domain names-concepts and facilities.STD13 1987

2. Mockapetris P Domain names-implementation and specification.STD13 1987

3. Eastlake D. Kaufman C Domain name system security extensions 1999

4. Douglas E Comer TCP/IP网络互联技术 2002

5. Rob Scrimger TCP/IP宝典 2002

6. 钟乐海 DNS:域名系统分析与研究[期刊论文]-计算机科学 2002(8)

相似文献(8条)

1.期刊论文 刘立杰. LIU Lijie 域名系统协议分析 -吉林农业科技学院学报2008,17(2)

DNS是Internet上解决网上机器命名的一种系统.在Internet上,当一台主机要访问另外一台主机时,必须首先获知其地址,这就是DNS所要解决的问题.本文介绍了DNS的概念、DNS的组成并对DNS的查询报文和响应报文作了详细分析,从而进一步了解DNS的工作原理.

2.期刊论文 林曼筠. Lin Manyun 域名服务器的安全保护 -网络安全技术与应用2001(1)

域名系统使用域名空间中便于人们理解和记忆的名称来代替枯燥而难以记忆的数字--IP地址来定位Internet中的资源,它所提供的名字解析服务,是目前多种Internet服务正常运转、实施的基础.本文介绍了域名系统及其工作原理,从系统设计、软件实现和系统配置等方面对其安全脆弱性进行分析,强调保护其核心设施--域名服务器安全的重要性,并在此基础上指出域名服务器的安全保护措施.

3.期刊论文 卢晓轩. 王顺晔. LU Xiaoxuan. WANG Shunye ENUM体系中NAPTR资源记录的研究 -科学技术与工程2006,6(3)

下一代网络是一个融合的网络,要实现网络的融合,网络标识和寻址技术是至关重要的.ENUM就是作为电信网和互联网的寻址技术出现的.ENUM是DDDS算法的一个具体应用,采用DNS系统中的NAPTR类型存储算法规则库.介绍了ENUM体系的功能原理,就其功能范围进行了讨论.然后分析了DDDS算法,详细阐述了NAPTR资源记录,根据定义给出了更加严格的enumservice服务分类.

4.会议论文 刘晨光. 秦华 基于P2P的下一代互联网域名系统节点管理和功能设计 2009

域名系统是Internet的基础。IPv6网络的新特性,要求基于IPv6的域名系统提供动态高效的域名服务。鉴于传统的域名系统模型使得DNS服务器容易成为网络的瓶颈和攻击目标,提出了采用P2P对等网络思想构建动态高效的IPv6 DNS域名系统,着重讨论了系统中的节点管理策略,并针对超节点选择、资源记录存储、域名注册、域名更新、域名解析等关键问题提出了解决方案。最后分析并指出了今后的研究方向。

5.期刊论文 张爱华. 郑雪峰. 靳凤荣 IPv6 协议下域名系统的扩展与实现 -微机发展2004,14(7)

为了实现对IPv6协议的支持,需要对现有IPv4协议下的域名系统进行相应的扩展,以使其能在IPv6协议下正确地进行IP地址与域名的正向或反向解析.域名系统的扩展主要包括以下两方面:一是增加了两个新的资源记录AAAA和A6来存储IPv6地址,以实现域名到IPv6地址的正向解析;二是增加了两个新域:ip6.int和ip6.arpa,以实现IPv6地址到域名的反向解析.文中以著名的域名系统软件BIND为对象,以Linux操作系统Redhat 9作为实验平台,详细介绍了基于Linux平台的域名系统对IPv6协议的扩展与实现,从而为实现IPv4到IPv6的平稳过渡打下了坚实基础.

6.期刊论文 邹臣嵩 在WINDOWS 2003 SERVER下配置DNS服务器 -科技资讯2007(11)

DNS是网络建设中首要解决的问题之一,是实现Internet应用的基础,其作用是实现域名与IP地址之间的转换.本文介绍了DNS的基本概念、应用范围,并分步说明如何在WindowsServer 2003产品中为域名系统(DNS)配置Internet访问.

7.期刊论文 郭丽楠 支持IPv6地址聚合和重编号的DNS扩展 -平原大学学报2004,21(3)

本文档定义了对域名系统的修改以支持可重编号和可聚合IPv6寻址.这些修改包括用一种加速网络重编号和修改已有查询类型定义的方式,以一种新的资源记录类型来存储IPv6地址,这些已有的查询类型返回Internet地址作为部分附加开销.

8.学位论文 杨水根 主机标识协议的移动性管理研究 2008

在传统互联网的传输控制协议/互联网协议(Transmission Control Protocol/Internet Protocol,TCP/IP)体系中,IP地址既代表节点的位置标识,又代表节点的主机标识:网络层使用IP地址作为节点在网络中的位置标识,用于路由;传输层使用IP地址作为节点的主机标识,用于建立传输层的连接。当节点由于发生移动而改变其IP地址时,传输层连接中断,需要重新建立连接。因此,传统互联网的TCP/IP协议体系不利于支持节点的移动。 @@ 解决传统互联网移动性问题的关键在于把IP地址的主机标识和位置标识进行分离。由互联网工程任务组(Internet Engineering Task Force,IETF)和互联网研究任务组(Internet Research Task Force,IRTF)联合提出的主机标识协议(Host IdentityProtocol,HIP)通过在网络层和传输层之间增加新的主机标识层,以及引入经过加密的主机标识标签作为节点的主机标识,把IP地址的双重功能分离,从而可以较好地支持移动性。本文对HIP的移动性管理机制,包括HIP的位置管理机制和切换管理机制,进行了深入的研究,取得如下研究成果: @@ 1. 设计一种支持HIP的域名系统(Domain NameSystem,DNS)资源记录,用于解析节点的域名、主机标识标签和IP地址三者之间的映射关系。在此基础上,建立一种基于DNS的HIP位置管理机制。该机制将互联网划分成多个区域网络,使用集合服务点管理每个区域网络中节点的主机标识标签和IP地址之间的映射关系,使用DNS管理节点的主机标识标签和对应集合服务点的IP地址之间的映射关系。 @@

2.提出一种基于动态层次位置管理的HIP微移动性支持机制。该机制引入网关集合服务点将区域网络划分成多个自治域,引入本地集合服务点将每个自治域划分成多个注册域,形成三层的层次体系结构,从而将节点移动时的位置更新消息限制在一定的位置管理域内。另外,节点根据自己的移动速度和会话到达速度,动态地选取注册域并计算该注册域的最佳范围。性能分析表明,当节点的移动速度大于会话到达速度时,该机制可以显著降低总的信令开销,从而较好的支持节点的微移动性。 @@ 3.针对移动节点能量受限的问题,对基于动态层次位置管理的HIP微移动性支持机制进行寻呼功能的扩展,提出支持寻呼的HIP位置管理机制。该机制将网络中的移动节点分成处于激活状态的移动节点和处于空闲状态的移动节点两类,通过减少处于空闲状态移动节点的位置注册和位置更新消息数量,降低了网络中的冗余信令,同时也节省了移动节点的能量消耗。性能分析表明,该机制可 以降低总的信令开销,并且支持大量移动节点的位置管理。@@ 4.对传统端到端的HIP机制进行扩展,引入支持HIP机制的移动路由器,并在此基础上提出一种基于HIP的子网移动性支持机制。在该机制中,移动路由器给每个移动子网节点分配一个私有IP地址,保存移动子网节点的主机标识标签及其私有IP地址之间的映射关系,并对移动子网节点和通信节点之间的数据报文进行相应的IP地址替换。当节点在移动子网内移动时,只需要在移动路由器中进行位置更新。性能分析表明,和基于移动IPv6的子网移动性支持机制相比,基于HIP的子网移动性支持机制可以显著降低总的信令开销。 @@ 5. 提出一种基于HIP和会话初始协议(Session Initiation Protocol,SIP)的跨层切换管理机制,使用通信双方的主机标识标签建立SIP会话连接,并利用HIP快速感知底层网络状况变换的能力以及HIP的位置更新机制,进行节点移动时的切换管理。性能分析表明,该机制可以降低节点移动时的切换时延、报文丢失个数以及切换阻塞率。 @@关键词:主机标识协议;移动性管理;位置管理;切换管理;寻呼

,

本文链接:http://d.g.wanfangdata.com.cn/Periodical_dzzwyjc200904008.aspx

下载时间:2010年4月21日

标签: