SA密码为空(NULL)的不安全的SQL服务器容易受到蠕虫攻击(Q313418)
此文信息适应于:
1 Microsoft SQL Server 2000 (all editions)
2 Microsoft SQL Server version 7.0
症状
在互联网上已经发现了一个代号为“Voyager Alpha Force”的蠕虫,
它利用那些系统管理员(SA)密码为空的SQL服务器进行传播。此蠕虫通过扫描SQL的默认端口
1433端口来寻找SQL Server服务器。假如蠕虫发现了一台服务器,它就尝试用空(NULL)SA密码登入那个
SQL Server的默认状态。
假如登录成功,它将把这个无防卫的SQL Server的地址广播到一个互联网中继聊天(IRC)频道上去,
并且尝试从菲律宾的一个FTP站点加载和运行一个可执行文件。作为SA登录入SQL Server
后用户可以获得计算机的管理员权限,并且依赖特定的网络环境,还可以访问其它的计算机。
防范
下面的每一步大体上都将使你的系统更加安全,并且单独任何一种方法都将防止
这种特殊的蠕虫感染你的SQL Server服务器。注意这些步骤是针对任何SQL Server
安装的部分标准安全“最佳策略”。
1. 确保你的SA登录帐号的密码非空。只有你的SA登录帐号没有安全保障的时候蠕虫才会工作。
因此,你应该遵循在SQL Server
联机文档中“系统管理员(SA)登录”主题中的推荐模式,确保固有的SA帐号具有一个强壮的密码,
即使是你自己从不使用SA帐号。
2. 在你的互联网网关或防火墙上屏蔽1433端口和/或指定SQL Server监听一个可选的端口。
3. 假如在你的互联网网关上需要利用1433端口,启动用于防止此端口滥用的流入/流出过滤。
4. 将SQLServer和SQL Server客户端运行在微软的Windows NT帐号下,而不是localsystem。
5. 启动Windows NT验证,启动监听成功和失败的登录,然后停止并重启MSSQLServer服务。
设置你的客户端使用NT验证。
关于如何恢复一台已经被感染的系统的信息,请访问独立的CERT协调中心的网站,网址如下:
恢复一台被感染的UNIX或NT系统的步骤
http://www.cert.org/tech_tips/win-UNIX-system_compromise.html
入侵者检测清单
http://www.cert.org/tech_tips/intruder_detection_checklist.html
包含在此文中的第三方联系信息有助于你发现你需要的技术支持。
这些联系信息经常在不预先通知就改变了。微软无法担保这些第三方联系信息的准确性。
更多信息
重要:这不是SQL Server的bug;这是由一个不安全的系统造成的缺陷。
下来文件暗示蠕虫的存在:
rpcloc32.exe (md5 = 43d29ba076b4fd7952c936dc1737fcb4 )
dnsservice.exe (md5 = 79386a78a03a1665803d8a65c04c8791 )
win32mon.exe (md5 = 4cd44f24bd3d6305df73d8aa16d4caa0 )
另外,下列注册表键值的出现也暗示了此蠕虫的存在:
SOFTWAREMicrosoftWindowsCurrentVersionRunTaskReg
下列注册表键值是关于一个SQL Server的现有键值,并已被蠕虫利用来通过使用TCP/IP
网络库来控制计算机的访问权:
SOFTWAREMicrosoftMSSQLServerClientSuperSocketNetLibProtocolOrder
SOFTWAREMicrosoftMSSQLServerClientConnectToDSQUERY
此蠕虫利用xp_cmdshell扩展存储程序,此程序允许蠕虫执行任何运行SQL Server
服务的帐号有权执行的操作系统命令。
下列微软网页连接提供了关于如何保护你的SQL Server服务器的有关信息:
http://www.microsoft.com/sql/techinfo/administration/2000/security.asp
http://www.microsoft.com/sql/evaluation/features/security.asp