扫描 SQL Server 是否存在漏洞
适用于计算机上 SQL Server 的 Microsoft Defender 会扩展对 Azure 原生 SQL Server 的保护以完全支持混合环境,并保护在 Azure、其他云环境,甚至本地计算机上托管的 SQL Server(所有受支持的版本):
- 虚拟机上的 SQL Server
- 本地 SQL Server:
集成式漏洞评估扫描程序可发现、跟踪并帮助你修正潜在的数据库漏洞。 评估扫描结果会概述 SQL 计算机的安全状态以及任何安全发现结果的详细信息。
注意
- 扫描是轻量级且安全的,每个数据库只需几秒钟即可运行,并且完全是只读的。 此功能不会对数据库做出任何更改。
- 要使某些漏洞评估规则正确运行,需要对以下存储过程执行权限:xp_instance_regread、sysmail_help_profile_sp。
浏览漏洞评估报告
漏洞评估服务每 12 小时扫描数据库一次。
漏洞评估仪表板会概述对所有数据库的评估结果、正常和不正常数据库的摘要,以及根据风险分布失败的检查的总体摘要。
可以直接从 Defender for Cloud 查看漏洞评估结果。
在 Defender for Cloud 的边栏中,打开“建议”页。
选择计算机上的 SQL 服务器应已解决漏洞发现建议。 有关详细信息,请参阅 Defender for Cloud 建议参考页。
此时显示此建议的详细视图。
如需更多详细信息,请向下钻取:
如需已扫描资源(数据库)的概述和已测试的安全检查列表,请打开“受影响的资源”并选择相关服务器。
如需按特定 SQL 数据库分组的漏洞的概述,请选择相关数据库。
在每个视图中,安全检查按照严重性排序。 选择特定安全检查以查看详细信息窗格,其中包含说明、修正方法以及“影响”或“基准”等其他相关信息 。
设置基线
在查看评估结果时,可将结果标记为环境中可接受的基线。 基线其实就是自定义结果的报告方式。 与基线匹配的结果被视为通过后续扫描。 建立基线安全状态后,漏洞评估扫描器仅报告与基线的偏差。 这样,你可以专注于处理相关问题。
导出结果
使用 Microsoft Defender for Cloud 的连续导出功能,将漏洞评估结果导出到 Azure 事件中心或 Log Analytics 工作区。
在交互式图形报告中查看漏洞
Defender for Cloud 的集成式 Azure Monitor 工作簿库包括一份交互式报告,其中包含漏洞扫描程序在计算机、容器注册表中的容器和 SQL Server 中检测到的所有结果。
每个扫描程序的结果在单独的建议中报告:
“漏洞评估结果”报告收集所有这些结果,并按严重性、资源类型和类别对其进行组织。 可以在 Defender for Cloud 边栏中的工作簿库找到该报告。
禁用特定结果
如果组织需要忽略发现结果,而不是修正漏洞,则可以选择禁用发现结果。 禁用发现结果不会影响安全分数,也不会产生有害的噪音。
当发现结果与在禁用规则中定义的条件相匹配时,它不会显示在发现结果列表中。 典型方案包括:
- 禁用严重性低于中等的结果
- 禁用不可修补的发现结果
- 禁用与定义的范围无关的基准的发现结果
重要
若要禁用特定发现结果,你需要拥有在 Azure Policy 中编辑策略的权限。 若要了解详细信息,请参阅 Azure Policy 中的 Azure RBAC 权限。
若要创建规则,请执行以下操作:
在计算机上的 SQL 服务器应已解决漏洞发现的建议详细信息页中,选择“禁用规则”。
选择相关范围。
定义你的条件。 可以使用以下任一条件:
- 发现结果 ID
- 严重性
- 基准
选择“应用规则”。 更改最多可能需要 24 小时才能生效。
若要查看、替代或删除规则,请执行以下操作:
选择“禁用规则”。
在范围列表中,具有有效规则的订阅显示为“已应用规则”。
若要查看或删除规则,请选择省略号菜单(“...”)。
以编程方式管理漏洞评估
使用 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 工作区,则扫描结果和基线设置将再次可用。