1. 引言

2018年1月3日,Google Project Zero(GPZ)团队安全研究员Jann Horn在其团队博客中爆出CPU芯片的两组漏洞,分别是Meltdown与Spectre.

Meltdown漏洞影响几乎所有的Intel CPU和部分ARM CPU,而Spectre则影响所有的Intel CPU和AMD CPU,以及主流的ARM CPU。从个人电脑、服务器、云计算机服务器到移动端的智能手机,都受到这两组硬件漏洞的影响。这必将是要在安全界乃至整个计算机界载入史册的重要日子,各种报道与公告乃至技术细节充斥着整个朋友圈、微博与媒体,可以说是路人皆知了。为何这两个漏洞如此特别,引起大家如此重视呢?

漏洞原理

这两组漏洞来源于芯片厂商为了提高CPU性能而引入的两种特性:乱序执行(Out-of-Order Execution)和预测执行(Speculative Execution)。

乱序执行与预测执行

早期的处理器依次顺序执行既定的处理器指令,而现代处理器为了提高性能并不严格按照指令的顺序串行执行,而是对执行进行相关性分析后并行处理乱序执行。比如当处理器中的某些指令需要等待某些资源,处理器不会真的在这里等待而停止指令的执行,而是利用等待资源的时间继续执行后续的指令。在支持乱序执行的CPU中,后面的指令可能在前面指令执行结束前就开始执行了。

为了保证程序运行的正确性,处理器会对指令执行安全检查,只有当前用户权限符合指令权限时才能被执行,比如用户空间的指令访问内核内存处理器就会抛出异常。然而安全检查这个操作只有在指令退休(retirement-一条指令退休只有当它的执行的结果真正被提交并对系统可见时才会发生)时才会进行。也就是说,如果在乱序执行中,指令并没有真正执行完成而只是加载到缓存中(下文会提)是不会执行安全检查的。而此时由于乱序执行而被提前执行的指令会被处理器丢弃,但由于乱序执行的指令对缓存的操作在这些指令被丢弃时不会被重置。正是安全检查与乱序执行的空窗期才会让Meltdown有机可乘。

预测执行涉及到程序的控制流,现在处理器不是去解析所有分支指令后然后决定执行哪个操作,而是预测哪个控制流会更有可能被运行再提取相应的指令代码执行。如果预测正确的话,会带来很高的性能提升并提高处理器的并行性。如果预测错误,那些被预测执行的不正确结果会被丢弃,处理器会将状态恢复到预测执行行前的正确状态,再重新跳转到正确执行的分支或指令中运行。与乱序执行类似,预测执行对处理器缓存的操作会被保留。

这种机制从宏观上看似乎没什么问题,但由于处理器的缓存(cache)机制,那些被预测执行或乱序执行的指令会被先加载到缓存中,但在处理器恢复状态时并不会恢复处理器缓存的内容。而最新的研究表明攻击者可以利用缓存进行侧信道攻击,而Meltdown与Spectre从本质上来看属于利用处理器的乱序执行或预测执行漏洞进行的缓存侧信道攻击。

缓存侧信道攻击

基于缓存的侧信道攻击目前在学术界研究中非常流行,比如俄亥俄州立大学的Yinqian Zhang教授[10]在此领域做了许多非常杰出的工作。缓存通过数据共享来加快数据访问,也就是说缓存命中与失效对应的响应时间是有差别的,攻击者正是利用这种时间的差异性来推测缓存中的信息,从而获得隐私数据。

缓存侧信道攻击主要有Evict+Time[7]、Prime+Probe[6])与Flush+Reload[5]等攻击方式,这里主要简单介绍一下Flush+Reload,也是下文exploit中利用的方法。假设攻击者和目标程序共享物理内存(也可以是云中不同虚拟机共享内存),攻击者可以反复利用处理器指令将监控的内存块(某些地址)从缓存中驱逐出去,然后在等待目标程序访问共享内存(Flush阶段)。然后攻击者重新加载监控的内存块并测量读取时间(Reload阶段),如果该内存块被目标程序访问过,其对应的内存会被导入到处理器缓存中,则攻击者对该内存的访问时间将会较短。通过测量加载时间的长短,攻击者可以清楚地知道该内存块是否被目标程序读取过。

Meltdown与Spectre利用这种侧信道可以进行越权内存访问,甚至读取整个内核的内存数据。

转载于:https://www.cnblogs.com/xlwang1995/p/10129179.html

Meltdown Attack相关推荐

  1. Meltdown:Reading Kernel Memory from User Space 论文中英对照

    Meltdown:Reading Kernel Memory from User Space 翻译目录 摘要(Abstract) 一.简介(Introduction) 二.背景介绍(Backgroun ...

  2. Meltdown: Reading Kernel Memory from User Space论文翻译

    Meltdown: Reading Kernel Memory from User Space翻译 摘要(Abstract) The security of computer systems fund ...

  3.  Meltdown论文翻译【转】

    转自:http://www.wowotech.net/basic_subject/meltdown.html#6596 摘要(Abstract) The security of computer sy ...

  4. 宇宙最强,meltdown论文中英文对照版(三)

    本文由郭健郭大侠翻译,将分为三次连载完成,这是第三部分.郭大侠是蜗窝科技(http://www.wowotech.net/)的创始人,倡导"慢下来,享受技术"的健康理念,侠之大者, ...

  5. Meltdown 论文翻译

    摘要(Abstract) The security of computer systems fundamentally relies on memory isolation, e.g., kernel ...

  6. 宇宙最强,meltdown论文中英文对照版(一)

    本文由郭健郭大侠翻译,将分为三次连载完成.郭大侠是蜗窝科技(http://www.wowotech.net/)的创始人,倡导"慢下来,享受技术"的健康理念,侠之大者,为国为民. 摘 ...

  7. cpu meltdown 熔断 漏洞 突破内存独立性限制 简介

    目录 一.简介 二.原理 1.out-of-order execution:乱序执行 2.side channel attack:侧信道攻击 三.攻击模型 四.影响 操作系统为了保证了内存的独立性,会 ...

  8. TEE技术与Meltdown Spectre

    2018年1月,"熔断"(Meltdown)与"幽灵"(Spectre)安全事件以爆炸性的速度与方式占据了各大新闻媒体的头条和IT工作者的朋友圈,在整个安全界闹 ...

  9. SEEDLAB2.0-Spectre Attack Lab

    Spectre Attack Lab Spectre在很多现代处理器中都有,比如Intel.AMD,ARM等 该漏洞允许程序突破进程内.进程间的隔离,如此,恶意程序就能从它不能访问的区域读取数据.本来 ...

  10. Pig变飞机?AI为什么这么蠢 | Adversarial Attack

    整理 | Jane 责编 | Jane 出品 | AI科技大本营(公众号id:rgznai100) [编者按]这篇文章的起意有两点:一是由刚刚过去的 315 打假日,智能语音机器人在过去一年拨出的超 ...

最新文章

  1. pandas数据索引之loc、iloc、ix详解及实例
  2. p1044与p1898
  3. 王某调离岗位后所使用计算机由新到任陈某,2017年沧州事业单位考试模拟卷
  4. freebsd nginx php mysql_FreeBSD 安装配置Nginx+PHP+APC+MySQL
  5. Linq 实现sql中的not in和in条件查询
  6. 内网(局域网)中共享文件
  7. 关于使用墙外安卓应用
  8. Spring Cloud Consul
  9. 图像分割(三)--Grab Cut
  10. bzoj1396: 识别子串
  11. PMP新考纲启用,如何判断是敏捷?第6版教材与第7版有什么区别?
  12. sop流程图模板_sop是什么意思(sop标准作业流程模板)
  13. android USB OTG功能如何打开及实现
  14. 例5-3 安迪的第一个字典(Andy‘s First Dictionary,UVa 10815)
  15. 关于用ANSYS有限元仿真软件划分网格的一些体验
  16. 重视“互联网+政务服务”改革工作 推进智慧城市建设
  17. Linux中的大于号和小于号
  18. 【错误记录】Android 应用安全检测漏洞修复 ( StrandHogg 漏洞 | 设置 Activity 组件 android:taskAffinity=““ )
  19. docker 入门 —— docker 镜像命令
  20. 使用CNVkit进行CNV分析

热门文章

  1. 【EMI测试】如何选择近场电磁干扰故障诊断的测试设备/探头
  2. python使用cookie登陆新浪微博用户信息
  3. nginx + tomcat 504 解决方案
  4. 中国城市电话区号对照表,不包括台湾
  5. linux课程以及Linux主要学习哪些内容
  6. 15块rmb做一个语音识别控制的0.3W白光LED便利USB灯
  7. 微软Windows 8 非常实用的12个技巧
  8. 小程序AppId-当前开发者未绑定此AppId,请到小程序管理后台操作后重试
  9. My97DatePicker时间控件在asp.net的应用
  10. java爬虫爬取豆瓣电影_小爬虫之爬取豆瓣电影排行榜