今日,谷歌的一位高级研究科学家利用一个漏洞设计了一种新的CPU攻击方法,该漏洞可影响多个英特尔微处理器系列,并允许窃取密码、加密密钥以及共享同一台计算机的用户的电子邮件、消息或银行信息等私人数据。
该漏洞被追踪为CVE-2022-40982,是一个瞬态执行侧通道问题,影响基于英特尔微架构Skylake到Ice Lake的所有处理器。
(资料图片)
攻击者利用这个安全漏洞可以提取受软件保护扩展(SGX)保护的敏感信息。SGX是英特尔基于硬件的内存加密技术,可以将内存中的代码和数据与系统上的软件分离开来。
SGX目前仅在服务器中央处理单元上得到支持,并为那些操作系统都无法访问的软件提供可信的隔离环境。
收集秘密数据谷歌研究员Daniel Moghimi发现了这个漏洞,并将其报告给了英特尔,他说他的垮台攻击技术利用了gather指令,“在推测执行期间泄露了内部矢量寄存器文件的内容”。
Gather是英特尔处理器内存优化的一部分,用于加速访问内存中的分散数据。然而,正如Moghimi在今天发表的一篇技术论文中解释的那样:“gather指令似乎使用了一个跨同级CPU线程共享的临时缓冲区,它将数据暂时转发给后来依赖的指令,数据属于不同的进程,并在同一核心上运行gather执行。”
Moghimi开发了两种攻击技术,一种是收集数据采样(GDS),另一种是收集值注入(GVI),它将GDS与2020年披露的负载值注入(LVI)技术相结合。
通过使用GDS技术,Moghimi 能够在受控虚拟机之外的另一个虚拟机(VM)上窃取 AES 128 位和 256 位加密密钥,每个系统都位于同一 CPU 内核的同胞线程上。
研究人员可在10 秒内一次性窃取 8 个字节,最终成功窃取了 AES 圆形密钥,并将它们组合起来破解了加密。对于 100 个不同的密钥,AES-128 的首次攻击成功率为 100%。对 AES-256 的首次攻击成功率为 86%。
研究人员指出,尝试失败意味着恢复整个密钥需要多次运行攻击,因为主密钥的数据不会在 10 秒内频繁出现。
除了加密密钥外,Moghimi还提供了 GDS 攻击的变种,这种攻击可以窃取静态的任意数据,因为在两种情况下,CPU 会将这类信息预取到 SIMD 寄存器缓冲区中。
威胁评估和微代码性能影响Moghimi 指出,Downfall 攻击要求攻击者与受害者在同一个物理处理器内核上。但恶意软件等本地程序有可能利用这一漏洞窃取敏感信息。
去年 8 月,英特尔发现了 Downfall/GDS 漏洞,并与 Moghimi 合作进行了研究,并且目前提供了微码更新来缓解这一问题。
为了给原始设备制造商(OEM)和通信服务提供商(CSP)留出测试和验证解决方案的时间,并为他们的客户准备必要的更新,有关该漏洞的细节保密了近一年。
英特尔告诉 BleepingComputer,该问题不会影响 Alder Lake、Raptor Lake 和 Sapphire Rapids,Downfall 会影响以下三个系列的处理器:
Skylake 系列(Skylake、Cascade Lake、Cooper Lake、Amber Lake、Kaby Lake、Coffee Lake、Whiskey Lake、Comet Lake)虎湖系列冰湖系列(Ice Lake、Rocket Lake)英特尔修复和响应工程副总裁 Vivek Tiwari 认为,试图在受控实验室环境之外利用这一点将是一项复杂的工作。
英特尔在给 BleepingComputer 的一份声明中表示,客户可以查看公司提供的风险评估指南,并决定通过 Windows 和 Linux 以及虚拟机管理器(VMM)中的可用机制禁用微码缓解功能。
做出这样的决定可能是出于对Downfall/GDS缓解措施可能带来的性能问题的担忧,也可能是因为该问题对环境不构成威胁。
英特尔为客户提供了威胁评估和性能分析信息,其结论是在某些环境中该问题的影响可能很小。在频繁执行收集指令的情况下,存在潜在影响,这是高性能计算(HPC)环境所特有的。
不过,该芯片制造商表示,由于攻击的条件和这些环境的典型配置,该问题在高性能计算环境中可能不会被视为威胁。
例如,攻击者需要在与目标相同的物理内核上运行,并能够运行不受信任的代码等,而这些在这些环境中并不常见。
基于软件的缓解措施要消除 Downfall/GDS 攻击的风险,需要重新设计硬件。虽然基于软件的替代方案是存在的,不过这些方案都有注意事项,而且只能暂时解决问题。Moghimi 提出了四种这样的替代方案,其中三种有明显的缺点:
禁用同步多线程(SMT)可部分缓解 GDS 和 GVI 攻击,但削减超线程会带来 30% 的性能损失,而且跨上下文切换的泄漏仍会发生通过操作系统和编译器禁止受影响的指令,以防止它们向收集泄密;缺点是一些应用程序可能会被打乱,而且如果漏掉某些指令,泄密仍会发生禁用收集。缺点是使用该指令的应用程序可能会变得缓慢甚至崩溃防止收集指令后的瞬时数据转发(添加加载栅栏,如 lfence 指令)可减轻 Downfall,这也是英特尔在最新微代码更新中采用的解决方案。不过,Moghimi 表示,要创建这样的工具并不容易,因为它们需要更好地覆盖硬件和支持的指令,鉴于硬件的复杂性和专有障碍,这是一项具有挑战性的任务。
这位研究人员发布了 Downfall 的代码,以便其他人可以查看和试用。此外,Daniel Moghimi 还计划在美国黑帽安全大会上讨论 Downfall 漏洞和攻击技术。
英特尔发布了 CVE-2022-40982 的安全公告,目前的严重程度为 6.5 级。基于此漏洞,该公司还提供了一份技术文件,以及 Moghimi 关于 Downfall 的采访内容。