Intel CPU 又爆漏洞:一把通向数据王国的钥匙
在网络安全界,这是Spectre和Meltdown唱主角的年头,不仅是由于1月份首次公开披露的这两个芯片漏洞极其普遍、以至于它们仍在被清理,还由于它们促使后人发现了许多相关的缺陷。现在,一组研究人员发现了类似Spectre的漏洞,该漏洞专门破坏较新版英特尔芯片中最安全的部分,可能造成更广泛的影响。
英特尔的软件保护扩展(SGX)功能让程序可以在英特尔处理器上建立所谓的安全区域(secure enclave)。芯片的这部分区域被围了起来,运行计算机操作系统无法访问或更改的代码。即使恶意软件或另外的威胁危及主计算机,安全区域也为敏感数据提供了避风港。但是来自世界各地五个学术机构的一群研究人员发现,虽然SGX基本上可以击退Spectre和Meltdown攻击,但一种相关的攻击可以绕过它的防线。他们称之为Foreshadow漏洞。
一个团队将于周三在巴尔的摩召开的Usenix安全大会上介绍发现结果,团队成员之一、微架构安全研究员尤瓦尔•亚罗姆(Yuval Yarom)说:“某些方面令人惊讶,某些方面并不如此。我们认为推测执行可以从SGX获得一些信息,但对于获得多少信息心里没谱。我们实际获得的信息量让我们都吃了一惊。”
失控的推测执行
Meltdown、Spectre和Foreshadow都利用了推测执行这项计算技术中的缺陷。处理器对下一步被要求执行什么操作做出有根据的猜测,从而确保更高效地运行。正确的预测可节省资源,而基于不正确预测的工作被丢弃。
不过系统留下了线索(比如处理器需要多长时间才能完成某个请求),攻击者可以利用该线索查找漏洞,最终能够操纵推测所采用的路径,并在适当的时候挖掘从进程的数据存储缓存泄露出去的数据。推测执行攻击往往错综复杂,实际上很难实施;英特尔强调,这样的攻击在实际环境下未见过一起。不过,防范这种攻击很重要,因为动机明确的攻击者可利用它们来访问原本禁止访问的数据和系统权限。
硬件安全研究员、Foreshadow报告的撰稿人乔•范•巴尔克(Jo Van Bulck)说:“不是只有一种推测。任何现代计算机上进行着众多推测。Spectre专注于一种推测机制,Meltdown专注于另一种,Foreshadow专注于另外一种。”
研究人员表示,在最初发现Spectre和Meltdown之后,SGX安全区域显然是寻找推测执行缺陷的下一个地方。一些狡猾的Spectre攻击确实在适当的条件下攻破了SGX,但总体上来说攻击方法不是十分有效。系统安全研究员、开展Foreshadow研究工作的丹尼尔•金肯(Daniel Genkin)说:“如果你看看Spectre和Meltdown未攻陷的阵地,SGX是仅剩的安全区域之一。SGX基本上未受Spectre的影响,所以它自然是新漏洞的下一个目标。”
介绍Foreshadow的多位研究人员原先来自两个小团队,它们都在寻找针对SGX的推测执行漏洞。成员包括:比利时鲁汶大学的Van Bulck、Frank Piessens和Raoul Strack,以色列理工学院的Marina Minkin和Mark Silberstein,密歇根大学的Genkin、Ofir Weisse、Baris Kasikci和Thomas Wenisch,以及澳大利亚阿德莱德大学的Yarom。两个团体在1月份各自向英特尔透露Foreshadow后(相隔几周),开始合作,完善和改进研究。
通向数据王国的钥匙
他们发现的问题极其严重。这两个团队不仅独立开发出了可以访问L1数据缓存中受SGX保护的内存信息的同一种推测执行攻击,还意识到这种攻击可能会泄露名为认证密钥(attestation key)的秘密加密密钥,SGX关键的完整性检查基于该密钥。
SGX的一个基本概念是,安全区域的内容是用英特尔作为第三方持有的密钥签名的。外部系统可通过检查签名来核实安全区域的合法性。你可能意识到了Foreshadow泄露这些密钥的固有危险,但实际上情况更糟糕。
Foreshadow研究人员对SGX内置的一项隐私保护功能赞誉有加,这项匿名功能名为群签名(group signature)。可以这么想:如果你在去过的任何地方在公共留言簿上签了名,有人可以通过跟踪你签到的所有地方来了解你的诸多信息,即使他们并不具体了解你在每一个地方的举动。SGX使用群签名来解决这个问题,因而无法凭签名来识别特定的安全区域。但是一旦一组认证密钥泄露,它们可以用于生成在任何情况下看起来合法的SGX签名,即使攻击者闯入安全区域,或设置假冒的安全区域。
金肯说:“信任SGX的根源在于认证密钥从不泄露到SGX的外面。一旦认证密钥泄露,那么一切随之外泄。”
https://v.qq.com/txp/iframe/player.html?vid=d0757wtlda3&width=500&height=375&auto=0
Foreshadow攻击对所有采用SGX的英特尔酷睿Skylake和Kaby Lake处理器都有效,这次研究专门针对英特尔芯片。攻击很隐蔽,在计算机的日志中留下很少的痕迹。它们可以从“用户空间”来启动,这意味着攻击者无需深入访问系统即可发动攻击。
不过,Foreshadow的研究人员强调了实际情形下发动攻击的局限性和挑战。他们表示,网络钓鱼和恶意软件分发等成本低、难度小、效果好的手法仍然是攻击个人的明显且最经济高效的选择。相比之下,Foreshadow实际上很难得逞。此外,SGX是大多数人并不使用的一项专门功能。换句话说,用不着惊慌失措。
但发现结果还是证明了长期以来人们对于依赖SGX的疑问和担忧;尽管SGX有种种好处,它也有这个缺点:成为每个人最敏感的软件和数据的单一故障点。
同时,虽然并非每个用户都依赖SGX,但越来越多的安全服务在探究有没有可能将SGX用于消费级产品中,比如密码管理器1Password和端到端加密消息应用程序Signal。亚罗姆说:“这不是攻击某个特定的用户,而是攻击整套基础设施。”
补救跟上
英特尔正在为Foreshadow发布可解决软件问题和微代码(硬件)问题的缓解措施,它称该漏洞是L1终端故障(L1TF)。该公司已开始分发微代码修复程序,作为5月份/ 6月份发布版的一部分,并与包括微软在内的众多主要开发商在整个软件生态系统层面展开协调,今天就开始分发补丁。预计Linux也将开始收到修复程序。英特尔坚称,这项研究虽然重要,但代表了实际上极其有限的风险。
英特尔在一份声明中说:“L1终端故障可通过今年初发布的微代码更新,以及今天开始发布的针对操作系统和虚拟机管理程序软件的相应更新加以解决。我们想感谢研究人员......还要感谢我们的行业合作伙伴,感谢他们帮助我们发现和解决这个问题。”
英特尔需要迅速而彻底地打补丁的一个原因是,该公司发现更多的处理器系统容易受到Foreshadow类型的攻击。安全区域相当于计算机里面的计算机,因此有理由相信Foreshadow攻击实际上适用于具有类似特征的其他部件或功能。比如说,Foreshadow可能侵蚀虚拟机(共享相同硬件的不同计算环境)之间的隔离。这可能给云公司带来重大风险,云公司使用虚拟机让客户可以共享其基础设施。
与之相仿,Foreshadow攻击可能威及支持和监控虚拟机的“虚拟机管理程序”。甚至有一些证据表明Foreshadow可用来攻击计算机负责支持操作系统的基本协调层,比如内核和系统管理模式。研究人员自己还没有像演示SGX攻击那样凭经验演示这种潜在的攻击,但英特尔称,其补救工作的很大一部分旨在确保云提供商及用户获得全面实施保护所需要的缓解措施和指导。
虽然研究人员对英特尔所做的全面工作表示赞赏,但他们特别指出,他们无法确定这些防御措施可以应对Foreshadow攻击的每一种可能的变种。金肯说:“这是个很棘手的问题。我们在缓解措施到位的情况下运行了代码,攻击未得逞。但这意味着什么呢?它对付我们的攻击手法蛮好,但我们无法证明它对付别的攻击手法好不好。”
研究人员和英特尔都强烈建议个人和企业确保设备是最新版本,特别指出各大云公司已经在努力应对Foreshadow。英特尔主管产品保障和安全的执行副总裁莱斯利•卡伯特森(Leslie Culbertson)周二表示,这项研究“进一步强调了每个人都需要遵守安全最佳实践。”
芯片架构在不断进化,以阻止未来的推测执行漏洞;英特尔表示,芯片管道方面的改进将于今年年底上市。但是现在一批新的、凶险的攻击并未罢休。正如其名,Foreshadow确实预示着前方一片阴霾。
Foreshadow:最初的攻击[CVE-2018-3615],旨在获取驻留在L1缓存中的英特尔SGX数据,在这篇研究论文https://foreshadowattack.eu/foreshadow.pdf中有详述。 Foreshadow-NG:最初的Foreshadow攻击的两个变种,可获取驻留在CPU的L1缓存中的数据,包括属于信息管理模式(SMM)或操作系统内核的信息[CVE-2018-3620],或属于在主机操作系统的虚拟机监视器(VMM)上运行的虚拟机的数据[CVE-2018-3646]。两个Foreshadow-NG变种在这篇研究论文https://foreshadowattack.eu/foreshadow-NG.pdf中都有详述。 |
受影响的英特尔产品包括如下:
Intel® Core™ i3处理器(45nm和32nm)
Intel® Core™ i5处理器(45nm和32nm)
Intel® Core™ i7 处理器 (45nm and 32nm)
Intel® Core™ M 处理器系列(45nm和32nm)
第2代Intel® Core™处理器
第3代Intel® Core™处理器
第4代Intel® Core™处理器
第5代Intel® Core™处理器
第6代Intel® Core™处理器
第7代Intel® Core™处理器
第8代Intel® Core™处理器
Intel® Core™ X-系列处理器系列,面向Intel® X99平台
Intel® Core™ X-系列处理器 系列,面向Intel® X299平台
Intel® Xeon® 处理器 3400系列
Intel® Xeon® 处理器 3600系列
Intel® Xeon® 处理器 5500系列
Intel® Xeon® 处理器 5600系列
Intel® Xeon® 处理器 6500系列
Intel® Xeon® 处理器 7500系列
Intel® Xeon® 处理器 E3系列
Intel® Xeon® 处理器 E3 v2系列
Intel® Xeon® 处理器 E3 v3系列
Intel® Xeon® 处理器 E3 v4系列
Intel® Xeon® 处理器 E3 v5系列
Intel® Xeon® 处理器 E3 v6系列
Intel® Xeon® 处理器 E5系列
Intel® Xeon® 处理器 E5 v2系列
Intel® Xeon® 处理器 E5 v3系列
Intel® Xeon® 处理器 E5 v4系列
Intel® Xeon® 处理器 E7系列
Intel® Xeon® 处理器 E7 v2系列
Intel® Xeon® 处理器 E7 v3系列
Intel® Xeon® 处理器 E7 v4系列
Intel® Xeon® 处理器可扩展系列
Intel® Xeon® 处理器 D(1500和2100)
相关阅读:
Intel CPU 又曝 8 个大 BUG ....这次更危险....
Intel CPU 曝大 BUG:迫使重新设计 Linux 和 Windows