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

  • 内容导航:

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

Meltdown_Spectre_0_1515053170.png

从表面上看,这三个漏洞中,"Meltdown(溶解)”只在英特尔平台还有ARM公版A75架构上起作用,且理论上(如果有黑客利用它发起攻击的话)较易被发现。而“Spectre(幽灵)”就厉害多了,它理论上影响近20年来的所有主流CPU,不分架构,不分品牌。包括英特尔、AMD、高通、以及所有的ARM公版移动处理器……换句话说,就是我们所有人的台式PC、笔记本、平板、手机、乃至家中的智能电视和其他大多数智能电器,都暴露在“Spectre(幽灵)”的魔爪之下。


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

security-board-1260x709.jpg

什么叫做推测执行?通俗地说,就是现代CPU会在前一条指令还没执行完成(此时已经有一部分计算单元处于空余状态了)时,“猜测”第二条可能会被执行的指令,并自动开始执行。如果猜对了,那么就相当于提高了CPU内部计算单元的利用率,增加性能并减小延迟;如果猜错了,那么就忽略第二条指令的运算结果,重新载入正确的指令进行计算。而且,即使猜错也不会造成时间的浪费,因此“推测执行”可说是现代CPU极为重要的一大特性,是提高性能必不可少的设计。


但是,前面说到,当CPU“猜测”的第二条指令出错的时候,虽然这条指令的计算结果会被忽略,但它并没有被删除,而是会暂存在CPU内部的缓存里——如果这条指令是一条恶意指令,那么CPU实际上已经执行了它,只是没有直接将执行的结果输出给操作系统。这种时候,黑客们通过一些近似于穷举的办法,就能从内存中读取到恶意指令的执行结果——这也就是这次的漏洞的“真身”了。


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

剪辑.jpg

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

踩(0)

最新文章

相关文章

大家都在看