|
发布日期:
2002年7月24日
受影响系统:
Microsoft SQL Server 2000 SP2 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 Advanced Server SP3 -Microsoft Windows 2000 Advanced Server SP2 -Microsoft Windows 2000 Advanced Server SP1
详细描述:
2002年7月24日,微软在2002年第39号公告中(MS02-039)公布了SQL Server 2000 的三个安全漏洞,其最严重的后果将会导致攻击者获得机器的控制权。目前大规模爆发的“2003蠕虫王”病毒正是针对Microsoft SQL Server 2000的,利用了Microsoft SQL Server 2000服务远程堆栈缓冲区溢出漏洞。
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进程的权限在系统中执行任意指令。
当SQL Server Resolution服务在UDP 1434端口接收到第一个字节设置为0x08,接着为超长字符串,再追加":"符号和数字的UDP包时,会出现基于堆的缓冲区溢出,攻击者可以通过破坏堆结构而以自己提供的地址覆盖内存中的任意位置,可导致控制进程的执行,精心提交字符串数据可导致以SQL Server进程的权限在系统中执行任意指令。
SQL使用一种keep-alive机制来区别主动和被动的实例,当SQL服务程序在UDP 1434端口接收到单字节为0x0A的UDP包时,会以0x0A应答发送端,但是这种应答只以源IP地址和源端口作为参照信息,攻击者可以伪造发送来自其他SQL服务器的0x0A单字节UDP包给目标SQL服务器,可导致两个SQL服务器进入无限循环的keep-alive包交换中,使的大量系统资源消耗,产生拒绝服务攻击。
解决方案:
建议所有运行Microsoft SQL Server 2000和遭受DoS的用户按照以下解决方法操作: 1.到网址 http://www.microsoft.com/Downloads/Release.asp?ReleaseID=40602 下载微软的漏洞补丁或者安装Microsoft SQL Server 2000 SP3 http://www.microsoft.com/sql/downloads/2000/sp3.asp 。
2.在防火墙或者路由器上阻塞外部对内的和内部对外的UDP/1434端口的访问。
如果由于DoS导致系统反映缓慢,可先断开网络连接,然后在Windows任务管理器里面强行终止进程SqlServr.exe,在做过相应的防范措施以后在SQL Server管理器里面重新启动此服务。
相关链接:
http://www.microsoft.com/technet/treeview/default.asp?url=/technet/security/bulletin/MS02-039.asp
|