皇上,还记得我吗?我就是1999年那个Linux伊甸园啊-----24小时滚动更新开源资讯,全年无休!

Linux 5.17 中将支持x86 直线推测 CPU 缓解

Linux 5.17 内核正在引入对 x86 直线推测“SLS”缓解的支持,它变得越来越清楚现代 x86_64 CPU 容易在控制流无条件更改后在内存中推测性地线性执行。

早在 2020 年年中,基于 Google 的 SafeSide 计划的研究,Arm CPU 的直线推测就被公开了。发现 Arm 处理器能够在内存中进行推测线性执行,超出控制流的无条件更改,例如异常返回、其他异常生成指令、无条件直接/间接分支和函数返回。如果推测性地执行“幽灵启示小工具”,它可能反过来通过时序分析使秘密容易受到启示。

在该披露之后,开源软件通过 GCC 和 LLVM/Clang 编译器围绕 BLR 和 RETBR 指令进行强化,迅速缓解了 Arm SLS。

Linux 5.17 中将支持x86 直线推测 CPU 缓解直到 2021 年底,针对 x86/x86_64 CPU 的直线推测缓解措施才针对领先的开源代码编译器和 Linux 内核升温。通过 -mharden-sls= 选项启用编译器补丁时,将在任何返回 (RET) 指令和任何间接跳转之后发出 INT3 指令。这种支持出现在 GCC 12 中,并且 LLVM/Clang 方面尚未针对 x86/x86_64 登陆,但对于 LLVM 14.0 仍可能出现。

现在,随着 Linux 5.17 的 x86/core 更新,SLS 缓解处理登陆内核端,以便在受支持的编译器上启用此编译器强化。

Borislav Petkov 在 Linux 5.17 的 x86/core pull request 中写道,“添加 Straight [Line] Speculation 缓解支持,它使用新的编译器开关 -mharden-sls= 在 RET 或间接分支之后粘贴 INT3 以阻止推测“

由于额外的指令,这种编译器强化的结果是内核映像大小大约增加了 2~3%。目前,至少“CONFIG_SLS”知道默认为禁用,而我还没有看到来自英特尔或 AMD 的任何公开通信,他们建议针对直线推测或其他相关指导缓解哪些处理器。英特尔工程师参与了 x86 SLS 编译器/内核补丁,因此至少对他们而言,他们的处理器的某些子集可能会受到直线推测的影响。