0x00事件描述
2018年1月4日,Jann Horn等安全研究者披露了"Meltdown"(CVE-2017-5754)和"Spectre"(CVE-2017-5753& CVE-2017-5715)两组CPU特性漏洞。
据悉,漏洞会造成CPU运作机制上的信息泄露,低权级的攻击者可以通过漏洞来远程泄露(浏览器形式)用户信息或本地泄露更高权级的内存信息。
实际攻击场景中,攻击者在一定条件下可以做到:
-
泄露出本地操作系统底层运作信息,秘钥信息等;
-
通过获取泄露的信息,可以绕过内核(Kernel), 虚拟机超级管理器(HyperVisor)的隔离防护;
-
云服务中,可以泄露到其它租户隐私信息;
-
通过浏览器泄露受害者的帐号,密码,内容,邮箱, cookie等用户隐私信息。
目前相关的平台,厂商,软件提供商都在积极应对该系列漏洞,部分厂商提供了解决方案。
0x01事件影响面
影响面
漏洞风险等级严重,影响广泛:
-
近20年的Intel, AMD, Qualcomm厂家和其它ARM的处理器受到影响;
-
因为此次CPU漏洞的特殊性,包括Linux, Windows, OSX等在内的操作系统平台参与了修复;
-
Firefox, Chrome, Edge等浏览器也发布了相关的安全公告和缓解方案。
漏洞编号
-Meltdown
-CVE-2017-5754
-Spectre漏洞
-CVE-2017-5715
-CVE-2017-5753
0x02漏洞信息
现代处理器(CPU)的运作机制中存在两个用于加速执行的特性,推测执行(SpeculativeExecution)和间接分支预测(Indirect Branch Prediction)。
表面上看,处理器是依次顺序执行既定的处理器指令。但是,现代处理器为了更好利用处理器资源,已经开始启用并行执行,这个技术已经应用了20年左右(1995年开始)。假设,基于猜测或概率的角度,在当前的指令或分支还未执行完成前就开始执行可能会被执行的指令或分支,会发生什么?如果猜对了,直接使用,CPU执行加速了。如果猜测不正确,则取消操作并恢复到原来的现场(寄存器,内存等),结果会被忽略。整个过程过程并不会比没有猜测的时候慢,即CPU的推测执行(Speculative Execution)技术。
不幸的是,尽管架构状态被回滚了,仍然有些副作用,比如TLB或缓存状态并没有被回滚。这些副作用随后可以被黑客通过旁道攻击(SideChannel Attack)的方式获取到缓存的内容。如果攻击者能触发推测执行去访问指定的敏感数据区域的话,就可能可以读取到原本是其它用户或更高特权级的敏感数据。
此外,猜测过程是可以被“污染”的,攻击者可以构造出类似ROP攻击的逻辑去影响推测过程。根据作者提供的思路,主要有三种场景:
1. “边界检查绕过”:通过污染分支预测,来绕过kernel或hypervisor的内存对象边界检测。比如,攻击者可以对高权级的代码段,或虚拟环境中hypercall,通过构造的恶意代码来触发有越界的数据下标,造成越界访问。
2. “分支目标注入”: 污染分支预测。抽象模型比较好的代码往往带有间接函数指针调用的情况,CPU在处理时需要会进行必要的内存访问,这个过程有点慢,所以CPU会预测分支。攻击者可以通过类似的ROP的方式来进行信息泄露。
3. “流氓数据加载”:部分CPU上,为了速度并不是每次都对指令作权限检查的,检查的条件存在一定的缺陷。
实际攻击场景中,攻击者在一定条件下可以做到:
-
泄露出本地操作系统底层运作信息,秘钥信息等;
-
通过获取泄露的信息,可以绕过内核(Kernel), 虚拟机超级管理器(HyperVisor)的隔离防护;
-
云服务中,可以泄露到其它租户隐私信息;
-
通过浏览器泄露受害者的帐号,密码,内容,邮箱, cookie等用户隐私信息。
VMware应对
补丁下载
1.登陆 https://my.vmware.com/web/vmware/login输入用户名、密码
2.对应ESXi版本下载相应补丁
6.5 补丁下载地址
6.0 补丁下载地址
5.5 补丁下载地址
注意:建议用户将VM虚拟机迁移到其他主机上,并进入维护模式后进行升级。