受影响的软件: Microsoft SQL Server 7.0
Microsoft Data Engine (MSDE) 1.0
Microsoft SQL Server 2000
Microsoft Desktop Engine (MSDE) 2000
版本:如上所列
这是什么? 微软安全快速反应中心已经发布的微软安全公告 MS02-056,内容关于SQL Server的薄弱环节. 建议客户仔细阅读我们的公告。如果可以运行的话,对运行环境进行测试、并应用这个补丁。
薄弱环节: 本公告共涉及四个薄弱环节,其中最严重的可能使攻击者有机会控制受影响的服务器。
技术细节: 本公告所提供的补丁包含了以前所有针对SQL Server 7.0, SQL Server 2000, Microsoft Data Engine (MSDE) 1.0 以及Microsoft Desktop Engine (MSDE) 2000的补丁。除此之外,该补丁还解决了最新发现的四个薄弱环节:
第一个薄弱环节与用户验证有关。由于在SQL Server 2000以及 MSDE 2000的用户认证代码中存在缓冲区溢出的问题,因而攻击者可以通过发送一个特殊的登录请求造成服务器停机或获得在服务器上覆盖内存的能力,从而进一步导致攻击者可能在服务器上运行自己的代码。利用该薄弱环节时,攻击者无需通过身份检验,也无须向服务器直接发送命令。
第二个因缓冲区溢出而导致的薄弱环节出现在SQL Server 7.0和SQL Server 2000的一个Database Console Commands (DBCCs) 中。在最坏情况下,该薄弱环节使攻击者能够在SQL Server服务器进程中运行自己的代码,进而能够控制受到攻击的服务器上的所有数据库。
第三个薄弱环节与SQL Server 7.0 及SQL Server 2000中的scheduled jobs有关。SQL Server允许未授权用户创建scheduled jobs并交由SQL Server Agent执行。根据SQL Server的设计,SQL Server Agent在执行时使用的是发出请求的用户的身份,但当SQL Server Agent所执行的一个任务是创建一个文件时,它将使用自己的身份而非任务的所有者的身份。因此,一个未授权用户能够利用这个薄弱环节来覆盖系统文件致使是系统崩溃,或者在其scheduled job中创建一个包含一系列系统指令的文件,并将其放在另一个用户的Startup目录中(这样,当另一个用户登录时,这些指令就会被运行而造成破坏)。
本公告所提供的补丁还能够防止SQL Server中的非管理员用户在非SQL OLEDB的数据源上随意运行查询。虽然用户的这种操作目前并未导致薄弱环节产生,但是更新后的系统能够更有效地防止服务器中有问题的数据驱动程序被滥用。
如何防止: SQL Server 2000用户认证程序中的薄弱环节:
该薄弱环节只和SQL Server 2000和MSDE 2000有关。SQL Server 7.0和MSDE 1.0不会受到影响。对于处在Internet环境中的服务器来说,如果防火墙关闭了1433端口(即SQL Server的端口),该薄弱环节就不会受到来自Internet的攻击。该薄弱环节使得攻击者有机会获得SQL Server服务进程所用账号的权限,但是默认情况下,该服务进程以域用户的身份运行(而不是系统管理员身份,因而可以防止进一步的损失)。
Database Console Commands中的薄弱环节:
与上一个薄弱环节类似,该薄弱环节使得攻击者有机会获得SQL Server服务进程所用账号的权限,但是默认情况下,该服务进程以域用户的身份运行(而不是系统管理员身份,因而可以防止进一步的损失)。对于这个薄弱环节来说,攻击者必须先通过SQL Server的身份验证或者获得直接在服务器上执行查询的权限,才有可能实施对该薄弱环节的攻击。
对于这个薄弱环节来说,攻击者必须先通过SQL Server的身份验证才有可能实施进一步的操作。