首页 -> 安全研究
安全研究
安全漏洞
多家厂商DNS实现缓存中毒漏洞
发布日期:2008-07-08
更新日期:2008-07-10
受影响系统:
Cisco IOS 12.4描述:
Cisco IOS 12.3
Cisco IOS 12.2
Cisco IOS 12.1
Cisco IOS 12.0
ISC BIND 9.5.x
ISC BIND 9.4.x
ISC BIND 9.3.x
ISC BIND 9.2.x
ISC BIND 8.x.x
Microsoft Windows XP SP3
Microsoft Windows XP SP2
Microsoft Windows Server 2003 SP2
Microsoft Windows Server 2003 SP1
Microsoft Windows 2000SP4
Sun Solaris 9.0_x86
Sun Solaris 9.0
Sun Solaris 8.0_x86
Sun Solaris 8.0
Sun Solaris 10.0_x86
Sun Solaris 10.0
Cisco Network Registrar 7.0.x
Cisco Network Registrar 6.3.x
Cisco Network Registrar 6.1.x
Cisco Network Registrar
Cisco ACNS 5.5
BUGTRAQ ID: 30131
CVE(CAN) ID: CVE-2008-1447
DNS协议是TCP/IP协议组的一部分,允许DNS客户端查询DNS数据库将主机名解析为IP地址。
出于与处理DNS查询相关的处理时间和带宽考虑,大多数DNS服务器都会本地存储从其他DNS服务器所接收到的响应,存储这些响应的区域被称为缓存。一旦将响应存储到了缓存,DNS服务器就可以在再次查询DNS服务器以刷新本地缓存的响应拷贝之前的一段时间(被称为存活时间)使用本地存储的响应。
DNS缓存中毒攻击指的是更改了DNS服务器的DNS缓存中某项,这样缓存中与主机名相关的IP地址就不再指向正确的位置。例如,如果www.example.com映射到IP地址192.168.0.1且DNS服务器的缓存中存在这个映射,则成功向这个服务器的DNS缓存投毒的攻击者就可以将www.example.com映射到10.0.0.1。在这种情况下,试图访问www.example.com的用户就可能与错误的Web服务器联络。
DNS协议实现规范中包括一个16位的事件ID字段。如果正确地实现了这个规范且通过强随机数生成器随机的选择事件ID的话,攻击者就需要平均32,768次尝试才能成功的预测到这个ID。但由于协议实现中的弱点,用于验证DNS响应的DNS事件ID和源端口号随机性不够强,可以轻易的预测,这就允许攻击者创建匹配期望值的DSN请求伪造响应,而DNS服务器会认为该响应有效,因此简化了缓存中毒攻击。
成功利用这个漏洞可能导致DNS服务器的用户联络错误的网络服务供应商,最终的影响各不相同,从简单的拒绝服务到网络钓鱼和金融诈骗。
<*来源:Dan Kaminsky
链接:http://secunia.com/advisories/31012/
http://secunia.com/advisories/31011/
http://secunia.com/advisories/30980/
http://secunia.com/advisories/30979/
http://secunia.com/advisories/30973/
http://www.kb.cert.org/vuls/id/800113
http://www.us-cert.gov/cas/techalerts/TA08-190B.html
http://www.microsoft.com/technet/security/bulletin/ms08-037.mspx?pf=true
http://www.cisco.com/warp/public/707/cisco-sa-20080708-dns.shtml
http://www.debian.org/security/2008/dsa-1605
http://www.debian.org/security/2008/dsa-1604
http://www.debian.org/security/2008/dsa-1603
http://sunsolve.sun.com/search/printfriendly.do?assetkey=1-66-239392-1
https://www.redhat.com/support/errata/RHSA-2008-0533.html
ftp://ftp.freebsd.org/pub/FreeBSD/CERT/advisories/FreeBSD-SA-08:06.bind.asc
http://security.gentoo.org/glsa/glsa-200807-08.xml
http://www.debian.org/security/2008/dsa-1619
http://www.debian.org/security/2008/dsa-1623
*>
测试方法:
警 告
以下程序(方法)可能带有攻击性,仅供安全研究与教学之用。使用者风险自负!
http://www.milw0rm.com/exploits/6130
http://www.milw0rm.com/exploits/6197
建议:
厂商补丁:
Cisco
-----
Cisco已经为此发布了一个安全公告(cisco-sa-20080708-dns)以及相应补丁:
cisco-sa-20080708-dns:Multiple Cisco Products Vulnerable to DNS Cache Poisoning Attacks
链接:http://www.cisco.com/warp/public/707/cisco-sa-20080708-dns.shtml
Debian
------
Debian已经为此发布了一个安全公告(DSA-1619-1)以及相应补丁:
DSA-1619-1:New python-dns packages fix DNS response spoofing
链接:http://www.debian.org/security/2008/dsa-1619
补丁下载:
Source archives:
http://security.debian.org/pool/updates/main/p/python-dns/python-dns_2.3.0.orig.tar.gz
Size/MD5 checksum: 21084 82d377c6a59181072b30b0da4e9835b8
http://security.debian.org/pool/updates/main/p/python-dns/python-dns_2.3.0-5.2+etch1.diff.gz
Size/MD5 checksum: 3444 06a021e1cf9836cec4bbe72461bab137
http://security.debian.org/pool/updates/main/p/python-dns/python-dns_2.3.0-5.2+etch1.dsc
Size/MD5 checksum: 695 c2e7178128b7033952b7795b358dea0b
Architecture independent packages:
http://security.debian.org/pool/updates/main/p/python-dns/python-dns_2.3.0-5.2+etch1_all.deb
Size/MD5 checksum: 22750 b544ce3edb7d2051811ec743a49206a1
补丁安装方法:
1. 手工安装补丁包:
首先,使用下面的命令来下载补丁软件:
# wget url (url是补丁下载链接地址)
然后,使用下面的命令来安装补丁:
# dpkg -i file.deb (file是相应的补丁名)
2. 使用apt-get自动安装补丁包:
首先,使用下面的命令更新内部数据库:
# apt-get update
然后,使用下面的命令安装更新软件包:
# apt-get upgrade
FreeBSD
-------
FreeBSD已经为此发布了一个安全公告(FreeBSD-SA-08:06)以及相应补丁:
FreeBSD-SA-08:06:DNS cache poisoning
链接:ftp://ftp.freebsd.org/pub/FreeBSD/CERT/advisories/FreeBSD-SA-08:06.bind.asc
补丁下载,执行以下步骤:
1) 将有漏洞的系统升级到5-STABLE、6-STABLE或7-STABLE,或修改日期之后的RELENG_7_0、RELENG_6_3安全版本。
2) 为当前系统打补丁:
以下补丁确认可应用于FreeBSD 6.3和7.0系统。
a) 从以下位置下载相关补丁,并使用PGP工具验证附带的PGP签名。
[FreeBSD 6.3]
# fetch http://security.FreeBSD.org/patches/SA-08:06/bind63.patch
# fetch http://security.FreeBSD.org/patches/SA-08:06/bind63.patch.asc
[FreeBSD 7.0]
# fetch http://security.FreeBSD.org/patches/SA-08:06/bind7.patch
# fetch http://security.FreeBSD.org/patches/SA-08:06/bind7.patch.asc
b) 以root执行以下命令:
# cd /usr/src
# patch < /path/to/patch
# cd /usr/src/lib/bind
# make obj && make depend && make && make install
# cd /usr/src/usr.sbin/named
# make obj && make depend && make && make install
Microsoft
---------
Microsoft已经为此发布了一个安全公告(MS08-037)以及相应补丁:
MS08-037:Vulnerabilities in DNS Could Allow Spoofing (953230)
链接:http://www.microsoft.com/technet/security/bulletin/ms08-037.mspx?pf=true
RedHat
------
RedHat已经为此发布了一个安全公告(RHSA-2008:0533-01)以及相应补丁:
RHSA-2008:0533-01:Important: bind security update
链接:https://www.redhat.com/support/errata/RHSA-2008-0533.html
Sun
---
Sun已经为此发布了一个安全公告(Sun-Alert-239392)以及相应补丁:
Sun-Alert-239392:Security Vulnerability in the DNS Protocol may lead to DNS Cache Poisoning
链接:http://sunsolve.sun.com/search/printfriendly.do?assetkey=1-66-239392-1
Gentoo
------
Gentoo已经为此发布了一个安全公告(GLSA-200807-08)以及相应补丁:
GLSA-200807-08:BIND: Cache poisoning
链接:http://security.gentoo.org/glsa/glsa-200807-08.xml
所有BIND用户都应升级到最新版本:
# emerge --sync
# emerge --ask --oneshot --verbose ">=3Dnet-dns/bind-9.4.2_p1"
浏览次数:10005
严重程度:0(网友投票)
绿盟科技给您安全的保障