CPU级漏洞之Meltdown(CVE-2017-5754)与Spectre(CVE-2017-5715/5753)

=Start=

缘由:

最近这2个CPU级别的安全漏洞实在是太「火」了,虽然说底层的那些机制我也不是太了解……但是作为一个有职业素养的企业安全人员,多花些时间关注漏洞原理、修复机制、修复进度还是很应该的,所以在看了多个关于Meltdown和Spectre漏洞的公告之后整理出此篇文章。

正文:

参考解答:

一、事件概述

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

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

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

  • 泄露出本地操作系统底层运作信息,秘钥信息等;
  • 通过获取泄露的信息,可以绕过内核(Kernel),虚拟机超级管理器(HyperVisor)的隔离防护;
  • 云服务中,可以泄露到其它租户隐私信息;
  • 通过浏览器泄露受害者的帐号,密码,内容,邮箱,cookie等用户隐私信息;

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

二、漏洞介绍

针对英特尔处理器涉及到两种攻击方法,分别为Meltdown和Spectre,Meltdown涉及CVE编号CVE-2017-5754,而Spectre涉及CVE编号CVE-2017-5753和CVE-2017-5715。

Meltdown破坏了位于用户和操作系统之间的基本隔离,此攻击允许程序访问内存,因此其他程序以及操作系统的敏感信息会被窃取。这个漏洞“熔化”了由硬件来实现的安全边界。允许低权限用户级别的应用程序“越界”访问系统级的内存,从而造成数据泄露。

Spectre则是破坏了不同应用程序之间的隔离。问题的根源在于推测执行(speculative execution),这是一种优化技术,处理器会推测在未来有用的数据并执行计算。这种技术的目的在于提前准备好计算结果,当这些数据被需要时可立即使用。在此过程中,英特尔没有很好地将低权限的应用程序与访问内核内存分开,这意味着攻击者可以使用恶意应用程序来获取应该被隔离的私有数据。

三、影响范围

现代处理器(CPU)的运作机制中存在两个用于加速执行的特性,推测执行(Speculative Execution)和间接分支预测(Indirect Branch Prediction)。这两组CPU漏洞的利用依靠推测执行特性,通过用户层面应用从CPU内存中读取核心数据。推测执行技术从1995年开始应用,所以近20年的Intel,AMD,Qualcomm厂家和其它ARM的处理器几乎都受到影响。

Meltdown的具体影响范围:

  • Intel CPU用户:几乎所有(1995年之后的所有的CPU型号,除了2013年之前的Intel 安腾和Atom外)
  • AMD CPU用户:根据AMD公司的声明,目前AMD CPU不受Meltdown漏洞影响
  • ARM CPU用户:根据ARM公司的声明,包括Cortex-A75在内的少数ARM核心CPU受影响

Spectre的具体影响范围:

  • Intel CPU用户:几乎所有
  • AMD CPU用户:几乎所有
  • ARM CPU用户:根据ARM公司的声明,包括Cortex-A8, Cortex-A9等在内的约十种ARM核心CPU受影响,其他类型的ARM CPU不受影响

除了CPU厂商之外,还包括其上的:

  • 操作系统:Windows、Linux、macOS、Android;
  • 云服务提供商:亚马逊、微软、谷歌、腾讯云、阿里云等;
  • 各种私有云基础设施;
  • 桌面用户可能遭遇到结合该机理组合攻击。

四、相关公告

五、检测方法

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

  1. 首先,需要安装相应的PowerShell模块,对应命令:PS> Install-Module SpeculationControl
  2. 其次,需要调用相应脚本,对应命令:PS> Get-SpeculationControlSettings
  3. 最后,开启的保护会显示为True,未开启的保护则会显示为False。

Linux用户,可以通过各种PoC来进行验证(谨慎进行):

六、防御方法/建议

对于一般用户而言:

  • 升级最新的操作系统和虚拟化软件补丁:目前Windows、Linux、macOS、Xen等都推出了对应的系统补丁,升级后可以阻止这些漏洞被利用;
  • 升级最新的浏览器补丁:目前微软IE、Edge和Firefox都推出了浏览器补丁,升级后可以阻止这些漏洞被利用;
  • 等待或要求你的云服务商及时更新虚拟化系统补丁
  • 安装安全软件:安全软件一般会在第一时间发现可能的利用这些漏洞的攻击程序并进行杀除及防护;
  • 避免安装来路不明的软件
参考链接:

=END=

声明: 除非注明,ixyzero.com文章均为原创,转载请以链接形式标明本文地址,谢谢!
https://ixyzero.com/blog/archives/3741.html

《CPU级漏洞之Meltdown(CVE-2017-5754)与Spectre(CVE-2017-5715/5753)》上有7条评论

  1. MeltdownSpectreReport可用于对一个或多个Windows计算机查询Meltdown和Spectre漏洞的缓解状态,它使用并行实现快速数据收集,这对于快速查询、判断公司内部受影响的Windows机器列表会是一个很大的帮助(Query mitigation status of Meltdown and Spectre against one or multiple Windows computers. It uses parallelization for fast data collection.)
    https://github.com/vrdse/MeltdownSpectreReport

    1. 之前没细看代码内容是啥,为此刚才特地去GitHub上看了commit记录,发现第一个提交的版本大体也是这样的逻辑。。。
      我也没看懂。。。/:&-(

发表评论

电子邮件地址不会被公开。 必填项已用*标注