干货 | Intel CPU漏洞分析与安恒信息产品影响解读

综述

近日,Intel CPU中曝出Meltdown(熔断)和Spectre(幽灵)两大新型漏洞,包括Intel、AMD、ARM等主流CPU在内,几乎近20年发售的所有使用上述CPU的设备都受到影响,包括手机、电脑、服务器以及云计算产品。漏洞的CVE ID分别为:

Meltdown漏洞:CVE-2017-5754;

Spectre漏洞:CVE-2017-5753,CVE-2017-5715。

漏洞分析

漏洞起因

Intel在支持指令乱序执行时,在内存内容载入缓存到内存地址权限检查之间存在竞争条件,无权限访问的内存内容被保留在缓存中,这可能导致内存信息泄漏。而在这两大CPU漏洞爆发之前,业界普遍认为处理器“内核”内存是不允许用户访问,因此是不可能被攻击的。

Meltdown和Spectre漏洞有相似之处,即都利用了缓存这个旁路来进行越权读取;区别在于,一个是在本进程越权读内存,一个是让其他进程越权读内存。

共性 VS 特性

对比许多常见的内存信息泄露类漏洞来看,Meltdown和Spectre漏洞的共性有:

可读取其他进程的内存

漏洞相关文档中特别指出的是“内核”内存信息泄漏,但安恒信息的研究人员分析后得出结论,只要映射到当前进程页表的物理页,内容都可以泄露。在典型的Linux和Windows操作系统中,其他进程和当前进程共享同一内核空间,因此可以理解为可读其他进程用到的内存(例如键盘缓冲区)。

很难“单打独斗”,必须有其他漏洞的配合

对比Safari、Chrome等浏览器的沙箱穿透攻击,信息泄漏漏洞大多用于穿透防御,要结合其他漏洞才能够执行提权代码。

但既然被一些媒体形容为“史诗级漏洞”,Meltdown和Spectre漏洞确实也有其特殊性

“原厂补丁”可能难产,漏洞暴露时间长

目前的补丁方法没有直接修改这个芯片级的竞争条件,而是通过页表隔离的方式来使得内核物理页不直接映射到用户态进程页表,这只能暂时缓解但并不能从根本上修复漏洞。

利用代码的特征较弱,无法通过主机防御技术检测漏洞

可利用ShellCode绕过KASLR防御机制

KASLR(内核地址随机化)的存在加大了漏洞利用的难度:众多已知和未知的远程代码执行漏洞和本地权限提升漏洞,由于KASLR,只能沦为拒绝服务甚至难以利用,这在很大程度上提高了漏洞攻击失败率和攻击成本,使得攻击者必须利用一些特殊条件构造难以通用的ShellCode。

但攻击者可以利用本漏洞在线性时间内完成内核地址的探测,将其作为辅助手段,大多数原来难以利用的漏洞会变得非常易用。

可用于Dump大量内存供APT攻击使用

许多内核信息泄露漏洞都存在地址范围的限制,而本漏洞可以dump映射到物理内存的全部虚拟内存,这些内存里面包含的敏感信息可供后续渗透使用,而且很可能通过某种方式将dump出来的数据传递出来。

除了内存泄露,是否还有其他危害?

有的。充分利用Meltdown和Spectre漏洞,攻击者可能获得本地执行代码的机会:利用“很难‘单打独斗’,必须有其他漏洞的配合”章节所述的方法,配合其他漏洞,攻击者可以获取对设备的完全控制权;利用“可用于Dump大量内存供APT攻击使用”章节中所述的方法,攻击者可以获取用户密码。

对于专用安全设备来说,可能存在以下攻击向量

界面(管理界面、远程开放的数据端口,本机设备插口)设计或者实现本身存在漏洞,允许以系统账户上传和执行特定代码,且系统本身存在提权漏洞。典型的如某知名厂商的路由器远程升级功能存在可上传任意脚本执行漏洞。

界面(管理界面、远程开放的数据端口,本机设备插口)设计或者实现本身存在漏洞,允许以系统账户上传和执行特定代码,且可获取数据。这样可以dump设备内存,并通过其他漏洞回传给攻击者,攻击者在dump中经过分析和搜索,找到可用的用户名和密码,进而通过界面控制设备。

漏洞修复方法和修复代价评估

通过内核页表隔离(KPTI)补丁进行防御 KPTI使得进程在用户态和内核态使用不同的页表,也说明在user/kernel切换时增加了开销(原来仅在进程切换时切换页表)。 因此,对性能的影响在于特定程序的设计:对于频繁切换到内核态的进程来说性能影响会比较大(例如轮询设备/文件资源,多次IO等)。

总结

Meltdown和Spectre漏洞的最大价值在于通用性和隐蔽性极好,但也存在致命缺点:无法“单打独斗”,需要其他漏洞配合才能完成特定攻击。

目前尚无可用性较好的攻击工具,但鉴于0day数量众多,从攻击成本和效率分析,预计很可能会出现利用ShellCode绕过KASLR防御机制的攻击工具。

安恒信息的产品是否受影响?

部分安恒信息的硬件产品使用了受漏洞影响的CPU型号(主要为Intel的I5、I7和E5系列),理论上存在这些漏洞。但考虑到设备是一个封闭环境,普通用户没有运行外部程序的机会,因此没有利用该漏洞的机会,用户无需恐慌。

安恒信息将会紧密关注厂商的补丁升级,如有需要会第一时间对产品进行升级。也请广大用户关注主流操作系统的官网,及时对PC进行系统升级。

原文发布于微信公众号 - 安恒信息(DBAPP2013)

原文发表时间:2018-01-09

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Java架构师进阶

浅谈Nginx负载均衡与F5的区别

笔者最近在负责某集团网站时,同时用到了Nginx与F5,如图所示,负载均衡器F5作为处理外界请求的第一道“墙”,将请求分发到web服务器后,web服务器上的Ng...

1731
来自专栏日暮星辰

服务器操作系统 CoreOS

3973
来自专栏FreeBuf

远丰集团旗下CMS疑有官方后门

起始 这个后门是在去年的某次渗透测试中发现的,但是因为时间点比较敏感,客户也未修复,就还未披露。 他们在中央的网站都留了后门,银行的也留,影响了一大批人,真是官...

4785
来自专栏建站达人秀

如何部署 CDN 网络

内容分发网络(Content Delivery Network),是在现有 Internet 中增加的一层新的网络架构,由遍布全国的高性能加速节点构成。这些高性...

6K12
来自专栏FreeBuf

黑帽SEO剖析之隐身篇

此系统文章总共分为四篇,分别是手法篇、工具篇、隐藏篇、总结篇;本篇为隐身篇,主要介绍黑帽seo中一些隐身的手段。 黑帽seo与其他黑产行为不同的是,它需要时间去...

2778
来自专栏微信小开发

注册微信小程序账号

本指导文档将详细介绍小程序从注册到上线的流程,帮助用户快速完成上线。 文档会随微信官方文档不断更新。 注册微信小程序账号 微信提供了两种注册方式: 方式一:通过...

5357
来自专栏架构师之路

数据库软件架构设计些什么

缘起:受@萧田国 萧总邀请,上周五晚上在“高效运维1号群”内分享了《58同城数据库软件架构设计与实践》(这个topic今年在数据库大会上分享过),应组织方要求,...

37711
来自专栏杨建荣的学习笔记

你的备库做好准备了吗(r7笔记第78天)

这篇文章计划了一段时间,本来想写篇心情文字,还是留到周末再放飞心情吧。 今天的内容是关于数据库的备库的思考,当然我们可以自己问自己,我们的备库准备工作做好了吗?...

3777
来自专栏FreeBuf

开源Webshell利用工具——Altman

Altman,the webshell tool,自己写的一款开源软件。 0×00前言 之前用过几款webshell工具,有B/C的也有C/S的,有的只能用于p...

38010
来自专栏安恒网络空间安全讲武堂

AD线下赛——防守思路分析

如果没有一定的攻击基础,以及扎实的开发功底,想要做好防御是不可能的,因此想要在AD类竞赛中做好防御,首先是有足够的基础,这里面的基础有很多,大概包括以下几个方面...

1533

扫码关注云+社区

领取腾讯云代金券