基于DNS服务器漏洞攻击的防范
第30卷第12期 咸 宁 学 院 学 报 Vo. l 30, N o . 12文章编号:1006-5342(2010) 12-0023-02基于DNS 服务
第30卷第12期 咸 宁 学 院 学 报 Vo. l 30, N o . 12文章编号:1006-5342(2010) 12-0023-02
基于DNS 服务器漏洞攻击的防范
厉阳春
(咸宁学院 计算机科学与技术学院, 湖北 咸宁 437000)
*
摘 要:从DN S 服务器的工作原理入手, 分析了针对DN S 服务器漏洞, 攻击者可以采取的攻击手段, 提出了相应的防范措施.
关键词:DNS ; 漏洞; 防范中图分类号:TP309. 20 引 言
在信息化社会中, 信息已成为制约社会发展、推动社会进步的关键因素之一. 计算机网络是目前信息处理的主要环境和信息传输的主要载体, 特别是互联网的普及, 给我们的信息处理方式带来了根本的变化. 但互联网的/无序、无界、匿名0三大基本特征决定了, 在这种环境下, 信息的安全越来越得不到保证, 针对信息的各种攻击行为越来越容易实施, 信息安全受到越来越多的挑战. 信息安全是一个系统问题, 而不是单一的信息本身的问题. 一般认为, 系统风险是系统脆弱性或漏洞, 以及以系统为目标的威胁的总称[1]. 而系统的脆弱性和系统本身所存在的漏洞, 是信息系统存在风险的根本原因. 一个没有漏洞的系统, 再高明的攻击者也无法侵入该系统, 但很遗憾, 现实当中这样的系统并不存在. 安全问题最多的是基于TCP /IP协议簇的互联网及其通信协议, 本文从互联网通信中必不可少的DN S 服务器的工作原理入手, 针对攻击者对DN S 服务器的各种攻击手段, 提出相应的防范措施.
1 DN S 服务器的工作原理
用户与因特网上某个主机通信时, 往往使用该主机的域名, 如enxnc . edu . cn , 但信息在实际传输时, 用的是32位的IP 地址, 如211. 85. 176. 1, 这主要是因为32的IP 地址很难记忆, 用户不愿意使用. 域名系统DN S(D o m a i n N am e Syste m ) 就是用来把便于人们使用的域名转换为实际通信用的IP 地址的[2]. DNS 被设计成为一个联机分布式数据库系统, 并采用客户服务器方式工作, 域名到IP 地址的解析是由分布在因特网上的许多域名服务器共同完成的. 因特网上的DN S 域名服务器是按照层次结构安排的, 每一个域名服务器都只对域名体系中的一部分进行管辖. 根据域名服务器所起的作用, 可以把域名服务器划分为以下四种不同的类型[2]:
(1) 根域名服务器:是最高层次的域名服务器, 也是最重要的域名服务器, 所有的根域名服务器都知道所有的顶级域名服务器的域名和IP 地址.
(2) 顶级域名服务器:负责管理在该顶级域名服务器
文献标识码:A 注册的所有二级域名.
(3) 权限域名服务器:负责一个区的域名服务器.
(4) 本地域名服务器:每一个因特网服务提供者ISP 都可以拥有一个本地域名服务器.
域名到I P 地址的解析分两种:
(1) 递归查询:用户主机向本地域名服务器的查询一般采用递归查询. 当用户主机向本地域名服务器发出查询请求, 如果本地域名服务器知道被查询的域名的IP , 则直接将该IP 发回给用户主机, 完成查询过程; 否则如果本地域名服务器不知道被查询的域名的IP 地址, 那么本地域名服务器就替代该主机向其他根域名服务器继续发出查询请求(即继续查询), 而不是让该主机自己进行下一步的查询. 因此, 递归查询返回的查询结果或者是所要查询的IP 地址, 或者是报告错误, 表示无法查询到所需的IP 地址. (2) 迭代查询:本地域名服务器向根域名服务器发出查询请求时, 一般采用迭代查询. 当根域名服务器收到本地域名服务器发出的查询请求时, 要么给出所要查询的IP 地址, 要么告诉本地域名服务器:/你下一步应当向哪一个域名服务器进行查询0, 然后让本地域名服务器进行后续的查询(而不是替本地域名服务器进行后续的查询).
为了提高DNS 查询效率, 并减轻根域名服务器的负荷和减少因特网上的DNS 查询报文数量, 在域名服务器中广泛使用了高速缓存, 用来存放最近查询过的域名以及从何处获得域名映射信息的记录.
2 针对DN S 服务器的攻击手段
目前, 攻击者对DN S 服务器的攻击主要有三种方式:地址欺骗、远程漏洞入侵、拒绝服务.
(1) DN S 服务器入侵攻击:目前DN S 协议的实现软件是开源的BI ND 服务器软件, 与其他很多软件一样, B I ND 的许多版本存在各种各样的漏洞, 攻击者可以利用这些漏洞远程入侵B I ND 服务器所在的主机, 并以管理员身份执行任意命令. 这种攻击的危害性很大, 攻击者不仅可以获得DN S 服务器上所有授权区域内的数据信息, 甚至可以直接修改授权区域内的任意数据, 为其它攻击做好准备.
:
,24咸宁学院学报 第30卷
(2) 地址欺骗攻击:攻击者首先利用BI ND 软件存在的
BIND 软件可以通过设置允许对进行递归查询的IP 地址作出限制, 如果递归查询请求来自不允许的I P 地址, 则B I ND
服务器软件将此查询以非递归查询方式对待. 在配置文件中使用a llo w -recursion 命令实现这个功能, 例如:Options {
all ow -recursion{211. 85. 176. 40; };};
这条命令定义了允许进行递归查询的一个IP 地址211. 85. 176. 40. (4) 限制区域传输. 区域传输用于主DN S 服务器和辅DN S 服务器之间的数据同步, 当主DN S 服务器对其所管理的授权区域内的数据进行改动后, 辅DN S 服务器按照规定的时间间隔使用区域传输从主DNS 服务器获取改动后的信息, 然后刷新自己相应区域内的数据. 如果主DN S 服务器被攻击者所利用或被冒充, 则辅DN S 服务器中的数据就有可能错误. 因此, 正常情况下, 应该只允许信任的辅DN S 服务器和主服务器进行区域传输. 但BI N D 软件的默认配置允许任何主机进行区域传输, 因此, 必须在配置文件中加以限制, 可以通过在配置文件na m ed . conf 中使用命令a ll ow -transfer 来限制允许区域传输的主机. 例如:
Options{
A ll ow -transfe r{ 211. 85. 176. 1; 211. 85. 191. 0/24; };
};
以上配置只允许地址为211. 85. 176. 1和位于网段211. 85. 191. 0/24内的主机进行区域传输. 4 结 语
为了保证DNS 服务器的安全运行, 不仅要使用可靠的服务器软件, 而且要对DN S 服务器进行正确的配置, 同时还要跟踪服务器软件和操作系统的各种漏洞, 及时为发现的漏洞打补丁或进行升级.
参考文献:
[1]姚小兰. 网络安全管理与技术防护[M].北京:北京理工大学出版社, 2002.
[2]谢希仁. 计算机网络[M ]1第5版1北京:电子工业出版社, 2008.
[3]俞承杭. 计算机网络安全与信息安全技术[M].北京:机械工业出版社, 2009.
各种漏洞攻击并控制一个或多个在Inte rnet 上正式运行的DN S 服务器; 第二步攻击者重新指定这些服务器负责解析的区域, 使被攻击者控制的某一个DNS 服务器负责解析攻击者将要攻击的目标主机所在的区域; 第三步, 攻击者在这些服务器中加入大量伪造的数据; 第四步攻击者向受害者主机所在的DN S 服务器发送一个查询请求, 从而引诱受害者的DN S 服务器去查询被攻击者控制的DN S 服务器, 由于这些服务器中包含了那些伪造的数据, 受害者的DN S 服务器在收到查询结果后, 要将查询结果进行缓存, 这样也就缓存了伪造的数据. 那么当其他正常用户向该DN S 服务器发出查询请求时, 该DN S 服务器就会将错误的地址告诉用户主机. 例如:假设清华大学网站的IP 地址是202. 96. 158. 10, 但被攻击者所控制的DN S 服务器中被修改为211. 85. 176. 1, 并且, 该条记录被缓存在某一用户所在的本地域名服务器中, 则, 在该区域中的正常用户要访问清华大学时, 清华大学的域名就被解析成211. 85. 176. 1, 自然也就不会指向清华大学而指向了211. 85. 176. 1所代表的位置.
(3) 拒绝服务攻击:这种攻击针对DN S 服务器软件本身, 通常利用服务器中的软件中的漏洞, 导致DN S 服务器崩溃或拒绝服务. 这种攻击比较容易防范, 只要为各种软件安装相应的补丁程序或更新软件[3]. 3 防范措施
从上面所述的三种主要攻击方式来看, 攻击者主要是利用了DN S 服务器本身的漏洞及DN S 的工作原理来实施攻击的, 因此防范也相应地从加强服务器本身的防御能力以及改进服务器工作过程中不合理的方面入手.
(1) 使用最新版本的DN S 服务器软件. 当前BI ND 软件的最新版本为B I ND 9. 6. 0-P1. 当然, 其他运行在DN S 服务器上的软件也应该使用最新版本的. 使用最新版本的各种软件能够有效地抵抗利用软件漏洞进行攻击的行为. 当然, 这样做并不意味着DN S 服务器的彻底安全, 因为任何软件都可能存在着漏洞, 只是可能还没有被发现而已.
(2) 关闭递归查询功能. 如果可能, 应关闭BI ND 服务软件的递归查询功能. 关闭了BIND 的递归查询功能后就使DN S 服务器进行被动模式, 即它绝不会向外部的DN S 发送查询请求, 只会回答对自己的授权域的查询请求, 因此不会缓存任何外部的数据, 也就不可能遭受地址欺骗攻击. 当然, 采用这种方法, 会对正常用户的一些正常请求得不到满足, 影响系统的功能. 如果不能关闭递归查询, 可以使用下面的方法.
(3) 限制对DNS 进行递归查询的IP 地址. 高版本的