开发者误读芯片厂商调试文档,导致主要操作系统均出现新内核漏洞

美国计算机安全应急响应中心(以下简称“CERT”)日前发布公告称,Windows、macOS、Red Hat、Ubuntu、SUSE Linux、FreeBSD、VMware 和 Xen 等系统都可能受到一个重大安全漏洞( CVE-2018-8897)的影响,这个漏洞是由于操作系统开发者曲解了英特尔和AMD两大芯片厂商的调试文档所致。

不过,这个漏洞的利用需要一定的条件,攻击者需要使用已经感染带有恶意软件的计算机,或者必须使用已经登录的帐户才能运行利用此漏洞的恶意代码。如果顺利入侵,攻击者可以将其代码的访问权限提升到内核级别,然后使用此访问权限执行其他操作。通俗来说,攻击者可以利用操作系统的 API 获取敏感内存信息,或控制低级操作系统功能。

根据 CERT/CC 的报告,这个漏洞出现的详细原因如下:

这个漏洞主要与操作系统供应商为 Intel x86-64 体系结构部署的硬件调试机制有关,核心原因是 MOV SS 和 POP SS 指令。该指令从正在运行的程序堆栈中获取一个用于选择堆栈段的值,并将这个值存入 CPU 的堆栈选择器与寄存器。这与很多现代操作系统所忽视的内存分割有关。POP SS 指令由 CPU 专门处理,以确保在执行中断时,堆栈不会陷入不一致的状态。

应用程序可以通过 POP SS 为堆栈选择器所在的内存位置设置调试断点。也就是说,当应用程序使用 POP SS 时,如果处理器触及 RAM 的特定部分以获取堆栈选择器,将会生成特殊的异常问题。如果紧接在 POP SS 指令之后的指令是 INT 指令,就能利用这种异常情况来触发中断。这些软件触发的中断有时被用户程序用于激活内核,因此它可以执行打开文件等运行程序所需的操作。在运行 Intel 或 AMD 的计算机中,软件生成的中断指令紧跟在 POS SS 指令之后,立刻让处理器进入内核的中断处理程序。随后,由于 POP SS 导致异常被延迟,会触发调试异常。

由于英特尔的 x86-64 手册关于 POP SS 指令及其与中断门语义相互作用的注意事项不清楚甚至不完整,让操作系统开发者和供应商误以为处理程序在不可中断的状态下启动。但事实上,调试异常需要在处理程序中断的早期进行处理,否则用户应用程序可以利用开发者的这种误解,在运行 Intel 的计算机中利用 POP SS 和 INT 指令,控制中断处理程序中的特殊指针 GSBASE。而在运行 AMD 的计算机中,用户应用程序可以控制 GSBASE 和堆栈指针,导致内核崩溃,通过访问未映射的内存,提取部分受保护的内核内存,或者调整其内部结构导致系统崩溃或者操纵系统运行。

专家认为,上述任何尝试都可能导致内核崩溃,不过不会造成更严重的危害。但是,这也应当引起系统供应商注意。

目前,各大厂商都已知晓这个漏洞,并积极应对。Red Hat、Ubuntu 和苹果 MacOS 都已经着手推出补丁。而早在 2018 年 3 月,Linux 内核已经解决了这个问题,4.15.14、4.14.31、4.9.91、4.4.125 以及更早的 4.1、3.16 和 3.2版本都有相应的补丁。

微软也做出了回应,其 Windows 7 到 Windows 10 以及 Windows Server 2008 到 1803 版本都推出了补丁。Xen 4.6 到 4.10 版本也推出了修补程序。VMware 的虚拟机管理程序没有风险, vCenter Server 有对应的解决方案,vSphere 集成容器正在等待修复,但专家认为,二者都“可能受到影响”。

以下是美国 CERT/CC 列出的受影响厂商名单,提醒用户及时关注厂商动态,及时修复。

*参考来源:The Register,AngelaY 编译整理,转载请注明来自 FreeBuf

原文发布于微信公众号 - FreeBuf(freebuf)

原文发表时间:2018-05-10

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

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏无题

分布式系统幂等性解决方案

用通俗的话讲,幂等就是一个操作,不论执行多少次,产生的效果和返回的结果都是一样的。 需要确保幂等性的场景: 前端重复提交选中的数据,应该后台只产生对应这个数据...

7155
来自专栏JavaEdge

瞬时响应:网站的高性能架构一、网站性能测试二、Web前端性能优化三、应用服务器性能优化四、存储性能优化

4377
来自专栏北京马哥教育

MySQL/MariaDB基于MMM实现读写分离及高可用

前言 MMM(Master-Master replication managerfor Mysql,Mysql主主复制管理器)是一套灵活的脚本程序,基于perl...

39810
来自专栏LEo的网络日志

coding感想(三)

3768
来自专栏CSDN技术头条

亿级Web系统搭建:单机到分布式集群

当一个Web系统从日访问量10万逐步增长到1000万,甚至超过1亿的过程中,Web系统承受的压力会越来越大,在这个过程中,我们会遇到很多的问题。为了解决这些性能...

2916
来自专栏ThoughtWorks

大型项目程序配置管理演化之路|TW洞见

今日洞见 文章作者、图片来自ThoughtWorks:窦衍森。封面图片来自网络。 本文所有内容,包括文字、图片和音视频资料,版权均属ThoughtWorks公司...

3286
来自专栏Netkiller

应用程序的通信成本

应用程序的通信成本 什么是通信 一个程序中两个以上功能相互传递信号或数据叫做通信。 什么是成本 这是是指时间成本与空间成本。 时间就是传递数据所花费的时间。空间...

3439
来自专栏琯琯博客

大型分布式网站术语分析

一、I/O优化 1、增加缓存,减少磁盘的访问次数。 2、优化磁盘的管理系统,设计最优的磁盘方式策略,以及磁盘的寻址策略,这是在底层操作系统层面考虑的。 3、设...

2424
来自专栏纯洁的微笑

再有人问你分布式事务,把这篇扔给他

不知道你是否遇到过这样的情况,去小卖铺买东西,付了钱,但是店主因为处理了一些其他事,居然忘记你付了钱,又叫你重新付。又或者在网上购物明明已经扣款,但是却告诉我没...

2771
来自专栏无题

在高并发的核心技术中如何实现幂等性

* 实际系统中有很多操作,是不管做多少次,都应该产生一样的效果或返回一样的结果。 例如: 前端重复提交选中的数据,应该后台只产生对应这个数据的一个反应结果。 ...

71811

扫码关注云+社区