日前,研究人员已经提取了加密更新各种英特尔CPU的秘密密钥,这一壮举可能会对芯片的使用方式产生广泛的影响,可能还会对芯片的安全方式产生影响。
该密钥可以解密英特尔提供的微代码更新,以修复安全漏洞和其他类型的错误。拥有一个更新的解密副本可能会让黑客对其进行逆向工程,并精确地了解如何利用它所修补的漏洞。该密钥还可能允许英特尔以外的其他方--比如恶意黑客或爱好者--用自己的微代码更新芯片,尽管该定制版本无法在重启后存活。
"目前,评估安全影响相当困难,"独立研究员Maxim Goryachy在直接留言中说。"但无论如何,这是英特尔处理器历史上第一次可以在内部执行你的微代码并分析更新。" Goryachy和另外两名研究人员--Mitry Sklyarov和Mark Ermolov,都是安全公司Positive Technologies的人员,共同参与了这个项目。
该密钥可以针对任何基于英特尔Goldmont架构的芯片--无论是赛扬、奔腾还是Atom--进行提取。
跌落兔子洞
这一发现的起源是在三年前,Goryachy和Ermolov发现了一个关键的漏洞,索引为英特尔SA-00086,允许他们在芯片的独立核心内执行他们选择的代码,其中包括一个称为英特尔管理引擎的子系统。英特尔修复了这一漏洞,并发布了补丁,但由于芯片总是可以回滚到早期的固件版本,然后被利用,所以没有办法有效消除该漏洞。
五个月前,三人组能够利用该漏洞访问 "Red Unlock",这是一种嵌入到英特尔芯片中的服务模式(见此处第6页)。公司工程师在芯片公开发布之前,使用这种模式来调试微代码。为了向《黑客帝国》电影致敬,研究人员将他们用于访问这种之前未记录的调试器的工具命名为Chip Red Pill,因为它允许研究人员体验通常是禁区的芯片内部运作。该技术的工作原理是使用USB电缆或特殊的英特尔适配器,将数据管道到一个脆弱的CPU。
在红色解锁模式下访问基于Goldmont的CPU,研究人员可以提取一个被称为MSROM的特殊ROM区域,即微代码序列器ROM的简称。从此,他们开始了对微代码进行逆向工程的艰苦过程。经过几个月的分析,揭示了更新过程和它使用的RC4密钥。然而,该分析并没有揭示英特尔用来加密证明更新真实性的签名密钥。
英特尔官方在一份声明中写道:所述问题并不代表对客户的安全暴露,我们并不依赖红色解锁背后的信息混淆作为安全措施。除了INTEL-SA-00086的缓解措施外,遵循英特尔制造指南的OEM厂商已经缓解了本次研究所需的OEM特定解锁功能。用于验证微代码的私钥并不驻留在硅片中,攻击者无法在远程系统上加载未经验证的补丁。
到目前为止不可能
这意味着,攻击者无法使用芯片红丸和它所暴露的解密密钥来远程入侵脆弱的CPU,至少在没有将其与其他目前未知的漏洞进行链锁的情况下,是无法做到的。同样,攻击者也无法利用这些技术来感染基于Goldmont设备的供应链。但该技术确实为那些能够物理访问运行这些CPU之一的计算机的黑客提供了可能性。
"有一个普遍的误解,认为现代CPU在出厂时大多已经固定到位,偶尔会针对特别恶劣的bug进行范围狭窄的微代码更新,"MongoDB的产品安全负责人Kenn White告诉我。"但在这种情况下(很大程度上不是),工程师可以用王国的钥匙为该硅片做的事情很少有实际限制。"
一种可能性可能是业余爱好者,他们希望以人们越狱或root iPhone和Android设备或黑客入侵索尼的PlayStation 3游戏机的方式来root他们的CPU。
理论上,也有可能在邪恶的女仆攻击中使用芯片红丸,在这种情况下,有人可以短暂地访问设备,黑了它。但在这两种情况下,黑客都会被束缚,这意味着只有在设备开启时才会持续。一旦重新启动,芯片就会恢复到正常状态。在某些情况下,在CPU内部执行任意微代码的能力也可能对加密密钥的攻击有用,例如可信平台模块中使用的密钥。
"目前,只有一个但非常重要的后果:对微代码补丁的独立分析,直到现在都是不可能的,"Positive Technologies研究员Mark Ermolov说。"现在,研究人员可以看到英特尔如何修复一个或另一个错误/漏洞。而这是伟大的。微代码补丁的加密是一种通过隐蔽性的安全。"