聚焦源代码安全,网罗国内外最新资讯!
编译:代码卫士
奥地利格拉茨工业大学的研究人员提到,一种名为 “SLUBStick” 的新型 Linux Kernel 跨缓存 (cross-cache) 攻击在将限制性堆漏洞转换为任意内存读写能力方面的成功率达到99%,可使研究人员提升权限或逃逸容器。
研究人员利用32位和64位系统中存在的9个已有CVE漏洞,演示了针对 Linux 内核版本5.9和6.2(最新)的攻击。另外,该攻击适用于启用了所有的现代内核防御措施如 SMEP、SMAP和KASLR等。
研究员将在本月晚些时候举行的 Usenix 安全峰会上详述SLUBStick,演示如何在启用了现代防御措施的最新版 Linux 中实现提权和容器逃逸。目前研究员已发布该漏洞的技术论文。
SLUBStick 详情
Linux 内核有效且安全地管理内存的方式是为不同的数据结构类型分配和取消分配内存块 “slab”。
该内存管理流程中存在的缺陷可使攻击者损坏或操纵数据结构即跨缓存攻击。然而,这些攻击的有效性大约是40%,一般可导致系统崩溃。SLUBStick 利用堆漏洞如双重释放、释放后使用或界外写等操纵内存分配流程。接着,它使用定时侧信道来判断内存块分配/取消分配的实际时间,从而使攻击者预测和控制内存复用。使用这种定时信息将成功率提升至99%,使得 SLUBStick 非常具有实践性。
将堆漏洞转变为任意内存读写原语分三个步骤:
释放特定内存块并等待内核复用
以受控方式重新分配这些块,确保它们为重要的数据结构如页面表进行重新利用。
一旦重新获取,攻击者将覆写页面表条目,从而获得读写任意内存位置的能力。
实际影响
与涉及侧信道的多数攻击一样,SLUBStick 要求在具有代码执行能力的目标机器上具有本地访问权限。此外,攻击要求Linux 内核中具有堆漏洞,以用于获得对内存的读写权限。虽然这样的要求看似使攻击难以应用,但却为攻击者带来一些好处。
甚至对于拥有代码执行能力的攻击者而言,SLUBStick 提供了实现提权、绕过内核防御措施、执行容器逃逸或将其纳入复杂攻击链的能力。提权可用于将权限提升至root,从而获得不受限制的操作能力,而容器逃逸可用于脱离沙箱环境并访问主机系统。
此外,在利用后阶段,SLUBStick 可修改内核结构或钩子来维持可持久性,从而使防御人员更难以检测到恶意软件。
用户如想深入探索 SLUBStick 并对利用进行实验,可查看相关 GitHub 仓库。
代码卫士试用地址:https://codesafe.qianxin.com
开源卫士试用地址:https://oss.qianxin.com
推荐阅读
恶意软件攻击Windows、Linux 和 macOS 开发人员
Falcon Sensor 在数周前导致 Linux 内核崩溃 恢复工具已推出
Fortinet 修复严重的 FortiClientLinux 漏洞
Spectre v2 新型攻击影响 Intel CPU 上的 Linux 系统
原文链接
题图:Pixabay License
本文由奇安信编译,不代表奇安信观点。转载请注明“转自奇安信代码卫士 https://codesafe.qianxin.com”。
奇安信代码卫士 (codesafe)
国内首个专注于软件开发安全的产品线。
觉得不错,就点个 “在看” 或 "赞” 吧~