Speculative execution techniques have been a cornerstone of modern processors to improve instruction-level parallelism. However, recent studies showed that this kind of techniques could be exploited by attackers to leak secret data via transient execution attacks, such as Spectre. Many defenses are proposed to address this problem, but they all face various challenges: (1) Tracking data flow in the instruction pipeline could comprehensively address this problem, but it could cause pipeline stalls and incur high performance overhead; (2) Making side effect of speculative execution imperceptible to attackers, but it often needs additional storage components and complicated data movement operations. In this paper, we propose a label-based transparent speculation scheme called SpecBox. It dynamically partitions the cache system to isolate speculative data and non-speculative data, which can prevent transient execution from being observed by subsequent execution. Moreover, it uses thread ownership semaphores to prevent speculative data from being accessed across cores. In addition, SpecBox also enhances the auxiliary components in the cache system against transient execution attacks, such as hardware prefetcher. Our security analysis shows that SpecBox is secure and the performance evaluation shows that the performance overhead on SPEC CPU 2006 and PARSEC-3.0 benchmarks is small.
翻译:预测性执行技术是现代处理器改进教学水平平行技术的基石,然而,最近的研究表明,攻击者可以利用这类技术,通过短暂处决袭击(如Spectre)泄露秘密数据,例如Spectre。许多防御建议解决这一问题,但它们都面临各种挑战:(1) 跟踪指令管道中的数据流可以全面解决这一问题,但可能导致管道中断,并产生高性能管理费用;(2) 使攻击者无法察觉投机性执行的副作用,但往往需要额外的储存部件和复杂的数据移动操作。在本文件中,我们提出了一个以标签为基础的透明投机计划,称为SpecBox。它动态地分割缓存系统,以孤立投机性数据和非预期性数据,防止随后执行时观察执行。此外,它使用线性所有权结构图,防止投机性数据跨核心进入。此外,SpecBox还加强了缓冲系统中的辅助部件,如硬件前fetcher。我们的安全分析显示,SpecBox是安全的,而PEC-3性业绩基准显示2006年SPAR。