TONTOU 利用分支预测器清理后、受害分支使用前的窗口重新污染微架构状态,可绕过部分 Intel 与 AMD 的 Spectre v2 缓解措施。研究者在 AMD Zen 2 与 Linux 环境验证了无特权泄露内核内存的攻击链。
IT之家 8 月 7 日消息,科技媒体 BleepingComputer 昨日(8 月 6 日)发布博文,报道称麻省理工学院计算机科学与人工智能实验室(CSAIL)最新披露了 TONTOU 攻击。该攻击可以在 AMD 和英特尔处理器上绕过部分 Spectre v2 缓解措施。
该攻击全称为 Time-of-Neutralization to Time-of-Use,由实验室博士生 Daniël Trujillo 与副教授 Mengjia Yan 发现,可绕过近期用于防御 Spectre v2 的缓解措施,并从 Linux 机器中泄露敏感数据。
IT之家援引博文介绍,Spectre v2 又称 BTI(Branch Target Injection,分支目标注入),属于 Spectre 类漏洞的一个变体。
该漏洞利用处理器的间接分支预测器,诱导处理器错误预测间接分支目标,从而沿着攻击者影响的代码路径执行推测操作。
现代处理器会利用分支预测推测最可能的执行路径,并在分支结果确认前提前执行相关指令。Spectre v2 可让攻击者操纵 CPU 的间接分支预测器,使处理器在攻击者指定的位置执行推测指令,进而暴露敏感数据。
研究人员称,TONTOU 可以绕过依赖清理或隔离分支预测器的 Spectre v2 防御机制。此类机制被研究人员统称为基于中和的缓解措施,涵盖英特尔的 eIBRS(增强型间接分支限制推测)与 AMD 的 Safe RET(安全返回)。

这类防御在分支预测器被隔离之后、受害分支使用预测器之前存在一个时间窗口。现有 Spectre v2 缓解措施假设,攻击者无法利用清理分支预测器状态与使用该状态之间的间隔。研究人员则引入了一种原语,可在清理之后、使用之前再次污染 CPU 状态。
Trujillo 对 BleepingComputer 表示,攻击者无需特殊权限,即可读取系统中的任意内存,包括哈希密码等敏感数据。
研究人员开发了中断注入(Interrupt Injection)攻击。无特权用户程序可以安排定时器中断,使其在内核执行期间触发。研究人员解释称,这可以迫使内核跳转到中断处理程序,并利用该处理程序在中和后的时间窗口内污染微架构状态。
在部署最新 Spectre v2 缓解措施的 AMD Zen 2 主机上,两名研究人员完整验证了 TONTOU 攻击链,包括中和、重定向、污染,以及使用被污染的分支预测器。


该攻击已在 Intel 与 AMD 处理器上完成测试。在运行 Linux 6.14.0-37-generic、配备 16GB 内存的 AMD Zen 2 系统上,研究人员展示了该攻击能够以 5.47 bytes/s 的速率和 91.97% 的准确率泄露任意内核内存,其中包括 /etc/shadow(用于存储密码哈希)文件的内容。在 10 次测试中,攻击有 5 次成功定位并提取该文件,每次尝试平均耗时 18 分钟。


TONTOU:Time-of-Neutralization to Time-of-Use 时间窗口的可利用性
TONTOU:Time-of-Neutralization to Time-of-Use 时间窗口的可利用性
广告声明:文内含有的对外跳转链接(包括但不限于超链接、二维码、口令等形式),用于传递更多信息、节省甄选时间,结果仅供参考。IT之家包含外链的文章均包含本声明。
软媒旗下网站:IT之家、最会买——返利返现优惠券、iPhone之家、Win7之家、Win10之家、Win11之家。
软媒旗下软件:软媒手机 APP 应用、魔方、最会买、要知。