Skip to main content
QUICK REVIEW

[论文解读] ConTExT: Leakage-Free Transient Execution

Michael Schwarz, Robert Schilling|arXiv (Cornell University)|May 22, 2019
Security and Verification in Computing参考文献 64被引用 19
一句话总结

ConTExT 是一种软硬件协同设计的技术,通过将敏感寄存器和内存标记为非瞬态,防止在瞬态执行期间发生秘密数据泄露,确保秘密无法通过微架构侧信道被窃取。该技术在真实工作负载中实现了接近零的性能开销,同时完全缓解了 Spectre 和微架构数据采样攻击。

ABSTRACT

Out-of-order execution and speculative execution are among the biggest contributors to performance and efficiency of modern processors. However, they are inconsiderate, leaking secret data during the transient execution of instructions. Many solutions have been proposed against transient execution attacks. However, they do not eliminate the leakage entirely or introduce unacceptable performance penalties. In this paper, we propose ConTExT, a Considerate Transient Execution Technique. The basic idea of ConTExT is that secrets can enter registers, but not transiently leave them. ConTExT transforms Spectre from a problem that cannot be solved purely in software [53], to a problem that is not easy to solve, but solvable in software. For this, ConTExT requires minimal modifications of applications, compilers, operating systems, and the hardware. ConTExT offers full protection for secrets in memory and secrets in registers. We evaluate the security and performance of ConTExT. With its principled approach it inherently mitigates the recently found microarchitectural data sampling attacks on small processor buffers. Even when over-approximating, we observe no performance overhead for unprotected code and data, and an overhead of 71.14% for security-critical applications, which is below the overhead of currently recommended state-of-the-art mitigation strategies. The actual overhead of ConTExT is below 1% for real-world workloads.

研究动机与目标

  • 解决现代乱序执行与推测执行处理器中秘密数据在瞬态执行期间泄露的根本问题。
  • 克服现有纯软件缓解方案的局限性,这些方案要么无法防止所有泄露,要么带来过高的性能开销。
  • 提供一种既能抵御所有已知的瞬态执行攻击,又足够高效以实现实际部署的解决方案。
  • 实现安全执行,而无需中止推测执行,从而保留非敏感代码路径的性能。
  • 证明通过最小且与现有系统兼容的架构修改,可以实现瞬态执行的安全化。

提出的方法

  • 复用一个未使用的页表位(例如,当前未使用的 PTE 位),将内存页和寄存器标记为“非瞬态”,从而阻止其在瞬态执行域中被使用。
  • 修改应用程序、编译器和操作系统,以在寄存器传输和内存访问过程中传播非瞬态标志。
  • 确保任何加载到寄存器中的秘密数据均被标记为非瞬态,从而在推测执行期间无法通过微架构通道泄露。
  • 利用现有的不可缓存内存语义作为实际可行性的类比,验证所提机制的可行性。
  • 在处理器模拟器和通用系统上实现概念验证,以评估安全性和性能。
  • 应用过度近似技术(例如,ConTExT-light)来估算性能开销的上限,同时保持强大的安全保证。

实验结果

研究问题

  • RQ1是否可以在不中止推测执行或付出不可接受性能代价的前提下,完全缓解瞬态执行攻击?
  • RQ2仅通过最小的软硬件修改,是否能够防止秘密数据通过微架构侧信道在瞬态执行期间被窃取?
  • RQ3ConTExT 的性能开销与现有最先进缓解策略相比,在多样化工作负载下如何?
  • RQ4非瞬态标记机制是否可以统一应用于内存和寄存器,以防止所有已知的隐蔽信道?
  • RQ5ConTExT 在不进行重大架构重构的前提下,能够在现有系统中部署到何种程度?

主要发现

  • ConTExT 通过确保敏感数据无法通过任何微架构通道被访问或泄露,彻底消除了瞬态执行期间的秘密数据泄露。
  • 未受保护代码和数据的性能开销可忽略不计,大多数真实工作负载的实际开销低于 1%。
  • 即使在过度近似下,ConTExT-light 对于安全关键型应用的开销也仅为 71.14%,低于当前最先进缓解策略的总开销。
  • ConTExT 天然地抵御所有已知的 Spectre 变种以及近期针对小型处理器缓冲区的微架构数据采样攻击。
  • 该技术与虚拟化兼容,因为 EPT 可以类似地将页面标记为非瞬态,且该机制独立于虚拟化层。
  • 现有不可缓存内存语义已验证该方法的可行性,表明此类机制在现代处理器中是可实现的。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

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