Skip to main content
QUICK REVIEW

[论文解读] You Shall Not Bypass: Employing data dependencies to prevent Bounds Check Bypass

Oleksii Oleksenko, Bohdan Trach|arXiv (Cornell University)|May 22, 2018
Security and Verification in Computing参考文献 4被引用 26
一句话总结

本文提出通过引入人工数据依赖来防止边界检查绕过(BCB)攻击——一种利用推测执行的攻击方式——通过延迟易受攻击的内存加载操作,而无需完全序列化。与导致440%性能开销的LFENCE防护方法相比,作者提出的数据依赖技术(如LAHF、CMOV、参数依赖)在Phoenix基准测试集上平均将开销降低至60%,在保持CPU并行性的同时阻止推测性信息泄露。

ABSTRACT

A recent discovery of a new class of microarchitectural attacks called Spectre picked up the attention of the security community as these attacks can circumvent many traditional mechanisms of defense. One of the attacks---Bounds Check Bypass---can neither be efficiently solved on system nor architectural levels and requires changes in the application itself. So far, the proposed mitigations involved serialization, which reduces the usage of CPU resources and causes high overheads. In this report, we explore methods of delaying the vulnerable instructions without complete serialization. We discuss several ways of achieving it and compare them with Speculative Load Hardening, an existing solution based on a similar idea. The solutions of this type cause 60% overhead across Phoenix benchmark suite, which compares favorably to the full serialization causing 440% slowdown.

研究动机与目标

  • 应对边界检查绕过(BCB)攻击的持续威胁,此类攻击是Spectre类微架构漏洞的典型代表,可绕过传统软件与硬件防护机制。
  • 克服全序列化(如LFENCE)在缓解BCB攻击时带来的严重性能开销,此类方法可能导致运行时性能下降高达440%。
  • 开发并评估细粒度的缓解策略,通过人工数据依赖延迟推测性内存加载,同时保持指令级并行性。
  • 对比多种数据依赖技术(如LAHF、CMOV、参数依赖)与现有方案(如推测加载加固SLH)在有效性与性能方面的表现。

提出的方法

  • 在条件分支与后续内存加载之间引入人工数据依赖,以防止敏感加载的推测执行。
  • 使用LAHF指令在EFLAGS寄存器上创建依赖,确保内存加载仅在比较操作完成后才执行。
  • 使用CMOVGE根据比较结果条件性地设置掩码值,使加载操作依赖于比较结果,并将推测性值置零。
  • 通过将输入参数与寄存器(如R15)进行异或操作,创建对输入参数的依赖,从而在比较完成前延迟加载操作。
  • 在基于Haswell的Intel处理器上,使用LLVM编译器在Phoenix基准测试套件中实现并评估上述技术。
  • 通过IPC测量与运行时开销对比多个基准测试,评估其可扩展性与效率。

实验结果

研究问题

  • RQ1基于数据依赖的缓解机制是否能在不产生全序列化高开销的前提下,有效防止边界检查绕过攻击?
  • RQ2不同数据依赖技术(如LAHF、CMOV、参数依赖)在性能开销与安全保证方面有何差异?
  • RQ3与基于LFENCE的序列化相比,这些技术在多大程度上保留了指令级并行性?
  • RQ4在真实工作负载中,推测加载加固(SLH)是否比传统的LFENCE插入提供更好的性能?
  • RQ5这些缓解措施对不同工作负载(如紧密循环或内存密集型内核)的影响如何?

主要发现

  • 基于LFENCE的防护在Phoenix基准测试集上造成平均440%的性能开销,严重降低CPU利用率,且使IPC从约2.3下降至约0.5。
  • 所提出的基于数据依赖的技术将平均开销降低至60%,显著优于全序列化方案,同时保持了强大的安全保证。
  • 基于LAHF的方法开销极低,但需要仔细的寄存器管理,且并非所有编译器原生支持。
  • 推测加载加固(SLH)的性能与LAHF方法相当,但使用单条AND指令进行掩码处理,减少了指令数量,提升了效率。
  • 参数依赖方法最为简单,但缺乏严格的执行顺序保证,因硬件重排序仍可能导致在比较延迟时发生推测执行。
  • kmeans与string_match等基准测试的开销最高,原因在于其紧密循环结构,推测性并行性在此类场景中最为关键,也最易被缓解措施破坏。

更好的研究,从现在开始

从论文设计到论文写作,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。