英特尔新交所再次败下阵来--这一次要归功于片上电能表

2020-11-11 02:09:50

研究人员发明了一种从英特尔CPU远程窃取密钥的新方法,即使在这些CPU运行软件保护扩展的情况下也是如此。软件保护扩展是一种硅内保护,本应创建一个受信任的飞地,不受此类攻击的影响。

研究人员将这种攻击称为鸭嘴兽,它使用一种新的载体打开最基本的侧通道之一,这是一种利用物理特征来推断存储在硬件中的秘密的利用形式。虽然大多数电源侧通道需要物理接入,这样攻击者才能测量电力消耗,但鸭嘴兽可以通过滥用运行平均功率限制远程实现这一点。此英特尔接口缩写为RAPL,可让用户监视和控制流经CPU和内存的能量。

周二,一个国际研究小组公布了一种使用RAPL来观察流经CPU的指令和数据的足够线索的方法,以推断CPU加载的值。使用鸭嘴兽,研究人员可以从SGX飞地和操作系统泄露加密密钥,打破被称为地址空间布局随机化的攻击缓解,并建立一个秘密渠道来秘密泄露数据。以英特尔Sandy Bridge架构开始的芯片很容易受到攻击。

通常,利用设备功耗差异的攻击需要对手拥有设备的物理访问权限。攻击者会在设备上安装一个带有探头的电能表,以测量其能耗。然而,现代处理器配备了内置的电能表,允许非特权用户从软件中读出它的测量值。现在,我们展示了可以利用此接口来恢复机器上处理的加密密钥。

作为对调查结果的回应,英特尔周二对RAPL进行了关键调整。第一个需要提升特权才能访问Linux中的界面,而在开源操作系统之前没有特权提供访问(Windows和OS X都需要安装特殊的驱动程序)。

然而,即使需要特权或专用驱动程序,攻击者仍然可以使用特权代码来实施攻击,这种攻击符合SGX的威胁模型,该模型被设计为即使在操作系统受到攻击时也是安全的。

为了解决这个问题,英特尔还在微码级别推出了第二个修复程序,当启用SGX时,它会限制报告的能耗。当开发人员使用时间恒定的加密算法时(这意味着执行的操作数量与输入大小无关),修复程序会阻止RAPL被用来推断CPU正在处理的指令或数据。

英特尔官员在一份声明中写道:“今天,我们发布了Intel-SA-0389,提供了详细信息和缓解指南,以防止英特尔SGX使用大多数现代处理器提供的运行平均功率限制(RAPL)接口可能泄露的信息。我们与行业合作伙伴进行了协调,并通过正常的英特尔平台更新(IPU)流程发布了针对这些漏洞的微码更新。“

该公司表示,虽然没有迹象表明这些漏洞已经被利用,但它正在为受影响的芯片平台发布新的认证密钥。英特尔在这里有更多缓解措施的指导。

周二的调查结果只是对构成所有计算的最基本构件之一的CPU的安全性提出挑战的最新一例。处理器端通道并不是什么新鲜事,但近三年前发生的名为Spectre and Meltdown的攻击开启了CPU攻击的新纪元,可以在更现实的场景中加以利用。从那时起,研究人员设计了一系列稳定的漏洞,包括一些破坏英特尔专有SGX技术安全保证的漏洞。

旁通道是由执行不同命令或操作时出现的计时、数据缓存、功耗或其他表现形式不同而产生的线索。攻击者利用这些差异来推断流经一块硬件的秘密命令或数据。最常见的侧通道形式之一是完成给定任务所需的电量。最近,这种能源消耗在很大程度上已经让位于投机性执行,而投机性执行是Spectre和Meltdown使用的辅助渠道。

鸭嘴兽背后的研究人员发现,RAPL接口报告的功耗具有足够的粒度,可以推断出重要的秘密。这些秘密中的关键是由AES-NI实现的加密密钥,英特尔表示,这是一组更能抵抗旁路攻击的指令。另一个泄露的秘密包括由新加坡交易所处理的RSA密钥。

研究人员还使用该接口来区分其他秘密信息,包括不同的汉明权重--定义为二进制数中的非零比特数。推断操作还会发生“缓存内”,这比许多旁路攻击提供了更高级别的粒度。研究人员还能够利用鸭嘴兽来破坏ASLR保护的随机性,攻击者可以将这一能力与软件攻击结合起来,使其变得更加强大。

对于经典的电源侧通道攻击,攻击者通常可以物理访问受害设备。攻击者使用示波器监控设备的能耗。有了像英特尔RAPL这样的接口,不再需要物理访问,因为可以直接从软件访问测量结果。先前的研究已经表明,英特尔RAPL接口导致的信息泄漏有限。Mantel等人。表明可以区分不同的加密密钥是否已由CPU处理。Paiva等人。通过调节DRAM的能耗建立了隐蔽通道。

我们的研究表明,英特尔RAPL接口可用于更具威胁性的场景。我们证明,除了区分不同的密钥之外,还可以重构整个密码密钥。我们通过从侧通道弹性AES-NI实施中恢复AES密钥以及从Intel SGX Enclave中恢复RSA密钥来证明这一点。此外,我们还区分了操作数或内存负载的不同汉明重量,从而威胁到密码算法的恒定时间实现。为了减少鸭嘴兽,通过更新操作系统,取消了对能源消耗的非特权访问。然而,对于英特尔SGX,受攻击的操作系统在威胁模型中,这使得这种缓解不够充分。因此,如果系统上启用了英特尔SGX,英特尔发布的微码更新会改变报告能耗的方式。它采用基于模型的方法,而不是实际的能量测量,这样就无法区分具有不同数据或操作数的相同指令。

虽然鸭嘴兽攻击英特尔处理器,但研究人员表示,竞争芯片中的板载电能表也可能被滥用来实施类似的攻击。例如,现代AMD CPU中的接口测量单个核心级别的功率。此外,对于运行在Linux内核5.8版及更高版本上的AMD Roman CPU,它不需要任何特权即可访问。

鸭嘴兽是漏电攻击的简称:瞄准你受保护的用户秘密。研究人员之所以选择这个名字,是因为他们说鸭嘴兽“是令人着迷的动物”,“可以从它们的嘴上探测到电信号”。

来自格拉茨理工大学、CISPA亥姆霍兹信息安全中心和伯明翰大学的研究人员的研究结果令人印象深刻,影响深远。因此,任何依赖新交所保护数据或计算安全的组织都必须阅读周二的论文。对于其他所有人来说,只要安装了所有可用的补丁,紧迫性就会大大降低。Linux分销商和PC制造商正在发布修复漏洞的更新,这些漏洞被跟踪为CVE-2020-8694和CVE-2020-8695。它们应该在可用时安装。