Speculative side-channel attacks access sensitive data and use transmitters to leak the data during wrong-path execution. Various defenses have been proposed to prevent such information leakage. However, not all speculatively executed instructions are unsafe: Recent work demonstrates that speculation invariant instructions are independent of speculative control-flow paths and are guaranteed to eventually commit, regardless of the speculation outcome. Compile-time information coupled with run-time mechanisms can then selectively lift defenses for speculation invariant instructions, reclaiming some of the lost performance. Unfortunately, speculation invariant instructions can easily be manipulated by a form of speculative interference to leak information via a new side-channel that we introduce in this paper. We show that forward speculative interference whereolder speculative instructions interfere with younger speculation invariant instructions effectively turns them into transmitters for secret data accessed during speculation. We demonstrate forward speculative interference on actual hardware, by selectively filling the reorder buffer (ROB) with instructions, pushing speculative invariant instructions in-or-out of the ROB on demand, based on a speculatively accessed secret. This reveals the speculatively accessed secret, as the occupancy of the ROB itself becomes a new speculative side-channel.
翻译:推测的侧道攻击获取敏感数据,并使用发射机在错误执行过程中泄露数据。提出了各种防御办法,以防止信息泄漏。然而,并非所有投机性执行指令都是不安全的:最近的工作表明,投机性不规则指令独立于投机性控制流程,保证最终实施,而不论投机性控制流程的结果如何。编集时间信息加上运行时间机制可以有选择地解除对投机性指令的防御,收回一些损失的性能。不幸的是,投机性指令很容易被投机性干扰形式所操纵,通过我们在本文中引入的新侧道泄漏信息。我们表明,前方投机性干扰,旧的投机性指令干扰了较年轻的投机性指令,从而有效地将这些指令转化为在投机性投机性过程中获取的秘密数据的发射机。我们展示了对实际硬件的投机性干预,通过指示有选择地填补重新订购缓冲(ROB),根据投机性获取的秘密,在需求中或退出ROB,推行投机性波动性指令。这暴露了投机性获取的秘密,因为ROB的占用本身成为新的投机性侧路。