了解 Get-SpeculationControlSettings PowerShell 脚本输出

摘要

为了帮助客户验证推理执行侧信道缓解措施的状态,Microsoft 已发布了一个 PowerShell 脚本,客户可以在自己的系统上运行该脚本。 这个主题将介绍如何运行脚本以及输出的含义。

通报 ADV180002ADV180012ADV180018ADV190013,其中涵盖了 9 种漏洞:

  • CVE-2017-5715(分支目标注入)

  • CVE-2017-5753(边界检查绕过)

  • CVE-2017-5754(流氓数据缓存加载)

  • CVE-2018-3639(推理存储绕过)

  • CVE-2018-3620(L1 终端故障 – OS)

  • CVE-2018-11091(微架构数据采样不可缓存的内存 (MDSUM))

  • CVE-2018-12126(微架构存储缓冲区数据采样 (MSBDS))

  • CVE-2018-12127(微架构负载端口数据采样 (MLPDS))

  • CVE-2018-12130(微架构填充缓冲区数据采样 (MFBDS))

针对 CVE-2017-5753(边界检查)的保护措施不需要额外的注册表设置或固件更新。 本主题提供有关 PowerShell 脚本的详细信息,该脚本可帮助确定在某些情况下需要其他注册表设置和固件更新的上面所列各种 CVE 的缓解措施状态。

更多信息

通过运行以下命令,安装并运行该脚本:

使用 PowerShell Gallery 的 PowerShell 验证(Windows Server 2016 或 WMF 5.0/5.1)

安装 PowerShell 模块

PS> Install-Module SpeculationControl

运行 PowerShell 模块以验证保护是否已启用

PS> # Save the current execution policy so it can be reset

PS> $SaveExecutionPolicy = Get-ExecutionPolicy

PS> Set-ExecutionPolicy RemoteSigned -Scope Currentuser

PS> Import-Module SpeculationControl

PS> Get-SpeculationControlSettings

PS> # Reset the execution policy to the original state

PS> Set-ExecutionPolicy $SaveExecutionPolicy -Scope Currentuser

使用来自 TechNet 的下载的 PowerShell 验证(早期 OS 版本/早期 WMF 版本)

从 TechNet ScriptCenter 安装 PowerShell 模块

  1. 请访问 https://aka.ms/SpeculationControlPS

  2. 将 SpeculationControl.zip 下载到本地文件夹。

  3. 将内容解压到本地文件夹,例如 C:\ADV180002

运行 PowerShell 模块以验证保护是否已启用

启动 PowerShell,然后(使用上面的示例)复制并运行以下命令:

PS> # Save the current execution policy so it can be reset

PS> $SaveExecutionPolicy = Get-ExecutionPolicy

PS> Set-ExecutionPolicy RemoteSigned -Scope Currentuser

PS> CD C:\ADV180002\SpeculationControl

PS> Import-Module.\SpeculationControl.psd1

PS> Get-SpeculationControlSettings

PS> # Reset the execution policy to the original state

PS> Set-ExecutionPolicy $SaveExecutionPolicy -Scope Currentuser


此 PowerShell 脚本的输出类似于以下内容。 已启用的保护将在输出中显示为“True”“”。

PS C:\> Get-SpeculationControlSettings
Speculation control settings for CVE-2017-5715 [branch target injection]
Hardware support for branch target injection mitigation is present: False
Windows OS support for branch target injection mitigation is present: True
Windows OS support for branch target injection mitigation is enabled: False
Windows OS support for branch target injection mitigation is disabled by system policy: True
Windows OS support for branch target injection mitigation is disabled by absence of hardware support: True
Speculation control settings for CVE-2017-5754 [rogue data cache load]
Hardware requires kernel VA shadowing: True
Windows OS support for kernel VA shadow is present: False
Windows OS support for kernel VA shadow is enabled: False
Windows OS support for PCID optimization is enabled: False

Speculation control settings for CVE-2018-3639 [speculative store bypass]

Hardware is vulnerable to speculative store bypass: True
Hardware support for speculative store bypass mitigation is present: False
Windows OS support for speculative store bypass mitigation is present: True
Windows OS support for speculative store bypass mitigation is enabled system-wide: False

CVE-2018-3620 [L1 终端故障] 的推理控制设置

Hardware is vulnerable to L1 terminal fault: True
Windows OS support for L1 terminal fault mitigation is present: True
Windows OS support for L1 terminal fault mitigation is enabled: True

MDS [微架构数据采样] 的推理控制设置

对 MDS 缓解的 Windows 操作系统支持存在: True
硬件易受到 MDS 的攻击: True
对 MDS 缓解的 Windows 操作系统支持已启用: True


BTIHardwarePresent: False
BTIWindowsSupportPresent: True
BTIWindowsSupportEnabled: False
BTIDisabledBySystemPolicy: True
BTIDisabledByNoHardwareSupport: True
KVAShadowRequired: True
KVAShadowWindowsSupportPresent: False
KVAShadowWindowsSupportEnabled: False
KVAShadowPcidEnabled: False
SSBDWindowsSupportPresent: True
SSBDHardwareVulnerablePresent: True
SSBDHardwarePresent: True
SSBDWindowsSupportEnabledSystemWide: False
L1TFHardwareVulnerable: True
L1TFWindowsSupportPresent: True
L1TFWindowsSupportEnabled: True
L1TFInvalidPteBit: 45
L1DFlushSupported: False
MDSWindowsSupportPresent: True
MDSHardwareVulnerable: True
MDSWindowsSupportEnabled: True

最终输出网格映射到前面行的输出。 之所以显示此内容,是因为 PowerShell 会打印输出由函数返回的对象。 下表对每一行进行说明。

输出

说明

CVE-2017-5715 [分支目标注入] 的推理控制设置

本部分提供变体 2 (CVE-2017-5715) 分支目标注入的系统状态。

对分支目标注入缓解的硬件支持存在

映射到 BTIHardwarePresent。 该行会表明是否有硬件功能来支持分支目标注入缓解。 设备 OEM 负责提供更新的 BIOS/ 固件,固件中包含 CPU 制造商提供的微码。 如果该行为“True”,则所需的硬件功能存在。 如果该行为“False”,则所需的硬件功能不存在,因此无法启用分支目标注入缓解。

注意 如果已将 OEM 更新应用到主机并遵循指南,则 BTIHardwarePresent 在来宾 VM 中将为“True”。

对分支目标注入缓解的 Windows OS 支持存在

映射到 BTIWindowsSupportPresent。 该行会表明是否存在用于分支目标注入缓解的 Windows 操作系统支持。 如果为“True”,则操作系统支持启用分支目标注入缓解(因此已安装 2018 年 1 月更新)。 如果为“False”,则系统中未安装 2018 年 1 月更新,并且无法启用分支目标注入缓解。

注意 如果来宾 VM 无法检测到主机硬件更新,则 BTIWindowsSupportEnabled 将始终为“False”。

对分支目标注入缓解的 Windows OS 支持已启用

映射到 BTIWindowsSupportEnabled。 该行会表明是否启用用于分支目标注入缓解的 Windows 操作系统支持。 如果为“True”,则设备分支目标注入缓解的硬件支持和操作系统支持启用,从而防止 CVE-2017-5715。 如果为“False”,则表明存在下列情况之一:

  • 硬件支持不存在。

  • 操作系统支持不存在。

  • 系统策略已禁用缓解。

系统已禁用对分支目标注入缓解的 Windows OS 支持

映射到 BTIDisabledBySystemPolicy。 该行会表明系统策略(例如管理员定义的策略)是否已禁用分支目标注入缓解。 系统策略是指 KB 4072698 中记录的注册表控制。 如果为“True”,则系统策略会禁用缓解。 如果为“False”,则缓解由于其他原因而被禁用。

由于缺乏硬件支持,已禁用对分支目标注入缓解的 Windows OS 支持

映射到 BTIDisabledByNoHardwareSupport。 该行会表明分支目标注入缓解是否由于缺乏硬件支持而被禁用。 如果为“True”,则缺乏硬件支持会禁用缓解。 如果为“False”,则缓解由于其他原因而被禁用。

注意 如果来宾 VM 无法检测到主机硬件更新,则 BTIDisabledByNoHardwareSupport 将始终为“True”。

CVE-2017-5754 [流氓数据缓存加载] 的推理控制设置

本部分提供变体 3 (CVE-2017-5754) 流氓数据缓存加载的汇总系统状态。 对此的缓解被称为内核虚拟地址 (VA) 影子或流氓数据缓存加载缓解。

硬件要求内核 VA 影子处理

映射到 KVAShadowRequired。 该行表明硬件是否容易受到 CVE-2017-5754 的影响。 如果为“True”,则认为硬件容易受到 CVE-2017-5754 的影响。 如果为“False”,则认为硬件不会轻易受到 CVE-2017-5754 的影响。

对内核 VA 影子的 Windows OS 支持存在

映射到 KVAShadowWindowsSupportPresent。 该行会表明对内核 VA 影子功能的 Windows 操作系统支持是否存在。 如果为“True”,则已在设备上安装 2018 年 1 月更新,并支持内核 VA 影子。 如果为“False”,则未安装 2018 年 1 月更新,且不支持内核 VA 影子。

对内核 VA 影子的 Windows OS 支持已启用

映射到 KVAShadowWindowsSupportEnabled。 该行会表明内核 VA 影子功能是否已启用。 如果为“True”,则认为硬件容易受到 CVE-2017-5754 的影响,Windows 操作系统支持存在,且该功能已启用。 内核 VA 影子功能在 Windows 的客户端版本上默认为启用,在 Windows Server 版本上默认为禁用。 如果为“False”,则 Windows 操作系统支持不存在或该功能尚未启用。

对 PCID 性能优化的 Windows OS 支持已启用

注意 PCID 不是安全所必需的。 它仅指示是否启用了性能改进。 Windows Server 2008 R2 不支持 PCID

映射到 KVAShadowPcidEnabled。 该行会表明内核 VA 影子的附加性能优化是否已启用。 如果为“True”,则已启用内核 VA 影子,存在 PCID 的硬件支持,且已启用内核 VA 影子的 PCID 优化。 如果为“False”,则硬件或操作系统可能不支持 PCID。 不启用 PCID 优化并不是安全缺陷。

对推理存储绕过禁用的 Windows 操作系统支持存在。

映射到 SSBDWindowsSupportPresent。 该行会表明对推理存储绕过禁用的 Windows 操作系统支持是否存在。 如果为“True”,则已在设备上安装 2018 年 1 月更新,并支持内核 VA 影子。 如果为“False”,则未安装 2018 年 1 月更新,且不支持内核 VA 影子。

硬件需要推理存储绕过禁用

映射到 SSBDHardwareVulnerablePresent。 该行表明硬件是否容易受到 CVE-2018-3639 的影响。 如果为“True”,则认为硬件容易受到 CVE-2018-3639 的影响。 如果为“False”,则认为硬件不会轻易受到 CVE-2018-3639 的影响。

对推理存储绕过禁用的硬件支持存在。

映射到 SSBDHardwarePresent。 该行会表明是否存在硬件功能来支持推理存储绕过禁用。 设备 OEM 负责提供更新的 BIOS/ 固件,固件中包含 Intel 提供的微码。 如果该行为“True”,则所需的硬件功能存在。 如果该行为“False”,则所需的硬件功能不存在,因此无法启用推理存储绕过禁用。

注意 如果已将 OEM 更新应用到主机,则 SSBDHardwarePresent 在客户 VM 中将为“True”。

 

对推理存储绕过禁用的 Windows 操作系统支持已启用

映射到 SSBDWindowsSupportEnabledSystemWide。 该行会表明是否在 Windows 操作系统中启用了推理存储绕过禁用。 如果为“True”,则会对设备启用推理存储绕过禁用的硬件支持和操作系统支持,以免发生推理存储绕过,从而完全消除安全风险。 如果为“False”,则表明存在下列情况之一:

  • 硬件支持不存在。

  • 操作系统支持不存在。

  • 未通过注册表项启用推理存储绕过禁用。 请参阅以下文章,获取如何进行启用的说明:

IT 专业人士防御推理执行侧信道漏洞的 Windows 客户端指导

防御推理执行侧信道漏洞的 Windows Server 指导

 

CVE-2018-3620 [L1 终端故障] 的推理控制设置

本部分提供 CVE-2018-3620 所引用的 L1TF(操作系统)的汇总系统状态。 此缓解措施可确保安全页面帧位用于不存在或无效的页表项。

请注意,本部分并未提供 CVE-2018-3646 所引用的 L1TF (VMM) 的缓解状态汇总。

硬件容易受到 L1 终端故障的影响: True

映射到 L1TFHardwareVulnerable。 该行表明硬件是否容易受到 L1 终端故障(L1TF,CVE-2018-3620)的影响。 如果为“True”,则认为硬件容易受到 CVE-2018-3620 的影响。 如果为“False”,则认为硬件不会轻易受到 CVE-2018-3620 的影响。

对 L1 终端故障缓解的 Windows 操作系统支持存在: True

映射到 L1TFWindowsSupportPresent。 该行表明对 L1 终端故障 (L1TF) 操作系统缓解的 Windows 操作系统支持是否存在。 如果为“True”,则已在设备上安装 2018 年 8 月更新,并且存在 CVE-2018-3620 的缓解措施。 如果为“False”,则未安装 2018 年 8 月更新,且不存在 CVE-2018-3620 的缓解措施。

对 L1 终端故障缓解的 Windows 操作系统支持已启用: True

映射到 L1TFWindowsSupportEnabled。 该行表明是否已启用 L1 终端故障(L1TF,CVE-2018-3620)的 Windows 操作系统缓解。 如果为“True”,则认为硬件容易受到 CVE-2018-3620 的影响,对缓解的 Windows 操作系统支持存在,且缓解已启用。 如果为“False”,则硬件不易受影响,Windows 操作系统支持不存在或缓解尚未启用。

MDS [微架构数据采样] 的推理控制设置

本节提供 MDS 漏洞集(CVE-2018-11091CVE-2018-12126CVE-2018-12127CVE-2018-12130)的系统状态

对 MDS 缓解的 Windows 操作系统支持存在

映射到 MDSWindowsSupportPresent。 该行表明对微架构数据采样 (MDS) 操作系统缓解的 Windows 操作系统支持是否存在。 如果为“True”,则表明已在设备上安装 2019 年 5 月更新,并且存在 MDS 的缓解措施。 如果为“False”,则表明未安装 2019 年 5 月更新,并且不存在 MDS 的缓解措施。

硬件容易受到 MDS 的攻击

映射到 MDSHardwareVulnerable。 该行表明硬件是否易受微架构数据采样 (MDS) 漏洞集(CVE-2018-11091CVE-2018-12126CVE-2018-12127CVE-2018-12139)的攻击。 如果为“True”,则表明硬件容易受到这些漏洞的影响。 如果为“False”,则表明硬件不易受到影响。

对 MDS 缓解的 Windows 操作系统支持已启用

映射到 MDSWindowsSupportEnabled。 该行表明是否对微架构数据采样 (MDS) 启用了 Windows 操作系统缓解措施。 如果为“True”,则认为硬件容易受到 MDS 漏洞的的影响,对缓解的 Windows 操作系统支持存在,且缓解措施已启用。 如果为“False”,则硬件不易受影响,Windows 操作系统支持不存在或缓解尚未启用。

对于所有缓解均已启用和需满足每个条件的计算机,预计会有以下输出。

BTIHardwarePresent: True -> apply OEM BIOS/firmware update
BTIWindowsSupportPresent: True -> install January 2018 update
BTIWindowsSupportEnabled: True -> on client, no action required. On server, follow guidance.
BTIDisabledBySystemPolicy: False -> ensure not disabled by policy.
BTIDisabledByNoHardwareSupport: False -> ensure OEM BIOS/firmware update is applied.
KVAShadowRequired: True or False -> no action, this is a function of the CPU the computer uses

If KVAShadowRequired is True
KVAShadowWindowsSupportPresent: True -> install January 2018 update
KVAShadowWindowsSupportEnabled: True -> on client, no action required. On server, follow guidance.
KVAShadowPcidEnabled: True or False -> no action , this is a function of the CPU the computer uses

If SSBDHardwareVulnerablePresent is True
SSBDWindowsSupportPresent: True -> install Windows updates as documented in adv180012
SSBDHardwarePresent: True -> install BIOS/firmware update with support for SSBD from your device OEM
SSBDWindowsSupportEnabledSystemWide: True -> follow recommended actions to turn on SSBD

If L1TFHardwareVulnerable is True
L1TFWindowsSupportPresent: True -> install Windows updates as documented in adv180018
L1TFWindowsSupportEnabled: True -> follow actions outlined in adv180018 for Windows Server or Client as appropriate to enable the mitigation

下表将输出映射到防御推理执行侧信道漏洞的 Windows Server 指导中涵盖的注册表项。

注册表项

映射

FeatureSettingsOverride – 位 0

映射到 - 分支目标注入 - BTIWindowsSupportEnabled

FeatureSettingsOverride – 位 1

映射到 - 流氓数据缓存加载 - VAShadowWindowsSupportEnabled

需要更多帮助?

扩展你的技能
了解培训
抢先获得新功能
加入 Microsoft 内部人员

此信息是否有帮助?

谢谢您的反馈意见!

谢谢你的反馈! 可能需要转接到 Office 支持专员。

×