Out-of-order speculation, a technique ubiquitous since the early 1990s, remains a fundamental security flaw. Via attacks such as Spectre and Meltdown, an attacker can trick a victim, in an otherwise entirely correct program, into leaking its secrets through the effects of misspeculated execution, in a way that is entirely invisible to the programmer's model. This has serious implications for application sandboxing and inter-process communication. Designing efficient mitigations, that preserve the performance of out-of-order execution, has been a challenge. The speculation-hiding techniques in the literature have been shown to not close such channels comprehensively, allowing adversaries to redesign attacks. Strong, precise guarantees are necessary, but at the same time mitigations must achieve high performance to be adopted. We present Strictness Ordering, a new constraint system that shows how we can comprehensively eliminate transient side channel attacks, while still allowing complex speculation and data forwarding between speculative instructions. We then present GhostMinion, a cache modification built using a variety of new techniques designed to provide Strictness Order at only 2.5% overhead.
翻译:自1990年代初以来无处不在的投机技术,自1990年代初期以来无处不在,仍然是一个根本的安全缺陷。像Spectre和Meltdown这样的袭击,攻击者可以在一个本来完全正确的程序下,用程序员模型完全看不见的方式,通过错判处决的影响,欺骗受害者泄露其秘密。这对施用沙箱和过程间通信具有严重影响。设计有效的缓解措施,以保持执行不服命令的绩效,一直是一个挑战。文献中的投机手段已证明没有全面关闭这种渠道,允许对手重新设计攻击。强有力的、准确的保障是必要的,但与此同时,缓解措施必须达到很高的性能。我们提出严格性命令,这是一个新的约束系统,表明我们如何能够全面消除中性侧通道袭击,同时仍然允许在投机性指令之间复杂的投机和数据传递。我们然后介绍GhostMinion,一种缓存式的修改,是利用各种新的技术来提供严格性命令,只有2.5%的间接费用。