扫描 SQL Server 是否存在漏洞

适用于计算机上 SQL Server 的 Microsoft Defender 会扩展对 Azure 原生 SQL Server 的保护以完全支持混合环境,并保护在 Azure、其他云环境,甚至本地计算机上托管的 SQL Server(所有受支持的版本):

集成式漏洞评估扫描程序可发现、跟踪并帮助你修正潜在的数据库漏洞。 评估扫描结果会概述 SQL 计算机的安全状态以及任何安全发现结果的详细信息。

注意

  • 扫描是轻量级且安全的,每个数据库只需几秒钟即可运行,并且完全是只读的。 此功能不会对数据库做出任何更改。
  • 要使某些漏洞评估规则正确运行,需要对以下存储过程执行权限:xp_instance_regread、sysmail_help_profile_sp。

浏览漏洞评估报告

漏洞评估服务每 12 小时扫描数据库一次。

漏洞评估仪表板会概述对所有数据库的评估结果、正常和不正常数据库的摘要,以及根据风险分布失败的检查的总体摘要。

可以直接从 Defender for Cloud 查看漏洞评估结果。

  1. 在 Defender for Cloud 的边栏中,打开“建议”页。

  2. 选择计算机上的 SQL 服务器应已解决漏洞发现建议。 有关详细信息,请参阅 Defender for Cloud 建议参考页

    计算机上的 SQL Server 应已解决漏洞结果

    此时显示此建议的详细视图。

    建议详细信息页的屏幕截图。

  3. 如需更多详细信息,请向下钻取:

    • 如需已扫描资源(数据库)的概述和已测试的安全检查列表,请打开“受影响的资源”并选择相关服务器。

    • 如需按特定 SQL 数据库分组的漏洞的概述,请选择相关数据库。

    在每个视图中,安全检查按照严重性排序。 选择特定安全检查以查看详细信息窗格,其中包含说明、修正方法以及“影响”或“基准”等其他相关信息 。

设置基线

在查看评估结果时,可将结果标记为环境中可接受的基线。 基线其实就是自定义结果的报告方式。 与基线匹配的结果被视为通过后续扫描。 建立基线安全状态后,漏洞评估扫描器仅报告与基线的偏差。 这样,你可以专注于处理相关问题。

在查看评估结果时,可将结果标记为环境中可接受的基线。

导出结果

使用 Microsoft Defender for Cloud 的连续导出功能,将漏洞评估结果导出到 Azure 事件中心或 Log Analytics 工作区。

在交互式图形报告中查看漏洞

Defender for Cloud 的集成式 Azure Monitor 工作簿库包括一份交互式报告,其中包含漏洞扫描程序在计算机、容器注册表中的容器和 SQL Server 中检测到的所有结果。

每个扫描程序的结果在单独的建议中报告:

“漏洞评估结果”报告收集所有这些结果,并按严重性、资源类型和类别对其进行组织。 可以在 Defender for Cloud 边栏中的工作簿库找到该报告。

Defender for Cloud 的漏洞评估结果报告

禁用特定结果

如果组织需要忽略发现结果,而不是修正漏洞,则可以选择禁用发现结果。 禁用发现结果不会影响安全分数,也不会产生有害的噪音。

当发现结果与在禁用规则中定义的条件相匹配时,它不会显示在发现结果列表中。 典型方案包括:

  • 禁用严重性低于中等的结果
  • 禁用不可修补的发现结果
  • 禁用与定义的范围无关的基准的发现结果

重要

若要禁用特定发现结果,你需要拥有在 Azure Policy 中编辑策略的权限。 若要了解详细信息,请参阅 Azure Policy 中的 Azure RBAC 权限

若要创建规则,请执行以下操作:

  1. 计算机上的 SQL 服务器应已解决漏洞发现的建议详细信息页中,选择“禁用规则”。

  2. 选择相关范围。

  3. 定义你的条件。 可以使用以下任一条件:

    • 发现结果 ID
    • 严重性
    • 基准

    针对在计算机中的 SQL Server 上检测到的漏洞评估结果创建禁用规则。

  4. 选择“应用规则”。 更改最多可能需要 24 小时才能生效。

  5. 若要查看、替代或删除规则,请执行以下操作:

    1. 选择“禁用规则”。

    2. 在范围列表中,具有有效规则的订阅显示为“已应用规则”。

      显示如何在 Defender for Cloud 门户中修改或删除现有规则的屏幕截图。

    3. 若要查看或删除规则,请选择省略号菜单(“...”)。

以编程方式管理漏洞评估

使用 Azure PowerShell

可以使用 Azure PowerShell cmdlet 以编程方式管理漏洞评估。 受支持的 cmdlet 如下:

Cmdlet 名称(链接) 说明
Add-AzSecuritySqlVulnerabilityAssessmentBaseline 添加 SQL 漏洞评估基线。
Get-AzSecuritySqlVulnerabilityAssessmentBaseline 获取 SQL 漏洞评估基线。
Get-AzSecuritySqlVulnerabilityAssessmentScanResult 获取 SQL 漏洞评估扫描结果。
Get-AzSecuritySqlVulnerabilityAssessmentScanRecord 获取 SQL 漏洞评估扫描记录。
Remove-AzSecuritySqlVulnerabilityAssessmentBaseline 删除 SQL 漏洞评估基线。
Set-AzSecuritySqlVulnerabilityAssessmentBaseline 在一个特定的数据库上设置新 SQL 漏洞评估基线会丢弃旧基线(如果存在)。
   

数据驻留

SQL 漏洞评估使用 Defender for Cloud 对 SQL 漏洞评估的建议下的公开可用查询来查询 SQL Server,并存储查询结果。 SQL 漏洞评估数据存储在计算机连接到的 Log Analytics 工作区的位置。 例如,如果用户将 SQL 虚拟机连接到中国北部的 Log Analytics 工作区,则结果会存储在中国北部。 仅当在 Log Analytics 工作区上启用 SQL 漏洞评估解决方案时,才会收集此数据。

还会收集有关连接的计算机的元数据信息。 具体而言:

  • 操作系统名称、类型和版本
  • 计算机完全限定域名 (FQDN)
  • Connected Machine 代理版本
  • UUID (BIOS ID)
  • SQL Server 名称和基础数据库名称

可以通过选择 Log Analytics 工作区位置来指定用于存储 SQL 漏洞评估数据的区域。 Azure 可能会将数据复制到其他区域来提高数据复原能力,但 Azure 不会将数据复制到相应地理位置之外。

注意

更改计算机上的 Defender for SQL 计划的 Log Analytics 工作区将重置扫描结果和基线设置。 如果在 90 天内还原到原始 Log Analytics 工作区,则扫描结果和基线设置将再次可用。

下一步