当前位置:首页 > seo技术分享 > 正文

Meltdown & Spectre 攻击及缓解措施(一)

今天小凯seo博客转载一篇来自百度安全指数在2018年1月9日发布的内容,标题为《Meltdown & Spectre 攻击及缓解措施(一)》,正文部分如下:

1. 引言

最近Google Project Zero和一些独立安全研究人员发现了CPU芯片硬件层面执行加速机制,也就是乱序执行(out-of-orderexecution)和推测执行(speculative execution),会引起CPU缓存的污染,从而攻击者可以发起基于cache的侧信道攻击偷取数据。目前主要涉及到两种攻击方法,分别为Meltdown [4] 和Spectre [5]。Spectre涉及CVE编号CVE-2017-5753和CVE-2017-5715,而Meltdown涉及CVE编号CVE-2017-5754。

由于Meltdown和Spectre的攻击是针对CPU硬件的缺陷进行的攻击,因此它们的攻击范围特别广,存在于各种操作系统和云平台上。近20年的CPU/OS/VMM基本都受影响,包括从云端到桌面到移动,对业界产生巨大冲击。这一漏洞主要用于偷取隐私数据,包括口令、证书和其他保密数据,甚至完整的内存镜像。值得庆幸的是这些攻击不能修改数据。影响范围包括:

a、CPU 处理器: 近二十年的 Intel、AMD、ARM 等处理器都有影响,其中对 Intel 的处理器的影响尤为严重;

b、操作系统: Windows、Linux、 Android、iOS和macOS等;

c、虚拟机管理器:KVM, Xen等。

本文主要关注Intel CPU Meltdown和Spectre在不同场景下的攻击以及缓解措施,包括VMM和浏览器等场景。这些内容对AMD/ARM的攻防也有重要的借鉴价值。这些漏洞虽然影响广泛,但利用复杂,限制也很大。一方面,由于防护措施都是有成本的,本文给防护方提供一个指南,可以根据自己的场景来选择必要的防护措施;另一方面,我们希望通过本文,缓解目前被夸大的恐慌情绪,但本文也同时将指出一些没有被讨论过的组合攻击方式,这些攻击将有比标准攻击更加强大的威力。因此防护方不能掉以轻心,需要尽快部署相关防护措施。

2. 攻击的场景

Meltdown [4] 和Spectre [5]具体有三个变种:

a、变种1 (V1) Spectre: 绕过边界检查 (CVE-2017-5753)

b、变种2 (V2) Spectre: 分支预测注入 (CVE-2017-5715)

c、变种3 (V3) Meltdown: 乱序执行的CPU缓存污染 (CVE-2017-5754)

由于攻击的影响涉及了大量的云平台和操作系统,我们就不单独罗列具体版本,而是针对最典型的场景来描述如何防御这些攻击。

典型的攻击场景

a、对虚拟机管理器 VMM 的攻击(A1):攻击者在 VMM 管理的一个 VM 里 面,该攻击者完全的控制这个 VM,比如拥有这个VM kernel级别的权限,可以直接与VMM进行交互。攻击者通过利用这些漏洞,可以获取VMM的敏感数据,或者获取同一物理主机下的其他VM内的数据;

b、对操作系统内核的攻击(A2):攻击者是用户空间的一个应用程序,拥有任意的代码执行能力。攻击者通过利用这些漏洞,可以获取内核内的敏感数据,甚至包括内核缓冲区的文件或者网络数据;

浏览器对操作系统内核的攻击(A2w):攻击者只能通过网站页面影响浏览器发起攻击,可以通过javascript,或者web assembly等机制;

c、对用户空间其他用户数据的攻击(A3):攻击者是用户空间的一个应用程序,拥有任意的代码执行能力。攻击者通过利用这些漏洞,获取同一操作系统下的其他进程的数据,包括跨docker的攻击;

浏览器对用户空间其他用户数据的攻击(A3w):攻击者只能通过网站页面影响浏览器发起攻击,可以通过javascript,或者web assembly等机制。

V3c组合攻击

原始的V3攻击,将会产生page fault,可以被kernel感知到,从而可以通过host intrusion detectionsystem (HIDS)进行探测。传统上,可以通过Intel TransactionalSynchronization Extensions (TSX)来截获异常,避免产生kernel异常。然而由于TSX历史上的bug,很多云端服务器并不开启TSX,导致该方法并不普适。

我们经过实验后发现,可以将V3攻击置于V1/V2的预测执行路径上,由于这是预测执行,所以不会触发内核异常,但该预测执行依然会触发cache加载操作。即V1/V2->V3的这种攻击方式,可以完成V3攻击,但不会触发kernel能感知的页面异常,我们称之为V3c组合攻击。V3c组合攻击的发现意味着A2攻击场景下,要抵抗V3攻击,必须要打内核补丁。

3. 攻击的防御与缓解

针对上面的攻击场景,我们把所有可行的解决方案归纳总结到表1里面。其中在云平台上面,升级CPU微码需要VMM的协助,用户在自己的VM里面无法完成,除非VMM特别开放了这个功能。

Meltdown & Spectre 攻击及缓解措施表1

Meltdown & Spectre 攻击及缓解措施表2

表1:对虚拟机监控器和操作系统内核的攻击评估和防御方法。“不能*”指的是攻击者无法直接攻击其他进程,但是攻击者可以攻击内核获取数据来间接攻击(这个是A2)。

防护措施都是有成本的,防护方可以根据自己的场景来选择必要的防护措施。

公有云VMM的运营者,应该保障VMM不受恶意攻击,即A1层面的防护是必须要做到的,特别是V2攻击。使用Xen的厂商也要关注V3攻击的防御。

云上租户可以根据自己的需求进行防护。由于A2.V3防护的KPTI补丁有较为明显的性能损耗,所以如果云上租户在同一个VM内部没有数据敏感级别区隔,而且对性能要求较高,那么可以继续使用原始内核。如果云上租户在同一个VM内部有多级数据敏感区隔,而且可执行代码不固定,并能接受额外的性能损耗,那么推荐使用打了安全补丁的内核。

对于普通PC用户,最大的威胁来自于浏览器访问恶意网址以及感染上恶意代码。这些防护与传统PC安全没有太大的区别,及时升级即可。

了解跟多:https://mp.weixin.qq.com/s/Bdc58fRJO4nFzCHnO5WIYQ

评论已关闭!