SQL Server 的漏洞评估

适用于:SQL Server

SQL 漏洞评估是一款易于使用的工具,有助于发现、跟踪和修正可能存在的数据库漏洞。 可以使用此工具积极提升数据库安全性。

注意

SQL Server Management Studio (SSMS) 的 19.1 以下版本提供了漏洞评估工具,适用于 SQL Server 2012 (11.x) 和更高版本。

在 SQL Server Management Studio 19.1 版本中删除了 SQL 漏洞评估

SSMS 中的 SQL 漏洞评估提供了一种方法,能够以断开连接的方式扫描和报告 SQL Server 数据库上可能存在的安全配置错误,可在 SQL Server 2012 (11.x) 和更高版本上使用。 此功能合并到名为 Microsoft Defender for SQL 的全面数据库安全包中,该安全包允许你执行漏洞评估扫描,并横跨云和本地资源,大规模地识别对数据库的实时攻击。 Defender for SQL 为客户提供了最新更新,可以扫描规则和更新的威胁防护算法。

相反,SSMS 中的 SQL 漏洞评估不会使用 Defender for Cloud 的结果,也无法上传本地扫描的结果。 此外,SSMS 上的 SQL 漏洞评估不会实时接收更新,与 Defender for Cloud 的更新结果相比,这可能会导致不一致。 为了防止客户数据库安全体验的进一步混乱和不一致,我们从 19.1 版本开始,将 SQL 漏洞评估从 SSMS 删除。 尽管 SQL 漏洞评估在较旧的 SSMS 版本中仍然可用,但建议使用 Microsoft Defender for SQL 评估环境的安全配置,而不考虑 SSMS 或 SQL 版本。

有关详细信息,请参阅在计算机上启用适用于 SQL Server 的 Microsoft Defender扫描 SQL Server 是否存在漏洞

对于 Azure SQL 数据库、Azure Synapse Analytics 和 SQL 托管实例,请使用适用于 SQL 数据库的 Microsoft Defender

漏洞评估功能

SQL 漏洞评估 (VA) 服务可便于用户随时了解安全状态,并提供可操作步骤,指导用户如何解决安全问题,并提升数据库安全性。 此工具有助于:

  • 满足必须生成数据库扫描报告的合规性要求
  • 满足数据隐私标准
  • 监视变化难以跟踪的动态数据库环境

VA 服务直接对数据库运行扫描。 此服务采用规则知识库,可标记安全漏洞,并突出显示不符合最佳做法的情况(如配置错误、权限过多和敏感数据不受保护)。 这些规则以 Microsoft 推荐的最佳做法为依据,重点关注对数据库及其宝贵数据构成最大风险的安全问题。 这些规则还体现了各个监管机构提出的许多要求,旨在满足它们的符合性标准。

扫描结果包括旨在解决每个问题的可操作步骤,并提供自定义修正脚本(若适用)。 设置权限配置、功能配置和数据库设置可接受的基准,以此针对环境自定义评估报告。

先决条件

此功能仅适用于 SQL Server Management Studio (SSMS) v17.4 或更高版本。 可以在此处找到最新版本。

开始使用

若要对数据库运行漏洞扫描,请执行以下步骤:

  1. 打开 SQL Server Management Studio

  2. 连接 SQL Server 数据库引擎实例或 localhost。

  3. 展开“数据库”,右键单击一个数据库,指向“任务”,选择“漏洞评估”,再选择“扫描漏洞…”

  4. 可以扫描系统数据库之一,通过运行扫描来检查是否有服务器级问题。 展开系统数据库,右键单击 master 数据库,指向任务,选择漏洞评估,然后选择扫描漏洞...

Screenshot showing how to get started.

教程

若要对数据库运行和管理漏洞评估,请按照以下步骤操作。

1. 运行扫描

在“扫描漏洞”对话框中,可以指定扫描结果的保存位置。 可以保留默认位置,或单击“浏览...”将扫描结果保存到其他位置

准备好扫描后,选择“确定”以扫描数据库,检查是否有漏洞

注意

扫描是轻型的安全功能。 只需几秒即可运行,且为完全只读。 此功能不会对数据库做出任何更改。

Screenshot showing how to save a scan file.

2. 查看报表。

扫描完成后,扫描报告会自动显示在主 SSMS 窗格中。 报告概述了安全状态、发现的问题数及其各自的严重性。 结果包括未遵循最佳做法的警告,以及安全相关设置的快照。 这些设置包括数据库主体和角色,以及相关的权限。 扫描报告还映射了在数据库中发现的敏感数据,并建议了可用于保护这些数据的内置方法。

Screenshot showing scan results.

3. 分析结果并解决问题

查看结果并确定报告中发现的哪些问题是环境中真正存在的安全问题。 深入查看每个失败的结果,以了解该发现的影响,以及每个安全检查失败的原因。 使用报告提供的可操作修正信息来解决问题。

Screenshot showing results details.

4. 设置基线

在查看评估结果时,可将特定结果标记为环境中可接受的基线。 基线其实就是自定义结果的报告方式。 与基线匹配的结果被视为通过后续扫描。

建立基线安全状态后,VA 就只会报告偏离基线的问题,这样便可以重点关注相关问题。

Screenshot showing how to set a baseline.

5. 运行新扫描以查看自定义跟踪报告。

完成规则基线设置后,运行新的扫描以查看自定义报告。 VA 现在只报告偏离获准的基线状态的安全问题。

Screenshot showing pass per baseline.

6. 打开之前运行的扫描

可以随时打开现有扫描,查看之前运行的漏洞评估的结果。 为此,请右键单击数据库,指向“任务”,选择“漏洞评估”,再选择“打开现有扫描…”。选择要查看的扫描结果文件,再选择“打开”

也可以通过“文件”->“打开”菜单,打开现有扫描结果。 选择“漏洞评估……”,再打开“扫描”目录,查找要查看的扫描结果

Screenshot showing how to open an existing scan.

至此,可以使用 VA 监视数据库的安全性是否一直很高,并且是否符合组织策略。 如果要求必须有符合性报告,VA 报告有助于推动执行符合性流程。

使用 PowerShell 管理漏洞评估

可使用 PowerShell cmdlet,以编程方式管理 SQL Server 实例的漏洞评估。 可使用 cmdlet 以编程方式运行评估,导出结果和管理基线。 若要开始使用,请从 PowerShell 库网站下载最新的 SqlServer PowerShell 模块。 可在此处了解详细信息。

后续步骤