安全公告

Microsoft 安全公告 MS02-043 - 中等

SQL Server 累积修补(Q316333)

发布时间: 2002 年 8 月 14 日 |更新时间:2003 年 2 月 28 日

版本: 1.2

最初发布: 2002 年 8 月 14 日

更新时间: 2003 年 2 月 28 日

总结

谁应阅读此公告: 使用 Microsoft® SQL Server™ 7.0 和 2000 和 Microsoft 桌面引擎 1.0 和 2000 的系统管理员。

漏洞的影响: 特权提升。

最大严重性分级: 中等

建议: 系统管理员应将修补程序应用于受影响的系统。

注意: 此公告发布的修补程序在保护 SQL Server 2000 和 MSDE 2000 免受“SQL 大满贯”蠕虫病毒方面有效。 但是,此修补程序已被 MS02-061 发布的修补程序取代,该修补程序包含这些产品中其他安全漏洞的修补程序。 Microsoft 建议 SQL 2000 和 MSDE 2000 客户应用 MS02-061 中的修补程序。

受影响的软件:

  • Microsoft SQL Server 7.0
  • Microsoft 桌面引擎 (MSDE) 1.0
  • Microsoft SQL Server 2000
  • Microsoft 桌面引擎 (MSDE) 2000

常规信息

技术详细信息

技术说明:

此安全修补程序不包含 Microsoft 知识库文章 317748 的修补程序,这是确保 SQL Server 2000 和 MSDE 2000 正常运行所必需的。 如果在应用 Microsoft 知识修补程序文章 317748之前将此安全修补程序应用到 SQL Server 2000 或 MSDE 2000 安装,则必须在系统提示覆盖文件时回答“否”,以确保不会覆盖安全修补程序中的文件。

这是一个累积修补程序,其中包括 SQL Server 7.0 和 SQL Server 2000 的所有以前发布的修补程序的功能。 此外,它消除了新发现的漏洞。

SQL Server 7.0 和 SQL Server 2000 提供扩展存储过程,这些存储过程是用 C 或 C# 等编程语言编写的外部例程。 这些过程向用户显示为普通存储过程,可以像普通存储过程一样调用和执行。 默认情况下,SQL Server 7.0 和 SQL Server 2000 附带许多扩展存储过程,这些存储过程用于各种帮助程序函数。

某些 Microsoft 提供的扩展存储过程能够重新连接到数据库,因为 SQL Server 服务帐户有一个共同点的缺陷,即他们具有弱权限,可以允许非特权用户执行这些存储过程。 由于这些扩展存储过程可以使用对数据库的管理员权限运行,因此,非特权用户可以使用管理员权限在数据库上运行存储过程。

攻击者可以通过以下两种方式之一利用此漏洞。 攻击者可能会尝试加载和执行调用受影响扩展存储过程之一的数据库查询。 或者,如果网站或其他数据库前端配置为访问和处理任意查询,攻击者可能提供输入,导致查询调用其中一个函数,并具有适当格式的参数。

缓解因素:

  • 利用漏洞的影响取决于 SQL Server 服务的特定配置。 可以将 SQL Server 配置为在管理员选择的安全上下文中运行。 默认情况下,此上下文是域用户。 如果遵循了最低特权规则,则会最大程度地减少攻击者可能实现的损害量。
  • 遵循最佳做法可能会阻止利用此漏洞的向量。 具体而言,不受信任的用户不应能够在数据库服务器上加载和执行其选择的查询。 此外,可公开访问的数据库查询应在处理之前筛选所有输入。

严重性分级:

Internet 服务器 Intranet 服务器 客户端系统
SQL Server 7.0(包括 MSDE 1.0) 适中 适中 适中
SQL Server 2000(包括 MSDE 2000) 适中 适中 适中

上述 评估 基于受漏洞影响的系统类型、其典型部署模式以及利用漏洞对它们的影响。 虽然漏洞可用于以管理员身份运行存储过程,但遵循最佳做法并限制提交查询的能力可大大缓解此漏洞的暴露。

漏洞标识符:CAN-2002-0721

测试的版本:

Microsoft 测试了 SQL Server 7.0 和 SQL Server 2000,以评估它们是否受此漏洞的影响。 以前的版本不再受支持,可能或可能不会受到此漏洞的影响。 虽然该漏洞可能会使攻击者成为攻击者,而该漏洞可能允许攻击者在服务器上运行代码,但最佳做法应限制利用漏洞的能力,以及成功攻击可能实现的损害。

常见问题解答

将此修补程序与317748讨论的修补程序一起安装此修补程序的正确顺序是什么?
此安全修补程序不包含知识库文章 317748 的修补程序,这是确保 SQL Server 2000 和 MSDE 2000 正常运行所必需的。 安装的正确顺序是安装317748修补程序,然后安装此安全修补程序。 如果在应用知识修补程序文章 317748之前将此安全修补程序应用到 SQL Server 2000 或 MSDE 2000 安装,则必须在系统提示覆盖文件时回答“否”,以确保不会覆盖安全修补程序中的文件。

如何实现 检查已安装此安全修补程序?
应验证应用修补程序的实例的 \MSSQL\BINN 文件夹中ssnetlib.dll的版本为:2000.80.636.0 如果 \MSSSQL\BINN 文件夹中的 ssnetlib.dll版本小于 2000.80.636.0,则需要重新应用安全修补程序。 但是,Microsoft 建议应用 MS02-061 中所述的最新安全修补程序,因为这包含这些产品中其他安全漏洞的修补程序。

此修补程序消除了哪些漏洞?
这是 特权提升 漏洞。 它发生在 Microsoft 提供的一些扩展存储过程中。 在受影响的扩展存储过程之一中成功利用此漏洞的攻击者可以显著控制数据库和服务器本身。 在最坏的情况下,攻击者可以在数据库中添加、更改或删除数据,并可能能够重新配置操作系统、安装新软件或重新格式化硬盘驱动器。 但是,如果遵循最佳做法,此漏洞的范围将显著减少。 具体而言:

  • 可以将 SQL Server 配置为根据最低特权规则在安全上下文中运行。 默认情况下,SQL Server 在域用户的安全上下文中运行,该上下文在服务器上具有非常有限的特权。 如果已执行此操作,则会在成功攻击时限制攻击者可能针对操作系统采取的潜在操作的效果。
  • 除了成功利用此漏洞外,攻击者还需要能够在服务器上加载和运行其构造的查询,或者能够将他们选择的信息传递到系统上的现有查询中。 最佳做法建议针对这两种做法。

导致漏洞的原因是什么?
此漏洞是由于某些扩展存储过程的权限薄弱,这些存储过程能够使用 SQL Server 重新连接到数据库。

什么是 SQL Server 扩展存储过程?
扩展存储过程使数据库设计人员和管理员能够使用 C 或 C# 等编程语言创建自己的自定义外部例程。 出于所有意向和目的,扩展存储过程显示为普通存储过程,以相同的方式执行。 数据库查询可以将数据传递给扩展存储过程,这些存储过程可以返回结果和返回状态。 例如,在 SQL Server 附带的标准扩展存储过程中,提供电子邮件函数。 例如:

  • xp_startmail,启动 SQL Mail 客户端会话,以及
  • xp_sendmail,用于发送电子邮件或页面。

当你说这些扩展存储过程可以重新连接到 SQL Server 即服务帐户时,你意味着什么?
通常(有一些例外),扩展存储过程在服务帐户 SQL Server 的安全上下文中运行, 运行方式。 例如,如果具有有限权限的用户运行扩展存储过程,则会使用与服务帐户相同的权限运行。 可以通过将精心制作的输入作为参数传递给存储的 procs,使其中一些扩展存储的 procs 能够连接到 SQL Server。 此时,扩展存储过程针对数据库执行的任何操作都位于 SQL Server 服务帐户的上下文中,该帐户可能对数据库具有很高的特权。

扩展存储过程有什么问题?
Microsoft 提供的一些扩展存储过程对其具有不适当的弱权限。 因此,非特权用户可以加载和执行这些扩展存储过程。

此漏洞使攻击者能够执行哪些操作?
此漏洞可能使攻击者能够对 SQL Server 进行管理控制。 因此,攻击者可能会对管理员可以采取的数据库执行任何操作。 此外,根据数据库服务器的配置,攻击者还可以对 SQL Server 能够采取的操作系统采取措施。

攻击者如何利用此漏洞?
攻击者尝试利用此漏洞有多种方法。 最直接的攻击途径是攻击者构造调用受影响扩展存储过程的查询。 但是,若要成功执行此操作,必须将服务器配置为允许不受信任的用户加载和执行其选择的查询。 最佳做法强烈建议不允许不受信任的用户加载和运行其构造的查询。

攻击者是否尝试利用此漏洞的任何其他方法?
如果攻击者无法使用系统上已存在的查询,则无法直接加载和执行查询的攻击者仍能够利用漏洞。 例如,如果数据库是基于 Web 的搜索工具的一部分,并且该网站调用了其中一个过程,攻击者可能会尝试构造一个会利用此漏洞的查询。 但是,构建这样的查询需要攻击者对网站搜索功能内部有深入了解。 但是,如果网站在没有正确检查输入的情况下实现了基于 Web 的查询,攻击者可能会嵌入数据库命令,包括对数据库查询参数中受影响的函数的调用。 这显示了在将输入参数传递给数据库服务器进行处理之前验证输入参数的重要性。

修补程序的作用是什么?
修补程序通过在问题中设置扩展存储过程的权限来解决漏洞,以便只有管理员可以调用它们。

修补程序可用性

下载此修补程序的位置

有关此修补程序的其他信息

安装平台:

包含在将来的 Service Pack 中: 此问题的修补程序将包含在 SQL Server 2000 Service Pack 3 中。

需要重新启动: 否。 应用修补程序后,只需重启 SQL Server 服务。

可以卸载修补程序: 是的。 描述安装说明的readme.txt还包含有关删除修补程序的说明。

取代的修补程序:

SQL Server 7.0 和 MSDE 1.0:

  • 此修补程序取代了 Microsoft 安全公告 MS02-020 中提供的修补程序,这是一个累积修补程序。

SQL Server 2000 和 MSDE 2000:

验证修补程序安装:

SQL Server 7.0:

SQL Server 2000:

注意:

  • 此修补程序不包括 Microsoft 安全公告 MS02-035 中提供的 Killpwd 工具的功能。
  • 该修补程序不会取代 SQL Server 2000 下 MDAC 或 OLAP 之前发布的任何修补程序。 在撰写本文时,这些修补程序包括以下文章中讨论的修补程序:
  • 安装修补程序的过程因服务器的特定配置而异。 系统管理员应确保他们读取修补程序包中的Readme.txt文件,以确保正确安装修补程序。

本地化

此修补程序的本地化版本在“修补程序可用性”中讨论的位置可用。

获取其他安全修补程序:

可从以下位置获取其他安全问题的修补程序:

  • 安全修补程序可从 Microsoft 下载中心获取,可通过执行关键字 (keyword)搜索“security_patch”来轻松找到。
  • WindowsUpdate 网站提供了使用者平台的修补程序

其他信息:

确认

Microsoft 感谢 Microsoft https://www.microsoft.com/technet/security/bulletin/policy.mspx以下人员与我们合作来保护客户:

  • 下一代安全软件有限公司大卫·利奇菲尔德报告这些问题。
  • www.sqlsecurity.com 和蒂莫西·马伦的芯片安德鲁斯报告了有关这些问题的其他信息。

支持

  • Microsoft 知识库文章Q327068和Q316333讨论此问题,将在发布此公告大约 24 小时后提供。 可以在 Microsoft Online 支持网站上找到知识库文章。
  • Microsoft 产品支持服务提供技术支持。 与安全修补程序关联的支持调用不收取任何费用。

安全资源:Microsoft TechNet 安全网站提供有关 Microsoft 产品安全性的其他信息。

免责声明

Microsoft 知识库中提供的信息“按原样”提供,不提供任何形式的担保。 Microsoft 不明确或暗示所有保证,包括适销性和针对特定用途的适用性和适用性的保证。 在任何情况下,Microsoft Corporation 或其供应商都应对任何损害负责,包括直接、间接、附带、后果性、业务利润损失或特殊损害,即使 Microsoft Corporation 或其供应商被告知存在此类损害的可能性。 某些州不允许排除或限制后果性或附带性损害的责任,因此上述限制可能不适用。

修改:

  • V1.0(2002 年 8 月 14 日):公告已创建。
  • V1.1(2003 年 1 月 31 日):已更新为 MS02-061 取代建议,并在修补程序317748与此安全修补程序一起应用时阐明安装顺序。
  • V1.2(2003 年 2 月 28 日):更新了“有关此修补程序的其他信息”部分。

构建于 2014-04-18T13:49:36Z-07:00</https:>