前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >开发者误读芯片厂商调试文档,导致主要操作系统均出现新内核漏洞

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

作者头像
FB客服
发布2018-07-30 11:49:04
5590
发布2018-07-30 11:49:04
举报
文章被收录于专栏:FreeBufFreeBuf

美国计算机安全应急响应中心(以下简称“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

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-05-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 FreeBuf 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档