TEE安全防线被攻破:WireTap与Battering RAM攻击技术深度解析

研究人员通过WireTap和Battering RAM两种攻击技术,成功突破了Intel SGX和AMD SEV等可信执行环境的防护。这些攻击利用DDR4内存总线漏洞,以极低成本实现了加密数据的窃取,甚至可绕过AMD SEV-SNP的安全扩展。

WireTap与Battering RAM:针对TEE的攻击 | 卡巴斯基官方博客

服务器基础设施中的TEE破解

两份独立的研究报告生动展示了虚拟系统在敌对环境中如何被攻破——特别是在数据所有者甚至无法信任云提供商的情况下。

现代服务器处理器的安全机制

现代服务器处理器配备了可信执行环境(TEE)来处理特别敏感的信息。TEE有多种实现方式,但与本讨论最相关的是两种:Intel软件防护扩展(SGX)和AMD安全加密虚拟化(SEV)。几乎同时,两个独立的研究团队——一个在美国,一个在欧洲——分别发现了利用这两种实现的非常相似(但各有区别)的方法。他们的目标是获取随机存取存储器中加密数据的访问权限。详细记录这些结果的科学论文在几天内相继发表:

  • WireTap:美国研究人员的成果,详细描述了对Intel软件防护扩展(SGX)系统的成功攻击。他们通过拦截处理器与DDR4 RAM模块之间的数据交换实现了这一目标。
  • Battering RAM:来自比利时和英国的科学家也成功攻破了Intel SGX,以及AMD类似的安全系统SEV-SNP,方法是通过操纵处理器与DDR4 RAM模块之间的数据传输过程。

TEE的攻击原理

Intel SGX和AMD SEV这两种技术旨在保护数据,即使处理数据的系统完全被攻破也不例外。因此,研究人员从攻击者拥有完全行动自由的前提开始:对服务器软件和硬件具有完全访问权限,而他们寻找的机密数据驻留在该服务器上运行的虚拟机上。

在这种情况下,Intel SGX和AMD SEV的某些限制变得至关重要。一个例子是使用确定性加密:这种算法中,特定的输入数据序列总是产生完全相同的加密输出数据序列。由于攻击者拥有对软件的完全访问权限,他们可以向TEE输入任意数据。如果攻击者还能访问生成的加密信息,比较这两个数据集将使他们能够计算使用的私钥。这进而使他们能够解密由相同机制加密的其他数据。

然而,挑战在于如何读取加密数据。它驻留在RAM中,只有处理器可以直接访问它。理论上的恶意软件只能看到在内存中加密之前的原始信息。这是主要挑战,研究人员以不同的方式解决了这个问题。一个直接、正面的解决方案是在硬件级别拦截从处理器传输到RAM模块的数据。

攻击工作原理

内存模块被移除,然后使用插接板重新插入,该插接板还连接到专用设备:逻辑分析仪。逻辑分析仪拦截通过所有数据线和地址线传输到内存模块的数据流。这相当复杂。服务器通常有许多内存模块,因此攻击者必须找到一种方法,强制处理器将目标信息 specifically 写入所需范围。接下来,必须重建和分析逻辑分析仪捕获的原始数据。

但问题还不止于此。现代内存模块以极高的速度与处理器交换数据,每秒执行数十亿次操作。拦截如此高速的数据流需要高端设备。2021年用于证明此类攻击可行性的硬件成本高达数十万美元。

WireTap攻击的特点

WireTap背后的美国研究人员成功将攻击成本削减至仅不到一千美元。他们拦截DDR4内存模块数据的设置如下:

[测试系统用于拦截处理器与内存模块之间的数据交换 来源]

他们将一半预算花在了一个古老的、有25年历史的逻辑分析仪上,这是通过在线拍卖获得的。其余部分涵盖了必要的连接器,而插接板(目标内存模块插入其中的适配器)由作者自己定制焊接。像这样过时的设置不可能以其正常速度捕获数据流。然而,研究人员有了一个关键发现:他们可以减慢内存模块的运行速度。他们将速度从标准的DDR4有效速度1600-3200兆赫兹成功降低到1333兆赫兹。

从那里,步骤……嗯,并不简单,但很清晰:

  1. 确保目标进程的数据被写入被攻击的内存模块,然后拦截它(此阶段仍处于加密状态)。
  2. 将自定义数据集输入Intel SGX进行加密。
  3. 拦截已知数据的加密版本,比较已知明文和生成的密文,并计算加密密钥。
  4. 解密先前捕获的属于目标进程的数据。

总之,WireTap的工作并没有从根本上改变我们对Intel SGX固有局限性的理解。然而,它确实表明攻击可以大幅降低成本。

Battering RAM攻击的特点

与直接的数据拦截方法不同,来自比利时鲁汶大学的研究人员及其英国同事寻求一种更巧妙、更优雅的方法来访问加密信息。但在深入细节之前,让我们先看看硬件组件,并将其与美国团队的工作进行比较:

[Battering RAM中使用的内存模块插接板 来源]

代替缠结的电线和笨重的数据分析仪,这个设置采用了一个从头设计的简单板卡,目标内存模块插入其中。该板卡由廉价的Raspberry Pi Pico微电脑控制。硬件预算可以忽略不计:仅50欧元!此外,与WireTap攻击不同,Battering RAM可以隐蔽进行;不需要对服务器的持续物理访问。一旦安装了修改后的内存模块,就可以远程窃取所需数据。

这块板卡具体做什么?研究人员发现,通过在适当时刻仅接地两条地址线(这些地址线指示信息的写入或读取位置),他们可以创建数据镜像情况。这导致信息被写入攻击者可以访问的内存单元。插接板充当由Raspberry Pi微电脑控制的一对简单开关。虽然在运行中的硬件上操纵触点通常会导致系统冻结或数据损坏,但研究人员通过在仅需要的精确时刻断开和重新连接地址线,实现了稳定运行。

这种方法使作者能够选择他们的数据被记录在哪里。关键的是,这意味着他们甚至不需要计算加密密钥!他们首先从目标进程捕获加密信息。接下来,他们在同一内存范围内运行自己的程序,并请求TEE系统解密先前捕获的信息。这种技术使他们不仅能够攻击Intel SGX,还能攻击AMD SEV。此外,这种对数据写入的控制帮助他们绕过了AMD的安全扩展SEV-SNP。该扩展使用安全嵌套分页,旨在通过防止内存中的数据修改来保护虚拟机免受侵害。绕过SEV-SNP理论上允许攻击者不仅读取加密数据,还能将恶意代码注入到被攻破的虚拟机中。

对服务器基础设施进行物理攻击的现实意义

很明显,虽然此类攻击的实际应用是可能的,但它们不太可能在现实世界中实施。被盗数据的价值需要极高,才能证明硬件级篡改是合理的。至少,这是Intel和AMD对其安全解决方案所采取的立场:两家芯片制造商都回应研究人员称,物理攻击不在其安全模型范围内。然而,美国和欧洲的研究团队都证明,这些攻击的成本远不像以前认为的那么高。这可能会扩大愿意利用此类复杂漏洞的威胁行为者名单。

所提出的攻击确实有其自身的限制。正如我们已经提到的,信息窃取是在配备DDR4标准内存模块的系统上进行的。2020年最终确定的较新的DDR5标准尚未被攻破,即使是出于研究目的。这是由于内存模块的修订架构及其提高的运行速度。尽管如此,研究人员很可能最终也会在DDR5中找到漏洞。这是一件好事:TEE系统宣称的安全性必须定期接受独立审计。否则,可能在某个时候会发现,一个 supposedly 可信的保护系统出乎意料地变得完全无用。

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计