首页 -> 安全研究
安全研究
绿盟月刊
绿盟安全月刊->第38期->技术专题
主页:http://www.nsfocus.com
日期:2003-01-03
-= NSFOCUS 2002年十大安全漏洞 =-
声明:本十大安全漏洞由NSFOCUS(绿盟科技)安全小组 <security@nsfocus.com>根据安全漏洞的
严重程度、利用难易程度、影响范围等因素综合评出,仅供参考。
注:排名不分先后。
http://www.nsfocus.net/index.php?act=sec_bug&do=top_ten
1. 2002-04-12 Microsoft IIS 4.0/5.0 .ASP映射分块编码远程缓冲区溢出漏洞
NSFOCUS ID: 2551
http://www.nsfocus.net/index.php?act=sec_bug&do=view&bug_id=2551
综述:
Microsoft IIS(Internet Information Server)是MS Windows系统默认自带
的Web服务器软件。
默认安装的IIS 4.0/5.0服务器加载了ASP ISAPI过滤器,它在处理分块编码传送
(chunked encoding transfer)机制的代码中存在一个缓冲区溢出漏洞。攻击者通过
提交恶意分块编码的数据可以覆盖heap区的内存数据,使之以他指定的数据重写任意地址的
4字节内存。例如,攻击者可以让dllhost.exe重写它可以访问的任意4字节的内存,包括程
序函数指针、意外处理模块指针或其他任何可以用来控制程序执行流程的地址,从而改变程
序执行流程,执行任意攻击者指定的代码。
这个漏洞是eEye公司最先发现并公布的,受它的启发,人们开始发现原来很多流行的web服务
器在分块编码的实现上都存在问题。于是陆续地,IIS .HTR ISAPI、Apache、Sun ONE/
iPlanet webserver、Apache tomcat Mod_JK都被发现存在类似问题。
危害:
成功地利用这个漏洞,对于IIS 4.0,远程攻击者可以获取SYSTEM权限;
对于IIS 5.0攻击者可以获取IWAM_computername用户的权限。
2. 2002-06-20 Apache Web Server 分块编码远程溢出漏洞
NSFOCUS ID: 2975
http://www.nsfocus.net/index.php?act=sec_bug&do=view&bug_id=2975
综述:
Apache Web Server是一款非常流行的开放源码、功能强大的Web服务器程序,由Apache
Software Foundation开发和维护。它可以运行在多种操作系统平台下,例如Unix/Linux
/BSD系统以及Windows系统。
Apache在处理以分块(chunked)方式传输数据的HTTP请求时存在设计漏洞,远程攻击者可
能利用此漏洞在某些Apache服务器上以Web服务器进程的权限执行任意指令或进行拒绝服务
攻击。
在IIS被发现存在分块编码问题后不久,Apache也没有幸免 - 1.3.24和2.0.34及其以下的
版本中也存在分块编码问题。一个有趣的地下安全小组GOBBLES也火上浇油似地发布了一个攻击
OpenBSD/FreeBSD/NetBSD的攻击程序,使得这个漏洞的威胁越发真切起来。这也是Apache
在最近几年中发现的最严重的一个远程漏洞,这迫使Apache web管理员们不得不升级已经稳定
运行了很久的webserver。幸运的是,这个漏洞在Linux和Solaris下似乎并不好利用,因此
至今没有针对这些系统的攻击程序流传,这也在一定程度上减小了漏洞的危害。
危害:
攻击者可以以WEB服务进程权限(通常是nobody)执行任意系统命令。
3. 2002-08-14 Sun RPC XDR库xdr_array()函数整数溢出漏洞
NSFOCUS ID: 3213
http://www.nsfocus.net/index.php?act=sec_bug&do=view&bug_id=3213
综述:
XDR(外部数据表示)库用来提供一种平台无关的方法来将数据从一个系统进程发送给其他系统
进程,比如通过一个网络连接发送。这种例程在远程过程调用(RPC)实现中被普遍使用,使其
对程序员来说是透明的,他只需使用通用接口来与很多不同种类的系统通信。Sun公司开发的
XDR库包含一个xdr_array()函数,它用来实现可变长度数组的本地C表示与它们的平台无
关的XDR表示的转换。然而,它在计算nodesize变量时采用的方法可能导致一个整数溢出。
攻击者可以构造一个特殊的XDR编码来触发整数溢出,依赖于使用者如何调用xdr_array()
函数,攻击者可能覆盖一个已经分配的堆区缓冲区,造成堆缓缓冲区溢出。攻击者可能造成远
程服务崩溃或者利用malloc实现的一些特点来改变内存数据并执行任意代码。
很多厂商的RPC XDR实现都是基于Sun公司的代码开发的,因此都存在上述漏洞。所有使用那
些有问题的XDR实现的应用程序都可能受此漏洞影响。目前已知的受影响的厂商以及应用程序
如下:
* Sun Microsystems libnsl库 (dmispd和rpc.cmsd)
* BSD系列的带XDR/RPC例程的库 (libc)
* GNU C library 带sunrpc (glibc)
* MIT Kerberos 5 管理系统 (kadmind)
* OpenAFS 1.0 - 1.2.5, OpenAFS 1.3.0 - 1.3.2
* Apple MacOS X
危害:
远程或本地攻击者可以以受影响的进程的身份执行任意代码。
4. 2002-02-15 多家厂商SNMP实现中SNMPv1请求处理存在多个安全漏洞
NSFOCUS ID: 2319
http://www.nsfocus.net/index.php?act=sec_bug&do=view&bug_id=2319
综述:
SNMP请求是管理系统给代理系统发送的消息,它们通常询问代理系统当前性能和配置信息,
请求Management Information Base (MIB)的下一个SNMP对象,或者修改代理的配置。
Oulu大学的PROTOS安全研究小组开发了一套SNMPv1测试工具。通过模拟各种异常请求或者
回复数据来对众多厂商的SNMP实现进行测试。测试结果让人吃惊,几乎所有厂商的SNMP实现
都或多或少的存在安全问题。严重时攻击者可以使远程SNMP服务器崩溃甚至以SNMP服务器运
行权限执行任意代码。
由于SNMP在操作系统和网络设备中有着非常普遍的应用,这些漏洞的影响厂商之多是空前的。
危害:
攻击者可以使远程SNMP服务器崩溃甚至以SNMP服务器运行权限执行任意代码。
5. 2002-03-04 PHP Post文件上传远程缓冲区溢出漏洞
NSFOCUS ID: 2308
http://www.nsfocus.net/index.php?act=sec_bug&do=view&bug_id=2308
综述:
PHP是一种被广泛使用的脚本语言,用于基于Web的CGI程序,它可被安装在包括Apache、
IIS、 Caudium、Netscape、iPlanet和OmniHTTPd等多种Web服务器上。
PHP 4.1.2以前的实现中存在缓冲区溢出漏洞,远程攻击者可以通过溢出攻击在主机上执行
任意指令。
PHP支持multipart/form-data POST请求(RFC1867),实现了POST文件上传。但
是用于解码MIME数据的php_mime_split函数存在缓冲区溢出问题,远程攻击者可以利用
这个漏洞在主机上以Web服务器进程的身份执行任意指令。不仅PHP4受这个漏洞影响,而
且以前的PHP3也受此漏洞的影响,Apache的PHP模块也存在这个漏洞。
TESO小组开发的两个攻击程序已经在地下世界流传了很久,那些仍然在使用低版本PHP的用户
需要尽快升级了。
危害:
远程攻击者可能以WEB服务进程权限执行任意代码。
6. 2002-07-31 OpenSSL超长SSL2客户端密钥和会话ID缓冲区溢出漏洞
NSFOCUS ID: 3161
http://www.nsfocus.net/index.php?act=sec_bug&do=view&bug_id=3161
综述:
OpenSSL是一种开放源码的SSL实现,用来实现网络通信的高强度加密,现在被广泛地用于
各种网络应用程序中。
OpenSSL的实现上存在几个缓冲区溢出漏洞,远程攻击者可能利用溢出攻击在服务器端或客
户端执行任意指令。
远程攻击者可能发送超长的SSL版本2的客户端密钥,溢出服务器端守护进程的缓冲区,从而
以守护进程的权限执行任意指令。这个漏洞已经被证实是可利用的。
在一个攻击程序被泄漏之后,一个被命名为"linux.slapper.worm"的蠕虫迅速地出现了,
它攻击所有开放了HTTPS(443/tcp)服务的Linux Apache服务器。由于这个漏洞的特殊性
这个蠕虫只能攻击一些缺省安装的apache服务器,因此攻击的范围也使有限的。然而,除了
Apache,还有很多应用都会使用OpenSSL库来处理加密传输,因此这个漏洞的范围还是相当
广泛的。
危害:
攻击者可以造成拒绝服务攻击或者以服务器进程权限执行任意命令。
7. 2002-11-13 ISC BIND域名服务器存在多个严重远程安全漏洞
NSFOCUS ID: 3797,3798,3799
综述:
BIND是一个应用非常广泛的DNS协议的实现. 很多域名服务器都在使用BIND提供
域名解析功能. 近日发现BIND 4.x和8.x中存在多个严重远程安全漏洞. 如果
被攻击者利用, 可能导致BIND拒绝服务, 甚至远程执行任意代码.
这些漏洞包括两个远程拒绝服务漏洞和一个缓冲区溢出漏洞.
2002-11-13: ISC BIND SIG缓存资源记录远程溢出漏洞
http://www.nsfocus.net/index.php?act=sec_bug&do=view&bug_id=3797
2002-11-13: ISC BIND SIG资源记录无效过期时间拒绝服务漏洞
http://www.nsfocus.net/index.php?act=sec_bug&do=view&bug_id=3798
2002-11-13: ISC BIND OPT资源记录远程拒绝服务漏洞
http://www.nsfocus.net/index.php?act=sec_bug&do=view&bug_id=3799
ISC BIND在Internet上的使用是相当广泛的,一旦它出了安全问题, 其影响之大
是不言而喻的. 尽管这三个漏洞只影响允许递归查询的域名服务器, 但由于这是
BIND安装时的缺省配置, 很多管理员并没有禁止此功能, 另外某些必须提供递归查
询功能的服务器也将处在危险的境地. 好在最新的BIND 4.9.11/8.2.7/8.3.4
已经修复了这些漏洞, 域名服务器管理员们应该尽快升级到最新版本.
危害:
攻击者可以导致允许递归查询的BIND域名服务崩溃. 攻击者也可能获得BIND服务
运行用户的权限, 例如root或者named用户.
8. 2002-08-09 多家厂商DNS解析函数库远程缓冲区溢出漏洞
NSFOCUS ID: 3028
http://www.nsfocus.net/index.php?act=sec_bug&do=view&bug_id=3028
综述:
BSD中的libc库和ISC BIND包含DNS查询功能,用于对DNS信息进行解析。
域名系统DNS提供相关IP网络和设备的名字,地址和其他相关的信息,通过发送DNS请求和
解析DNS应答,操作系统可以访问DNS信息,当IP网络应用程序需要访问或者处理DNS信息时,
它会调用DNS分支解析库中的函数,这些函数在系统中是底部网络操作系统中的一部分,在基
于BSD的系统中,DNS分支解析函数由系统libc库实现,而在ISC BIND中,它们由libbind
实现。
问题存在于lib/libc/net/gethnamaddr.c:getanswer()和lib/libc/net/
getnetnamadr.c:getnetanswer()函数中,DNS信息有特殊的字节对齐需要,用于在信息
中进行填充,而在这两个函数在处理中,当计算可用缓冲空间时没有进行充分考虑,结果导致解
析DNS信息时产生缓冲区溢出,精心构建的DNS应答信息可能以解析DNS信息的应用程序进程的
权限执行任意指令。
值得注意的是此漏洞不同于普通的网络守护程序缓冲区溢出,任何执行外出DNS查询的主机都可
能存在此漏洞,攻击者甚至可以使用HTML形式,嵌入伪造DNS服务器对象的电子邮件发送给
netscape用户而触发。所以任何使用这个有漏洞的解析库应用程序都存在此漏洞,使用静态连
接的应用程序需要使用修正过的解析库进行重新编译。
危害:
攻击者可能以解析DNS信息的应用程序进程的权限在目标系统上执行任意指令。
9. 2002-03-15 GNU zlib压缩程序库堆破坏漏洞
NSFOCUS ID: 2392
http://www.nsfocus.net/index.php?act=sec_bug&do=view&bug_id=2392
综述:
GNU zlib压缩程序库广泛被用于各种程序以提供压缩功能。
GNU zlib实现上存在问题,导致与此程序库连接的应用程序可能存在可以被远程或本地利
用的堆破坏漏洞。
zlib实现上存在的问题使在某些情况下,一块动态分配的内存可能会被free()系统调用释
放两次,这样的情况可能在解压时发生。当free()系统调用去试图释放一块已经被释放的内
存时,在某些特定的情况下,攻击者可以操纵free()把一个特定的字存放到特定的内存中,
这样可能改写某些关键的值如程序的返回地址、GOT入口等,使攻击者执行任意代码成为可能。
要利用zlib的这个漏洞,需要攻击者首先确定一个与此程序库相连的程序,此程序可能
有较高的执行权限或运行在一个远程的系统上,并且攻击者必须想出触发这个漏洞的方法(比如
以压缩后的数据作为输入)。已知的使用zlib程序库的应用程序有:
SSH / OpenSSH
rsync
OpenPKG
popt / rpm
Linux Kernel
尽管这个漏洞目前没有攻击程序发布而且利用起来并不容易,但是由于zlib库是一个基础的系统
库,影响面还是比较大的。
危害:
远程或本地用户可以提升权限至管理用户。
10. 2002-10-09 Microsoft SQL Server预验证过程远程缓冲区溢出漏洞
NSFOCUS ID: 3251
http://www.nsfocus.net/index.php?act=sec_bug&do=view&bug_id=3251
综述:
Microsoft SQL Server是一款由Microsoft开发的大型数据库系统。
Microsoft SQL Server在预验证处理时存在漏洞,远程攻击者可以利用这个漏洞进行缓
冲区溢出攻击。
Microsoft SQL Server的预验证过程存在问题,远程攻击者通过连接TCP 1433端口可
以进行缓冲区溢出攻击,由于问题发生在验证之前,所以攻击这无需验证就可以进行攻击,可
能使攻击者以SQL进程权限在系统上执行任意指令。
危害:
远程攻击者可以以SQL进程权限在系统上执行任意指令。
版权所有,未经许可,不得转载