微软发布累积补丁包(Q316333),不仅包括以前 SQL Server 2000 所有补丁,还包括了最近被发现的影响SQL Server 2000 和 MSDE 2000 的两个缺陷。这两个缺陷都允许攻击者在目标服务器上执行任意代码或指令。 - 在several Database Consistency Checkers (DBCC)中存在一个缓冲溢出缺陷。DBCC(数据库一致性检查)是 SQL Server 2000 自带的一个命令控制程序,它提供了一些命令用于检查数据库的逻辑和物理一致性。提供的这些命令大部分只能被 sysadmin 使用,一些可供db_owner 和 db_ddladmin 使用。但是攻击者可利用DBCC存在的这个缓冲溢出缺陷,在SQL Server 服务的context中运行任意代码,从而获得对服务器上所有数据库的完全控制权限。 - 在数据库复制的两个存储进程中存在SQL injection 漏洞。其中一个存储进程仅能被 db_owner 运行,另外一个因为权限配置错误,能被任何可交互登陆到服务器上的用户使用。攻击者如果成功利用此缺陷的话,将能在服务器上运行操作系统命令。但是这将受到另外许多权限问题的限制。 用户如果注意以下几点将能控制这个缺陷产生的影响: ---------------------------------------------------------------------- 在DBCC(数据库一致性检查)中的缓冲溢出缺陷: - 除 sysadmin 外,只有 db_owner 和 db_ddladmin 能有使用DBCC提供的命令的权限,因此不要将 db_owner 和 db_ddladmin 这个角色赋予不信任用户; - 这个缺陷允许攻击者去提升自己的权限,但是如果SQL被作为一个 normal domain account 来安装的话,将能把这种权限的提升限制到最小。 ---------------------------------------------------------------------- 数据库复制的两个存储进程中存在SQL injection 漏洞: - 攻击者要想利用此缺陷至少必须能够交互式登陆到服务器上去。但是最好的还是不要给不信任用户这样的权限; - 如果仅能简单地运行受影响的存储进程,攻击者是无法利用此缺陷的。只有在管理员将代理服务器帐号击活的前提下才能利用此缺陷,而且在缺省情况下,这个帐号是被禁止的。 - 即使代理服务器帐号被击活了,也只有攻击者同时是一个域用户(domain user)才能利用此缺陷进行攻击。 受影响软件: Microsoft SQL Server 2000, Microsoft Desktop Engine(MSDE) 2000 风险等级: ============ - Internet systems: 中等 - Intranet systems: 中等 - Client systems: 没有 解决方案: CNNS 建议用户立即下载补丁: SQL Server 2000: http://support.microsoft.com/support/misc/kblookup.asp?id=Q316333 附加信息: MS02-038 / Q316333 CAN-2002-0085 相关站点: http://www.microsoft.com/technet/security/bulletin/MS02-038.asp