寄存器的推测解引用:复活 Foreshadow
密码学与安全
2020-08-07 v1
摘要
自 2016 年以来,多种微架构攻击利用了归因于预取的一种效应。这些工作观察到某些用户空间操作可将内核地址取入缓存。将用户不可访问的数据取入缓存使得 KASLR 被突破,并辅助各种 Meltdown 型攻击,尤其是 Foreshadow。在本文中,我们对该预取效应的根本原因进行了系统分析。虽然我们确认了先前论文的经验结果,但我们表明在所有先前描述或利用该效应的论文中,将其归因于预取机制从根本上就是错误的。特别地,预取指令和其他用户空间指令实际上都没有将内核地址预取到缓存中,这导致了错误的结论以及所提防御措施的无效。这些论文中所利用的效应实际上是由内核中用户空间寄存器的推测解引用引起的。因此,像 KAISER 这样的缓解技术并不像先前认为的那样消除了该泄漏。除了对这些先前工作的透彻分析,我们还展示了通过理解根本原因所实现的新攻击,即在更受限环境下的地址转换攻击、某些场景中寄存器值的直接泄漏,以及首个针对非 L1 数据的端到端 Foreshadow (L1TF) 漏洞利用。后者即使在启用了推荐的 Foreshadow 缓解措施时也有效,从而复活了 Foreshadow 攻击。我们证明了这些解引用效应即使在具有最新硬件缓解措施的最新 Intel CPU 上,以及在先前被认为不受影响的 CPU(即 ARM、IBM 和 AMD CPU)上也依然存在。
引用
@article{arxiv.2008.02307,
title = {Speculative Dereferencing of Registers:Reviving Foreshadow},
author = {Martin Schwarzl and Thomas Schuster and Michael Schwarz and Daniel Gruss},
journal= {arXiv preprint arXiv:2008.02307},
year = {2020}
}
备注
16 pages, 6 figures