英特尔 CPU 曝出严重漏洞 可发起侧信道攻击

  • 来源:网络
  • 更新日期:2020-06-12

摘要:网络安全研究人员发现了 2 种针对 Intel 处理器的攻击方式—— SGAxe 和 CrossTalk 攻击,可以从 CPU 的 trusted execution environments ( TEE,可信执行环境 ) 中窃取机密信

网络安全研究人员发现了 2 种针对 Intel 处理器的攻击方式—— SGAxe 和 CrossTalk 攻击,可以从 CPU 的 trusted execution environments ( TEE,可信执行环境 ) 中窃取机密信息。与 Intel 的 Software Guard Extensions ( SGX ) 类似,TEE 是处理器中的一个区域,用于确保代码和数据的机密性和完整性性。TEE 可以防止恶意攻击者对敏感软件和数据进行修改,以防攻破目标虚拟机。

SGAxe 攻击:从 SGX Enclave 中窃取敏感数据

SGAxe 攻击是CacheOut ( CVE-2020-0549 ) 攻击的一个变种,攻击者可以从 CPU 的 L1 Cache 中提取相关内容。CacheOut 攻击是一种推测攻击,可以窃取 SGX 数据。研究人员称通过对 Intel 提供和签名的 SGX enclave 进行攻击,可以通过网络提取出用于证明 enclave 真实性的 secret attestation key(秘密认证密钥),然后就可以传递伪造的 enclaves。

研究人员称 Intel 虽然采取了措施来应对针对 SGX 的侧信道攻击,比如微代码更新和新的架构,但这些措施并没有什么好的效果。

漏洞利用会导致瞬时执行攻击,可以从更新的 Intel 机器中恢复 SGX 加密密钥,而该密钥是 Intel 认证服务器信任的。认证是 SGX 的一部分,可以让 enclave 向第三方证明在真实的 Intel 处理器上正确地进行了初始化。这一思路是为了确保 CPU 中运行的软件不会被修改。

在攻击中,研究人员使用 CacheOut 来在 Intel 的生产 quoting enclave 地址空间中恢复 sealing key。然后用 sealing key 可以解密 quoting enclave 的存储,获取机器的 EPID 认证密钥。

然后攻击者就可以创建一个 Intel 认证机制的伪造的 enclave,打破了安全保证。一旦机器生产认证密钥被黑,那么服务器提供的所有机密都可以被客户端不可信的主机应用读取,同时客户端上运行的 enclave 生成的所有结果都将不再可靠。这就使得所有基于 SGX 的 DRM 应用没有用了,所有所谓的机密消息都可以被恢复。

Intel 在 1 月通过微代码更新的方式向 OEM 厂商发布了 CacheOut 的补丁,随后通过 BIOS 更新的方式分发到终端用户。SGAxe 的环节方式需要对 CacheOut 攻击的本质进行修复。芯片厂商可以执行 TCB(可信计算基)恢复的方式来让之前签名的所有认证密钥无效。

CrossTalk 攻击:从 CPU 核心窃取信息

第二个攻击名叫 CrossTalk 攻击,对应的漏洞 CVE 编号为 CVE-2020-0543。攻击利用了跨 CPU 核心可读的 staging 缓存来对核心发起瞬时执行攻击,从单个 CPU 核心中运行的安全 enclave 中提取完整的 ECDSA 私钥信息。

staging 缓存中有之前跨 CPU 核心执行的核下指令(offcore-instructions)的结果,比如,含有硬件 DRNG 返回的随机数、bootguard 状态哈希值和其他敏感数据。

CrossTalk 的工作原理是在瞬时执行时读取 staging 缓存来泄露之前执行的受害者指令可以访问的敏感数据。由于该缓存中含有RDRAND 和 RDSEED 指令的执行结果,因此非授权方可以记录生成的随机数,然后入侵 SGX enclave 中的加密操作,包括前面提到的远程认证过程。

PoC 代码参见:https://github.com/vusec/ridl

PoC 视频参见:https://www.youtube.com/embed/7tba2ayE3cI

漏洞影响

这两个攻击影响 Intel 2015 年到 2019 年发布的所有 CPU,从 Xeon E3 到 E CPU。

漏洞修复

针对现有的瞬时执行攻击的修复方案大部分通过对边界的部分隔离技术来实现,由于攻击是跨核心的,因此对该攻击是无效的。微代码更新可能是唯一的解决方案。

研究人员称早在 2018 年 9 月就向 Intel 提交了窃取信息的 PoC 代码,2019 年 7 月提交了跨核心 RDRAND/RDSEED 信息泄露的 PoC。由于漏洞修复的困难性,Intel 在漏洞提交后 21 个月通过微代码更新的方式向软件厂商发布了补丁。Intel 建议受影响的处理器用户更新厂商提供的最新固件来解决相关的安全问题。

更多关于 CrossTalk 攻击的信息参见https://www.vusec.net/projects/crosstalk/