利用微软SQL Server数据库管理员(SA)口令为空的攻击活动猖獗

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帐号。

  1. 在你的互联网网关或防火墙上屏蔽1433端口和/或指定SQL Server监听一个可选的端口。

  2. 假如在你的互联网网关上需要利用1433端口,启动用于防止此端口滥用的流入/流出过滤。

  3. 将SQLServer和SQL Server客户端运行在微软的Windows NT帐号下,而不是localsystem。

  4. 启动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 )

另外,下列注册表键值的出现也暗示了此蠕虫的存在:

SOFTWARE\Microsoft\Windows\CurrentVersion\Run\TaskReg

下列注册表键值是关于一个SQL Server的现有键值,并已被蠕虫利用来

通过使用TCP/IP 网络库来控制计算机的访问权:

SOFTWARE\Microsoft\MSSQLServer\Client\SuperSocketNetLib\

ProtocolOrder

SOFTWARE\Microsoft\MSSQLServer\Client\ConnectTo\DSQUERY

此蠕虫利用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

相关推荐
大模型玩家七七20 分钟前
安全对齐不是消灭风险,而是重新分配风险
android·java·数据库·人工智能·深度学习·安全
李少兄21 分钟前
MySQL 中为时间字段设置默认当前时间
android·数据库·mysql
码海踏浪30 分钟前
从简单到专业在OceanBase中查看SQL是否走索引
数据库·sql·oceanbase
qinyia31 分钟前
**使用AI助手在智慧运维中快速定位并修复服务异常:以Nginx配置错误导致502错误为例**
linux·运维·服务器·数据库·mysql·nginx·自动化
熊文豪37 分钟前
关系数据库替换用金仓——Oracle兼容性深度解析
数据库·oracle·金仓数据库·电科金仓·kes
eWidget43 分钟前
面向Oracle生态的国产高兼容数据库解决方案
数据库·oracle·kingbase·数据库平替用金仓·金仓数据库
A懿轩A1 小时前
【MySQL 数据库】MySQL 数据库核心概念详解:库、表、字段、主键与关系型模型一文读懂
数据库·mysql·oracle
盒马coding1 小时前
postgreSQL中调整Checkpoint的重要性
数据库·mysql·postgresql
怣501 小时前
MySQL多表连接完全指南:内连接与外连接(零基础入门版)
数据库·mysql
爱吃山竹的大肚肚1 小时前
文件上传大小超过服务器限制
java·数据库·spring boot·mysql·spring