关闭
关闭
首页 > 嵌入式硬件 > 嵌入式处理器

可以看到,这些技术都是经过数十年发展验证的成熟技术,此前爆出过的也只是程序运行错误的功能bug,并没有如此严重的安全漏洞,而且推测执行和乱序执行对性能的提高都是成倍的影响力,例如在模拟器上的验证表明,关闭乱序执行大约会损失一半的性能,关闭推测执行中的分支预测则会将处理器的最大指令吞吐的理论上限打回上世纪90年代的水平,因此这两项技术已经成为当之无愧的高性能微处理器的结构顶梁柱。而根据推测执行和乱序执行的框架设计,其中有一个叫做重排序缓冲(ROB)的部件会负责树立推测状态和正常状态之间的分界线,有了ROB的保护之后,推测执行(分支预测)和乱序执行的状态信息就不会被上层感知,这是写在每一本计算机体系结构教科书里的内容,被一代又一代的工程师沿用。

现在,这个内容被彻底改写了。

漏洞原理

虽然指令可以不按顺序执行,为了确保乱序执行的效果不对机器状态发生影响,在乱序执行过程中发生的异常错误和安全检查违例,都要等到指令最后提交结果、并确认推测状态无误时才发起处理,如果发生错误,指令结果将被丢弃,异常处理进行完毕后回到正常状态。如果在乱序执行过程中就对指令进行异常处理,就会导致代码发生异常的位置和实际执行位置不匹配,打破了乱序执行不得影响程序状态的规则,从而破坏辛苦写代码的码农们所感知到的编程模型。如果指令通过了检查,确认无误,指令的操作结果才会更新到缓存与相关寄存器上,从而可以被软件读取。因此从指令执行到进行最后的提交检查之间存在一个可以利用的时间窗口,按照目前的乱序执行窗口和处理器执行频率计算,大概有十几个纳秒到几十个纳秒的时间,可供继续超前执行大约几十到一百多条指令。这个时间窗口成为了“熔毁”的攻击点。

 

在常规状态下,访问被保护的敏感区域会直接被权限鉴别的过程给拒绝,但是熔毁在这个小的时间窗口中,故意插入指令访问了一些本该被保护的关键区域,这些敏感数据就会被提至处理器核心内部的寄存器里参与运算。直到这一步,ROB仍然在维护超前执行状态 - 正常状态的分界线,整个系统仍然在保护之下,因为虽然敏感数据被提至处理器内部,但是并未经过安全检查和异常检查的确认,所以它的值只能用来作临时运算,不能用来参与正常运算,不会被更新到架构可见寄存器与缓存上,也就无法被上层软件读取,而等检查进行到它所处位置的时候,CPU就会发现问题,然后及时制止,所以不会发生问题。但是这里出现了整个漏洞利用中最漂亮的一步:时间差分攻击。

既然敏感数据已经被提取至CPU核心内部可以参与临时计算,那么就可以用它作为存储器访问的路标k,把内存中的第k块数据装入缓存。这大概要花费上百个时钟周期也就是大约几十纳秒,这个时间处在乱序执行允许的窗口范围内,如果窗口范围不够大了,还可以用其他手段再把这个窗口拉大一些。但终归到最后,乱序执行的指令要走到提交检查的一步,CPU检查发现这个敏感数据被访问了,就会把对应指令的结果抛掉,k的值被扔掉以后,恶意代码就无法读取到k的值了。而这里遗漏了关键的一点,在乱序执行中被

装入缓存的内存第k块数据,并没有被清理。于是后继代码就可以大大方方地把相关内存地址都扫一遍,放在缓存里面的数据的访问延迟与放在内存里面的数据是不同的,如果扫描到第10块内存的时候发现它的响应速度特别快,就可以确定先前被读取上来的k值是10。

另一个幽灵漏洞的原理与此类似,但利用的是推测执行(主要是分支预测)的指令,从执行到进行安全检查之间的时间差,在推测执1行状态下,利用此时触发权限违例不会被立即掐死的特点,执行一些恶意代码把敏感数据装入CPU寄存器参与临时计算,随后用这个敏感数据制作一个内存地址装入缓存,再触发随后的时间差分攻击。

效果与防护

熔毁和幽灵利用乱序执行和推测执行,绕过了权限检查等安全措施,可以访问操作系统内核乃至其他程序的内容。其中熔毁更容易触发利用,因此才有大家已经看到的盗取浏览器密码的实例,而幽灵漏洞需要受攻击目标程序的分支入口点结构满足一定条件才能触发,难度相对较大,因此网上还没有发现基于幽灵漏洞的信息泄露实例出来。需要指出的是,幽灵和熔毁漏洞都只能读取敏感信息,不能修改(因为乱序执行/推测执行状态下的修改在未通过检查时一定会被抛弃),算是不幸中的万幸。

由于攻击的是硬件漏洞,因此目前市面所有主流操作系统,包括windows,linux,Mac OS都处在攻击范围内,隔离程度不够高的众多半虚拟化方案,Docker,LXC等,也在受影响范围,因此这个漏洞将极大地影响云计算服务提供商。目前Google,Amazon,国内的阿里,腾讯等大型云服务提供商都已宣布了补丁计划。

从业界厂商的角度看,尽管Intel,AMD,ARM各有说辞[7][8][9],但从专业从业人士的角度看,Intel妥妥地同时受到熔毁和幽灵两个漏洞影响,而AMD和ARM在熔毁漏洞面前也只是暂时安全,熔毁的攻击原理也适用于AMD和ARM,只是因为分支预测器结构不同、流水线长度较短导致可利用的时间窗口不大等等因素,才没有像Intel一样被熔毁攻破。而幽灵则针对分支预测器进行注入攻击,目前所有厂商的分支预测器部分都没有做比较好的安全防护,因此Intel和ARM,AMD都会受到影响,而且分支预测器为了提高性能,天生就设计成部分地址哈希进行模糊匹配的模式,使得相关防御措施很难在不伤害性能的情况下修补漏洞。

针对熔毁漏洞,目前已有的技术手段主要是通过软件层次将内核页表与用户页表尽可能地隔离,这种技术的一个实现方案叫KAISER,其变种已经被各大操作系统采用作为熔毁漏洞的临时补救措施。这种技术方案会提高用户态与内核态的切换开销,快速系统调用的初步测试证明,内核系统调用的速度降低到了原先的42%,而利用现代处理器的PCID特性进行优化后,能够恢复到57%的水平[9]。具体的应用程序下降幅度取决于用户程序与内核交互的频繁程度,linxu kernel开发人员的测试结果从10%~20%+不等,PCID能够弥补大约5%-7%的性能。

换一批

延伸阅读

[新鲜事] 兼容Windows!国产16nm八核CPU来了 x86架构

兼容Windows!国产16nm八核CPU来了 x86架构

国产CPU已经有不少,但能跑Windows的国产高性能CPU还真不多。不过,到明年我们或许就能看到一款真正给力的产品了。......

关键字:国产 16nm 八核 CPU x86

[新鲜事] Linux之父怒喷谷歌安全工程师为哪般?

Linux之父怒喷谷歌安全工程师为哪般?

上周五,Linux 之父 Linus Torvalds 在内核邮件列表上用很犀利的言辞抨击了 Google Pixel 安全团队的开发者 Kees Cook,引起了大家广泛地讨论。......

关键字:Linux 谷歌 安全工程师

[新鲜事] Linux内核修复Ryzen线程数目识别错误,多线程性能将会飙升

Linux内核修复Ryzen线程数目识别错误,多线程性能将会飙升

Linux已经在官网发布最新的内核修复这一问题,预计Ryzen 7处理器又能纵横在Linux系统上。......

关键字:Linux内核 Ryzen 多线程

[新鲜事] 英特尔科普CPU知识,据说这5个常识有99%人不敢说全懂

英特尔科普CPU知识,据说这5个常识有99%人不敢说全懂

最近英特尔对5个CPU常识进行了科普,还号称99%的人不敢说全懂,言下之意就是这5个常识不仅非常重要,而且不少人可能不认识或者存在误区。......

关键字:英特尔 CPU

[新鲜事] 19岁少年重塑CPU,降低80%计算机功耗

19岁少年重塑CPU,降低80%计算机功耗

Thomas Sohmers 认为,即使是强如英特尔,每年出货数以亿计芯片这样的公司,也同样有弱点。在他看来,英特尔的芯片太耗能。在他的创业公司 Rex Computing 中,Sohmers 正在研究的另一种方式来设计芯片,仅需使用英特尔......

关键字:Thomas SohmersR ex Computing CPU 计算机功耗

[新鲜事] 神经形态芯片模仿人类大脑设计 将取代CPU

神经形态芯片模仿人类大脑设计 将取代CPU

神经形态芯片(neuromorphics)被设计专门用于模仿人类大脑,他们可能很快取代CPU。......

关键字:神经形态 芯片 CPU
条评论

我 要 评 论

网友评论

大家都爱看

  • 华为的优势,就是自家的各种自研芯片

    CPU即中央处理器,是一块超大规模的集成电路,是一台计算机的运算核心和控制核心。它的功能主要是解释计算机指令以及处理计算机软件中的数据。

    2017-08-16
  • 你不知道Ryzen芯片有多火?来看看AMD的股票吧

    据外媒报道,美银美林认为,AMD最新的Ryzen芯片可能会引发一波销售浪潮,进而推动该股继续上涨。它认为AMD股票还有40%以上的上涨空间。

    2017-08-16
  • 国产芯片:厚积薄发,强势崛起

    关于国产芯片,是近几年才有崛起的势头,可是在几年之前,国产芯片还处于“沉睡”的状态,尤其是手机芯片,几乎大部分都依赖进口,而且国外的市场几乎被高通和联发科所垄断,也就展讯还在市场边…

    2017-08-16
  • 为了数据安全 大疆无人机增加隐私飞行功能

    大疆周一表示,在美国陆军因为“网络缺陷”而要求其成员停用大疆无人机后,这家中国无人机制造商将加强无人机的数据安全性。 大疆政策和法务副总裁布伦丹&middot…

    2017-08-15
  • Intel代工 展讯发布14nm SC9853I手机SoC

    SC9853I采用的Intel的14nm FinFET制程,架构为8核64位Airmont架构,主频1.8GHz,GPU为Mali-T820 MP2,号称面向799~1299元档次的手机。…

    2017-08-15