Modern processor designs use a variety of microarchitectural methods to achieve high performance. Unfortunately, new side-channels have often been uncovered that exploit these enhanced designs. One area that has received little attention from a security perspective is the processor's hard-ware prefetcher, a critical component used to mitigate DRAM latency in today's systems. Prefetchers, like branch predictors, hold critical state related to the execution of the application, and have the potential to leak secret information. But up to now, there has not been a demonstration of a generic prefetcher side-channel that could be actively exploited in today's hardware. In this paper, we present AfterImage, a new side-channel that exploits the Intel Instruction Pointer-based stride prefetcher. We observe that, when the execution of the processor switches between different private domains, the prefetcher trained by one domain can be triggered in another. To the best of our knowledge, this work is the first to publicly demonstrate a methodology that is both algorithm-agnostic and also able to leak kernel data into userspace. AfterImage is different from previous works, as it leaks data on the non-speculative path of execution. Because of this, a large class of work that has focused on protecting transient, branch-outcome-based data will be unable to block this side-channel. By reverse-engineering the IP-stride prefetcher in modern Intel processors, we have successfully developed three variants of AfterImage to leak control flow information across code regions, processes and the user-kernel boundary. We find a high level of accuracy in leaking information with our methodology (from 91%, up to 99%), and propose two mitigation techniques to block this side-channel, one of which can be used on hardware systems today.
翻译:现代处理器的设计使用各种微分解方法来取得高性能。 不幸的是, 新的侧通道常常被发现, 利用这些强化的设计。 从安全角度很少受到注意的一个领域是处理器的硬件预设屏, 这是用来减轻当今系统中 DRAM 悬浮度的关键组成部分。 预产器, 像分支预测器一样, 保持与应用程序执行相关的临界状态, 并有可能泄露秘密信息。 但到目前为止, 还没有成功展示一种通用的预设侧通道, 可以在今天的硬件中积极加以利用。 在这个文件中, 我们展示了 AfterImage, 一个新的侧通道, 利用了Intel 指示点的硬盘预设预设屏, 用于减轻 DRAM 系统在今天的系统运行过程中, 一个区域所训练的预设平台可以在另一个区域中触发。 我们最了解的是, 这项工作是公开展示一种既具有算法的侧端端端端, 也可以在系统运行后, 将无法移动的端端端端端端端端端控制。, 这个系统在前的端端端端端端系统里, 将显示一个系统在前端端端系统里, 在前端系统里, 系统里, 系统里, 系统里, 系统里, 系统里, 系统里, 系统里, 系统里, 将无法在运行中, 系统内, 系统里, 将隐藏在运行中, 数据流数据流的中, 隐藏在运行中, 隐藏在运行中, 将数据流数据流, 。