cpu meltdown 熔断 漏洞 突破内存独立性限制 简介
目录
一、简介
二、原理
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 熔断 漏洞 突破内存独立性限制 简介相关推荐
- cpu spectre 幽灵 漏洞 突破内存独立性限制 简介
目录 1.流水线设计 (1)如何对依赖关系的一段指令进行流水 (2)遇到条件分支怎么办 2.CPU的cache 3.速度的代价 4.PoC分析 5.防护建议 本文对上述漏洞(主要是Spectre)进行 ...
- CPU的熔断与幽灵漏洞
本文从CPU的视角来讲一下这个大名鼎鼎的漏洞. 自我介绍 我叫阿Q,是CPU一号车间里的员工,我所在的这个CPU足足有8个核,就有8个车间,干起活来杠杠滴. 我所在的一号车间里,除了负责执行指令的我, ...
- 面对CPU M/S漏洞只是打补丁,你可能掀开了可怕的潘多拉魔盒
自2018年1月2日,Intel CPU的芯片级漏洞Meltdown(熔断)和Spectre(幽魂)被媒体曝光以来,和以往任何一次病毒和漏洞大规模爆发不同,即使经过近1个月全产业链的努力,漏洞似乎仍然 ...
- 关闭“幽灵”和“熔断”漏洞防护,恢复电脑性能
国外安全研究机构公布了两组CPU漏洞,由于漏洞严重而且影响范围广泛,引起了全球的关注. Meltdown(熔断),应对漏洞:CVE-2017-5754 Spectre(幽灵),对应漏洞:CVE-201 ...
- 英特尔CPU曝出漏洞:监视功耗就能轻松获取数据
木易 发自 凹非寺 量子位 报道 | 公众号 QbitAI 你的CPU数据,可能存在被窃取的风险. 这个最新被发现的英特尔CPU漏洞,让攻击者直接通过监视功耗的变化,便可以轻松获取你的CPU数据. ...
- 70% 的Chrome漏洞是内存安全问题,谷歌和开发人员约法三章
聚焦源代码安全,网罗国内外最新资讯! 编译:奇安信代码卫士团队 上周,谷歌工程师表示,Chrome 代码库中70%的严重漏洞与内存管理和安全有关. 在这70%的漏洞中,一半是释放后使用漏洞,因对内存 ...
- 【观察】突破内存与存储瓶颈,英特尔傲腾从蓄势到爆发
申耀的科技观察 读懂科技,赢取未来! 毫无疑问,如今的世界正以加速度进入到智能化时代,其中"物理世界数字化.数字世界智能化"就是最为重要的特征体现. 而当越来越多的物和设备都像一台 ...
- 冯诺依曼机器人_舍弃冯诺依曼架构突破内存墙瓶颈的AI芯片,即将轰动市场?...
近几年再次兴起的AI热潮,不仅引发了芯片巨头们的AI芯片战,更让科技巨头们纷纷开始了AI芯片的研发.在AI芯片的争夺中,算力首先成为了焦点.不过,算力提升之后,算力与内存的不匹配又成为了阻碍AI向前发 ...
- 【转】android如何查看cpu的占用率和内存泄漏
原文网址:http://www.cnblogs.com/yejiurui/p/3472765.html 在分析内存优化的过程中,其中一个最重要的是我们如何查看cpu的占用率和内存的占用率呢,这在一定程 ...
最新文章
- mysql-5.7.21-winx64_MySql-5.7.17 -winx64的安装配置
- Uncaught ReferenceError: angular is not defined
- 【语音SBC算法】基于正交滤波器组的语音SBC算法设计与实现
- 谈谈怎么做【服务隔离】
- 基于matlab的回波,基于MATLAB回波信号产生与消除.doc
- java上机实验答案_java上机实验答案与解析
- 【Spring Boot + Vue 实际案例】
- caffe上手:修改已训练好的网络并训练模型
- html+css网页设计源码_【技术篇前端】用html+css实现简化版孙膑kpl皮肤页面(内含源码)...
- vue中生成二维码(中间带logo)
- 扩容卡检测(win下,能作为参考)
- 小白系统盘制作详细教程
- PostGIS教程十一:空间索引
- Hadoop大数据原理(2) - 分布式文件系统HDFS
- 20220722_JavaWeb最终案例
- anaconda 创建虚拟环境
- ubuntu18镜像源修改为清华镜像源
- 学校计算机室广播系统,校园广播系统-学校寻址点对点广播系统设计方案
- 创意电子学-第00课:注册Tinkercad 网站账号
- 【Python】:好好学习天天向上实例
热门文章
- 从IBM“廉政”说企业内控
- 升级office SP3一定要小心!
- 学习PetShop3.0(3)模仿购物车的简单可变类
- 完全理解python迭代对象_完全理解Python迭代对象、迭代器、生成器
- pythonpandas读取csv和另外一个csv进行比较_Python Pandas:比较一个列中类似值的两个csv(dataframe)的行,并返回相似的行(列)的内容...
- 5G 标准 — R16
- 5G NR — 密集组网和异构组网
- PostgreSQL — 常规操作
- NR 5G UE发起的去注册流程
- MQ对比之RabbitMQ Redis