标题 | 简介 | 类型 | 公开时间 | ||||||||||
|
|||||||||||||
|
|||||||||||||
详情 | |||||||||||||
[SAFE-ID: JIWO-2024-1269] 作者: 凡诺 发表于: [2018-01-10]
本文共 [420] 位读者顶过
1 概述 这两个漏洞是一个足以动摇全球云计算基础设施根基的漏洞,其意味着任何虚拟机的租户或者入侵了成功一个虚拟机的攻击者,都可以通过相关攻击机制去获取完整的物理机的CPU缓存数据,而这种攻击对现有虚拟化节点的防御机制是无法感知的。同时由于该漏洞的机理,导致其存在各种操作系统平台的攻击方式,因此尽管这一漏洞本身只能读取数据,不能修改数据,但由于其获取的数据中有可能包括口令、证书和其他关键数据,包括能够完整Dump内存镜像,因此这个漏洞比一般性的虚拟机逃逸对云的危害更大。尽管当前全球主要云服务商均在积极应对这一漏洞的影响,但鉴于这些云服务体系的庞大而复杂,以及大面积补丁本身所面临的复杂度和风险,漏洞利用POC已经发布并验证成功,因此这次漏洞修补已经成为一场时间赛跑。在这个过程中,攻击者所获取到的数据,将会沉淀出对于关键数据和隐私泄露、登陆凭证被窃取导致连锁攻击等次生灾害。 [出自:jiwo.org] 2 漏洞介绍 针对英特尔处理器涉及到两种攻击方法,分别为Meltdown和Spectre,Meltdown涉及CVE编号CVE-2017-5753和CVE-2017-5715,而Spectre涉及CVE编号CVE-2017-5754。 Meltdown破坏了位于用户和操作系统之间的基本隔离,此攻击允许程序访问内存,因此其他程序以及操作系统的敏感信息会被窃取。这个漏洞“熔化”了由硬件来实现的安全边界。允许低权限用户级别的应用程序“越界”访问系统级的内存,从而造成数据泄露。
Spectre则是破坏了不同应用程序之间的隔离。问题的根源在于推测执行(speculative execution),这是一种优化技术,处理器会推测在未来有用的数据并执行计算。这种技术的目的在于提前准备好计算结果,当这些数据被需要时可立即使用。在此过程中,英特尔没有很好地将低权限的应用程序与访问内核内存分开,这意味着攻击者可以使用恶意应用程序来获取应该被隔离的私有数据。 3 影响范围
本次安全事件影响到的范围很广,包括: 处理器芯片:英特尔为主、ARM、AMD,对其他处理器同样可能存在相关风险; 操作系统:Windows、Linux、macOS、Android; 云服务提供商:亚马逊、微软、谷歌、腾讯云、阿里云等; 各种私有云基础设施。 桌面用户可能遭遇到结合该机理组合攻击。
4 漏洞分析 4.1 CPU缓存验证缺陷 分支预测[6]和乱序执行[7],是一种CPU优化技术,CPU会执行一些可能在将来会执行的任务。当分支指令发出之后,无相关优化技术的处理器,在未收到正确的反馈信息之前,是不会做任何处理;而具有优化技术能力的新型处理器,可以预测即将执行的指令,会预先处理一些指令所需的数据,例如将下一条指令所需要访问的内存提前加载到CPU缓存中,这就避免了执行具体指令时再去读内存,从而加快了CPU的执行速度, 4.2 边信道攻击缓存 CPU缓存通常在较小和较快的内部存储中缓存常用数据,从而隐藏慢速内存访问的延迟,缓存侧信道攻击正是利用CPU缓存与系统内存的读取的时间差异,从而变相猜测出CPU缓存中的数据。 简单来说,就是CPU缓存中的数据,在用户态和内核态都是无法正常访问的,除非当CPU缓存中的数据保存到寄存器中时,会被正常的读取;除此之外,是可以通过边信道的方式读取CPU的缓存的。 基于如上介绍的漏洞原理信息,通过CPU缓存验证缺陷,并利用边信道攻击技术可猜测CPU缓存中的数据,继而访问主机的完整内存数据,造成用户敏感信息泄露。
4.3 漏洞验证 根据《Spectre Attacks: Exploiting Speculative Execution∗》报告中包含的PoC代码,编译后生成可执行文件,在使用Intel处理器的Windows 7 64位操作系统实验环境下进行测试。 通过实验数据证明,该漏洞确实存在,且可被用于获取当前进程内存数据。 5 检测与防御方法 5.1 漏洞检测方法 Windows用户,通过使用微软公司发布的检测PowerShell脚本,能够判断Windows系统是否受漏洞影响。 首先,需要安装相应的PowerShell模块,对应命令:PS> Install-Module SpeculationControl[5] 其次,需要调用相应脚本,对应命令:PS> Get-SpeculationControlSettings[5] 其中,开启的保护会显示为True,未开启的保护则会显示为False,如下图所示: 5.2 应对方法 目前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-against-speculative-exe
其他厂商也将要或已部分推出针对这些攻击方式的补丁,英特尔也提出正在与包括AMD、ARM以及各大操作系统厂商进行合作,以制定行业规范方法,及时、建设性的解决这个安全问题。
目前部分厂商已针对此漏洞做出反馈:
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-2017-5753-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/ |