东软NETEYE安全公告030126
NETEYE安全小组
https://neteye.neusoft.com
SQL Server 2000 蠕虫紧急公告!
发布日期:2003-01-25
受影响的软件及系统:
====================
MS SQL Server 2000 (SP2及以下版本)
综述:
======
从1月25日开始一种新的利用MS SQL Server 2000漏洞转播的攻击性蠕虫病毒大规模爆发,这种病毒转播的手段和去年的红色代码和NIMUDA病毒非常相似都是利用系统自身的漏洞进行感染后,后台开大线程在网络中以随机的IP地址为目标进行传播,由于大量的UDP包采用随机地址转播给网关设备路由器等造成了负载压力过大,导致众多网络速度减慢直至瘫痪停止响应。
分析:
======
该蠕虫本身非常小,仅仅是一段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包中的数据并使用此用户提供的信息来尝试打开注册表中的某一键值,如发送x04x41x41x41x41类似的UDP包,SQL服务程序就会打开如下注册表键:
HKLMSoftwareMicrosoftMicrosoft SQL ServerAAAAMSSQLServerCurrentVersion
攻击者可以通过在这个UDP包后追加大量字符串数据,当尝试打开这个字符串相对应的键值时,会发生基于栈的缓冲区溢出,通过包含"jmp esp"或者"call esp"指令的地址覆盖栈中保存的返回地址,可导致以SQL Server进程的权限在系统中执行任意指令。
蠕虫溢出成功取得系统控制权后,就开始向随机IP地址发送自身,由于这是一个死循环的过程,发包密度仅和机器性能和网络带宽有关,所以发送的数据量非常大。
该蠕虫对被感染机器本身并没有进行任何恶意破坏行为,也没有向硬盘上写文件。对于感染的系统,重新启动后就可以清除蠕虫,但是仍然会重复感染。由于发送数据包占用了大量系统资源和网络带宽,形成Udp Flood,感染了该蠕虫的网络性能会极度下降。一个百兆网络内只要有一两台机器感染该蠕虫就会导致整个网络访问阻塞。
解决方案:
==========
我们建议所有运行Microsoft SQL Server 2000和近期发现网络访问异常的用户按照以下解决方案操作:
1、定位到被感染的主机
启动网络监视程序(比如IRIS或者是利用我们防火墙和入侵检测内置的SNIFFER也可以),设置一个过滤捕获的条件协议为UDP端口为 1434(由于网络中的数据量非常大所以不设置捕获条件的话没有办法正常分析),然后找到网络中发送目的端口为UDP/1434主机的IP地址,这些主机已经感染了该蠕虫(目前没有发现该病毒伪造源地址所以方便定位,但是不保证未来会有变种病毒伪造源地址的可能UDP协议可以伪造源地址)。
2、立即在防火墙或者路由器上阻塞外部对内和内部对外的UDP/1434端口的访问,这个端口的禁止对原有的SQL SERVER的服务没有直接影响。
如果该步骤实现有困难可使用系统上的TCP-IP筛选来阻塞对本机UDP/1434端口的访问。
3、重新启动所有被感染机器,可以将该病毒暂时消除,该病毒目前不对系统文件进行破坏转播的手段也很单一就是利用UDP的协议发送数据包,没有其他方式比如利用邮件方式转播等。
4、为被感染机器安装最新的Microsoft SQL Server 2000 Service Pack:
建议立即安装最新的SQL SERVER2000的补丁工具包Microsoft SQL Server 2000 SP3可以到下面地址下载该补丁程序(http://www.microsoft.com/sql/downloads/2000/sp3.asp )。
或者至少应该下载针对该漏洞的热修复补丁:
http://www.microsoft.com/technet/treeview/default.asp?url=/technet/security/bulletin/MS02-039.asp
注:上述步骤仅供参考。
附录:
======
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包中的数据并使用此用户提供的信息来尝试打开注册表中的某一键值,如发送x04x41x41x41x41类似的UDP包,SQL服务程序就会打开如下注册表键:
HKLMSoftwareMicrosoftMicrosoft SQL ServerAAAAMSSQLServerCurrentVersion
攻击者可以通过在这个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
*>
建议:
--------------------------------------------------------------------------------
临时解决方法:
如果您不能立刻安装补丁或者升级,建议您采取以下措施以降低威胁:
* 在边界防火墙、网关设备或者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