论文标题
投机性干涉攻击:打破隐形猜测方案
Speculative Interference Attacks: Breaking Invisible Speculation Schemes
论文作者
论文摘要
针对投机执行(例如,幽灵)的最新安全漏洞对处理器设计提出了重大挑战。高度公开的漏洞使用投机性执行来通过更改缓存状态来学习受害者的秘密。结果,最近的计算机体系结构研究集中在隐形的投机机制上,这些机制试图阻止由于投机执行而阻止高速缓存状态的变化。先前的工作在防止幽灵和其他脆弱性方面取得了巨大的成功。在本文中,我们引入了投机性干涉攻击,该攻击表明先前的无形投机机制不能完全阻止这些基于推测的攻击。我们进行了两个关键观察。首先,犯错的年轻说明可以更改较旧的,限制性的说明的时间,包括内存操作。其次,更改内存操作的时机可以改变该内存操作的顺序相对于其他内存操作,从而导致对缓存状态的持续更改。使用这些观察结果,我们证明(除其他攻击变体)表明,通过错误指示的指令访问的秘密信息可以改变界限到退休载荷的顺序。因此,即使在存在看不见的投机机制的情况下,负载正时变化也可能会在缓存中留下秘密依赖性变化。我们表明,这个问题不容易解决:投机性干扰将定时更改转换为持续的缓存态更改,并且通常许多基于缓存的防御措施忽略了时机。我们开发一个框架来了解攻击,并展示了针对无形投机机制的具体概念概念攻击。我们提供足以阻止投机性干扰攻击的安全定义;描述具有高性能成本的简单防御机制;并讨论未来的研究如何改善其性能。
Recent security vulnerabilities that target speculative execution (e.g., Spectre) present a significant challenge for processor design. The highly publicized vulnerability uses speculative execution to learn victim secrets by changing 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 vulnerabilities at modest performance costs. In this paper, we introduce speculative interference attacks, which show that prior invisible speculation mechanisms do not fully block these speculation-based attacks. We make two key observations. First, misspeculated 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 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 provide security definitions sufficient to block speculative interference attacks; describe a simple defense mechanism with a high performance cost; and discuss how future research can improve its performance.