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

Linux 内核针对分支历史注入 “BHI “英特尔 CPU 漏洞的补丁程序

早在 2022 年 3 月,”分支历史注入”(BHI)作为一个新的 Spectre 漏洞被披露,该漏洞影响了英特尔和 Arm CPU。2022 年 7 月,英特尔发布了基于硬件的防范 Spectre-BHI 攻击的补丁。两年后的今天,Linux 内核针对新的 “本地 BHI “变体,增加了针对本地分支历史记录注入漏洞的缓解措施。

本周二补丁合并了 Linux 内核补丁,用于在更新 CPU 微码时帮助抵御分支历史记录注入。除非我忽略了什么,或者有一些披露的信息尚未公布,否则不清楚为什么今天合并了这些内核补丁:英特尔安全中心今天尚未显示任何新的漏洞,也没有任何新的英特尔 CPU 微代码,更没有任何其他我今天看到的有关 BHI 的新披露信息。

Linus Torvalds 合并了提供最新 CPU 安全漏洞缓解措施的 “nativebhi “分支。合并信息如下
原生 BHI 硬件漏洞的缓解措施:

分支历史注入 (BHI) 攻击可能允许恶意应用程序通过毒化分支历史来影响内核中的间接分支预测。eIBRS 隔离了 ring0 中的间接分支目标。BHB 仍可影响间接分支预测项的选择,虽然启用 eIBRS 后,分支预测项在不同模式之间是隔离的,但 BHB 本身在不同模式之间并不隔离。

借助微代码或针对受影响 CPU 的软件序列,增加针对它的缓解措施”。

[尽管对系统调用进行了加固,但最终还是默认启用了完整的缓解措施,因为显然还有其他间接调用仍可充分访问,而 “自动 “情况的加固还不够。

未来我们还将进行一些不可避免的调整 – Linus ]。

更新后的内核文档确实指出了新的研究,这也是 BHI 缓解措施的动机:
“以前,现实世界中唯一已知的 BHB 攻击向量是通过非特权 eBPF。进一步研究发现,攻击并不需要非特权 eBPF。要完全缓解 BHB 攻击,建议设置 BHI_DIS_S 或使用 BHB 清除序列”。

新代码添加了一个 spectre_bhi= 启动时间选项,用于开/关/自动控制分支历史记录注入缓解措施。这些控制会影响硬件 BHI 控制和软件 BHB 清除顺序。补丁确实证实 AMD、Zhaoxin 和 Hygon 处理器不受影响,但似乎只有英特尔的 x86/x86_64 处理器受影响。

Linux 内核针对分支历史注入 "BHI "英特尔 CPU 漏洞的补丁程序

至于受影响的英特尔处理器,Alder Lake 及更新版本具有 BHI_DIS_S 硬件控制功能,可减轻 BHI 的影响。在 Alder Lake 处理器之前,英特尔已经发布了清除分支历史的软件序列。

Linux 内核针对分支历史注入 "BHI "英特尔 CPU 漏洞的补丁程序

通过 Linux 缓解措施,分支历史会在系统调用入口和 VMexit 时清除。目前,至少在中断进入时不会清除分支历史记录,但其中一个补丁确实指出了这一点:
“目前,分支历史记录不会在中断进入时清除,因为先前的寄存器状态会在中断进入时清除,因此认为恶意程序无法充分控制寄存器。研究人员仍在继续研究这一领域,将来可能也有必要在中断进入时清除”。

因此,不久前英特尔 BHI 缓解代码已经合并到 Linux 6.9 的 Git 中,并将在短期内反向移植到稳定的内核版本中。我仍在四处打探,希望能找到更多信息,以了解为什么 BHI 缓解措施会在最初 BHI 披露两年后的今天才出现。

更新:VUSec.net 现在发布了他们关于分支历史注入的新 “本地 BHI “研究的详细信息。他们解释说
在我们之前的工作中,我们证明了 Spectre-V2 攻击仍有可能在内核中通过分支历史注入(BHI)实现,并使用 eBPF 制作了 Spectre 披露小工具(为简单起见,简称 Spectre 小工具)。对此,供应商建议禁用非特权 eBPF。这种缓解措施给我们留下了一个悬而未决的问题:”为 BHI 寻找’原生’的 Spectre 小工具,即不通过 eBPF 植入的 Spectre 小工具,可行吗?

为了解决这个问题,我们开发了 InSpectre Gadget。有了这个工具,我们就能分析 Spectre 小工具,并推理出它们的(高级)可利用性。通过努力,我们发现了 1,511 个 Spectre 小工具和 2,105 个所谓的 “调度小工具”。后者对攻击者非常有用,因为它们可以用来连锁小工具,并将投机行为导向 Spectre 小工具。

由于我们发现的小工具数量表明攻击面并不小,因此供应商现在建议通过启用硬件缓解措施来缓解 Native BHI,对于较旧的 CPU,则采用软件缓解措施。

我们从发现的众多小工具中选择了一个,并制作了一个端到端本地(eBPF=off)BHI 漏洞利用程序。
AMD 也已确认他们的处理器不受本地 BHI / InSpectre 小工具的影响。

原生 BHI 已被指定为 CVE-2024-2201,VUSec 已在第 13 代酷睿 CPU 上演示了该漏洞,而他们表示所有英特尔 CPU 都受原生 BHI 影响。

转自 Linux Kernel Patched For Branch History Injection “BHI” Intel CPU Vulnerability – Phoronix