瑞士苏黎世联邦理工学院的约翰内斯·威克纳(Johannes Wikner)和卡维·拉扎维(Kaveh Razavi)周五发布了一份报告,详细介绍了一种跨进程的Spectre攻击方法,该攻击可以解除地址空间布局随机化(Address Space Layout Randomization, ASLR),并从Set User ID(suid)进程中泄露root密码的散列值。研究人员宣称他们已成功实施此类攻击。

Spectre攻击是指由于处理器执行推测执行的方式而导致的一系列攻击,推测执行是一种预先进行运算的性能优化技术。运算结果可以在需要时使用,否则将被丢弃。

分支预测(branch prediction)是推测性执行的一种形式,现代处理器利用它来猜测程序将采取的路径。它与分支目标预测(branch target prediction)相关,后者试图预测特定分支中将执行的下一条指令的目标地址。

Spectre攻击试图使分支预测器作出错误的预测,这样当处理器执行相关指令时,它会访问包含密码或加密密钥等机密数据的越界内存。随后对存储这些机密的内存区域进行操作,攻击者可借由观察侧信道(如CPU缓存访问和功率波动)来推断出这些机密。

间接分支预测器屏障 (IBPB)的目的是防御针对x86 Intel和AMD芯片的Spectre v2 (CVE-2017-5715) 攻击。IBPB的目的则防止转发先前学习的用于推测执行的间接分支目标预测。

显然,这道屏障没有被正确的运行。

“我们在最近的Intel微架构(例如Golden Cove和Raptor Cove,存在于第12、13和14代Intel Core处理器以及第5和第6代Xeon处理器中)中发现了一个微码错误,该错误保留了分支预测,以便它们仍然可以在IBPB使它们失效后使用,”Wikner解释说。“这种屏障后推测允许攻击者绕过进程上下文和虚拟机施加的安全边界。”

威克纳和拉扎维还设法从使用Zen 2架构构建的AMD芯片上的非特权进程中泄露任意核心内存。

Intel和AMD攻击相的的视频已经发布,展示了预期中来自命令行互动的技术细节。

Intel芯片(包括Intel Core第12、13和14代以及Xeon第5和第6代)可能很容易受到攻击。在AMD Zen 1(+) 和Zen 2硬件上,该问题可能会影响Linux用户。

相关细节已于2024年6月披露,但Intel和AMD独立发现了这个问题。

Intel在2024年3月发布的微码修补程序 (INTEL-SA-00982) 中修复了该问题。尽管如此,某些Intel硬件可能尚未收到该微码更新。

威克纳和拉扎维在他们的技术摘要中观察到:“然而,在撰写本文时,此微码更新在Ubuntu存储库中不可用。”

看来Ubuntu随后已经处理了这个问题。

AMD在2022年11月的安全公告AMD-SB-1040中发布了自己的公告。该公司指出,虚拟机管理程序和/或操作系统供应商需要自行进行改善工作。

“由于AMD的问题已知并被关注于AMD-SB-1040,AMD将此问题视为软件错误,”研究人员解释说。“我们目前正在与Linux核心维护人员合作,以整合我们提出的软件修补程序。”