解决 Win10 “幽灵”漏洞补丁性能问题

解决 Win10 “幽灵”漏洞补丁性能问题

微软在 Windows 10 1809版本引入了 Retpoline 修复补丁。但是却不是默认开启的,本文将会简单的说明 Retpoline ,以及手动启用方法。

⚠️ 请注意,当前版本会导致某些情况下出现性能下降!!!在微软重新发布前建议卸载 KB4482887 补丁

什么是 Retpoline 呢?

2018年1月4日,Google在其安全博客上详细介绍了新技术“Retpoline”,该技术能够以微不足道的处理器开销克服Spectre漏洞。它涉及在编译器编译时让间接分支跳转到不同的目标,减少易受攻击的乱序执行发生。虽然这项技术面向x86指令集开发,Google工程师认为该技术也可以用于其他处理器。
简单来说,就是谷歌为了解决/减少目前 Meltdown 和 Spectre 漏洞补丁对性能产生的 5% - 30% 的影响,开发了名为 Retpoline 的基于软件的修复方案。Retpoline 方案旨在提高 Windows 和 Linux 平台中 Spectre Variant2 的性能。

微软的一篇博客文章中表示,目前在 Windows 客户端设备上默认禁用此功能,当然该文章中也写明了启用方法。
需要注意的是, Retpoline 将会在 19H1 版本默认启用。下面我便会写出尝鲜办法。

启用方法

首先,以管理员身份打开命令提示符或 PowerShell 并输入以下内容。

1
2
reg add "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" /v FeatureSettingsOverride /t REG_DWORD /d 0x400
reg add "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" /v FeatureSettingsOverrideMask /t REG_DWORD /d 0x400

接下来,重启计算机,重启完成后,以管理员身份运行 PowerShell 并输入以下内容

1
2
3
4
Install-Module -Name SpeculationControl
Set-ExecutionPolicy RemoteSigned
Import-Module SpeculationControl
Get-SpeculationControlSettings

安装过程全部回复Y,完成后,会返回一大堆信息,如果内容与下面一致即说明启用成功。

1
2
3
4
5
6
7
Speculation control settings for CVE-2017-5715 [branch target injection]
Hardware support for branch target injection mitigation is present: True
Windows OS support for branch target injection mitigation is present: True
Windows OS support for branch target injection mitigation is enabled: True

BTIKernelRetpolineEnabled : True
BTIKernelImportOptimizationEnabled : True

参考链接

Google, 성능저하 없이 Spectre 취약점을 패치할 수 있는 Retpoline 공개
Mitigating Spectre variant 2 with Retpoline on Windows
幽灵漏洞
Retpoline: a software construct for preventing branch-target-injection

评论

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×