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

适用于: Microsoft Windows ServerWindows Server 2016Windows Server 2012 R2

摘要


Microsoft 已经意识到一个公开披露的新漏洞类(称为“推理执行侧信道攻击”),会对包括 Intel、AMD、VIA 和 ARM 的众多新式处理器产生影响。

注意 此问题还会影响其他操作系统,例如 Android、Chrome、iOS 和 macOS。 因此,我们建议客户向这些供应商寻求指导。

我们已发布多个更新来帮助缓解这些漏洞。 我们还采取了措施来保护我们的云服务。 有关更多详细信息,请参阅下列部分。

我们尚未收到任何信息,指出这些漏洞已被用来攻击客户。 我们一直在与业内合作伙伴(包括芯片制造商、硬件 OEM 和应用程序供应商)密切合作以保护客户。 若要获得所有可用的保护,需要安装固件(微码)和软件更新。 其中包括来自设备 OEM 的微码,在有些情况下,还包括防病毒软件更新。

本文修复了以下漏洞:

Windows 更新还将提供 Internet Explorer 和 Edge 缓解措施。 我们会继续改进这些针对此类漏洞的缓解措施。

若要了解有关此类漏洞的更多信息,请参阅

2019 年 5 月 14 日更新 2019 年 5 月 14 日,Intel 发布了有关新的子类推理执行侧信道漏洞(称为微架构数据采样)的信息。 它们已被分配以下 CVE:

重要说明 这些问题将影响其他系统,例如 Android、Chrome、iOS 和 MacOS。 我们建议客户向各自的供应商寻求指导。

Microsoft 已发布多项更新来帮助缓解此类漏洞。 若要获取所有可用保护,需要进行固件(微码)和软件更新。 这可能包括来自设备 OEM 的微码。 在某些情况下,安装这些更新会对系统性能产生影响。 我们也采取了行动来保护云服务。 我们强烈建议部署这些更新。

有关此问题的更多信息,请参阅以下安全通报,并使用基于场景的指南来确定缓解威胁所需的操作:

注意 我们建议你在安装任何微码更新之前先安装 Windows 更新中的所有最新更新。

2019 年 8 月 6 日更新 2019 年 8 月 6 日,Intel 发布了有关 Windows 内核信息泄漏漏洞的详细信息。 此漏洞是 Spectre 变体 1 推理执行侧信道漏洞的变体,已指定为 CVE-2019-1125

2019 年 7 月 9 日,我们发布了 Windows 操作系统的安全更新,以帮助缓解此问题。 请注意,在 2019 年 8 月 6 日星期二协调行业披露之前,我们一直拒绝公开记录这种缓解措施。

已启用 Windows 更新并应用了 2019 年 7 月 9 日发布的安全更新的客户将自动受到保护。 无需进一步配置。

注意 此漏洞不需要设备制造商 (OEM) 提供微码更新。

有关此漏洞和适用更新的更多信息,请参阅 Microsoft 安全更新指南:

CVE-2019-1125 | Windows 内核信息泄漏漏洞

2019 年 11 月 12 日更新2019 年 11 月 12 日,Intel 发布了一个有关指定为 CVE-2019-11135 的 Intel® 事务同步扩展 (Intel® TSX) 事务异步中止漏洞的技术通报。 Microsoft 已发布多项更新以帮助缓解此漏洞,且 Windows Server 操作系统版本默认启用操作系统保护。

建议的操作


客户应采取下列操作以帮助防御这些漏洞:

  1. 应用所有可用的 Windows 操作系统更新,包括 月度 Windows 安全更新。
  2. 应用设备制造商提供的适用固件(微码)更新。
  3. 根据 Microsoft 安全通报 ADV180002ADV180012ADV190013 以及本知识库文章中提供的信息。
  4. 使用本知识库文章中提供的通报和注册表项信息,根据需要采取措施。

注意 Surface 客户将通过 Windows 更新接收到微码更新。 有关最新 Surface 设备固件(微码)更新的列表,请参阅 KB 4073065

Windows Server 的迁移设置


安全通报 ADV180002ADV180012ADV190013 提供有关这些漏洞带来的风险的信息。  它们还可以帮助你识别这些漏洞,并确定 Windows Server 系统的缓解措施的默认状态。 下表总结了 CPU 微码的要求以及 Windows Server 上缓解措施的默认状态。

CVE 是否需要 CPU 微码/固件? 缓解措施默认状态

CVE-2017-5753

默认启用(无禁用选项)

请参阅 ADV180002 了解更多信息。

CVE-2017-5715

默认禁用。

请参阅 ADV180002 了解更多信息,以及参阅本知识库文章了解适用的注册表项设置。

注意 如果启用了 Spectre 变体 2 (CVE-2017-5715),则在运行 Windows 10 1809 或更新版本的设备上默认启用“Retpoline”。 有关“Retpoline”的更多信息,请参阅博客文章 Mitigating Spectre variant 2 with Retpoline on Windows(在 Windows 上使用 Retpoline 缓解 Spectre 变体 2)。

CVE-2017-5754

Windows Server 2019: 默认启用。
Windows Server 2016 及更早版本。 默认禁用。

请参阅 ADV180002 了解更多信息。

CVE-2018-3639

Intel: 是

AMD: 否

默认禁用。 请参阅 ADV180012 了解更多信息,以及参阅本知识库文章了解适用的注册表项设置。

CVE-2018-11091 Intel: 是

Windows Server 2019: 默认启用。
Windows Server 2016 及更早版本。 默认禁用。

请参阅 ADV190013 了解更多信息,以及参阅本知识库文章了解适用的注册表项设置。
CVE-2018-12126 Intel: 是

Windows Server 2019: 默认启用。
Windows Server 2016 及更早版本。 默认禁用。

请参阅 ADV190013 了解更多信息,以及参阅本知识库文章了解适用的注册表项设置。
CVE-2018-12127 Intel: 是

Windows Server 2019: 默认启用。
Windows Server 2016 及更早版本。 默认禁用。

请参阅 ADV190013 了解更多信息,以及参阅本知识库文章了解适用的注册表项设置。
CVE-2018-12130 Intel: 是

Windows Server 2019: 默认启用。
Windows Server 2016 及更早版本。 默认禁用。

请参阅 ADV190013 了解更多信息,以及参阅本知识库文章了解适用的注册表项设置。
CVE-2019-11135 Intel: 是

Windows Server 2019: 默认启用。
Windows Server 2016 及更早版本。 默认禁用。

请参阅 CVE-2019-11135 了解更多信息,以及参阅本知识库文章了解适用的注册表项设置。

希望获得针对这些漏洞的所有可用保护的客户必须更改注册表项,才能启用默认禁用的这些缓解措施。

启用这些缓解措施可能会影响性能。 性能影响的范围取决于多个因素,例如,物理主机中的特定芯片组和正在运行的工作负载。 我们建议客户评估对各自环境的性能影响,并做出必要的调整。

如果你的服务器属于以下类别之一,则面临的风险将增加:

  • Hyper-V 主机 – 需要保护以防范从 VM 到 VM 和从 VM 到主机的攻击。
  • 远程桌面服务主机 (RDSH) – 需要保护以防范从一个会话到另一个会话或从会话到主机的攻击。
  • 正在运行不受信任代码的物理主机或虚拟机(例如,容器或数据库的不受信任的扩展),不受信任的 Web 内容或运行来自外部源的代码的工作负载。 这些需要从不受信任过程到另一过程或从不受信任过程到内核攻击的保护。

使用以下注册表项设置在服务器上启用缓解措施,并重启系统以使更改生效。

注意 启用默认关闭的缓解措施可能会影响性能。 实际的性能影响取决于多个因素,例如,设备中的特定芯片组和正在运行的工作负载。

注册表设置


我们将提供以下注册表信息以启用默认未启用的缓解措施,如安全通报 ADV180002ADV180012ADV190013 中所述。

此外,我们还将为想要禁用与 Windows 客户端的 CVE-2017-5715 和 CVE-2017-5754 相关的缓解措施的用户提供注册表项设置。

重要说明 此部分、方法或任务包含有关如何修改注册表的步骤。 但是,注册表修改不当可能会出现严重问题。 因此,请务必严格按照下列步骤操作。 为了获得进一步的保护,请在修改注册表之前对其进行备份。 这样就可以在出现问题时还原注册表。 有关如何备份和还原注册表的更多信息,请单击下面的文章编号查看 Microsoft 知识库中相应的文章:

322756 如何在 Windows 中备份和恢复注册表

管理 CVE-2017-5715(Spectre 变体 2)和 CVE-2017-5754 (Meltdown) 的缓解措施


重要说明 如果启用了 Spectre 变体 2 (CVE-2017-5715),则在 Windows 10 版本 1809 服务器上默认启用 Retpoline。 在最新版本的 Windows 10 上启用 Retpoline 可以针对 Spectre 变体 2 提高运行 Windows 10 版本 1809 的服务器的性能,特别是在较旧处理器上。

启用 CVE-2017-5715(Spectre 变体 2)和 CVE-2017-5754 (Meltdown) 的缓解措施

reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" /v FeatureSettingsOverride /t REG_DWORD /d 0 /f

reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" /v FeatureSettingsOverrideMask /t REG_DWORD /d 3 /f

如果您安装了 Hyper-V 功能,请添加以下注册表设置:

reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Virtualization" /v MinVmVersionForCpuBasedMitigations /t REG_SZ /d "1.0" /f

如果这是 Hyper-V 主机并且已应用固件更新: 完全关闭所有虚拟机。 这允许在 VM 启动之前在主机上应用与固件相关的缓解措施。 因此,VM 在重启后也会更新。

重启计算机以使更改生效。

禁用 CVE-2017-5715(Spectre 变体 2)和 CVE-2017-5754 (Meltdown) 的缓解措施

reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" /v FeatureSettingsOverride /t REG_DWORD /d 3 /f

reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" /v FeatureSettingsOverrideMask /t REG_DWORD /d 3 /f

重启计算机以使更改生效。


注意 将 FeatureSettingsOverrideMask 设置为 3 对于“启用”和“禁用”设置都是准确的。 (请参阅“常见问题解答”部分,了解有关注册表项的更多详细信息。)

管理 CVE-2017-5715(Spectre 变体 2)的缓解措施


禁用变体 2: (CVE-2017-5715分支目标注入”)缓解措施

reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" /v FeatureSettingsOverride /t REG_DWORD /d 1 /f

reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" /v FeatureSettingsOverrideMask /t REG_DWORD /d 3 /f

重启计算机以使更改生效。

启用变体 2: (CVE-2017-5715“分支目标注入”)缓解措施:

reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" /v FeatureSettingsOverride /t REG_DWORD /d 0 /f

reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" /v FeatureSettingsOverrideMask /t REG_DWORD /d 3 /f

重启计算机以使更改生效。

仅限 AMD 处理器:启用 CVE-2017-5715(Spectre 变体 2)的完全缓解措施


默认情况下,为 AMD CPU 禁用针对 CVE-2017-5715 的用户到内核保护。 客户必须启用缓解措施才能获得针对 CVE-2017-5715 的额外保护。  有关更多信息,请参阅 ADV180002 中的常见问题解答 #15。

在 AMD 处理器上启用用户到内核的保护以及针对 CVE 2017-5715 的其他保护:

reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" /v FeatureSettingsOverride /t REG_DWORD /d 64 /f

reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" /v FeatureSettingsOverrideMask /t REG_DWORD /d 3 /f

如果您安装了 Hyper-V 功能,请添加以下注册表设置:

reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Virtualization" /v MinVmVersionForCpuBasedMitigations /t REG_SZ /d "1.0" /f

如果这是 Hyper-V 主机并且已应用固件更新: 完全关闭所有虚拟机。 这允许在 VM 启动之前在主机上应用与固件相关的缓解措施。 因此,VM 在重启后也会更新。

重启计算机,以使更改生效。

管理 CVE-2018-3639(推理存储绕过)、CVE-2017-5715(Spectre 变体 2)和 CVE-2017-5754 (Meltdown) 的缓解措施



要启用 CVE-2018-3639(推理存储绕过)、CVE-2017-5715(Spectre 变体 2)和 CVE-2017-5754 (Meltdown) 的缓解措施,请执行以下操作:

reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" /v FeatureSettingsOverride /t REG_DWORD /d 8 /f

reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" /v FeatureSettingsOverrideMask /t REG_DWORD /d 3 /f

如果您安装了 Hyper-V 功能,请添加以下注册表设置:

reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Virtualization" /v MinVmVersionForCpuBasedMitigations /t REG_SZ /d "1.0" /f

如果这是 Hyper-V 主机并且已应用固件更新: 完全关闭所有虚拟机。 这允许在 VM 启动之前在主机上应用与固件相关的缓解措施。 因此,VM 在重启后也会更新。

重启计算机,以使更改生效。

禁用 CVE-2018-3639(推理存储绕过)的缓解措施和 CVE-2017-5715(Spectre 变体 2)和 CVE-2017-5754 (Meltdown) 的缓解措施

reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" /v FeatureSettingsOverride /t REG_DWORD /d 3 /f

reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" /v FeatureSettingsOverrideMask /t REG_DWORD /d 3 /f

重启计算机,以使更改生效。

仅限 AMD 处理器:启用 CVE-2017-5715(Spectre 变体 2)和 CVE-2018-3639(推理存储绕过)的完全缓解措施


默认情况下,为 AMD 处理器禁用针对 CVE-2017-5715 的用户到内核保护。 客户必须启用缓解措施才能获得针对 CVE-2017-5715 的额外保护。  有关更多信息,请参阅 ADV180002 中的常见问题解答 #15。

在 AMD 处理器上启用用户到内核保护以及针对 CVE 2017-5715 的保护和针对 CVE-2018-3639(推理存储绕过)的保护:

reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" /v FeatureSettingsOverride /t REG_DWORD /d 72 /f

reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" /v FeatureSettingsOverrideMask /t REG_DWORD /d 3 /f

如果您安装了 Hyper-V 功能,请添加以下注册表设置:

reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Virtualization" /v MinVmVersionForCpuBasedMitigations /t REG_SZ /d "1.0" /f

如果这是 Hyper-V 主机并且已应用固件更新: 完全关闭所有虚拟机。 这允许在 VM 启动之前在主机上应用与固件相关的缓解措施。 因此,VM 在重启后也会更新。

重启计算机,以使更改生效。

管理 Intel® 事务同步扩展 (Intel® TSX) 事务异步中止漏洞 (CVE-2019-11135) 和微架构数据采样(CVE-2018-11091、CVE-2018-12126、CVE-2018-12127、CVE-2018-12130)以及 Spectre [CVE-2017-5753 和 CVE-2017-5715] 和 Meltdown [CVE-2017-5754] 变体,其中包括推理存储绕过禁用 (SSBD) [CVE-2018-3639] 以及 L1 终端故障 (L1TF) [CVE-2018-3615、CVE-2018-3620 和 CVE-2018-3646]


为 Intel® 事务同步扩展 (Intel® TSX) 事务异步中止漏洞 (CVE-2019-11135) 和微架构数据采样(CVE-2018-11091CVE-2018-12126CVE-2018-12127CVE-2018-12130)以及 Spectre [CVE-2017-5753 和 CVE-2017-5715] 和 Meltdown [CVE-2017-5754] 变体,其中包括推理存储绕过禁用 (SSBD) [CVE-2018-3639] 以及 L1 终端故障 (L1TF) [CVE-2018-3615、CVE-2018-3620 和 CVE-2018-3646] 启用缓解,而不禁用超线程:

reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" /v FeatureSettingsOverride /t REG_DWORD /d 72 /f

reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" /v FeatureSettingsOverrideMask /t REG_DWORD /d 3 /f

如果您安装了 Hyper-V 功能,请添加以下注册表设置:

reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Virtualization" /v MinVmVersionForCpuBasedMitigations /t REG_SZ /d "1.0" /f

如果这是 Hyper-V 主机并且已应用固件更新: 完全关闭所有虚拟机。 这允许在 VM 启动之前在主机上应用与固件相关的缓解措施。 因此,VM 在重启后也会更新。

重启计算机,以使更改生效。

为 Intel® 事务同步扩展 (Intel® TSX) 事务异步中止漏洞 (CVE-2019-11135) 和微架构数据采样(CVE-2018-11091CVE-2018-12126CVE-2018-12127CVE-2018-12130)以及 Spectre [CVE-2017-5753 和 CVE-2017-5715] 和 Meltdown [CVE-2017-5754] 变体,其中包括推理存储绕过禁用 (SSBD) [CVE-2018-3639] 以及 L1 终端故障 (L1TF) [CVE-2018-3615、CVE-2018-3620 和 CVE-2018-3646] 启用缓解,并禁用超线程:

reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" /v FeatureSettingsOverride /t REG_DWORD /d 8264 /f

reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" /v FeatureSettingsOverrideMask /t REG_DWORD /d 3 /f

如果您安装了 Hyper-V 功能,请添加以下注册表设置:

reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Virtualization" /v MinVmVersionForCpuBasedMitigations /t REG_SZ /d "1.0" /f

如果这是 Hyper-V 主机并且已应用固件更新: 完全关闭所有虚拟机。 这允许在 VM 启动之前在主机上应用与固件相关的缓解措施。 因此,VM 在重启后也会更新。

重启计算机,以使更改生效。

为 Intel® 事务同步扩展 (Intel® TSX) 事务异步中止漏洞 (CVE-2019-11135) 和微架构数据采样(CVE-2018-11091CVE-2018-12126CVE-2018-12127CVE-2018-12130)以及 Spectre [CVE-2017-5753 和 CVE-2017-5715] 和 Meltdown [CVE-2017-5754] 变体,其中包括推理存储绕过禁用 (SSBD) [CVE-2018-3639] 以及 L1 终端故障 (L1TF) [CVE-2018-3615、CVE-2018-3620 和 CVE-2018-3646] 禁用缓解:

reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" /v FeatureSettingsOverride /t REG_DWORD /d 3 /f

reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" /v FeatureSettingsOverrideMask /t REG_DWORD /d 3 /f

重启计算机,以使更改生效。

验证保护是否已启用


为了帮助客户验证保护是否启用,Microsoft 已发布了一个 PowerShell 脚本,客户可以在自己的系统上运行该脚本。 通过运行以下命令,安装并运行该脚本。

使用 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 验证(早期操作系统版本和早期 WMF 版本)

从 Technet 脚本中心安装 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 脚本输出的详细说明,请参阅知识库文章 4074629。 

常见问题


参考