热点:

    不只电脑受影响?处理器漏洞门为何波及全行业

      [  中关村在线 原创  ]   作者:尹航   |  责编:李诺

    ·熔断和幽灵漏洞的背景知识

      本次熔断和幽灵漏洞之所以能够影响如此多的处理器和不同架构的处理器,主要原因并非这些处理器厂商故意为之,而是源于“分支预测”这项处理器底层技术。

      这也意味着,只要是支持乱序执行和投机执行的处理器,都会遭受熔断和幽灵的攻击。那么其机制是什么呢?

    不只电脑受影响?处理器漏洞门为何波及全行业

      对PC硬件有一定了解的朋友都知道,如今处理器执行指令的速度瓶颈不在计算本身,而在于内存访问。为了降低内存访问所需时间,缓存(Cache)就成了目前来看最好的解决方案。缓存就是把曾经访问过的内存备份一部分,如果下次再读同一块内存数据的话,就可以直接从缓存里调取,从而让访问速度更快。

      不过即便是这样,访问内存的瓶颈依然还是存在。因此对于不同指令之间的执行,其时间差距就可能非常大。比如前一条指令的执行需要1秒钟(实际并不会这么长久),后续指令如果正常经过访问内存执行的话,可能需要10秒-100秒,但如果前序指令访问内存时出现卡顿,那么后续指令的执行就会受到影响,使得指令执行速度大大减慢,用户就会感觉到电脑卡顿。为了解决这样的问题,现代处理器(英特尔从奔腾时代开始)加入了分支预测技术,并设计了乱序执行机制。

      乱序执行机制就是允许多条指令不按程序规定的顺序,分开发送给各相应电路单元处理的技术。避免了因一条指令“堵塞”,影响后续指令执行时间的问题。

      计算机的内存里保存着用户的很多信息,包括密码、个人信息等。如果不对这些信息进行保护,黑客们就能够轻而易举的窃取用户的这些信息。那么如何防止这样的问题发生呢?光靠软件保密远远不够,因此需要硬件底层来进行相应的保护工作。

      当程序读取内存的时候,处理器会帮助检查读取地址是否属于这个程序。如果不属于,那么就是非法访问,处理器就会在这条指令上产生一个异常,之后报告操作系统执行枪毙。而操作系统为了处理这个异常,会提出一项要求:如果出现异常,那么异常指令之前的所有指令都已经执行完,异常指令之后的所有指令都尚未执行。

      不过这就与乱序执行产生了矛盾,前面都乱序执行完了该怎么办呢?其实指令乱序执行时,要修改什么东西都不是真正的修改,而是做预修改。只有执行完指令并真正发送出去之后,才会正式提交修改,并维持指令之间的顺序关系。也就是虽然在执行时采用乱序处理,但执行完之后,各条指令还是会按“大小个”排好队发出去。这时候如果一条指令产生了异常,那么这条指令“脸上”就有被贴上了“异常标识”,之后就会封锁出口,将异常指令和其后其他指令抛弃掉,不予提交,保证数据安全。

      另外在指令执行之前,由于现代处理器又都设计有投机执行特性。所以“入口处”会根据历史规律,来把指令分配到相应的队伍中,如果出现问题,只要出口封锁毙掉就可以了。

      被取消掉的指令不会得到提交,所以它们修改不了任何东西,也不会产生异常。所以大可以随意去投机执行指令,不会有任何危险,因为有危险的都会被取消掉——这个逻辑是架构体系设计者最初的、也是理想的设想。

      但大家都明白现实与理想总是有很大差距,这次的漏洞问题就出在这里。被取消掉的指令虽然不会造成整体结构上的影响,但在微结构上会留下可以观测的影响——就是缓存。这些被取消掉的指令不受异常控制,可以访问任何东西。比如你的银行帐号密码,然后“借口”自己执行错了被取消掉,就不会被操作系统彻底毙掉。而体系结构设计者认为被取消掉的指令即便看到你的银行密码也不会产生问题,因为它们留不下任何痕迹,但事实上它们还是在那些曾经访问过的内存留下了“蛛丝马迹”。一旦被黑客利用,那么这部分用户数据就将被窃取出来,用户数据安全也将遭到泄露。

      这也就是说为什么这次事件是一次行业性的事件,而非简单的A或B一家所遇到的问题。因为这样的攻击机制,使得所有拥有分支预测、乱序执行、投机执行、缓存特性的现代处理器平台,都会遭到这样的攻击。

      除非你的处理器没有这样的特性,否则就很难幸免。不过话又说回来了,如果处理器没有这些技术特性,那么可以想象这个处理器的计算速度究竟得有多么的慢。

    ·结语

      总体来说,这次硬件安全漏洞的本质,是早期处理器底层设计遗留的问题。在引入乱序执行机制时,技术人员并未预见到会有这样的安全漏洞存在,毕竟只要是人设计的硬件或软件,就会存在漏洞。此外不得不提的是,英特尔对于这些漏洞的研究其实已经持续了比较长的时间,并且始终在研究如何解决这样的底层硬件漏洞。

      另外从目前推送的更新来看,幽灵漏洞已经有了比较有效的修补对策,通过microcode更新,禁用分支预测器里的间接跳转预测部分,就能够避免黑客通过该漏洞来威胁数据安全。如英特尔的Haswell-X、Skylake-X、Broadwell-X平台都采用了microcode更新方式来进行修补。而AMD同样对Zen家族的CPU(包括Ryzen)推送microcode更新来进行修补。不过与英特尔不同的是,AMD直接禁用了分支预测器来应对幽灵漏洞。

      另外需要指出的是,从华尔街日报2018年1月5日的报道来看,英特尔应对芯片安全漏洞已经有数月时间,这显然比外媒曝出漏洞的时间要早很多。事实上,早在2017年6月份,谷歌ProjectZero 团队就发现了这些漏洞,并通报给了包括英特尔、AMD、ARM公司。同时,Project Zero 团队与这些公司签订了保密协议,协议到2018年1月9日。

    不只电脑受影响?处理器漏洞门为何波及全行业
    华尔街日报网站的相关报道(点击图片可访问,如果打不开网页需要科学上网)

      此外,从芯片公司角度来说,无论是ARM还是英特尔、AMD,在面对安全漏洞问题时,尤其是在暂时没有行之有效的解决办法之前,不主动曝光漏洞既是行业准则,又能够为研究漏洞修补争取时间。否则一旦提早曝光这些漏洞而没有及时的补救措施,就很容易被黑客所利用,对用户数据安全造成严重威胁。

      因此,面对这种波及整个行业的安全问题时,如何通过整个行业的通力合作,迅速找到解决问题的办法,才是整个行业需要去做的事情。

    ------------------------------------------------------------------------------

    附:最后梳理了一下本次事件截至2018年1月10日的大概时间轴,如下:

    不只电脑受影响?处理器漏洞门为何波及全行业

      后续时间轴我们会根据事件发展进行补完……敬请关注!

    本文属于原创文章,如若转载,请注明来源:不只电脑受影响?处理器漏洞门为何波及全行业//nb.zol.com.cn/674/6741214.html

    nb.zol.com.cn true //nb.zol.com.cn/674/6741214.html report 4921 ·熔断和幽灵漏洞的背景知识  本次熔断和幽灵漏洞之所以能够影响如此多的处理器和不同架构的处理器,主要原因并非这些处理器厂商故意为之,而是源于“分支预测”这项处理器底层技术。  这也意味着,只要是支持乱序执行和投机执行的处理器,都会遭受熔断和幽灵的攻击...
    提示:支持键盘“← →”键翻页阅读全文
    本文导航
    • 第2页:漏洞攻击原理与事件进展
    推荐经销商
    投诉欺诈商家: 010-83417888-9185
    • 北京
    • 上海
    • 笔记本电脑
    • 新品上市
    推荐问答
    提问
    0

    下载ZOL APP
    秒看最新热品

    内容纠错