On modern x86 processors, data prefetching instructions can be used by programmers to boost performance. Although good for performance, we found that PREFETCHW, which is a data prefetching instruction to accelerate future write operations, has two significant security flaws on Intel processors: first, this instruction can execute on data with read-only permission; second, the execution time of this instruction leaks the current coherence state of the target data. Based on these two design flaws, we build the first two cross-core cache timing attacks that can work on private caches. Specifically, we first propose two covert channel attacks that can achieve a 864KB/s transmission rate which is higher than all existing cache covert channel attacks. Then we further propose two side channel attacks that can be used to monitor the access pattern of the victim running on the same processor. We demonstrate the efficacy of our attacks by using them to leak private information from daily applications. Finally, we show that our prefetch based attacks can be used in transient execution attacks to leak more secrets within one speculative window.
翻译:在现代的x86处理器上,数据预发指令可以被程序员用来提高性能。虽然对性能有好处,但我们发现PREFETCHW是一个数据预发指令,可以加速未来的写作操作,但在Intel处理器上存在两个严重的安全缺陷:首先,该指令可以在只读许可的情况下执行数据;第二,该指令的执行时间泄漏了目标数据目前的一致性状态。根据这两个设计缺陷,我们建立了前两个跨核心缓存定时攻击,可以对私人缓存起作用。具体地说,我们首先提出两起秘密频道攻击,可以达到864KB/s的传输速度,高于所有现有的缓存隐蔽频道攻击速度。然后我们进一步提议两起侧频道攻击,可用于监测在同一处理器上运行的受害者的进入模式。我们通过使用它们泄露日常应用的私人信息来证明我们攻击的功效。最后,我们表明,我们基于前缓发指令的攻击可以用在瞬射执行攻击中使用,在一个投机窗口内泄露更多的秘密。