目录

一、简介

二、原理

1.out-of-order execution:乱序执行

2.side channel attack:侧信道攻击

三、攻击模型

四、影响


操作系统为了保证了内存的独立性,会阻止应用程序去访问其他应用程序的内存空间,同样也不会让用户程序去访问内核的地址空间。这种内存独立机制保护了用户程序和内核的安全执行,也保证了多用户、多应用同时执行的安全性。
对于处理器来说,通过一个硬件上的supervisor来隔离用户态和内核态,但是在切换到内核态时,用户程序的内存映射是不会发生改变的。

一、简介

Meltdown能够在linux macos windows等主流OS上,利用intel的CPU漏洞,来突破内存独立性的限制,能够通过用户程序去访问整个内核空间和其他用户其他程序的空间(包括内存映射)。

二、原理

Meltdown 利用Intel CPU的乱序执行漏洞,通过对内存的响应时间差来建立一个侧信道攻击,以此读取整个内核空间。

1.out-of-order execution:乱序执行

CPU执行指令并不是单纯的读取-执行的循环,而是以指令流水的形式,把一批指令放在一个流水中执行,这样大大提高了CPU各个部件的利用率,进而提高了工作效率。
在intel CPU中自然也是使用了乱序执行,在执行单元等待从内存中取出数据的时间间隙,执行单元会去准备后面的指令。这种行为虽然提高了工作效率,但是也会产生副作用,meltdown就是利用了该行为产生的时间差来取得信息。
一般来说,CPU在内核态退出时或者检测到应用程序访问了非法地址时,会清除所有信息再退出,因此寄存器中的信息也不会被泄露到外面。
对于非乱序执行:
取指令——》运行指令——》检测到异常——》清除数据——》退出
但是由于乱序执行,CPU提前执行了后续的非法指令:
取指令——》运行指令1——》...——》非法指令——》...——》检测异常——》清除数据——》退出
利用这个窗口期可以建立侧信道攻击。

2.side channel attack:侧信道攻击

侧信道攻击是通信安全中常见的一个问题,是指不去攻击信道本身来获得信息,而是通过观信道双方通信时产生的其他影响,通过分析泄露的额外信息来建立映射,进而取得信息。
Meltdown通过cache泄露的额外信息,建立了一个侧信道攻击,来取得非授权地址内的信息。

三、攻击模型

Meltdown 利用指令流水中指令超前执行,在被超前执行的代码中故意去访问非授权地址a,
a的内容被送入寄存器中参与临时运算,尝试以a的内容做地址去访问某块内存,导致该地址内容被cache;一个周期结束时,被检测出非法指令,所有数据被清除,但是cache中并未擦除;此时对整个内存进行扫描,测试访问速度,地址x访问时间极短说明该地址被cache,进而推断出a地址中的内容为x。

此时扫一遍整个内存,在cache中的内存块会被快速响应,其他相对较慢,基于此时间差建立侧信道攻击。
假设此时,我们扫描内存发现地址为x的内存块响应较快,那么x的内容被cache,m=x。
进而得知a地址中的内容为x;
基于此方法,我们可以得到任意内存块中的内容,甚至去获取内存映射的内容,读取内核数据,其他程序,其他用户数据。

四、影响

此漏洞无疑对云计算的影响最为严重,云计算多用户多程序,只要在同一物理机,理论上可以跨虚拟机读取其他用户所有数据。对目前来说,影响最大的应该是使用半虚拟化技术和intel CPU的云,在半虚拟化环境上,用户程序执行于ring3,由虚拟化程序接管后直接让指令陷入ring0交由硬件资源去执行,因此,meltdown可以直接进行攻击。
而对于全虚拟化的云,用户程序在ring3执行,交由ring1的QEMU,会对指令进行重构,再交由硬件去执行。但是全虚拟化只是设置了一层障碍而已,还是可以被meltdown攻击,仍然很不安全,攻击也只是时间问题。

cpu meltdown 熔断 漏洞 突破内存独立性限制 简介相关推荐

  1. cpu spectre 幽灵 漏洞 突破内存独立性限制 简介

    目录 1.流水线设计 (1)如何对依赖关系的一段指令进行流水 (2)遇到条件分支怎么办 2.CPU的cache 3.速度的代价 4.PoC分析 5.防护建议 本文对上述漏洞(主要是Spectre)进行 ...

  2. CPU的熔断与幽灵漏洞

    本文从CPU的视角来讲一下这个大名鼎鼎的漏洞. 自我介绍 我叫阿Q,是CPU一号车间里的员工,我所在的这个CPU足足有8个核,就有8个车间,干起活来杠杠滴. 我所在的一号车间里,除了负责执行指令的我, ...

  3. 面对CPU M/S漏洞只是打补丁,你可能掀开了可怕的潘多拉魔盒

    自2018年1月2日,Intel CPU的芯片级漏洞Meltdown(熔断)和Spectre(幽魂)被媒体曝光以来,和以往任何一次病毒和漏洞大规模爆发不同,即使经过近1个月全产业链的努力,漏洞似乎仍然 ...

  4. 关闭“幽灵”和“熔断”漏洞防护,恢复电脑性能

    国外安全研究机构公布了两组CPU漏洞,由于漏洞严重而且影响范围广泛,引起了全球的关注. Meltdown(熔断),应对漏洞:CVE-2017-5754 Spectre(幽灵),对应漏洞:CVE-201 ...

  5. 英特尔CPU曝出漏洞:监视功耗就能轻松获取数据

    木易 发自 凹非寺  量子位 报道 | 公众号 QbitAI 你的CPU数据,可能存在被窃取的风险. 这个最新被发现的英特尔CPU漏洞,让攻击者直接通过监视功耗的变化,便可以轻松获取你的CPU数据. ...

  6. 70% 的Chrome漏洞是内存安全问题,谷歌和开发人员约法三章

     聚焦源代码安全,网罗国内外最新资讯! 编译:奇安信代码卫士团队 上周,谷歌工程师表示,Chrome 代码库中70%的严重漏洞与内存管理和安全有关. 在这70%的漏洞中,一半是释放后使用漏洞,因对内存 ...

  7. 【观察】突破内存与存储瓶颈,英特尔傲腾从蓄势到爆发

    申耀的科技观察 读懂科技,赢取未来! 毫无疑问,如今的世界正以加速度进入到智能化时代,其中"物理世界数字化.数字世界智能化"就是最为重要的特征体现. 而当越来越多的物和设备都像一台 ...

  8. 冯诺依曼机器人_舍弃冯诺依曼架构突破内存墙瓶颈的AI芯片,即将轰动市场?...

    近几年再次兴起的AI热潮,不仅引发了芯片巨头们的AI芯片战,更让科技巨头们纷纷开始了AI芯片的研发.在AI芯片的争夺中,算力首先成为了焦点.不过,算力提升之后,算力与内存的不匹配又成为了阻碍AI向前发 ...

  9. 【转】android如何查看cpu的占用率和内存泄漏

    原文网址:http://www.cnblogs.com/yejiurui/p/3472765.html 在分析内存优化的过程中,其中一个最重要的是我们如何查看cpu的占用率和内存的占用率呢,这在一定程 ...

最新文章

  1. mysql-5.7.21-winx64_MySql-5.7.17 -winx64的安装配置
  2. Uncaught ReferenceError: angular is not defined
  3. 【语音SBC算法】基于正交滤波器组的语音SBC算法设计与实现
  4. 谈谈怎么做【服务隔离】
  5. 基于matlab的回波,基于MATLAB回波信号产生与消除.doc
  6. java上机实验答案_java上机实验答案与解析
  7. 【Spring Boot + Vue 实际案例】
  8. caffe上手:修改已训练好的网络并训练模型
  9. html+css网页设计源码_【技术篇前端】用html+css实现简化版孙膑kpl皮肤页面(内含源码)...
  10. vue中生成二维码(中间带logo)
  11. 扩容卡检测(win下,能作为参考)
  12. 小白系统盘制作详细教程
  13. PostGIS教程十一:空间索引
  14. Hadoop大数据原理(2) - 分布式文件系统HDFS
  15. 20220722_JavaWeb最终案例
  16. anaconda 创建虚拟环境
  17. ubuntu18镜像源修改为清华镜像源
  18. 学校计算机室广播系统,校园广播系统-学校寻址点对点广播系统设计方案
  19. 创意电子学-第00课:注册Tinkercad 网站账号
  20. 【Python】:好好学习天天向上实例

热门文章

  1. 从IBM“廉政”说企业内控
  2. 升级office SP3一定要小心!
  3. 学习PetShop3.0(3)模仿购物车的简单可变类
  4. 完全理解python迭代对象_完全理解Python迭代对象、迭代器、生成器
  5. pythonpandas读取csv和另外一个csv进行比较_Python Pandas:比较一个列中类似值的两个csv(dataframe)的行,并返回相似的行(列)的内容...
  6. 5G 标准 — R16
  7. 5G NR — 密集组网和异构组网
  8. PostgreSQL — 常规操作
  9. NR 5G UE发起的去注册流程
  10. MQ对比之RabbitMQ Redis