<< 七月 2008 | 主页 | 九月 2008 >>

bind 服务器漏洞补丁 CERT VU#800113 DNS Cache Poisoning Issue

升级至 bind9.5.1b1

isc发布了一个dns可能遭受攻击的漏洞-CERT VU#800113 DNS Cache Poisoning Issue,联想到新网,万网8月dns被攻击的事件(不确定,但是确实解析不了了),可能是比较严重的。

  • Summary: A weakness in the DNS protocol may enable the poisoning of caching recurive resolvers with spoofed data. DNSSEC is the only full solution. New versions of BIND provide increased resilience to the attack.
  • Description :Thanks to recent work by Dan Kaminsky of IOActive, ISC has become aware of a potential attack exploiting weaknesses in the DNS protocol itself. (Full details of the vulnerability will be explained by Kaminsky at the Black Hat conference on August 7th.) The weakness is inherent to the DNS protocol and not specific to any single implementation. The DNS protocol uses the Query ID field to match incoming responses to previously sent queries. The Query ID field is only 16 bits, which makes it an easy target to exploit in the particular spoofing scenario described by Kaminsky.
  • Impact: ANYONE RUNNING BIND AS A CACHING RESOLVER IS AFFECTED.

以下是cernet给出的说明

漏洞采用“Cache 投毒”(cache poisoning)的方法。具体来说,DNS的查询过程是由客户端(无论是桌面计算机,或是缓存DNS服 务器发起的查询)发出一个到权威DNS服务器(可能是根DNS,也可能是具体域名的权威DNS)一个UDP请求,然后等待其回应。DNS协议为了能够识别来自不同服务器的回应,利用端口和一个称为TXID的识别符(类似TCP的序号)来区分它们。事实上,早期的DNS协议实现甚至会使用固定的端口来发起DNS请求,这样一来,TXID就成了识别回应的唯一标识。由于DNS协议是在上世纪70年代设计 的,因此TXID序号只有16个bit宽,而另一方面,伪造UDP包的来源地址又很容易(因为UDP并没有提供类似TCP那样内建的防止此类攻击的机制),因此,攻击者只需设法让DNS缓存服务器相信自己伪造的来自权威DNS的回应是真实的,就可以达到目的了。

具体地说这种攻击包括两个部分,其一是设法让缓存DNS服务器发起新的DNS查询请求(有很多方法),其二则是发出大量的伪造包并期待其命中,也就是在真实的权威DNS回应之前,将伪造的,但端口和TXID均能匹配的UDP回应发到缓存DNS服务器。

攻击者可以用各种方式来达到这种目的,包括钓鱼邮件,也包括直接发起查询等等。 该漏洞使黑客有可能控制网络流量。利用该漏洞进行高效“Cache投毒”让DNS缓存服务器相信自己伪造的来自权威DNS的回应是真实的,达到劫持网站流量来牟利或者将用户引导到一些伪造的钓鱼站点来骗取敏感数据。 该漏洞攻击代码已可在网上查到。利用这段代码可以对DNS服务器进行投毒,将一条恶意纪录植入目标服务器,该服务器将随机发起域名查询,此时攻击者可 以提供伪造的响应,将域名服务器中的纪录指向其特定站点。

解决漏洞的办法

把运行BIND的服务器的操作系统更新所有补丁 可到如下地址去下载补丁或最新BIND版本 http://www.isc.org/index.pl?/sw/bind/bind-security.php 考虑部署DNSsec。DNS协议的漏洞通过随机化查询端口和TXID只能部分缓解,而DNSsec才是解决问题的根本。

DNS Cache Poisoning漏洞检查

通过国外网站http://www.doxpara.com/ 进行线上检测。将本机DNS手工设为cache dns的地址,点击网页右栏的检测按钮即可。此方法比较直观,但对于较多的cachedns要检测的话,不太方便。 dig porttest.dns-oarc.net TXT @dns_server_ip命令来判断源端口是否随机化。执行后命令,系统会给出结果说明你的cachedns是否的源端口是否随机化。此方法对于较多cachedns要检测的情况下,比较简便。

实施步骤(sun sparc solaris 9操作系统)

  1. 连接至http://www.sunfreeware.com下载相应的bind 9.5.1b1版本

  2. 卸载原有的bind低版本 #pkgrm SMCBind

  3. 解压并安装
    #gunzip bind-9.5.1b1.zip
    #pkgadd -d bind-9.5.1b1*
  4. 检查版本#/usr/local/sbin/named -v
  5. 低版本过度到高版本要增加三条配置最安全,位置为option段落中,
    allow-query-cache{any;}
    allow-query {any;}
    recursion yes ;

阅读全文...

旅途(三)

学习是一辈子的事情

中国最发达城市之一,一所高档酒店里,一位年轻的客户经理和我说到愿望:想去读研究生。我留下了我的blog地址,希望她能看到这篇文章,如果有一天这位经理决定走上求学之路,我也会恭喜得偿所愿。

阅读全文...