“熔断”与“幽灵”!详解近期高危处理器漏洞风波

科技 2018-02-07 15:37        

​​2018年1月最引人关注的话题,不是CES,也不是什么新品发布,而是惊爆全行业,涉及全世界几乎所有主流处理器产品的两个大漏洞:Meltdown和Spectre,中文名称“熔断”和“幽灵”,这两个据称可以影响数代之前处理器的高危级别漏洞,软件防御无法完全将其免除,甚至需要更换硬件才能彻底豁免。随后又爆出了漏洞修复影响性能,并且是全系列处理器的说法。

那么,截至今日,这两个漏洞的危害到底有多大?带来的危害被消除了吗?是否需要更换硬件?软件修复可靠吗?如果你还有这样的疑问的话,不妨阅读一下本篇文章,我们将和你一起探讨这些话题。

最近有关处理器高危漏洞的消息传的沸沸扬扬,尤其是英特尔和ARM,一个是PC世界的带头大哥,一个是移动世界的无冕之王,却纷纷被爆出和漏洞相关,并且漏洞非常容易操作但不太容易防护,甚至操作系统级别的防护都难以彻底封堵风险。究竟现在这两个漏洞发展到了什么地步,漏洞修补的难点又在哪里,本文的五问五答将带你明晰这些问题的答案。

问题一:前段时间的“熔断”和“幽灵”影响范围有多大?漏洞带来的危害有多严重?

答:

影响范围:“熔断”和“幽灵”两个漏洞是有史以来发现的影响范围最大同时也是安全级别最高的漏洞(当然也有其他安全级别同等的高危的漏洞存在,只是影响范围没有那么大或者相对容易修复),几乎从十年前的电脑到现在最新的手机处理器都受到影响。并且不只是普通用户,凡是使用2010年以后的英特尔、AMD和ARM架构产品(苹果、高通、三星、华为、英伟达等)的厂商包括服务器、云端、超级计算机甚至一些银行和军队,通通难逃漏洞波及。另外,英伟达的GPU包括GeForce、Quadro、NVS、Tesla、GRID也受到的影响。

▲目前的测试显示英特尔Ivy Bridge以后的处理器都受到影响,具体来说就是第三代Core处理器之后,比如常见的Core i7-3770K。

▲Cortex-A75是ARM家族中少有的同时中招“熔断”和“幽灵”两个漏洞的产品。


▲Skylake处理器的乱序执行架构,也被“熔断”漏洞所波及。

软件方面,由于硬件和软件相辅相成的作用,操作系统层级也可以被认为受到了漏洞影响(毕竟漏洞运行需要软件环境的支持),包括Windows 7以后所有版本,Windows Server 2008以后所有版本、iOS 11.2.2之前所有版本、Mac OS X、tvOS、Linux家族(RedHat、SUSE、Ubuntu)等。软件方面由于浏览器可以通过JavaScript脚本运行漏洞,因此包括FirFox 57、Chrome 64、Safari、IE11、Edge等主流的浏览器以及以这些浏览器为内核的第三方浏览器等都受到影响。

另外,目前有关AMD和ARM的处理不受漏洞影响的消息,主要是指AMD和ARM的部分处理器测试“熔断”漏洞没有成功,但是依旧明确显示受到“幽灵”漏洞的影响,而最新测试则显示,ARM Cortex-A75“熔断”测试成功,受到漏洞影响,可能随着未来测试技术不断进步,情况还会有所变化。相比之下,英特尔处理器则受到所有漏洞的影响。

危害情况:目前只能说不知道。作为一个可以盗取数据的漏洞,其主要使用方法就是用于盗窃类似密码、账号等敏感信息。好在由于这两个漏洞自发现以来一直处于比较良好的保密状态,因此直到一些初步有效的修复方法出台,漏洞都没有更多有危害的消息出现。但考虑极端情况的话,也有可能由于漏洞的特殊性,即使有危害存在,受害者可能也不是很清楚自己的敏感信息是如何流失的。

实际来看,本次的漏洞的使用和攻击不但需要比较高的软硬件知识,在获取数据方面也需要一些技巧和时机,综合平衡盗窃的风险、成本和收益的话,对一般用户来说,谨慎为上,但不要过度焦虑。

问题二: “熔断”和“幽灵”漏洞是什么?

答:有关这两个漏洞的相关消息,谷歌已经发布了非常详细的论文,漏洞的发现者甚至给出了视频描述和例证来表示它们能够攻破计算机的系统从而导致数据泄露。由于相关的论文和例证专业度非常高,最起码需要计算机专业或相关背景的人士才能看懂,且目前网络上也有大量的专业讨论和解释,如果感兴趣的读者可以自行搜索,本文在此不多描述复杂的技术内容,仅仅作出最简单、直接但可能不够准确的描述,供大部分没有基础的爱好者了解。

▲“熔断”和“幽灵”两个漏洞的LOGO。

“熔断”和“幽灵”两个漏洞利用了现代计算机的两个最基本技术:乱序执行技术和推测执行技术。所谓乱序执行,简单来说是指处理器可以在遇到某任务暂停的时候依据经验继续超前执行,如果结果正确则继续执行,如果错误也没什么损失,乱序执行降低了处理器无谓的等待时间,大幅度提高系统效能。

▲一段能够触发“熔断”漏洞的核心代码。

所谓推测执行,是指计算机会通过大量的算法和经验数据,在指令到达之前,就预先对下一步需要做出的指令进行推测并将其读入内存,这样做的优势是能够大大加快后续数据的处理步骤,同样起到了降低等待时间,提高系统效率的作用。毫不夸张的说,乱序执行和推测执行堪称现代处理器的两座基石,目前大量针对处理器的优化均建立在优秀的推测执行和乱序执行基础上,是处理器性能提升的技术根本。

不过,基石重要性是建立在安全的基础上,一旦出现问题,处理和挽救就变得很麻烦。这一点在“熔断”和“幽灵”两个漏洞上表现的特别明显。

根据谷歌论文披露的消息,“熔断”漏洞利用的是乱序执行时的窗口时间进行了时间差分攻击,攻击程序巧妙的选择了只有几十纳秒的时间窗口,在执行了一个本应该被抛弃的错误的攻击程序后,利用敏感数据写入缓存后没有被清空这一点,通过扫描所有内存数据对比响应时间,从而判断出了真正的敏感数据。“幽灵”漏洞和“熔断”漏洞类似,只是攻击发生在分支预测过程中,也是执行访问敏感数据的错误程序后,通过扫描没有被清理的内存,从而得到了敏感信息。

“熔断”和“幽灵”两个漏洞的攻击过程简单看起来似乎有点“弱智”,实际上,作为业界使用了十数年之久的技术,本来应该是非常成熟和完善的,但是漏洞攻击出现之后,人们才意识到之前自己引以为豪的设计是多么的脆弱。

总的来说,目前发现的这两个漏洞,在合适的条件下,其“作案”过程简单到让人无法相信,谷歌公布的例证中约124行代码就可完成一个窃取过程,完全不像是一个高危级别漏洞在人们想象中所拥有的那种极其复杂的破解过程,但正是这种大巧若拙的方法,却直指计算机体系最底端、最基础的结构,才带来了如此巨大的影响。

问题三:这两个漏洞是如何被发现的?

答:目前对这两个漏洞发现的过程有多种说法,在公众眼中这两个漏洞是由著名科技新闻网站The Register在1月3日早上的爆料开始引发讨论,随后1月4日英特尔宣称这个漏洞没有那么夸张,但是几个小时候的谷歌的两篇论文彻底向大家解开了“熔断”和“幽灵”漏洞的一切内容,人们才知道这两个漏洞甚至危及全球几乎所有民用处理器和绝大部分商用处理器。

▲The Register是一个英国科技网站,其主页内容几乎无所不包,不只是限定于IT新闻。

不过,根据事后的一些分析,漏洞实际上早在2017年6月1日甚至更早以前,就被谷歌安全部门Project Zero的工程师发现了,不过考虑到这件事情的严重性,这位工程师只是发邮件通知了英特尔、AMD以及ARM等厂商的安全部门,甚至都没有在谷歌内部广泛通知漏洞的存在。

▲Project Zero是谷歌在2014年成立的信息安全团队,这是他们在谷歌的页面。

随后,得到消息的英特尔、ARM等厂商发现此漏洞可能难以用传统的方法简单修复,需要操作系统级别的配合,于是又通知了业内主要的操作系统厂商包括微软、苹果和Linux内核开发团队等。同时也是为了对客户负责,这个消息又被安全相关人员告知诸如亚马逊、谷歌云、腾讯云、华为云、阿里云等大型云服务提供商,提请他们注意漏洞的信息。

问题最早显露在公众面前是在Linux的发布更新后。有人注意到,在安装了17年12月的某个Linux的安全更新后,处理器的某一部分性能明显下降,同时AMD的安全人员宣称AMD处理器的用户可以不用安装这个更新,因为这个安全更新对AMD处理器毫无用处。通过这个更新以及AMD的态度,部分敏感的研究人员感觉到此事不同寻常。

▲ “熔断”漏洞可以通过浏览器执行,这是在Core i7-6700K系统上获得的Firefox 56的浏览器内存dump文件,包含了保存的密码。

▲目前没有消息证明AMD的处理其受到“熔断”漏洞影响,为此AMD的股价在1月2日后还迎来一波上涨。

随后一些流言在业内流传,宣称全球几乎所有处理器都有重大的安全漏洞,但没有“实锤”之前,并没有媒体出来指证。终于在1月2日,美国科技媒体The Register报告了这个漏洞的相关信息,并得到了谷歌的证明,两个漏洞就此天下大白。

实际上,谷歌公布的漏洞并不是两个,而是三个,分别是“幽灵”漏洞的两个变体CVE-2017-5753和CVE-2017-5715以及“熔断”漏洞CVE-2017-5754。而且谷歌在发现漏洞影响范围极为广泛、严重程度极高后,已经召集了业内几乎所有相关厂商商议对策,决定在1月9日之前完成对漏洞的初步修复。

▲谷歌公布的“幽灵”漏洞的代码案例部分截图,在X86平台上成功运行。

The Register的爆料只是让漏洞真相大白的时间早了一点而已,并没有影响到漏洞本身的修复,也没有进一步加重漏洞的危害性。这件事情真正令人感叹的在于,在漏洞被曝光之前,全球各大厂商和成千上万的科技人员,在知道漏洞的情况下依旧保守秘密,避免漏洞被非法使用,并尽可能早的提出修复方案,我们不得不为这些厂商和科技人员点赞。

问题四:现在漏洞可以修复吗?据传需要更换处理器?

答:由于漏洞发现到公布中间差不多相隔了半年,因此厂商准备了一些修复手段。目前这两个漏洞影响的范围非常大,再加上漏洞本质和处理器的运行原理相关,因此单纯靠一个补丁或者一些安全软件是无法得到有效的修复的。不仅如此,考虑到受漏洞影响的对象不同,修复的方法也是完全不同的。业内消息显示,除苹果外,其他厂商目前给出的漏洞修复方法,只适用于“熔断”漏洞,对“幽灵”漏洞的修复尚在评估中。

对普通用户:

1. 对拥有英特尔、AMD、英伟达处理器的PC设备的用户,为了避免漏洞影响需要做到:一是及时更新操作系统厂商的补丁;二是及时更新最新版的主板BIOS,其中包含了由处理器厂商提供的最新版本的微码;第三则是更新浏览器和一些软件厂商推出针对自家软件的更新版本或补丁程序。但是,目前一些消息称,一些比较老型号的处理器或者AMD型号的处理器在更新了Windows补丁后,会出现无法进入系统的情况,目前微软已经注意到这些问题,在进行调查后会给出更新的修复方法,请准备更新的用户注意相关新新闻报道。

2. 对iOS也就是苹果移动平台的用户来说,需要更新到最新的iOS 11.2.2。苹果宣称这个版本修复了“幽灵”漏洞,目前没有证据证明iOS受到“熔断”的影响,因此不需要补丁。

▲iOS 11.2.2明确提到了安全性升级,就是为“幽灵”漏洞而来。

3. 对Mac OS系统的用户来说,苹果宣称最新的Mac OS X High Sierra 10.13.2版本修复了全部两个漏洞,可以直接升级。

4. 原生Android用户可以注意谷歌的更新消息以获得最新的更新来修复漏洞,其它Android修改版本系统的用户需要等待厂商的推送通知。

5. 由于英伟达的GPU也受到了“幽灵”漏洞的影响,但好在GPU和CPU架构差异很大,因此英伟达通过驱动就修复了漏洞,建议更新英伟达驱动至390.65以后的版本。另外,英伟达还指出其Tegra系列处理器也受到了漏洞影响,好在英伟达已经在官网给出了漏洞补丁,受影响的用户可以自行查找。

▲英伟达的相关安全修复公告。

对企业级用户:

企业用户往往会得到英特尔、AMD、谷歌等厂商的直接技术支持,因此相比普通用户来说要好得多。不过为了更安全的封堵漏洞,企业及用户可能会面临性能损失等问题,比如目前RedHat对自己的修复补丁给出的说明就涉及了性能损失。建议厂商的安全团队和英特尔、微软等厂商紧密配合,减少漏洞带来的影响。

这里需要再强调的一点是,目前绝大部分操作系统层级、软件层级的修复,都是针对“熔断”漏洞的,主要方法被称作内核页表隔离 (Kernel Page Table Isolation / KPTI)。而针对“幽灵”漏洞这种直接攻击推测执行技术(分支预测)的漏洞,暂时没有特别好的修复方法,如果直接关闭分支预测的话,处理器性能将会得到巨大的衰退,甚至跌回十年前的水平。

因此厂商还在不断的衡量如何在性能损失和漏洞修复之间平衡,或者直接根据攻击点进行一些操作,让攻击成本变得特别高,从而变相阻止漏洞泄露数据的发生或者将可能性变得很低。

相信到这里,是否要更换硬件的答案已经呼之欲出了。

问题五:修复漏洞会带来性能损失吗?

答:会。

正如前文所说,由于这两个漏洞直指处理器底层原理,彻底修复的方法可能涉及到关闭某些硬件功能,可能会带来性能的极大倒退,尤其是“幽灵”漏洞如果彻底阻断、关闭分支预测的话,会让处理器的性能倒退回顺序执行时代,大约损失70%~90%性能,即使关闭部分敏感功能,性能损失也不可小觑。因此,正如前文所说,对“幽灵”的修复,除了iOS和Mac OS X外,其他厂商尚未开始或者正在进一步研究方法和路径。

另外,即使是比较容易修复的“熔断”漏洞,也会在内存性能上带来些许的损失,目前的测试数据显示一些独立子项的性能损失甚至最多可达30%,一般也会在5%~17%左右。当然,独立子项的性能损失并不代表整体性能一定会损失,处理器也是一个复杂的系统工程,宏观来看,修复“熔断”漏洞的机器,在安装了各种补丁之后,综合性能损失在3%以内,甚至部分测试没有明显的性能差异,因此用户可以放心的安装相关补丁。

永恒的是漏洞,不变的是补丁

总的来看,本次“熔断”和“幽灵”两大漏洞,给整个业内带来了极大的震撼,尤其是公众和科技媒体的加入,吸引了更多人的关注,也让很多普通人对计算机安全有了一定的认识。

但实话实说,无论是硬件还是软件,复杂度超过一定程度后,漏洞是必然的。不是这里漏,就一定是那里漏,永恒的是漏洞,不变的是补丁。之前英特尔爆出的ME漏洞,AMD的SEV安全性问题以及心脏滴血漏洞、SMB漏洞等,也只是火了一段时间就几乎悄无声息了,绝大部分用户甚至都没有修复这些问题。毫不夸张的说,我们现代的处理器、操作系统等,实际上很像一个满是孔洞的泥沙之塔,只不过一直存放在日照充足的干燥之地,尚没有太多危机存在罢了。

对普通用户而言,这些漏洞和问题,是不是应该恐慌呢?完全没有必要。因为很多漏洞的触发条件和测试环境,普通用户是难以复现的,尤其是“幽灵”漏洞,虽然危害巨大,但是条件苛刻,一般用户的信息也没有敏感到需要一组高端IT技术人员来窃取的程度。最应该对这些漏洞关注的,是国家安全人员和企业高管,毕竟国家机密和商业机密,很可能超过运用漏洞所需要的成本,这才是这两个漏洞暴露出来的更深层次的问题。​​​​

发表评论