|
25日下午,不明蠕虫病毒在全世界互联网范围内迅速传播,并造成严重危害,赛迪网进行了第一时间的详情和跟踪报道。为了迅速向广大用户初步解释本次不明蠕虫病毒的基本攻击特征和传染症状,以及可能的解决方法,特此刊载Nsfocus安全小组(security@nsfocus.com)发布的绿盟科技紧急公告(Alert2003-zh-01),供大家参考。
绿盟科技紧急公告(Alert2003-zh-01)
Nsfocus安全小组(security@nsfocus.com)
http://www.nsfocus.com
新SQL蠕虫紧急公告!
发布日期:2003-01-25
受影响的软件及系统:
====================
Microsoft SQL Server 2000 SP1
Microsoft SQL Server 2000 Desktop Engine
Microsoft SQL Server 2000
- Microsoft Windows NT 4.0 SP6a
- Microsoft Windows NT 4.0 SP6
- Microsoft Windows NT 4.0 SP5
- Microsoft Windows NT 4.0
- Microsoft Windows 2000 Server SP3
- Microsoft Windows 2000 Server SP2
- Microsoft Windows 2000 Server SP1
- Microsoft Windows 2000
综述:
======
绿盟科技安全小组监测到一种针对Microsoft SQL Server 2000的蠕虫正在活跃,危害极大。
分析:
======
北京时间2003年01月25日14时许,绿盟科技安全小组监测到忽然发生了世界范围的大规模网络访问速度减慢甚至阻塞的情况,经过绿盟科技安全小组对捕获的数据样本分析和研究,已经明确,这是一种新出现的针对Microsoft SQL Server 2000的蠕虫。
该蠕虫本身非常小,仅仅是一段376个字节的数据。利用的安全漏洞是“Microsoft SQL Server 2000 Resolution服务远程栈缓冲区溢出漏洞”(http://www.nsfocus.net/index.php?act=sec_bug&do=view&bug_id=3148)。
蠕虫利用的端口是UDP/1434,该端口是SQL Server Resolution服务。Microsoft SQL Server 2000支持在单个物理主机上伺服多个SQL服务器的实例,每个实例操作需要通过单独的服务,不过多个实例不能全部使用标准SQL服务会话会话端口(TCP 1433),所以SQL Server Resolution服务操作监听在UDP 1434端口,提供一种使客户端查询适当的网络末端用于特殊的SQL服务实例的途径。
当SQL Server Resolution服务在UDP 1434端口接收到第一个字节设置为0x04的UDP包时,SQL监视线程会获取UDP包中的数据并使用此用户提供的信息来尝试打开注册表中的某一键值,如发送\x04\x41\x41\x41\x41类似的UDP包,SQL服务程序就会打开如下注册表键:
HKLM\Software\Microsoft\Microsoft SQL Server\AAAA\MSSQLServer\CurrentVersion
攻击者可以通过在这个UDP包后追加大量字符串数据,当尝试打开这个字符串相对应的键值时,会发生基于栈的缓冲区溢出,通过包含"jmp esp"或者"call esp"指令的地址覆盖栈中保存的返回地址,可导致以SQL Server进程的权限在系统中执行任意指令。
蠕虫溢出成功取得系统控制权后,就开始向随机IP地址发送自身,由于这是一个死循环的过程,发包密度仅和机器性能和网络带宽有关,所以发送的数据量非常大。在绿盟科技安全小组的测试中,和被感染机器在同一网段的每一台分析机每秒钟都收到了近千个数据包。
该蠕虫对被感染机器本身并没有进行任何恶意破坏行为,也没有向硬盘上写文件。对于感染的系统,重新启动后就可以清除蠕虫,但是仍然会重复感染。由于发送数据包占用了大量系统资源和网络带宽,形成Udp Flood,感染了该蠕虫的网络性能会极度下降。一个百兆网络内只要有一两台机器感染该蠕虫就会导致整个网络访问阻塞。
解决方法:
==========
我们建议所有运行Microsoft SQL Server 2000和近期发现网络访问异常的用户按照以下解决方案操作:
1、在边界防火墙或者路由器上阻塞外部对内和内部对外的UDP/1434端口的访问
如果该步骤实现有困难可使用系统上的TCP-IP筛选来阻塞对本机UDP/1434端口的访问。
2、找到被感染的主机
在边界路由器(或者防火墙)上进行检查,也可启动网络监视程序(譬如Sniffer Pro)进行检查,找到网络中往目的端口为UDP/1434发送大量数据的主机,这些主机极为可能感染了该蠕虫。
如果不能确定,则认为所有运行Microsoft SQL Server 2000 而没有安装补丁程序的机器都是被感染的机器。
可以使用端口扫描程序对UDP/1434端口进行扫描来找到运行Microsoft SQL Server 2000的主机,但是由于UDP端口扫描并不准确,可以扫描TCP/1433端口找到运行SQL Server的主机。但需要注意的是,只有SQL Server 2000才会受到此蠕虫的感染。
3、拔掉被感染主机的网线。
4、重新启动所有被感染机器,以清除内存中的蠕虫。关闭SQL Server服务以防止再次被蠕虫感染。
5、插上被感染机器的网线
6、为被感染机器安装最新的Microsoft SQL Server 2000 Service Pack:
虽然Microsoft SQL Server 2000 SP2(http://www.microsoft.com/sql/downloads/2000/sp2.asp)就已经解决了该问题,但考虑到在SP2之后又出现了一些严重安全问题,强烈建议安装Microsoft SQL Server 2000 SP3(http://www.microsoft.com/sql/downloads/2000/sp3.asp)。
或者至少应该下载针对该漏洞的热修复补丁:
http://www.microsoft.com/Downloads/Release.asp?ReleaseID=40602
注意:如果由于某种原因无法从网络下载补丁进行安装,因此可以在其他未被感染的主机上下载补丁,刻录在光盘或者保存在其他移动介质上,然后再到被感染的主机上进行安装。
注:上述步骤仅供参考。
绿盟科技产品的冰之眼IDS(http://www.nsfocus.com/homepage/products/nids.htm)早在该漏洞发布时(2002年7月)就已经可以检测此种攻击,现在又紧急添加了专门针对该蠕虫的升级包;RSAS(http://www.nsfocus.com/homepage/products/rsas.htm)也早就可以检测到网络内受该漏洞影响的主机;对于大量的UDP数据流导致的拒绝服务,黑洞(http://www.nsfocus.com/homepage/products/collapsar.htm)是目前最佳解决方案之一。
附加信息:
==========
Microsoft SQL Server 2000 Resolution服务远程栈缓冲区溢出漏洞
发布日期:2002-07-25
更新日期:2002-07-30
受影响系统:
Microsoft SQL Server 2000 SP1
Microsoft SQL Server 2000 Desktop Engine
Microsoft SQL Server 2000
- Microsoft Windows NT 4.0 SP6a
- Microsoft Windows NT 4.0 SP6
- Microsoft Windows NT 4.0 SP5
- Microsoft Windows NT 4.0
- Microsoft Windows 2000 Server SP2
- Microsoft Windows 2000 Server SP1
- Microsoft Windows 2000
描述:
--------------------------------------------------------------------------------
BUGTRAQ ID: 5311
CVE(CAN) ID: CAN-2002-0649
Microsoft SQL Server 2000是一款由Microsoft公司开发的商业性质大型数据库系统。
Microsoft SQL Server 2000的Resolution服务对用户提交的UDP包缺少正确的处理,远程攻击者可以利用这个漏洞进行基于栈的缓冲区溢出攻击。
Microsoft SQL Server 2000支持在单个物理主机上伺服多个SQL服务器的实例,每个实例操作需要通过单独的服务,不过多个实例不能全部使用标准SQL服务会话会话端口(TCP 1433),所以SQL Server Resolution服务操作监听在UDP 1434端口,提供一种使客户端查询适当的网络末端用于特殊的SQL服务实例的途径。
当SQL Server Resolution服务在UDP 1434端口接收到第一个字节设置为0x04的UDP包时,SQL监视线程会获取UDP包中的数据并使用此用户提供的信息来尝试打开注册表中的某一键值,如发送\x04\x41\x41\x41\x41类似的UDP包,SQL服务程序就会打开如下注册表键:
HKLM\Software\Microsoft\Microsoft SQL Server\AAAA\MSSQLServer\CurrentVersion
攻击者可以通过在这个UDP包后追加大量字符串数据,当尝试打开这个字符串相对应的键值时,会发生基于栈的缓冲区溢出,通过包含"jmp esp"或者"call esp"指令的地址覆盖栈中保存的返回地址,可导致以SQL Server进程的权限在系统中执行任意指令。
<*来源:NGSSoftware Insight Security Research (nisr@nextgenss.com)
链接:http://archives.neohapsis.com/archives/bugtraq/2002-07/0291.html
http://www.microsoft.com/technet/security/bulletin/MS02-039.asp
http://www.ngssoftware.com/advisories/mssql-udp.txt
*>
建议:
--------------------------------------------------------------------------------
临时解决方法:
如果您不能立刻安装补丁或者升级,NSFOCUS建议您采取以下措施以降低威胁:
* 在边界防火墙、网关设备或者SQL Server主机上限制对UDP/1434端口的访问。由于UDP报文的源地址很容易伪造,所以不能简单地限制只允许可信IP访问。
厂商补丁:
Microsoft
---------
Microsoft已经为此发布了一个安全公告(MS02-039)以及相应补丁:
MS02-039:Buffer Overruns in SQL Server 2000 Resolution Service Could Enable Code Execution (Q323875)
链接:http://www.microsoft.com/technet/security/bulletin/MS02-039.asp
补丁下载:
* Microsoft SQL Server 2000:
http://www.microsoft.com/Downloads/Release.asp?ReleaseID=40602
参考:
=======
http://www.nsfocus.net/index.php?act=sec_bug&do=view&bug_id=3148
http://www.microsoft.com/technet/security/bulletin/MS02-039.asp
http://archives.neohapsis.com/archives/bugtraq/2002-07/0291.html
http://www.microsoft.com/technet/security/bulletin/MS02-039.asp
http://www.ngssoftware.com/advisories/mssql-udp.txt
声 明
==========
本安全公告仅用来描述可能存在的安全问题,中联绿盟信息技术(北京)有限公司不为此安全公告提供任何保证或承诺。由于传播、利用此安全公告所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,中联绿盟信息技术(北京)有限公司以及安全公告作者不为此承担任何责任。中联绿盟信息技术(北京)有限公司拥有对此安全公告的修改和解释权。如欲转载或传播此安全公告,必须保证此安全公告的完整性,包括版权声明等全部内容。未经中联绿盟信息技术(北京)有限公司允许,不得任意修改或者增减此安全公告内容,不得以任何方式将其用于商业目的。
|