处理器Meltdown/Spectre漏洞修复简要指南

浏览:
字体:
发布时间:2018-01-25 11:03:03
来源:

0x00概述

2018年1月4日,Jann Horn等安全研究者披露了"Meltdown"(CVE-2017-5754)和"Spectre"(CVE-2017-5753 & CVE-2017-5715)两组CPU特性漏洞。

据悉,漏洞会造成CPU运作机制上的信息泄露,低权级的攻击者可以通过漏洞来远程泄露用户信息或本地泄露更高权级的内存信息。

实际攻击场景中,攻击者在一定条件下可以做到,

  • 泄露出本地操作系统底层运作信息,秘钥信息等;

  • 通过获取泄露的信息,可以绕过内核(Kernel), 虚拟机超级管理器(HyperVisor)的隔离防护;

  • 云服务中,可能可以泄露到其它租户隐私信息;

  • 通过浏览器泄露受害者的帐号,密码,内容,邮箱, cookie等用户隐私信息;

目前相关的平台,厂商,软件提供商都在积极应对该系列漏洞,部分厂商提供了解决方案。

经过360安全团队评估,"Meltdown"和"Spectre"漏洞影响重要,修复流程较复杂,建议相关企业/用户在充分了解补丁风险的基础上,作好相关的修复评估工作。


0x01漏洞影响面

影响面

漏洞风险等级重要,影响广泛

  • 近20年的Intel, AMD, Qualcomm厂家和其它ARM的处理器受到影响;

  • 因为此次CPU漏洞的特殊性,包括Linux, Windows, OSX, iOS, Android等在内的操作系统平台参与了修复;

  • 360安全浏览器, Firefox, Chrome, Edge等浏览器也发布了相关的安全公告和缓解方案;

漏洞编号

  • Meltdown:CVE-2017-5754

  • Spectre :CVE-2017-5715 和 CVE-2017-5753


0x02部分漏洞信息

注:本段文字中直接引用了相关安全公告,如有异议请联系cert@360.cn。

现代处理器(CPU)的运作机制中存在两个用于加速执行的特性,推测执行(Speculative Execution)和间接分支预测(Indirect Branch Prediction)。

表面上看,处理器是依次顺序执行既定的处理器指令。但是,现代处理器为了更好利用处理器资源,已经开始启用并行执行,这个技术已经应用了20年左右(1995年开始)。假设,基于猜测或概率的角度,在当前的指令或分支还未执行完成前就开始执行可能会被执行的指令或分支,会发生什么?如果猜对了,直接使用,CPU执行加速了。如果猜测不正确,则取消操作并恢复到原来的现场(寄存器,内存等),结果会被忽略。整个过程并不会比没有猜测的时候慢,即CPU的推测执行(Speculative Execution)技术。

不幸的是,尽管架构状态被回滚了,仍然有些副作用,比如TLB或缓存状态并没有被回滚。这些副作用随后可以被黑客通过旁道攻击(Side Channel Attack)的方式获取到缓存的内容。如果攻击者能触发推测执行去访问指定的敏感数据区域的话,就可能可以读取到更高特权级的敏感数据。

此外,猜测过程是可以被“污染”的,攻击者可以构造出类似ROP攻击的逻辑去影响推测过程。根据作者提供的思路,主要有三种场景:

  1. “边界检查绕过”:通过污染分支预测,来绕过kernel或hypervisor的内存对象边界检测。比如,攻击者可以对高权级的代码段,或虚拟环境中hypercall,通过构造的恶意代码来触发有越界的数据下标,造成越界访问。

  2. “分支目标注入”: 污染分支预测。抽象模型比较好的代码往往带有间接函数指针调用的情况,CPU在处理时需要会进行必要的内存访问,这个过程有点慢,所以CPU会预测分支。攻击者可以通过类似的ROP的方式来进行信息泄露。

  3. “流氓数据加载”:部分CPU上,为了速度并不是每次都对指令作权限检查的,检查的条件存在一定的缺陷;

实际攻击场景中,攻击者在一定条件下可以做到,

  • 泄露出本地操作系统底层运作信息,秘钥信息等;

  • 通过获取泄露的信息,可以绕过内核(Kernel), 虚拟机超级管理器(HyperVisor)的隔离防护;

  • 云服务中,可以泄露到其它租户隐私信息;

  • 通过浏览器泄露受害者的帐号,密码,内容,邮箱, cookie等用户隐私信息;

360CERT和360GearTeam对漏洞进行了研究性质的尝试。在Linux+Docker的环境下进行的攻击演示,通过利用Meltdown或Spectre漏洞,模拟在独立的Docker容器A对同一个宿主中的Docker容器B进行敏感数据(密码)窃取的尝试。

声明:本试验是360CERT针对CPU的Meltdown和Spectre漏洞作的一个研究性测试,实际的Docker攻击利用场景中需要满足特殊和较严苛的限制条件。 

1.png

图1

目前几大系统厂商各自在操作系统内核中引入了KPTI的技术,旨在和用户态的页表隔离,解决"Meltdown"漏洞问题。但根据相关测试信息显示,修复补丁可能带来5%到30%性能上的损失,其中个人终端用户基本感觉不到,部分服务器的IO场景可能造成较大的性能损耗。

针对"Spectre"漏洞,相关操作系统厂商和芯片厂商积极配合,通过微码固件更新和操作系统更新的方式进行解决。


0x03安全建议

360CERT建议企业/用户务必在充分了解相关风险的基础上,作好相关修复评估工作:

  1.  "Meltdown"和"Spectre"漏洞修复流程相对复杂,部分平台上暂时没有统一的修复工具;

  2. 芯片厂商(如:Intel)的微码固件补丁需要通过所在硬件OEM厂商获取(如:Dell,联想等);

  3. 可能会有部分软件不兼容问题(如Windows平台下的部分杀毒软件等);

  4. 在云平台或特定应用场景中可能造成较大幅度的性能损失,升级前请充分了解相关信息;

具体评估和修复工作,可以参考以下建议和相关厂商的安全公告: 

Intel的缓解建议

Intel已经和产业界联合,包括其它处理器厂商和软件厂商开发者,来缓解之前提到的三种攻击类型。缓解策略主要聚焦在适配市面产品和部分在研产品。缓解除了解决漏洞本身之外,还需要兼顾到性能影响,实施复杂度等方面。

启用处理器已有的安全特性(如 Supervisor-Mode Execution Protection 和 Execute Disable Bit )可以有效提高攻击门槛。相关信息可以参阅Intel的相关资料。

Intel一直在与操作系统厂商,虚拟化厂商,其它相关软件开发者进行合作,协同缓解这些攻击。作为我们的常规研发流程,Intel会积极保证处理器的性能。

来源:https://newsroom.intel.com/wp-content/uploads/sites/11/2018/01/Intel-Analysis-of-Speculative-Execution-Side-Channels.pdf

PC终端用户

PC终端用户,建议用户根据各个平台进行如下对应操作:

微软Windows

修复步骤如下:

1.    更新对应的浏览器,缓解"Spectre"漏洞攻击;

浏览器缓解措施360安全浏览器升级360安全浏览器到9.1及以上版本Firefox升级Firefox到57.0.4及以上版本Chrome
  1. 在地址栏中,输入   chrome://flags/#enable-site-per-process,然后按 Enter 键。

  2. 点击“Strict site isolation”旁边的启用。(如果系统没有显示“Strict site isolation”,请更新 Chrome。)。

  3.  点击立即重新启动

Edge/IE补丁集成于Windows补丁中,请参考“更新Windows补丁”

2. 更新芯片厂商的微码补丁

芯片厂商微码补丁Intel微码补丁发布流程较复杂,请关注并通过Intel的相关硬件OEM提供商渠道更新(如戴尔,联想,惠普等)。

2.png

图2

3. 更新Windows补丁

用户可直接下载360安全卫士CPU漏洞免疫工具进行更新:http://down.360safe.com/cpuleak_scan.exe

注意:根据微软提供的信息,依然存在部分软件不兼容(如杀毒软件)的风险,请充分了解风险后再选择是否更新:

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

苹果OSX

苹果在Mac OSX High Sierra 10.13.2 及更高版本修复了Meltdown和Spectre漏洞,请直接升级。

Android & iOS

苹果在iOS 11.2.2及更高版本修复了Spectre漏洞;

Android产品将于近期更新,尽请留意。

IDC/云系统管理员

目前部分IDC/云基础架构厂商已经提供了初步解决方案,但是由于补丁带来的风险和性能损耗暂时没有明确,权威的结论。

请系统管理员尽量做到:

1.  积极联系相关的上游了解相关的风险和解决方案,协同制定解决方案;

2.  需要重点关注补丁带来风险和性能损耗评估;

3.  从宏观和微观层面,制定完善,可行的修复和测试流程方案;

4.  涉及到的微码固件补丁请联系硬件OEM厂商,协同修复,测试,评估;

以下是相关厂商提供的解决方案:

Linux-Redhat/CentOS发行版

Redhat提供了一份产品的修复状态清单,建议用户参照该清单进行更新。具体用户可以参考:

>更多相关文章
24小时热门资讯
24小时回复排行
资讯 | QQ | 安全 | 编程 | 数据库 | 系统 | 网络 | 考试 | 站长 | 关于东联 | 安全雇佣 | 搞笑视频大全 | 微信学院 | 视频课程 |
关于我们 | 联系我们 | 广告服务 | 免责申明 | 作品发布 | 网站地图 | 官方微博 | 技术培训
Copyright © 2007 - 2024 Vm888.Com. All Rights Reserved
粤公网安备 44060402001498号 粤ICP备19097316号 请遵循相关法律法规
');})();