近代处理器均加入推测执行机制,若是推测正确则可加速完成工作,但去年开春爆发Spectre 和Meltdown 漏洞,即是针对处理器的推测执行机制进行攻击。日前 Microsoft 针对 Windows 10 1809 推出 KB4482887 累积更新,导入对性能开销更少的 Retpoline 修正方式。
Spectre 和Meltdown 漏洞及其相关变种,于2018 年开始就给全世界一记重拳,通过现代处理器加强性能的推测执行机制,让该机制执行不合法的程序代码步骤,借以暴露平时躲在层层安全高墙之后机密信息。初步的解决方式相当简单暴力,直接关闭推测执行就没有安全性疑虑,但借由推测执行获得性能加成的工作,就会出现程度不一的冲击。
Microsoft 于Windows 10 Insider Preview Builds 18272 64 进制版及其之后的操作系统版本,导入由Google Paul Turner 工程师开发,用来解决Spectre Variant 2 安全性漏洞的“Retpoline”修正方式。 Retpoline 由 return 和 trampoline 2 字结合而成,让处理器的 indirect branch prediction 间接分支预测器猜错或是进入无限循环,因而放弃并回归至正常的执行步骤。 Retpoline 相对于先前的修复方式,对于性能的影响较小,并已集成进入 Linux 核心修补程序其中,包含 4.14 与 4.9 版本。
Windows 10 1809 最近的KB4482887 累积更新已加入Retpoline 修正方式,相对于先前修正Spectre Variant 2 漏洞的性能影响更少。 需要独立更新文件的用户,请点我由Microsoft Update Catalog 直接下载。
Windows 10 1809 3 月1 号推出的KB4482887 累积更新其中,已经向后移植集成Retpoline,但由于复杂度的关系,Retpoline 将不会推广至先前Windows 10 版本,仅针对1809 版及其之后的2019 年4 月更新版本。根据 KB4482887 更新说明,Retpoline 修复方式默认为关闭,预计数月内通过云计算设置逐步开放,用户也可通过下列手动方式激活。