英特尔x86信任根:失去信任



图片:存在Shutterstock

这里来的那一刻,英特尔的系统架构师,工程师和安全专家也许最可怕的:在英特尔融合安全与管理引擎的不可写存储区(ROM)中发现了错误,而这个错误产生了怀疑上公司在其平台上建立信任根基和安全基础的所有努力。

而且,这里的要点甚至不是修复(“连接”在微处理器和芯片组的Mask ROM的板载内存中的)固件(固件)的错误,而是发现的错误破坏了整个平台的信任链,从而允许损害其硬件基础。

Positive Technologies的专家发现Intel硬件中的硬件错误以及Intel CSME固件中的错误,这在该子系统运行的非常早期阶段即通过其Boot ROM(启动ROM)表现出来。众所周知,正是Intel CSME为基于Intel芯片的系统提供了初始身份验证,下载并检查了现代平台的所有其他固件。例如,英特尔CSME与CPU微代码进行交互,从而使用BootGuard技术确保UEFI BIOS固件的真实性。此外,英特尔CSME下载并验证电源管理控制器的固件,该固件控制对英特尔芯片中每个硬件单元的电压供应。

但更重要的是,英特尔CSME负责英特尔开发的并在各个地方使用的此类硬件保护技术的加密基础,例如DRM,fTPM和英特尔身份保护。英特尔CSME固件为受信任的系统实现了称为EPID(增强隐私ID)的远程认证系统,该系统使您可以唯一和匿名地标识计算系统(计算机)的每个特定实例,查找许多有用的应用程序,例如保护数字内容,确保金融交易的安全性,物联网认证。此外,英特尔CSME固件还具有TPM软件模块,可让您使用它存储加密密钥,而无需使用额外的TPM芯片,该芯片与每台计算机都相距甚远。

英特尔已尝试使这种信任根基尽可能安全。英特尔平台的安全系统的设计方式是,即使任何英特尔CSME固件模块中的任意代码执行错误都不会带来丢失安全根密钥(即芯片集密钥)的风险,而只会危害易受攻击的模块负责的特定功能通过使用SVN的安全版本号机制更改加密密钥,可以轻松减轻风险。这在2017年得到了明显证明,当时在Intel SA-00086中描述的BringUP(bup)固件模块中发现了任意代码执行错误。然后,英特尔通过增加SVN来简单地执行密钥再生,从而轻松避免损害基于EPID的技术的风险。

但是不幸的是,没有完美的安全系统,而且像其他任何英特尔系统一样,英特尔的安全体系结构也有其致命弱点-引导ROM。在执行的早期阶段,ROM中的错误实际上使您可以控制读取芯片组密钥和生成所有其他加密密钥的过程。这些密钥之一用于加密完整性控制值Blob(ICVB)数据数组。拥有此密钥,您可以伪造任何英特尔CSME固件模块的代码-身份验证系统将无法识别伪造的代码。这等于泄漏了英特尔CSME固件数字签名私钥,但针对此特定平台。

目前,通过将芯片集密钥以加密形式存储在平台内(在特殊的OTP存储器,一次性可编程存储器中)并完全破坏EPID的事实,可以缓解EPID的情况,还需要提取存储了芯片组密钥的硬件密钥,并对其进行加密。在特殊的SKS存储(安全密钥存储)中。但这不是平台独有的密钥,而是整个英特尔芯片组的密钥。而且由于ROM中发现的错误使您可以拦截代码执行,直到锁定SKS中的硬件密钥生成机制为止,并且ROM本身中的错误无法修复,因此我们认为这只是时间问题-何时提取此密钥。然后完全混乱:硬件标识将被伪造,数字内容将被提取,永久媒体中的加密信息将被解密。
因此,Positive Technologies专家发现,除Ice Point(第10代处理器)外,当前所有已发布的Intel芯片组和SoC中的Intel CSME引导ROM中均存在错误。此错误使您可以提取芯片组密钥,以及操纵部分硬件密钥及其生成过程,但是目前不允许直接获取其硬件组件(连接在SKS中)。此外,ROM中的此错误使您可以组织英特尔CSME零特权级别的任意代码执行。

我们将在用于解决此错误的完整白皮书中更详细地描述技术细节,我们计划稍后再发布。应该注意的是,在我们的专家联系Intel PSIRT并提供了有关此错误的报告之后,Intel报告该错误已为已知(CVE-2019-0090)英特尔了解到不可能在已经发布的设备中修复ROM中的错误,因此它们只是阻塞了其所有可能的操作方式。 CVE-2019-0090的补丁程序仅通过集成传感器中枢(集成传感器中枢,ISH)纠正了一种可能的攻击媒介。我们认为,可能有许多方法可以利用ROM中的此漏洞。其中一些可能需要本地访问,而某些则可能需要物理访问。为了稍微揭开保密面纱,让我们对漏洞本身说几句话:

  1. , boot ROM: IOMMU MISA (Minute IA System Agent), SRAM ( ) Intel CSME DMA-, . , , .
  2. Intel CSME boot ROM (page directory), IOMMU. , , SRAM DMA- (DMA CSME, ) SRAM Intel CSME.
  3. 对Intel CSME执行重置时,将重置MISA IOMMU参数,重置后,该CISA将再次从启动ROM开始执行。

因此,任何可以在Intel CSME静态存储器中执行DMA事务并同时重新启动Intel CSME(或仅等待Intel CSME唤醒)的平台设备都可以修改Intel CSME页面的系统表,因此拦截执行。

积极技术OS技术和硬件解决方案首席专家Mark Ermolov发布。

All Articles