上周,来自俄亥俄州立大学的六名科学家公布了Spectre 攻击的一个新变体 SgxSpectre,它能从 Intel SGX 封装中提取数据。
Intel SGX (Software Guard eXtensions) 是现代 Intel 处理器中的一个功能,能让某个应用创建所谓的封装。这个封装是 CPU 处理内存的硬件隔离部分,供应用执行操作处理极其敏感的详情,如加密密钥、密码、用户数据等。
年初公布的 Meltdown 和 Spectre 攻击可导致攻击者打破操作系统和应用之间的隔离以及app 内部的隔离,从而导致恶意攻击者从操作系统内核或其它应用中检索信息。
SGX SDK 中的SgxSpectre 攻击代码模式
Meltdown 和 Spectre 均无法从 SGX 封装中提取数据,这就是 SgxSpectre 产生的原因。
研究人员表示,SgxSpectre 攻击之所以奏效,是因为软件库中存在的具体代码模式允许开发人员在应用中添加 SGX 支持。易受攻击的 SGX 开发包包括 Intel SGX SDK、Rust-SGX 以及 Graphene-SGX。
研究人员认为攻击者能利用这些 SDK 在 SGX 封装中引入的重复性代码执行模式并查看缓存大小的微小变动。它是典型的“侧信道攻击”,而且非常有效。
研究人员指出,“SgxSpectre 攻击能完全攻陷 SGX 封装的机密性。由于存在易受攻击的代码模式并难以被清除,因此攻击者能发动针对任意封装程序的 SgxSpectre 攻击。”
研究团队还指出,“由于SDK运行环境库中存在易受攻击的代码模式,任何经由 Intel 官方 SGX SDK 开发的代码均受攻击影响,而不管封装程序如何执行。”
Intel SGX SDK 将予以更新
英特尔公司最近发布的 Spectre 补丁并不太管用,因为攻击者可绕过这些修复方案。该公司表示正在推出增加SgxSpectre 缓解措施的Intel SGX SDK 并将于3月16日发布。
应用开发人员将需要将这个新的 SDK 版本集成到启用 SGX 功能的应用中,并为用户发布更新。
实现谷歌 Retpoline 反Spectre 编码技术的应用是安全的,并不受影响。
研究人员已发布 SgxSpectre 攻击的演示视频并在 GitHub 上发布了 PoC 代码。另外,感兴趣的用户也可下载该团队的研究论文《SgxSpectre:攻击:让预测执行泄露封装的秘密》。
除 SgxSpectre 之外,研究人员还披露了 Meltdown 和 Spctre 的两个变体攻击,即MeltdownPrime 和 SpectrePrime。
研究人员在题为《MeltdownPrime 和 SpectrePrime:利用基于无效性的一致性协议实施自动化合成攻击》。这两种攻击能泄露内核和其它应用中的数据,虽然方法不同但速度更快。
小编说
虽然关于Spectre的补丁持续不断地在更新,但是攻击者总能找到新的绕过方式,目前的策略似乎并不奏效,作为吃瓜群众的我们,只能继续观望后续发展。