安全漏洞

当前位置:首页-湖北分中心-安全漏洞-正文

关于CPU处理器内核存在Meltdown和Spectre漏洞的预警通报

发布于:2018/1/17 8:13:09 点击量:1

关于CPU处理器内核存在MeltdownSpectre漏洞的预警通报

 

近期,互联网爆出CPU处理器内核的Meltdown漏洞(CVE-2017-5754)和Spectre漏洞(CVE-2017-5715CVE-2017-5753)。利用上述漏洞,攻击者可以绕过内存访问的安全隔离机制,使用恶意程序来获取操作系统和其他程序的被保护数据,造成内存敏感信息泄露。目前漏洞利用POC已经发布并验证成功。攻击者所获取到的数据,可能会导致数据隐私泄露、登陆凭证被窃取。该漏洞危害程度为高危(High)

一、事件分析

漏洞存在于英特尔(Intelx86-64的硬件中,在1995年以后生产的Intel处理器芯片都可能受到影响。同时AMDQualcommARM处理器也受到影响。 同时使用上述处理器芯片的操作系统(WindowsLinuxMac OSAndroid)和云计算平台也受此漏洞影响。

相关漏洞利用了芯片硬件层面执行加速机制的实现缺陷实现侧信道攻击,可以间接通过CPU缓存读取系统内存数据。漏洞Meltdown(熔毁)因“融化”了硬件的安全边界而得名,漏洞Spectre(幽灵)因其手段的隐蔽性而得名。

该漏洞是一个足以动摇全球云计算基础设施根基的漏洞,其意味着任何虚拟机的租户或者入侵了成功一个虚拟机的攻击者,都可以通过相关攻击机制去获取完整的物理机的CPU缓存数据,而这种攻击对现有虚拟化节点的防御机制是无法感知的。同时由于该漏洞的机理,导致其存在各种操作系统平台的攻击方式,因此尽管这一漏洞本身只能读取数据,不能修改数据,但由于其获取的数据中有可能包括口令、证书和其他关键数据,包括能够完整Dump内存镜像,因此这个漏洞比一般性的虚拟机逃逸对云的危害更大。尽管当前全球主要云服务商均在积极应对这一漏洞的影响,但鉴于这些云服务体系的庞大而复杂,以及大面积补丁本身所面临的复杂度和风险,漏洞利用POC已经发布并验证成功,因此这次漏洞修补已经成为一场时间赛跑。在这个过程中,攻击者所获取到的数据,将会沉淀出对于关键数据和隐私泄露、登陆凭证被窃取导致连锁攻击等次生灾害。

鉴于大量政企机构和行业进行了私有云的建设,而私有云的安全防御和补丁升级可能更弱。因此后续需要深度注意利用该漏洞在私有云中进行的攻击。

同时,该漏洞对于攻击桌面节点同样有巨大的攻击力,其大大提升了以浏览器等为攻击入口的攻击成功率。包括使传统的使用非超级用户来降低网络风险的安全策略失效。

当前已经公布的漏洞POCIntel系列CPU有效,但鉴于相关执行加速机制是现代处理器的通用技术,因此所有处理器均需要分析相关风险。

    二、攻击过程概述

    1CPU缓存验证缺陷

分支预测和乱序执行,是一种CPU优化技术,CPU会执行一些可能在将来会执行的任务。当分支指令发出之后,无相关优化技术的处理器,在未收到正确的反馈信息之前,是不会做任何处理;而具有优化技术能力的新型处理器,可以预测即将执行的指令,会预先处理一些指令所需的数据,例如将下一条指令所需要访问的内存提前加载到CPU缓存中,这就避免了执行具体指令时再去读内存,从而加快了CPU的执行速度,具体流程如下所示:

文本框: 指文本框: 令文本框: 队文本框: 列文本框: 指文本框: 令文本框: 执文本框: 行文本框: 顺文本框: 序文本框: 实文本框: 际文本框: 执文本框: 行文本框: 情文本框: 况

1 CPU 优化执行

指令3如果出现问题(如指令3是一个除0或者是一个非法的操作),会触发CPU的异常处理,具体情况如下

2 CPU异常指令执行

对于具有预测执行能力的新型处理器,在实际CPU执行过程中,指令4所需的内存加载环节不依赖于指令3是否能够正常执行,而且从内存到缓存加载这个环节不会验证访问的内存是否合法有效。即使指令3出现异常,指令4无法执行,但指令4所需的内存数据已加载到CPU缓存中,这一结果导致指令4即使加载的是无权限访问的内存数据,该内存数据也会加载到CPU缓存中,因为CPU是在缓存到寄存器这个环节才去检测地址是否合法,而CPU分支预测仅仅是完成内存到CPU缓存的加载,实际指令4并没有被真正的执行,所以他的非法访问是不会触发异常的。

3 CPU数据访问权限和地址合法性检查

如上图所示CPU缓存的这个过程对于用户是不可访问的,只有将具体的数据放到CPU的寄存器中用户才可操作,同时用户态程序也没有权限访问内核内存中的数据,因此CPU采用这种逻辑是没有问题的,但是如果有方法可以让我们得到CPU缓存中的数据,那么这种逻辑就存在缺陷。

    2、边信道攻击缓存

CPU缓存通常在较小和较快的内部存储中缓存常用数据,从而隐藏慢速内存访问的延迟,缓存侧信道攻击正是利用CPU缓存与系统内存的读取的时间差异,从而变相猜测出CPU缓存中的数据,结合前边的缓存缺陷部分内容,产生如下的结果:

4 漏洞原理图

注:简单来说,就是CPU缓存中的数据,在用户态和内核态都是无法正常访问的,除非当CPU缓存中的数据保存到寄存器中时,会被正常的读取;除此之外,是可以通过边信道的方式读取CPU的缓存的。

基于如上介绍的漏洞原理信息,通过CPU缓存验证缺陷,并利用边信道攻击技术可猜测CPU缓存中的数据,继而访问主机的完整内存数据,造成用户敏感信息泄露。

    3、漏洞验证

根据《Spectre Attacks: Exploiting Speculative Execution》报告中包含的PoC代码,编译后生成可执行文件,在使用Intel处理器的Windows 7 64位操作系统实验环境下进行测试。

具体验证细节如下:

在内存中申请一段空间,写入如下字符串:

利用这个机制获取数据

5 获取内存中的数据

获取系统ntdll.dll导出函数内存空间数据,下图为ntdll.dll的导出函数NtQuerySystemInformation的地址空间数据。

6 系统ntdll.dll的导出函数NtQuerySystemInformation的地址空间数据

通过如上方法获取该地址空间数据:

7 获取该地址空间数据

通过实验数据证明,该漏洞确实存在,且可被用于获取当前进程内存数据。

    三、安全防护建议

    1、漏洞检测方法

Windows 用户,通过使用微软公司发布的检测 PowerShell 脚本,能够判断 Windows 系统是否受漏洞影响。

首先,需要安装相应的PowerShell模块,对应命令:

PS> Install-Module SpeculationControl

其次,需要调用相应脚本,对应命令:

PS> Get-SpeculationControlSettings

其中,开启的保护会显示为 True,未开启的保护则会显示为 False,如下图所示:

8 微软漏洞检测工具运行情况

    2、修复建议

目前,操作系统厂商通过在其产品内核引入内核页面隔离(KPTI)技术来修复MeltdownSpectre漏洞。建议用户密切关注操作系统、虚拟机、浏览器等产品官方网站发布的安全公告,并及时下载补丁进行更新。

鉴于该漏洞可以获取完整的内存内容,所以建议相关云设施在完成补丁修复后,应提醒用户修改登陆口令并更新证书。

目前 Linux 内核开发人员已经发布了针对 Meltdown 攻击方式的补丁,详情见:

https://lwn.net/Articles/738975/

Google 部分产品已经针对这些攻击方式做出了修补,但是在部分情况下还需要用户采取额外的步骤确保产品受保护,针对安卓也将在 1 5 日推出补丁更新以限制对 ARM 处理器的所有已知变种攻击。详情见:

https://support.google.com/faqs/answer/7622138

微软发布了几个更新来缓解这些漏洞,建议用户在安装操作系统或固件更新之前,请确认防病毒应用程序对其兼容,并且建议用户应用所有可用的 Windows 操作系统更新,包括 2018 1 月的 Windows 安全更新。详情见:

https://support.microsoft.com/en-us/help/4073119/windows-client-guidance-for-it-pros-to-protect-againstspeculative-exe

其他厂商也将要或已部分推出针对这些攻击方式的补丁,英特尔也提出正在与包括 AMDARM 以及各大操作系统厂商进行合作,以制定行业规范方法,及时、建设性的解决这个安全问题。

目前部分厂商已针对此漏洞做出反馈:

VMware

https://www.vmware.com/us/security/advisories/VMSA-2018-0002.html

AMD

https://www.amd.com/en/corporate/speculative-execution

Red Hat

https://access.redhat.com/security/vulnerabilities/speculativeexecution

Nvidia

https://forums.geforce.com/default/topic/1033210/nvidias-response-to-speculative-side-channels-cve-20175753-cve-2017-5715-and-cve-2017-5754/

Xen

https://xenbits.xen.org/xsa/advisory-254.html

ARM

https://developer.arm.com/support/security-update

Amazon

https://aws.amazon.com/de/security/security-bulletins/AWS-2018-013/

Mozilla

https://blog.mozilla.org/security/2018/01/03/mitigations-landing-new-class-timing-attack/

湖北省通信管理局 鄂ICP备05000001号-1 网站标识码bm07170001 武汉市东湖新技术开发区珞喻路789号 版权所有(C)2003-2008
网站备案咨询电话:027-87796833 027-87796822
增值电信业务许可证申请咨询电话:027-87796369
办公室电话:027-87796999 传真电话:027-87796000 我为网站找错 鄂公网安备42018502003905号 网站建设: 双军技术