忘记密码   免费注册 查看新帖 |

ChinaUnix.net

  平台 论坛 博客 文库 频道自动化运维 虚拟化 储存备份 C/C++ PHP MySQL 嵌入式 Linux系统
123
最近访问板块 发新帖
楼主: 王楠w_n

【大话IT】如何看待最近爆出的Intel CPU设计漏洞? [复制链接]

论坛徽章:
3
季节之章:冬
日期:2015-01-15 10:36:57IT运维版块每日发帖之星
日期:2015-09-24 06:20:00IT运维版块每日发帖之星
日期:2015-10-24 06:20:00
发表于 2018-01-16 17:00 |显示全部楼层
1. 你是否了解该事件,说说您对该事件的看法和推测?(英特尔CPU出现何种bug)
   是看新闻了解到这个事情。也收到安全厂商的邮件通知,大概意思是他们的产品没有采用该架构,请我们放心使用。1月4日,国外安全研究机构公布了两组CPU漏洞:
Meltdown(熔断),对应漏洞CVE-2017-5754
Spectre(幽灵),对应漏洞CVE-2017-5753/CVE-2017-5715
   Intel CPU漏洞问题衍生出来的安全事件已经波及全球几乎所有的手机、电脑、云计算产品,ARM确认 Cortex-A架构中招。
    首先这个漏洞是存在的,不存在故意黑谁,所以intel这个锅必须要背了。
   cpu漏洞大致有两类: 1、硬件设计上的缺陷 2、软件支持上的缺陷。从事后的善后方式来看,可以归纳为软件支持上的漏洞了。这个是否存在故意,不好推测,但是我更多的相信是漏洞。
2. 该问题对linux内核系统问题有哪些影响?(从第一个问题衍生对linux内核系统安全的思考,模拟攻击者滥用漏洞,进行非法手段)
    Linux内核开发者Thomas Gleixner在2017年12月在Linux内核邮件列表中就新的KAISER隔离补丁发布了说明。目前有人怀疑这批补丁可能正是为了解决Linux系统当中的Metldown与Spectre漏洞。具体如下:
https://lkml.org/lkml/2017/12/4/709
    红帽公司已经发布一项建议,其中列出受到影响的产品及其当前状态。建议内容表明:对于正在运行受影响版本产品的红帽客户,强烈建议用户尽快根据指导清单进行更新。所有受影响产品都应安装修复补丁,借以缓解CVE-2017-5753 (变种1)与CVE-2017-5754 (变种3)漏洞。CVE-2017-5715(变种2)可通过本地以及虚拟访客边界两种方式被加以利用。具体如下:
https://access.redhat.com/securi ... 2000000tsLNAAY&
3.如文中所提到的,单靠软件开发是否可以规避该漏洞?如果是,需要做哪些调整和改动?
    这两组漏洞来源于芯片厂商为了提高CPU性能而引入的新特性。现代CPU为了提高处理性能,会采用乱序执行(Out-of-Order Execution)和预测执行(SpeculativePrediction)。乱序执行是指CPU并不是严格按照指令的顺序串行执行,而是根据相关性对指令进行分组并行执行,最后汇总处理各组指令执行的结果。预测执行是CPU根据当前掌握的信息预测某个条件判断的结果,然后选择对应的分支提前执行。乱序执行和预测执行在遇到异常或发现分支预测错误时,CPU会丢弃之前执行的结果,将CPU的状态恢复到乱序执行或预测执行前的正确状态,然后选择对应正确的指令继续执行。这种异常处理机制保证了程序能够正确的执行,但是问题在于,CPU恢复状态时并不会恢复CPU缓存的内容,而这两组漏洞正是利用了这一设计上的缺陷进行测信道攻击。
     综上,在以后的设计中,利用新的技术方案时,要充分考虑到带来的新风险。

论坛徽章:
39
水瓶座
日期:2013-08-15 11:26:422015年辞旧岁徽章
日期:2015-03-03 16:54:152015年亚洲杯之乌兹别克斯坦
日期:2015-03-27 14:01:172015年亚洲杯之约旦
日期:2015-03-31 15:06:442015亚冠之首尔
日期:2015-06-16 23:24:37IT运维版块每日发帖之星
日期:2015-07-01 22:20:002015亚冠之德黑兰石油
日期:2015-07-08 09:32:07IT运维版块每日发帖之星
日期:2015-08-29 06:20:00IT运维版块每日发帖之星
日期:2015-08-29 06:20:00IT运维版块每日发帖之星
日期:2015-10-10 06:20:00IT运维版块每日发帖之星
日期:2015-10-11 06:20:00IT运维版块每日发帖之星
日期:2015-11-10 06:20:00
发表于 2018-01-17 17:21 |显示全部楼层
本帖最后由 forgaoqiang 于 2018-01-17 18:06 编辑

1. 你是否了解该事件,说说您对该事件的看法和推测?(英特尔CPU出现何种bug)
最近仔细研究了下这个漏洞,并用开源的几款PoC(Proof of concept 概念证明)软件测试了下自己的云服务器和主机,果然中招,这个问题比较有意思,硬件固件级别的问题,操作系统只能做规避操作,也就是绕过,首先看下问题怎么来的

下面引用的是阿里云专题对这个漏洞的描述:
由于计算机处理器芯片在实现上存在安全缺陷,无法通过正确判断将低权限的应用程序访存与内核高权限的访问分开,使得攻击者可以绕过内存访问的安全隔离边界,在内核中读取操作系统和其他程序的内存数据,造成敏感信息泄露风险。

现在事情已经基本明了,大部分云主机提供商也通过升级操作系统和supervisor等手段基本规避了这个漏洞,依我来看这个应该不是故意留下的后门,应该是多年的历史遗留问题,毕竟已经存在十来年的硬件级别的漏洞。
国外已经有专题报道了,甚至专门申请了域名来讲述这个事情: https://meltdownattack.com/
x2.png

现在已经明确漏洞是两种类型了,分别是熔断和幽灵(代号挺有意思,股票和神话故事)

熔断:(核心隔离失败)根据定义可以看出正常情况下程序是不能访问系统内存的,如果程序可以访问系统内存,那就事情大条了,这个漏洞就是程序可以访问系统任意内存
幽灵:这个是一个程序可以访问另一个程序的内存内容,无法访问系统的内容,相对来说问题小一些



2. 该问题对linux内核系统问题有哪些影响?(从第一个问题衍生对linux内核系统安全的思考,模拟攻击者滥用漏洞,进行非法手段)
因为问题出在硬件上,所以Linux作为运行在上面的操作系统,如果在未提前知道此问题前是无法避免了,即使知道了也只能通过绕过的方法规避此问题,因为涉及到CPU指令集的问题,所以绕过必然有代价,代价就是性能下降,现在来看整机会有不同成都的性能下降,验证的话会有将近三分之一的性能丢失,Linux作为开源操作系统,更新速度非常快,在1月08日更新的内核补丁上就已经修复这个问题。 Linux更新 4.14.12,4.9.75 和 4.4.110,将 Meltdown 和 Spectre 修补补丁移植到稳定内核分支。

攻击者只要能够在有缺陷的CPU上运行自己的程序既可以利用这两个漏洞,因此对于传统的Web类型的应用,可利用空间还是非常小的。


3.如文中所提到的,单靠软件开发是否可以规避该漏洞?如果是,需要做哪些调整和改动?
单靠软件开发也是可能规避此问题的,比如Firefox就在新版本中修复了这个问题,估计是通过避免被其他程序利用自身来利用硬件漏洞的,具体细节没有研究,从Firefox给出的公告可以看出,这种操作是可能的。
对于自身的内存数据可能需要做加密保存,因为就算自身不被利用来读取系统或其它程序的内存,并不能避免其它程序读取自己的内存,一旦有敏感内容存储,后果就会非常严重。


PS:最严重的的危害情况:用户访问一个网站,网页上的JavaScript可以查看你所有的计算机内存,而无需去分析浏览器或者操作系统的任何漏洞或BUG就可以实现这个操作



论坛徽章:
39
水瓶座
日期:2013-08-15 11:26:422015年辞旧岁徽章
日期:2015-03-03 16:54:152015年亚洲杯之乌兹别克斯坦
日期:2015-03-27 14:01:172015年亚洲杯之约旦
日期:2015-03-31 15:06:442015亚冠之首尔
日期:2015-06-16 23:24:37IT运维版块每日发帖之星
日期:2015-07-01 22:20:002015亚冠之德黑兰石油
日期:2015-07-08 09:32:07IT运维版块每日发帖之星
日期:2015-08-29 06:20:00IT运维版块每日发帖之星
日期:2015-08-29 06:20:00IT运维版块每日发帖之星
日期:2015-10-10 06:20:00IT运维版块每日发帖之星
日期:2015-10-11 06:20:00IT运维版块每日发帖之星
日期:2015-11-10 06:20:00
发表于 2018-01-17 17:36 |显示全部楼层
本帖最后由 forgaoqiang 于 2018-01-17 18:33 编辑

另外是为什么叫这两个名字,最初都是Google Project Zero的成员报告的这两个漏洞,他们给出了解释:

Why is it called Meltdown?
The vulnerability basically melts security boundaries which are normally enforced by the hardware.
硬件实施的安全边界被融毁了,因此此漏洞叫做 熔断

Why is it called Spectre?
The name is based on the root cause, speculative execution. As it is not easy to fix, it will haunt us for quite some time.
权限问题,程序推测执行,非常难以修复,就像幽灵一样困扰我们很长一段时间。




论坛徽章:
39
水瓶座
日期:2013-08-15 11:26:422015年辞旧岁徽章
日期:2015-03-03 16:54:152015年亚洲杯之乌兹别克斯坦
日期:2015-03-27 14:01:172015年亚洲杯之约旦
日期:2015-03-31 15:06:442015亚冠之首尔
日期:2015-06-16 23:24:37IT运维版块每日发帖之星
日期:2015-07-01 22:20:002015亚冠之德黑兰石油
日期:2015-07-08 09:32:07IT运维版块每日发帖之星
日期:2015-08-29 06:20:00IT运维版块每日发帖之星
日期:2015-08-29 06:20:00IT运维版块每日发帖之星
日期:2015-10-10 06:20:00IT运维版块每日发帖之星
日期:2015-10-11 06:20:00IT运维版块每日发帖之星
日期:2015-11-10 06:20:00
发表于 2018-01-17 18:30 |显示全部楼层
我用自己的话描述下这个漏洞的原理:

CPU因为速度非常快,等待内存数据会很缓慢,比如判断条件在内存中时,它会不等待内存过来的结果就开始执行一个分支后面代码的内容(这个就叫做 speculative execution 推测执行

内存回来后发现分支是对的那就提前一步执行了,如果不对那就回滚寄存器,走另一个分支

目前为止都没有问题,问题就在于数组读取越界(恶意程序中要读取数组的位置也作为一个变量也要从内存返回【因为CPU提前执行了,还没有检查位置是不是合法的内存位置】),这样CPU就会读取越界的内容

当然上面仍然不是问题,因为迟早会从内存返回返回,系统会判断越界,从而撤销上面的读取

关键问题在于CPU只是取消了寄存器的数据,缓存并没有撤销,因此你可以从缓存中读取越界的内存内容

报告漏洞作者给出的代码,可以看出非常的简洁
x.png

论坛徽章:
137
2015年亚洲杯之日本
日期:2015-04-28 13:32:012015年亚洲杯之朝鲜
日期:2015-05-06 10:16:442015年亚洲杯之日本
日期:2015-05-06 10:21:342015年亚洲杯纪念徽章
日期:2015-05-13 17:16:442015亚冠之北京国安
日期:2015-05-13 17:18:292015亚冠之鹿岛鹿角
日期:2015-05-13 17:19:062015亚冠之德黑兰石油
日期:2015-05-27 16:47:402015亚冠之塔什干棉农
日期:2015-05-28 15:24:122015亚冠之卡尔希纳萨夫
日期:2015-06-01 13:52:392015亚冠之柏斯波利斯
日期:2015-06-04 17:37:292015亚冠之阿尔纳斯尔
日期:2015-06-16 11:31:202015亚冠之塔什干火车头
日期:2015-06-23 10:12:33
发表于 2018-01-18 09:14 |显示全部楼层
回复 26# forgaoqiang

谢谢您持续关注,持续更新!

论坛徽章:
29
技术图书徽章
日期:2013-09-02 19:59:502015元宵节徽章
日期:2015-03-06 15:51:332015小元宵徽章
日期:2015-03-06 15:57:20操作系统版块每日发帖之星
日期:2015-08-16 06:20:002015七夕节徽章
日期:2015-08-21 11:06:17操作系统版块每日发帖之星
日期:2015-09-21 06:20:002015亚冠之水原三星
日期:2015-10-30 00:06:07数据库技术版块每日发帖之星
日期:2015-12-24 06:20:0015-16赛季CBA联赛之上海
日期:2016-01-07 10:32:07操作系统版块每日发帖之星
日期:2016-01-08 06:20:00操作系统版块每日发帖之星
日期:2016-05-18 06:20:00IT运维版块每日发帖之星
日期:2016-07-23 06:20:00
发表于 2018-01-26 10:06 |显示全部楼层
去年2月份发现的事情了

论坛徽章:
0
发表于 2018-02-24 03:07 |显示全部楼层
我2008年就知道这个漏洞是怎么形成的,你们想听吗??如果想,我明天干脆告诉你们好了!

论坛徽章:
0
发表于 2018-02-24 03:08 |显示全部楼层
我看看有没有真正的高手,我给你们提个醒,这个问题出现在ANSI  C的编译器的代码和编译器构建工具集里面!

论坛徽章:
15
射手座
日期:2014-11-29 19:22:4915-16赛季CBA联赛之青岛
日期:2017-11-17 13:20:09黑曼巴
日期:2017-07-13 19:13:4715-16赛季CBA联赛之四川
日期:2017-02-07 21:08:572015年亚冠纪念徽章
日期:2015-11-06 12:31:58每日论坛发贴之星
日期:2015-08-04 06:20:00程序设计版块每日发帖之星
日期:2015-08-04 06:20:00程序设计版块每日发帖之星
日期:2015-07-12 22:20:002015亚冠之浦和红钻
日期:2015-07-08 10:10:132015亚冠之大阪钢巴
日期:2015-06-29 11:21:122015亚冠之广州恒大
日期:2015-05-22 21:55:412015年亚洲杯之伊朗
日期:2015-04-10 16:28:25
发表于 2018-04-05 22:09 |显示全部楼层
rawa9999 发表于 2018-02-24 03:07
我2008年就知道这个漏洞是怎么形成的,你们想听吗??如果想,我明天干脆告诉你们好了!

你说说,我们听。

论坛徽章:
15
射手座
日期:2014-11-29 19:22:4915-16赛季CBA联赛之青岛
日期:2017-11-17 13:20:09黑曼巴
日期:2017-07-13 19:13:4715-16赛季CBA联赛之四川
日期:2017-02-07 21:08:572015年亚冠纪念徽章
日期:2015-11-06 12:31:58每日论坛发贴之星
日期:2015-08-04 06:20:00程序设计版块每日发帖之星
日期:2015-08-04 06:20:00程序设计版块每日发帖之星
日期:2015-07-12 22:20:002015亚冠之浦和红钻
日期:2015-07-08 10:10:132015亚冠之大阪钢巴
日期:2015-06-29 11:21:122015亚冠之广州恒大
日期:2015-05-22 21:55:412015年亚洲杯之伊朗
日期:2015-04-10 16:28:25
发表于 2018-04-05 22:12 |显示全部楼层
forgaoqiang 发表于 2018-01-17 18:30
我用自己的话描述下这个漏洞的原理:

CPU因为速度非常快,等待内存数据会很缓慢,比如判断条件在内存中 ...

C和ASM不大对的上。
*256应该是
shl rax,8
您需要登录后才可以回帖 登录 | 注册

本版积分规则

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号 北京市公安局海淀分局网监中心备案编号:11010802020122
广播电视节目制作经营许可证(京) 字第1234号 中国互联网协会会员  联系我们:wangnan@it168.com
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP