本文来自微信公众号“嘶吼专业版”,【作者】胡金鱼。
据了解,最新一代的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处理器的补丁。
参考及来源:https://www.bleepingcomputer.com/news/security/intel-amd-cpus-on-linux-impacted-by-newly-disclosed-spectre-bypass/