逆向工程Apple M1条件分支预测器以实现带外Spectre误训练
密码学与安全
2025-02-18 v1
摘要
利用CPU条件分支预测错误的Spectre v1信息泄露攻击在已部署软件中仍未解决。某些Spectre v1 gadget只能通过带外误训练进行利用,其中攻击者通过在分支预测器单元(BPU)结构中训练一个与受害者分支别名化的分支,从可能不同的地址空间控制受害者分支的预测。然而,为受害者分支构建BPU别名十分困难。因此,实际的带外误训练攻击使用暴力搜索来随机实现别名化。迄今为止,此类攻击仅在Intel x86 CPU上得到过演示。本文探讨了Apple M系列CPU对实际带外Spectre v1误训练的脆弱性。我们表明,暴力带外误训练在M1上会失败。我们分析性地解释了该失败是由于搜索空间过大,并假设(基于Apple专利)M1 CPU使用TAGE条件分支预测器的变体。基于我们的分析,我们设计了一种缩减搜索空间的新型BPU别名搜索技术。我们的技术需要了解某些M1 BPU参数和机制,我们对此进行了逆向工程。我们还利用我们新获得的执行带外Spectre v1误训练的能力,测试了M1 CPU是否实现了针对跨地址空间带外误训练的硬件缓解措施,并发现了部分缓解的证据。
引用
@article{arxiv.2502.10719,
title = {Reverse Engineering the Apple M1 Conditional Branch Predictor for Out-of-Place Spectre Mistraining},
author = {Adam Tuby and Adam Morrison},
journal= {arXiv preprint arXiv:2502.10719},
year = {2025}
}