大量现代CPU在指令投机执行(一种常见性能优化措施)的具体实现上被发现存在普遍问题,该问题根据利用方法不同导致了三个不同的漏洞: 变种CVE-2017-5715 利用分支目标注入来触发投机执行,其依赖于高权限进程的代码中存在一系列特殊指令,且内存访问可导致对从未真正提交的指令(退休指令)分配CPU缓存。低权限的攻击者可以利用此缺陷跨越系统调用和客户机/主机的界限,使用侧信道读取特权内存中的数据。 变种CVE-2017-5753 利用边界检测绕过来触发投机执行,其依赖于高权限进程的代码中存在一系列特殊指令,且内存访问可导致对从未真正提交的指令(退休指令)分配CPU缓存。低权限的攻击者可以利用此缺陷跨越系统调用和客户机/主机的界限,使用侧信道读取特权内存中的数据。 变种CVE-2017-5754 利用的条件依赖于,当进行导致内存访问权限违例的投机执行时,异常一直被保留到最后投机执行的指令块退休后才抛出;其还依赖于即使整个指令块被丢弃,内存访问仍然会填充CPU缓存,低权限的攻击者可以利用此缺陷,使用侧信道读取特权内存(如内核空间)中的数据。 微软提供了解决近期被公开的“投机执行旁信道攻击”的补丁更新,该更新提供对于如下漏洞的缓解措施: CVE-2017-5715 (分支目标注入) CVE-2017-5753 (边界检查绕过) CVE-2017-5754 (不受控缓存加载) ** 注意:如果不根据以下方法开启注册表选项,不会影响性能。但开启后该可能导致系统性能下降5%~30%,请高负载用户谨慎评估后使用。**
如果您的服务器符合以下条件,则意味着您面临的风险较其他服务器更大: 1. Hyper-V 宿主机 - 需要防护VM和VM之间的的攻击,以及VM到宿主机的攻击。 2. 远程桌面服务主机(RDSH) - 需要防护从一个会话到另一个会话的攻击,以及从会话到宿主机的攻击。 3. 对于运行了无法信任的容器/无法信任的数据库扩展/无法信任的Web内容或者一切会运行从第三方加载的代码的进程之间,需要防护不受信任的进程之间的攻击以及不受信任的进程向内核发起的攻击 __注意:该补丁可能导致系统性能下降5%~30%,请高负载用户谨慎评估后使用。__ __注意:微软官方于1月28日发放额外安全更新帮用户禁止了该修复方案生效,如果出现系统不稳定、自动重启、崩溃的用户可按下述措施禁用该更新带来的修复效果。__ (一)开启对所有漏洞的缓解措施的流程: 开启缓解措施: 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 reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Virtualization" /v MinVmVersionForCpuBasedMitigations /t REG_SZ /d "1.0" /f 停用缓解措施: 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 修改完注册表后重启生效,如果您的服务器是Hyper-V宿主机,且固件已经得到升级,您需要在应用此缓解措施后冷重启所有虚拟机。目前阿里云已经对底层微码进行更新,您的Hyper-V在更新过微码的平台和未更新微码的平台之间迁移可能会失败。 (二)单独对幽灵(变种二)的缓解措施进行开关的方法: 开启缓解措施: 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 1 /f 停用缓解措施: 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 1 /f (三)对于杀毒软件影响缓解措施部署的说明: 由于某些杀毒软件版本可能会对此更新的安装存在干扰,请确保您的杀毒软件提供商确认与此更新兼容,且人工确认在机器上成功设置了如下的注册表项: ``` Key="HKEY_LOCAL_MACHINE" Subkey="SOFTWARE\Microsoft\Windows\CurrentVersion\QualityCompat" Value Name="cadca5fe-87d3-4b96-b7fb-a231484277cc" Type="REG_DWORD” Data="0x00000000” ``` (四)缓解措施的验证方法 在应用完所有补丁后,可以使用以下脚本对缓解措施的开启进行验证: https://aka.ms/SpeculationControlPS **注意**: 只打上补丁而不更改系统配置将不会启用防护
解决方法
注意:该补丁可能导致系统性能下降5%~30%,请高负载用户谨慎评估后使用。
注意:微软官方于1月28日发放额外安全更新帮用户禁止了该修复方案生效,如果出现系统不稳定、自动重启、崩溃的用户可按下述措施禁用该更新带来的修复效果。
(一)开启对所有漏洞的缓解措施的流程:
开启缓解措施:
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
reg add “HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Virtualization” /v MinVmVersionForCpuBasedMitigations /t REG_SZ /d “1.0” /f
停用缓解措施:
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
修改完注册表后重启生效,如果您的服务器是Hyper-V宿主机,且固件已经得到升级,您需要在应用此缓解措施后冷重启所有虚拟机。目前阿里云已经对底层微码进行更新,您的Hyper-V在更新过微码的平台和未更新微码的平台之间迁移可能会失败。
(二)单独对幽灵(变种二)的缓解措施进行开关的方法:
开启缓解措施:
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 1 /f
停用缓解措施:
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 1 /f
(三)对于杀毒软件影响缓解措施部署的说明:
由于某些杀毒软件版本可能会对此更新的安装存在干扰,请确保您的杀毒软件提供商确认与此更新兼容,且人工确认在机器上成功设置了如下的注册表项:
Key="HKEY_LOCAL_MACHINE"
Subkey="SOFTWARE\Microsoft\Windows\CurrentVersion\QualityCompat"
Value Name="cadca5fe-87d3-4b96-b7fb-a231484277cc"
Type="REG_DWORD”
Data="0x00000000”
(四)缓解措施的验证方法
在应用完所有补丁后,可以使用以下脚本对缓解措施的开启进行验证:
https://aka.ms/SpeculationControlPS
注意: 只打上补丁而不更改系统配置将无法启用防护