Linux 上的 Intel、AMD CPU 受到新披露的 Spectre 绕过的影响
据了解,最新一代的 Intel 处理器(包括 Xeon 芯片)和 AMD 在 Linux 上的旧微架构很容易受到绕过现有“Spectre”缓解措施的新推测执行攻击。
这些漏洞影响英特尔第 12、第 13 和第 14 代芯片以及面向服务器的第 5 和第 6 代 Xeon 处理器,以及 AMD 的 Zen 1、Zen 1+ 和 Zen 2 处理器。
这些攻击破坏了 x86 处理器上的间接分支预测器屏障 (IBPB),这是针对推测执行攻击的核心防御机制。
推测执行是现代 CPU 上的一项性能优化功能,它在知道未来任务是否需要指令之前执行指令,从而在预测正确时加快进程。
基于错误预测执行的指令称为瞬态指令并被压缩。这种机制一直是侧通道风险(例如 Spectre)的来源,因为推测过程调用可以从 CPU 缓存检索的敏感数据。
新的类似幽灵的攻击
安全研究人员表示,尽管为遏制类似 Spectre 的攻击进行了多年的缓解努力,但仍有许多变体绕过了现有的防御措施。
他们的贡献是跨进程攻击(针对 Intel)和 PB-inception 攻击(针对 AMD),即使在应用 IBPB 后也允许劫持投机返回目标,从而绕过当前的保护并泄露敏感信息。
在第一种情况下,攻击利用了英特尔微代码中的一个漏洞,即 IBPB 不会在上下文切换后完全使返回预测无效。攻击者操纵返回指令的推测执行,允许过时的预测从 suid 进程中泄漏敏感信息,例如 root 密码的哈希值。
在 AMD 处理器上,Linux 内核中的 IBPB-on-entry 应用不当,导致返回预测器即使在 IBPB 之后仍保留过时的预测。攻击者在 IBPB 触发之前错误训练返回预测器,劫持它以在屏障之后泄漏特权内核内存。
IBPB 后英特尔和 AMD 仍然脆弱的回报预测
应对措施和缓解措施
研究人员于 2024 年 6 月向英特尔和 AMD 通报了这些问题。英特尔回应称,他们已经在内部发现了该问题,并为其分配了 CVE-2023-38575 标识符。
该公司于 3 月份发布了可通过固件更新进行的微代码修复,但研究人员指出,该代码尚未到达所有操作系统,Ubuntu 就是其中之一。
AMD 也确认了该漏洞,并表示该漏洞已被记录并追踪为 CVE-2022-23824。值得注意的是,AMD 的公告将 Zen 3 产品列为受影响的产品。但是,AMD 将该问题归类为软件错误,而不是硬件缺陷。
受影响的旧架构以及 AMD 很久以前就了解了该错误的事实可能解释了该公司决定不发布纠正微代码的原因。尽管这两家 CPU 供应商知道 Spectre 绕过,但这些公司在公告中将其标记为具有潜在影响。
通过他们的工作,安全研究人员能够证明这种攻击甚至在 Linux 6.5 上也能发挥作用,Linux 6.5 附带了 IBPB-on-entry 防御,被认为是针对 Spctre 利用的最强防御。目前,有关高校正在与 Linux 内核维护人员合作开发适用于 AMD 处理器的补丁。