CPU Meltdown (熔断)漏洞

漏洞描述

1.Meltdown漏洞的原理分析

先解释引起这次Meltdown漏洞的CPU特性乱序执行(out-of-order execution)。

image.png

如图所示,乱序执行是当前CPU一种重要的性能优化技术,由于CPU内部有很多计算单元,为了使得他们的性能得到充分的发挥。CPU并不会严格按照顺序程序指令执行顺序执行指令,只要指令之间没有互相依赖关系,而且CPU有计算资源可用,就可以提前执行。

在整个乱序执行过程中,如图需要经过前端(Frontend)、执行引擎(Execution Engine)、内存子系统。 这个过程中需要经过以下几个步骤:

① 过程指令获取及指令解码;

② 分发不同执行单元;

③ 执行结果缓存排序;

④ 安全校验;

⑤ 提交寄存器;

这个漏洞攻击执行结果退休期,安全校验失败之后,cache没有清理导致,根据通过间接获取其他位置的的数据,通过获取时间来,判断哪个位置上的cache被更新,反过来以此推断攻击目标位置的数值,达到窃取数据的目的。

meltdown的实际影响

具体如下:

1.首先要进入产品后台,比如:通过其他传统的安全漏洞攻击在主机上植入Meltdown漏洞攻击程序;

2.Meltdown漏洞无法从虚拟机逃逸,并获取到hypervisor和其他云主机的信息,云厂商没有个影响;

3.此漏洞单独使用无法攻击同一主机不同进程,需要结合spectre漏洞变种绕过边界检查才可以使用,对于多种不同应用(甚至是不同用户的进程)共同运行在同一云主机内(比如容器云)的场景有较大数据泄露风险。

4.由于此攻击需要直接多次调用mfence、lfence、sfence等指令确认读取已经完成,并通过rdstp获取读取数据的时间,做时间差校验,可以通过防火墙组合关键字的方式来防止这种攻击程序注入。

redhat相关说明链接:

https://access.redhat.com/solutions/3307851image.png

解决方案

    请参考CPU相关厂商发布的最新解决方案