We use cookies to improve your experience with our site.

基于推测状态下隐私数据流追踪的安全推测执行机制

Secure Speculation via Speculative Secret Flow Tracking

  • 摘要:
    研究背景 推测执行是现代微处理器中一项必不可少的性能优化技术。通过预测转移指令的结果或者指令间的数据相关,推测执行技术允许处理器提前执行预测路径上的指令,从而避免处理器停顿。然而,近来出现的幽灵(Spectre)、熔断(Meltdown)和一些衍生的攻击表明推测执行能够被用来泄露进程中任意地址的数据,能够威胁几乎所有的现代处理器,带来了严重的安全威胁。
    目的 推测执行攻击主要利用处理器没有恢复推测错误路径上的指令修改的微体系结构状态这一现状。已有的防御策略通常会阻止大部分指令的推测执行,以避免隐私数据泄露,但是也产生了严重的性能开销。因此本文主要研究如何减少需要被阻塞的推测状态的指令数量,从而减少为抵御所有推测执行攻击而产生的性能开销。
    方法 本文提出了一种硬件防御策略SSFT(推测状态的隐私数据流追踪),用于抵御所有基于缓存侧信道的推测执行攻击。SSFT通过在指令执行过程中追踪隐私数据流,从而能够识别所有可能会泄露隐私数据的加载指令。为了阻止隐私数据泄露,SSFT采用了两种策略阻止这些不安全的加载指令修改缓存状态。这两种策略分别具有不同的设计复杂程度、硬件开销和性能开销。
    结果 为了抵御所有基于缓存侧信道的推测执行攻击,相对于以前的防御策略,SSFT能够减少平均64.3%的需要阻塞的推测状态的加载指令。为了阻止不安全的加载指令修改缓存状态,SSFT采用了两种不同复杂程度的策略,并且实验结果表明这两种设计的平均性能开销分别仅为4.5%和3.8%。
    结论 本文通过分析推测执行过程中隐私数据的获取和传播过程,提出了一种硬件防御策略能够以很低的性能开销抵御所有基于缓存侧信道的推测执行攻击。同时本文提供了两种不同复杂程度和安全性的硬件设计,能够更加便于实际处理器实现。未来我们将通过设计软硬件接口,由编程人员标记隐私数据,从而进一步减少不安全的加载指令的数量和降低防御策略的性能开销。

     

    Abstract: Speculative execution attacks can leak arbitrary program data under malicious speculation, presenting a severe security threat. Based on two key observations, this paper presents a software-transparent defense mechanism called speculative secret flow tracking (SSFT), which is capable of defending against all cache-based speculative execution attacks with a low performance overhead. First, we observe that the attacker must use array or pointer variables in the victim code to access arbitrary memory data. Therefore, we propose a strict definition of secret data to reduce the amount of data to be protected. Second, if the load is not data-dependent and control-dependent on secrets, its speculative execution will not leak any secrets. Thus, this paper introduces the concept of speculative secret flow to analyze how secret data are obtained and propagated during speculative execution. By tracking speculative secret flow in hardware, SSFT can identify all unsafe speculative loads (USLs) that are dependent on secrets. Moreover, SSFT exploits three different methods to constrain USLs’ speculative execution and prevent them from leaking secrets into the cache and translation lookaside buffer (TLB) states. This paper evaluates the performance of SSFT on the SPEC CPU 2006 workloads, and the results show that SSFT is effective and its performance overhead is very low. To defend against all speculative execution attack variants, SSFT only incurs an average slowdown of 4.5% (Delay USL-L1Miss) or 3.8% (Invisible USLs) compared to a non-secure processor. Our analysis also shows that SSFT maintains a low hardware overhead.

     

/

返回文章
返回