SgxPectre 攻击:通过推测执行从 SGX 飞地窃取英特尔机密
密码学与安全
2019-09-12 v3
摘要
本文提出 SgxPectre 攻击,其利用近期披露的 CPU 漏洞来破坏 SGX 飞地的机密性与完整性。具体而言,我们表明当飞地代码的分支预测可被飞地外程序影响时,飞地程序的控制流可被临时改变以执行导致可观测缓存状态变化的指令。观察到此类变化的攻击者可以获知飞地内存或其内部寄存器中的机密,从而彻底破坏 SGX 所提供的机密性保证。为证明 SgxPectre 攻击的实用性,我们系统性地探索了分支目标注入的可能攻击向量、在飞地推测执行期间赢得竞争条件的方法,以及自动搜索发起攻击所需代码模式的技术。我们的研究表明,任何飞地程序都可能易受 SgxPectre 攻击,因为所需代码模式在大多数 SGX 运行时(如 Intel SGX SDK、Rust-SGX 和 Graphene-SGX)中均存在。最重要的是,我们已应用 SgxPectre 攻击从英特尔签名的引用飞地中窃取封装密钥与证明密钥。封装密钥可用于解密飞地外的封装存储并伪造有效的封装数据;证明密钥可用于伪造证明签名。出于这些原因,SgxPectre 攻击在实践中击败了 SGX 的安全保护。本文还系统性地评估了英特尔针对 SgxPectre 攻击的现有对策,并讨论了安全影响。
引用
@article{arxiv.1802.09085,
title = {SgxPectre Attacks: Stealing Intel Secrets from SGX Enclaves via Speculative Execution},
author = {Guoxing Chen and Sanchuan Chen and Yuan Xiao and Yinqian Zhang and Zhiqiang Lin and Ten H. Lai},
journal= {arXiv preprint arXiv:1802.09085},
year = {2019}
}