一句话:提出推测干扰攻击,证明不可见推测机制无法完全阻止基于缓存状态的推测执行攻击。
近期针对推测执行的安全漏洞(如 Spectre)促使体系结构研究提出“不可见推测”机制,试图阻止推测执行改变缓存状态,从而以较小性能代价防御攻击。本文指出这些机制并不充分,并提出推测干扰攻击。作者基于两个关键观察:被错误推测的年轻指令会改变较老的、必然退休指令(包括内存操作)的时序;而内存操作时序改变会改变其相对顺序,进而造成持久的缓存状态变化。利用这两点,论文展示了错误推测指令访问的秘密信息可以改变必然退休 load 的顺序,使秘密相关的缓存变化在不可见推测机制下依然残留。作者建立了理解该攻击的框架,并给出针对不可见推测机制的具体概念验证攻击,说明该问题不易修复。最后讨论了足以阻止此类攻击的安全定义,以及基于这些定义的初步防御思路。
Recent security vulnerabilities that target speculative execution (e.g., Spectre) present a significant challenge for processor design. These highly publicized vulnerabilities use speculative execution to learn victim secrets by changing the cache state. As a result, recent computer architecture research has focused on invisible speculation mechanisms that attempt to block changes in cache state due to speculative execution. Prior work has shown significant success in preventing Spectre and other attacks at modest performance costs. In this paper, we introduce speculative interference attacks, which show that prior invisible speculation mechanisms do not fully block speculation-based attacks that use cache state. We make two key observations. First, mis-speculated younger instructions can change the timing of older, bound-to-retire instructions, including memory operations. Second, changing the timing of a memory operation can change the order of that memory operation relative to other memory operations, resulting in persistent changes to the cache state. Using both of these observations, we demonstrate (among other attack variants) that secret information accessed by mis-speculated instructions can change the order of bound-to-retire loads. Load timing changes can therefore leave secret-dependent changes in the cache, even in the presence of invisible speculation mechanisms. We show that this problem is not easy to fix. Speculative interference converts timing changes to persistent cache-state changes, and timing is typically ignored by many cache-based defenses. We develop a framework to understand the attack and demonstrate concrete proof-of-concept attacks against invisible speculation mechanisms. We conclude with a discussion of security definitions that are sufficient to block the attacks, along with preliminary defense ideas based on those definitions.
@inproceedings{paperbot6140,
title = {Speculative interference attacks: breaking invisible speculation schemes},
author = {Mohammad Behnia and Prateek Sahu and Riccardo Paccagnella and Jiyong Yu and Zirui Neil Zhao and Xiang Zou and Thomas Unterluggauer and Josep Torrellas and Carlos Rozas and Adam Morrison and Frank Mckeen and Fangfei Liu and Ron Gabor and Christopher W. Fletcher and Abhishek Basak and Alaa Alameldeen},
booktitle = {ASPLOS},
year = {2021},
doi = {10.1145/3445814.3446708}
}