谷歌的一位高级研究科学家设计了新的CPU攻击,以利用一个名为Downfall的漏洞,该漏洞影响多个英特尔微处理器系列,并允许从共享同一台计算机的用户那里窃取密码、加密密钥和私人数据,如电子邮件、消息或银行信息。
该缺陷被追踪为CVE-2022-40982,是一个瞬态执行侧通道问题,影响所有基于英特尔从Skylake 至Ice Lake系列的微处理器。
利用该安全问题的攻击者可以提取受Software Guard eXtensions (SGX)保护的敏感信息,这是英特尔基于硬件的内存加密,可以将内存中的代码和数据与系统上的软件分离。
SGX目前仅在服务器中央处理单元上受支持,并为操作系统都无法访问的软件提供了一个可信的隔离环境。
▍收集机密数据
发现该漏洞并向英特尔负责报告的谷歌研究员Daniel Moghimi表示,他的Downfall攻击技术利用了“在推测执行过程中泄露内部矢量寄存器文件内容”的收集指令。
Gather是英特尔处理器内存优化的一部分,用于加快访问内存中零散数据的速度。然而,正如Moghimi在发表的一篇技术论文中所解释的那样:
收集指令似乎使用了在同级CPU线程之间共享的临时缓冲区,它会将数据临时转发给以后的相关指令,并且数据属于不同的进程,并在同一内核上执行收集。
Moghimi开发了两种Downfall攻击技术,即收集数据采样(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)有时间测试和验证解决方案,并为其客户准备必要的更新。
英特尔表示,该问题不会影响Alder Lake、Raptor Lake和Sapphire Rapids,Downfall影响以下三个处理器系列:
● Skylake 系列(Skylake, Cascade Lake, Cooper Lake, Amber Lake, Kaby Lake, Coffee Lake, Whiskey Lake, Comet Lake)
● Tiger Lake 系列
● Ice Lake 系列(Ice Lake, Rocket Lake)
英特尔负责补救和响应工程的副总裁Vivek Tiwari认为,“尝试在受控实验室环境之外利用这一点将是一项复杂的任务。”
英特尔还表示,客户可以查看该公司的风险评估指南,并决定通过Windows和Linux以及虚拟机管理器(VM)中提供的机制禁用微码缓解。
这样的决定可能是出于对Downfall/GDS缓解措施潜在性能问题的担忧,或者因为该问题不代表对环境的威胁。
英特尔为客户提供威胁评估和性能分析信息,得出的结论是该问题在某些环境中的影响可能很小。
在高性能计算(HPC)环境特有的频繁执行收集指令的条件下,存在潜在的影响。
然而,该芯片制造商表示,由于攻击的条件和这些环境的典型配置,在HPC环境中,该问题可能不会被视为威胁。
“例如,攻击者需要在与目标相同的物理核心上运行,并且能够运行不受信任的代码,这在这些环境中是不常见的。”
▍基于软件的缓解措施
要消除Downfall/GDS攻击的风险,需要重新设计硬件,而行业尚未准备好为此付出代价。
基于软件的替代方案是存在的,尽管这些方案有一些警告,并且只是问题的临时解决方案。Moghimi提出了四种这样的替代方案,其中三种方案具有显著的缺点:
● 禁用同时多线程(SMT)可以部分缓解GDS和GVI攻击,但削减超线程会导致30%的性能损失,并且跨环境切换的泄漏仍然会发生。
● 禁止受影响的指令通过操作系统和编译器进行收集,以防止它们泄露机密;缺点是一些应用程序可能会被中断,并且如果错过了某些指令,泄漏仍然会发生。
● 禁用聚集。这里的缺点是使用该指令的应用程序可能会变得缓慢甚至中断。
● 防止收集指令后的瞬态数据转发(添加载荷围栏,例如lfence指令)可以缓解Downfall,这是英特尔在最新微码更新中采用的解决方案。
不过,Moghimi警告说,如果不消除问题的根本原因,“自动化测试实际上可以在CPU中发现新的漏洞。”
创建此类工具并不容易,因为它们需要更好地覆盖硬件和支持的指令,考虑到硬件的复杂性和专有障碍,这是一项具有挑战性的任务。
英特尔发布了CVE-2022-40982的安全建议,目前的中等严重级别为6.5。