关于英特尔CPU“漏洞门”,你需要知道这些事

引言:2018开年大事件

明天,就是原本应该万众瞩目的CES国际消费电子博览会召开的日子了——许许多多的厂商原本都蓄势待发,准备用2018年的新品来冲击大家的眼球与荷包……

是的,我说了两个“原本”——那是因为就在2018年的新年假期刚过,互联网上就被一条“大新闻”刷了屏!说包括英特尔、AMD、ARM在内的“20年内的”所有主流CPU,都存在着严重的安全漏洞。

只要利用这些漏洞,别有用心的黑客就能获取计算机底层的内存信息,当然也包括各种个人隐私、密码,甚至还有一些云计算平台上的账户信息……无怪乎会引发巨大的恐慌和关注。

但是,在持续关注该事件数天之后,小编发现,其实整个过程中的许多信息,都存在着模糊、误解、甚至人为刻意夸大的痕迹——出于传递真实的目的,我们将该事件中的一些容易遭至误解的关键部分,提取出来,写出这篇文章。大家如果感兴趣的话,不妨耐心看下去。

这些CPU漏洞到底是怎么回事?

它为什么会产生?

首先,当然应该给大家解释清楚,这次的“CPU安全漏洞”到底是怎么回事。事实上,此次公布的CPU漏洞一共包含三个,一个是"Meltdown(溶解)”,另外两个合称为“Spectre(幽灵)”。

从表面上看,这三个漏洞中,"Meltdown(溶解)”只在英特尔平台还有ARM公版A75架构上起作用,且理论上(如果有黑客利用它发起攻击的话)较易被发现。

而“Spectre(幽灵)”就厉害多了,它理论上影响近20年来的所有主流CPU,不分架构,不分品牌。包括英特尔、AMD、高通、以及所有的ARM公版移动处理器……

换句话说,就是我们所有人的台式PC、笔记本、平板、手机、乃至家中的智能电视和其他大多数智能电器,都暴露在“Spectre(幽灵)”的魔爪之下。

那么,为什么会产生如此严重,且影响广泛恶劣的安全漏洞呢?要介绍这个问题,就涉及到20年前,微处理器领域的一次“重大技术创新”——推测执行(Speculative Execution)和间接分支预测(Indirect Branch Prediction)。

什么叫做推测执行?通俗地说,就是现代CPU会在前一条指令还没执行完成(此时已经有一部分计算单元处于空余状态了)时,“猜测”第二条可能会被执行的指令,并自动开始执行。

如果猜对了,那么就相当于提高了CPU内部计算单元的利用率,增加性能并减小延迟;如果猜错了,那么就忽略第二条指令的运算结果,重新载入正确的指令进行计算。

而且,即使猜错也不会造成时间的浪费,因此“推测执行”可说是现代CPU极为重要的一大特性,是提高性能必不可少的设计。

但是,前面说到,当CPU“猜测”的第二条指令出错的时候,虽然这条指令的计算结果会被忽略,但它并没有被删除,而是会暂存在CPU内部的缓存里——如果这条指令是一条恶意指令,那么CPU实际上已经执行了它,只是没有直接将执行的结果输出给操作系统。

这种时候,黑客们通过一些近似于穷举的办法,就能从内存中读取到恶意指令的执行结果——这也就是这次的漏洞的“真身”了。

如果你还看不懂这个过程,知乎上某网友给出了更加“接地气”的比喻:

怎么样——这下能看懂了吧,其实就是如此简单、但也非常令人无语的思路。在实际运用中,这一漏洞并没有大家想象的那么“美好”,或者说它其实并不是那么可怕——这点我们之后再说。

漏洞影响哪些CPU?

它真如传闻那样覆盖20年来的所有型号么

本次“CPU漏洞事件”之所以受到极大的关注,很大一方面原因就是因为它利用的是CPU设计领域的一个基本原理,这直接导致“Spectre(幽灵)”漏洞理论上可以影响所有在“推测执行”技术诞生之后的处理器——由于推测执行技术诞生于20年前,这也就是为什么很多媒体声称漏洞足以覆盖20年以来的处理器的原因。

但是,理论上会被影响,并不等于实际上漏洞就会真的起作用。说是20年间的处理器都受影响,实际上谁也没有真的找齐20年间的处理器来一个个测试——因此,现阶段,我们并不能武断地说“这一漏洞影响20年以来的处理器”。

更靠谱的数据来自于Meltdown论文的专题网站( https://meltdownattack.com/ ),按照这里的说法,Intel自1995年以后搭载分支预测技术的CPU都可能受到Meltdown漏洞的影响。

但是并非所有的Intel CPU都有分支预测技术,有两个系列就因此幸免于难,它们一个是超级计算机里使用的Itanium(安腾)系列,另一个则是低端的Atom(凌动)系列——后者的用户们现在是不是感到了一丝快慰?

至于更厉害的Spectre,只能说它几乎影响到了所有我们平时接触到的CPU型号,包括Intel、AMD、公版ARM和基于公版ARM半定制而来的架构(比如说高通的骁龙835、845均在其中)。

有趣的是,论文网站没有说明那些基于ARM指令集完全自主研发的CPU架构是否受影响——比如说NVIDIA的Denvor,还有三星的Exynos 8890、8895和刚刚发布的9810……如果它们能够幸免,那么这起事件对于它们来说,显然不见得是件坏事。

据说Intel几个月前就知道漏洞存在了?

确实如此,根据CNN新闻网的报道,Intel早在几个月之前就已经从谷歌那里得到了关于漏洞的警告,这一时间点甚至早于第八代Core(酷睿)处理器的发布。

但是,Intel并非因为利益原因而对漏洞“隐瞒不报”,他们选择沉默的原因其实恰恰是考虑到了用户的安全。由于"Meltdown(溶解)”和“Spectre(幽灵)”漏洞的详细信息当时只是在谷歌、Intel、微软等少数相关厂商的技术小组中流传,只要漏洞信息不被公布,一般的黑客根本就不会想到还有这样一种理论上的攻击手段。因此,对于那段时间的电脑/手机用户来说,他们有很大概率依然是安全的。

当然,在当前漏洞详细数据已经被公布的情况下,那些心怀不轨的黑客或许已经开始着手研究利用漏洞进行破坏攻击或窃取他人隐私以牟利的可能性了。所幸,这几个月的时间里,也确实已经足够一大票相关厂商推出它们的补丁程序了,而Intel也承诺会在未来新研发的处理器里封堵上这个漏洞。

该如何避免受到漏洞的影响?

哪些系统现在已经有补丁?

比较糟糕的是,这次的两个漏洞共同的特征是它们利用的是计算机硬件底层的bug。这和一般的那些基于软件或操作系统缺陷的攻击手段完全不同,它们不仅理论上危害程度更大,而且“中招”之后甚至都很难被发现。常规的杀毒软件对此类攻击几乎是无效的——这也是为什么研究人员会将其中一组漏洞命名为“幽灵”的原因。

但是,通过给操作系统打上特定的补丁,现在的电脑用户确实能够有效防御"Meltdown(溶解)”和“Spectre(幽灵)”两大漏洞。

到这篇文章发稿时,微软最新的Windows 10 insider测试版系统早已在内核层面上打上了补丁,而正式版Windows10、Windows8/8.1和Windows7的用户也已经在上周迎来了针对这次处理器漏洞的修复补丁——当然,久远的xp系统是肯定不会有补丁的。

除了微软之外,苹果也已经给旗下的多款操作系统放出了补丁更新:包括 iOS 11.2、macOS 10.13.2 和 tvOS 11.2三款系统,涵盖了苹果旗下所有主流设备。

其他做出反应的还有高通和ARM,但高通和ARM本身不负责制造手机,它们的安全补丁最终要落实到用户,还得看相关的手机厂商是否足够积极提供系统更新才行。

据说打补丁会导致30%的性能下降?

emmmm……只能说,这又是一个经典的“谣言”,甚至有可能是某些心怀不轨的人故意放出的说法。事实上,大家需要先搞清楚,这次的操作系统补丁,主要影响的是哪部分的性能。

结合海外多家媒体以及国内网友的实测来看,最初报道所称的“打补丁会导致Intel CPU降低30%性能”其实是不准确的,因为实际会受到影响的并不是CPU的计算性能,而是与CPU直连的Nvme固态硬盘的4K性能……

如果是数据中心、存储服务器这类高负载读写的场合,因为挂载着无数的硬盘同时读写,而它们都需要占用CPU资源——在最坏的理论情况下,更新补丁会导致硬盘的4K性能下降明显,可达30%甚至更高。

但是,对于个人用户来说,即使是性能最高的Nvme SSD,也不足以耗费主流CPU哪怕10%的性能——实际更新补丁之后,对SSD 4K速度的影响最大也不过才5%而已。

▲图片来自贴吧网友

而且,由于提前几个月研发补丁,在这次几大厂商提供的安全修补补丁中,几乎都开启了一项被称为PCID的技术——对于Intel Haswell架构之后的处理器,该技术恰好可以弥补这次补丁造成的性能损失,因此对于普通用户来说,打上修复补丁,对于日常使用的性能来说完全不会有负面影响,大家可以放心用!

写在最后

笔者自身不是研发工程师,对于这次事件所可能导致的未来CPU设计影响,这并不在我能分析的范围之内。

但是,作为一名不算新人的数码编辑,我想——我们的职责就在于给大家讲清楚那些复杂的“门道”以及它可能造成的影响。从这一点来说,这次的CPU漏洞事件,所有相关厂商肯定是有错的——但是其中并没有谁有恶意,大家都在积极地解决问题。

至少,从目前的阶段性结果来看,普通用户已经可以忘掉漏洞,安心继续使用电脑了——再这之上再吹毛求疵的话,就确实不太好了。


「 推 荐 阅 读 」

塞班系统被QQ抛弃,其实是全民互联时代的胜利

还在坚持使用塞班智能手机的用户们今天发现,他们的手机QQ无法登陆了……这宣告着这一曾经最强的智能手机操作系统,正式被移动互联网时代抛弃。

Exynos9810真正厉害的地方,三星没有告诉你

三星昨天正式发布了Exynos9810,一跃成为目前最强的安卓手机主控,没有之一。但是Exynos9810真正不同凡响的地方,恰恰在三星发布会上没有明说的部分……这是怎么回事呢?


觉得有趣就关注我们吧 ↓↓↓

(0)

相关推荐