查看: 5771|回复: 35
收起左侧

[讨论] 对“简单谈谈近期的Intel处理器漏洞”一文的补充

  [复制链接]
ccboxes
发表于 2018-1-5 13:13:48 | 显示全部楼层 |阅读模式
本帖最后由 ccboxes 于 2018-1-5 17:43 编辑

其实我也想发科普的,结果这两天有事没上卡饭,被抢先了


那就在这里提一提几个“简单谈谈近期的Intel处理器漏洞”中没有提到的问题给大家看。首先推荐大家阅读原文,其中的背景知识很好。简单谈谈近期的Intel处理器漏洞


1.有没有更详细的消息?

有,该漏洞实际上是三个漏洞,原理差不多。

前两个被称作
”Spectre“,影响包括ARM、AMD在内所有现代处理器。能够通过乱序执行的缺陷绕过ASLR(地址空间格局随机化),越界读取其他进程的内存。但无法越权,也就是说用户态运行的病毒无法读取内核内存数据,但在intel CPU上可以越权,只是读取速度很慢。(这个转折关系就是这样),虽然影响范围广,严重程度不是太高(对Intel高)。

最后一个称作”Meltdown“,确认影响所有10年之后发布的Intel处理器,疑似影响整个酷睿系列。 该漏洞通过乱序执行的缺陷绕过KASLR内核地址空间格局随机化)越界并越权读取其他进程,包括内核进程的内存。目前已经有实验性Exploit,获取数据的速度可达 503 KB/s,错误率低至万分之二,可以任意读取Linux、MacOS的整个内存以及Windows的大部分内存。根源在于Intel处理器设计的失误使乱序执行的指令可以抢在安全检查前执行。


2.有没有办法解决?

”Spectre“是可以修复的,除了IntelCPU,同时补丁性能影响较小。Meltdown“无法被任何手段修复,除非换CPU,只能靠操作系统更改设计来绕过漏洞。 为此,各大操作系统引入了KASLR的加强版KAISER ,代价就是一部分性能的大大降低。


3.什么是KAISER?

学过操作系统原理的坛友应该清楚,为了安全性(也就是权限管理),现代CPU引入了保护模式的概念。将物理内存空间映射到一个虚拟内存空间中,只有操作系统内核清楚虚拟空间中的某个内存地址到底对应哪个实际物理地址,而记录这个对应关系的数据就被叫做页表。之前,为了提高性能,内核与用户态程序共用一个页表,高地址的一部分属于操作系统保留,低地址给用户程序,而权限管理交给CPU来处理。虽然一个用户态程序试图访问内核内存时,会被CPU的权限管理阻止,但大家都清楚内核在哪里,哪个地址对应放什么数据,系统总有漏洞,总有一些人可以通过奇技淫巧(比如堆栈溢出之类的漏洞)来间接的读到、甚至覆写这些内存。于是开发者引入了KASLR,系统启动时随机的选择一些地址存放内核数据,就算你找到漏洞能越界越权访问内核内存地址,你也不知道内核内存地址在哪里。而这项技术再推广到用户态程序就是ASLR,用户态程序启动时也随便选地址放数据,现在你连你”旁边“的程序在哪都不知道了,更不要说访问,只有操作系统内核知道。

当然,KASLR不是万能的,有不少攻击手段致力于绕过KASLR比如Time-base attack(利用尝试访问内核地址所花费的时间与普通地址不同的现象而猜出内核数据具体分布位置),而应对这些攻击的终极手段就是KAISER。

所谓KAISER,也叫KPTI,也就是”内核页表隔离“。既然总有办法找到内核数据的虚拟地址,那就让内核数据在虚拟地址空间消失。KAISER使用两个页表来管理内存,系统启动时随机选择一部分物理内存来存放内核数据,把这些物理地址映射进内核页表,而留给用户态程序的内存映射进另一个页表。这样,用户态程序除非先提权(之前说过的那些攻击都不需要提权),否则完全不可能接触内核。

4.KAISER的缺点?

其实早在Time-base attack被发现之后,业界就已经忍不住了——毕竟KASLR的底裤被扒了好几次了。KAISER在2017年初就已有构想,但各大操作系统都没有引入,原因就是内核单独页表会导致运行时需要不断的切换页表,而切换页表会刷新CPU的TLB缓存,相对极为耗时,导致性能,尤其是I/O性能降低。KASLR虽然廉颇老亦,但饭还是能饭的,针对KASLR的大部分攻击都有办法缓解,大家就干脆忍忍算了。直到”Meltdown“横空出世,大家发现现代CPU的权限管理在乱序执行时不太可靠(尤其是Intel),才只能引入KAISER,把内核单独保护起来。

5.性能影响到底有多大?

我想大家都很关心这个问题,但这个问题被媒体夸大了。由于现代处理器中PCID技术的引入(自己搜资料,解释很麻烦)。对于大部分操作,尤其是纯计算操作,KAISER的性能影响都很小,也就5%,同时完全不影响GPU性能发挥。

但是,对于需要频繁切换页表的操作,比如I/O操作(磁盘读写等),会有最大30%的性能降低,但这并不意味着你的SSD直接降速30%,毕竟家用电脑最多也就几块硬盘,又不组阵列,没有多大可能触及到CPU的天花板。
更新:已经发现使用NVME协议的SSD的4K随机读写极限速度可能会有20%以上的降低,SATA的应该无法触及天花板。

直观来讲,你玩游戏时帧数不会有可察觉的变化,但读取速度会慢一点;而BT下载时CPU占用会高一点,建议调大磁盘缓存,减少I/O;全速跑数据库或者编译的就倒霉了,30%性能降低是跑不了,换Intel最新步进编号的CPU(漏洞已修复)是唯一彻底的解决方案。

评分

参与人数 7人气 +7 收起 理由
fireherman + 1 版区有你更精彩: )
B100D1E55 + 1 cool
jefffire + 1 精品文章
驭龙 + 1 版区有你更精彩: )
KK院长 + 1 一般个人感觉不到。

查看全部评分

JAYSIR
发表于 2018-1-5 15:24:59 | 显示全部楼层
感谢科普,后文的应对措施很受用!

话说那个最新步进,是指?正式版出来了也改步进?
KK院长
发表于 2018-1-5 15:51:10 | 显示全部楼层
一般P民感觉不到的。。。
ccboxes
 楼主| 发表于 2018-1-5 16:41:31 | 显示全部楼层
JAYSIR 发表于 2018-1-5 15:24
感谢科普,后文的应对措施很受用!

话说那个最新步进,是指?正式版出来了也改步进?

Intel的只要发现有问题就会更新步进的呀。

重新流片的成本并不高。
JAYSIR
发表于 2018-1-5 16:48:09 | 显示全部楼层
ccboxes 发表于 2018-1-5 16:41
Intel的只要发现有问题就会更新步进的呀。

重新流片的成本并不高。

谢谢科普了,这个指标在一段时间内选购cpu可能还是很重要的。

7代是应该降一波了,好贵。
随便注册
发表于 2018-1-5 16:49:39 | 显示全部楼层
上次躲了过去,这次影响不大,谁知道下次又如何
pal家族
发表于 2018-1-5 16:51:24 | 显示全部楼层
四代u伤不起啊
已经暂停更新了。
无双中等她
发表于 2018-1-5 17:47:51 | 显示全部楼层
AMD的影响应该是最小的吧?
驭龙
发表于 2018-1-5 17:52:31 | 显示全部楼层
pal家族 发表于 2018-1-5 16:51
四代u伤不起啊
已经暂停更新了。

来报告一下,我用一天了,补丁确实是对七代没有什么大影响,AIDA64的跑分没啥太大差别,正常使用无明显感觉
popu111
发表于 2018-1-5 17:54:06 | 显示全部楼层
关于 PCID 和 TLB 相关知识,在了解了楼主和B100D1E55两位大佬帖子中的相关基础内容之后,可以转到这里看看:http://ytliu.info/blog/2016/09/16/tlbde-na-xie-shi-er/,上面的科普(简述?)部分还是比较易懂的。
您需要登录后才可以回帖 登录 | 快速注册

本版积分规则

手机版|杀毒软件|软件论坛| 卡饭论坛

Copyright © KaFan  KaFan.cn All Rights Reserved.

Powered by Discuz! X3.4( 沪ICP备2020031077号-2 ) GMT+8, 2024-4-25 21:34 , Processed in 0.119842 second(s), 17 queries .

卡饭网所发布的一切软件、样本、工具、文章等仅限用于学习和研究,不得将上述内容用于商业或者其他非法用途,否则产生的一切后果自负,本站信息来自网络,版权争议问题与本站无关,您必须在下载后的24小时之内从您的电脑中彻底删除上述信息,如有问题请通过邮件与我们联系。

快速回复 客服 返回顶部 返回列表