IT运维管理,创造商业价值!
中国IT运维网首页 | 资讯中心 | 运维管理 | 信息安全 | CIO视界 | 云计算 | 最佳案例 | 运维资源 | 专题策划 | 知识库 | 论坛

如何保护域名服务器DNS的安全?

2007年09月29日
网络/佚名
域名服务器DNS在Internet通信中具有举足轻重的作用,它负责对域名和IP地址进行转换。正是因为它的作用重要,这些服务器往往具有较高的系统配置,通常位于高速主干网上,以便快速响应大量用户的查询请求。另外,由于域名服务系统的分布性和开放性,域名服务器常常被安置在防火墙的外面。这些特征使其成为黑客进行攻击的优选目标。目前,黑客对DNS服务器的攻击主要有三种方法:地址欺骗、拒绝服务和远程漏洞入侵。

地址欺骗攻击利用了RFC标准协议中的某些不完善的地方,以达到修改域名指向的目的。当黑客控制着一个或多个Internet上正式运行的DNS服务器时,黑客可以指定这些服务器负责解析某个区域,并且在这个区域内加入大量伪造的数据(A记录、NS记录等),然后黑客使用DNS查询工具向受害者的DNS服务器发送一个递归查询请求,引诱受害者的 DNS服务器去查询黑客的DNS服务器,黑客的DNS服务器在返回的查询结果中包含了那些事先伪造的数据,受害者的DNS服务器在收到查询结果后,将此结果送回黑客的查询工具,同时也缓存了查询结果中的伪造数据。这样,黑客通过修改自己的DNS服务器上的数据,可以使被攻击的DNS服务器返回任何错误的地址指向。

针对DNS服务器的拒绝服务攻击有两种,一种攻击针对DNS服务器软件本身,通常利用BIND软件程序中的漏洞,导致DNS服务器崩溃或拒绝服务。这种攻击很容易对付,只要为BIND软件安装相应的补丁程序或更新软件即可。另一种黑客攻击的目标不是DNS服务器本身,而是利用DNS服务器作为中间的“攻击放大器”,去攻击Internet上其他的计算机,导致被攻击的计算机拒绝服务。黑客首先向多个DNS服务器发送大量的查询请求,这些查询请求数据包中的源IP地址为被攻击主机的IP地址,DNS服务器将大量的查询结果发送给被攻击主机,使被攻击主机所在的网络拥塞或不再对外提供服务。通过限制查询主机的IP地址可以减轻这种攻击的影响,但是不可能从根本上解决这个问题。

由于BIND服务器软件的许多版本存在缓冲区溢出漏洞,黑客可以利用这些漏洞远程入侵BIND服务器所在的主机,并以root身份执行任意命令。这就是针对DNS服务器的远程漏洞入侵攻击。这种攻击的危害性比较严重,黑客不仅获得了DNS服务器上所有授权区域内的数据信息,甚至可以直接修改授权区域内的任意数据,同时可以利用这台主机作为攻击其他机器的“跳板”。

为了保护域名服务器DNS的安全,建议采取以下措施。

1.使用最新版本的DNS服务器软件

Internet上当前使用最广泛的DNS服务器软件为BIND(Berkeley Internet Name Domain),它可以运行在各种UNIX平台上,某些版本也支持Windows NT平台。BIND软件是一个免费软件,由Internet软件协会(Internet Software Consortium)开发和维护。BIND软件分为两个系列:版本4系列和版本8系列。Internet软件协会强烈建议使用BIND 8系列中的版本8.2.2+P5。最新版本的DNS服务器软件虽然消除了大部分目前已知的漏洞,但并不意味着DNS服务器的彻底安全,因为随着新漏洞的发现,“最新版本”将成为不安全的旧版本,这时必须使用更新的软件版本或安装相应的补丁程序。Internet软件协会网站的地址为http://www.isc.org,最新的BIND软件可以从它的FTP服务器下载。

2.关闭递归查询和线索查找功能

    如果可能,关闭BIND服务器的递归查询功能,这将使DNS服务器进入被动模式,即它决不会向外部的DNS发送查询请求,只会回答对自己的授权域的查询请求,因此不会缓存任何外部的数据,所以不可能遭受地址欺骗攻击。另外,还应该关闭线索查找功能。通常DNS服务器在返回查询结果时,如果结果中包含NS记录而没有NS记录对应的A记录,那么DNS服务器会去查找这个A记录,这种情况叫线索查找。使用这个功能可能导致欺骗攻击。

3.限制对DNS进行查询的IP地址

DNS服务器接收的查询请求按照来源可分为两类:来自外部其他DNS服务器的查询请求和来自本地网络主机的查询请求。DNS服务器之间的查询使用交互方式(非递归方式)。来自外部DNS服务器的查询,其查询对象常常为被查询DNS服务器所负责管理的授权区域内的数据。来自本地网络主机的查询一般都使用递归方式,其查询对象既可以是被查询 DNS服务器所负责的授权区域内的数据,也可以是外部的非授权区域的数据。如果查询对象是授权区域内的数据,则DNS服务器直接将内存或缓存中的结果返回给进行查询的主机;如果查询对象是外部的非授权区域的数据,则DNS首先在缓存中进行查询,如果找到匹配的结果则返回给进行查询的主机,否则将查询请求发送给外部的DNS服务器。早期版本的BIND软件没有限制进行查询的IP地址的功能,Internet上任何主机都可以向DNS服务器发送递归或非递归查询请求,DNS服务器都进行回答。这不仅让他人可能滥用DNS服务器,黑客还可能利用这个功能欺骗DNS服务器,因此需要限制对DNS进行查询的IP地址,仅允许指定IP地址网络的主机查询外部的非授权域。

4.限制对DNS进行递归查询的IP地址

如果递归查询请求来自不允许的IP地址,则应该将此查询以非递归查询对待。

5.限制区域传输

区域传输一般用于主DNS服务器和辅DNS服务器之间的数据同步,当主DNS服务器对其所管理的授权区域内的数据进行改动后,辅DNS服务器按照规定的时间间隔使用区域传输从主DNS服务器获取改动后的信息,然后刷新自己相应区域内的数据。利用区域传输功能,还可以获得整个授权区域内的所有主机信息,这正是黑客所感兴趣的内容,根据这些信息,黑客可以轻松地推测网络结构,并从主机的域名信息判断其功能或发现那些防范措施较弱的计算机。BIND软件的默认设置允许任何人进行区域传输。因此,必须在配置文件中加以限制。

6.限制对BIND软件的版本信息进行查询

黑客为了利用特定版本BIND软件的漏洞,首先需要确定BIND软件的版本号,默认情况下,BIND服务器软件不限制对自身版本号的查询,任何人都可以很容易地获取BIND软件的版本号。因此需要限制对BIND软件的版本信息进行查询。

为了保证DNS服务器的安全运行,不仅要使用可靠的服务器软件,还要对DNS服务器进行正确的配置。


发表评论请到:http://bbs.cnitom.com

相关阅读

图文热点

以不变应万变 网络虚拟化应对园区网新挑战
以不变应万变 网络虚拟化应对园区网新挑战Forrester Research的分析师Robert Whiteley认为: “十年以来,虚拟化技术与网络...
OpenShift加入更多新元素 友好面对开发者
OpenShift加入更多新元素 友好面对开发者通过网络进行程序提供的服务称之为SaaS(Software as a Service),而将服务器平台...

本类热点