1、往期回顾:「深蓝洞察」2024 年度最别开生面的安全新生态
2、往期回顾:「深蓝洞察」2024 年度最具含 " 金 " 量的绕过
3、往期回顾:「深蓝洞察」2024 年度最具想象空间的新应用
5、往期回顾:「深蓝洞察」2024 年度最 " 隐 " 人注目的安全趋势
近年来,漏洞攻防不断演进。从多年前仅需一个栈溢出就能攻破系统,到如今需要运用各种精妙的手法来突破系统的层层防御。" 盾 " 与 " 矛 " 始终处于动态对抗:每当新的防御措施出现,新的攻击手段随之而来。防御机制的升级促使攻击者寻找新的突破口,而攻击方法的创新又推动着防御技术的进一步发展。
以下为本期《深蓝洞察 | 2024 年度安全报告》的第七篇。
愈发坚韧的 " 盾 "
每个防御机制的提出都是对内存漏洞利用的精准打击。多年前,ASLR 的引入显著提高了漏洞利用的难度和复杂性。时至今日,绕过 ASLR 仍然是大多数漏洞利用的首要步骤。到了 2024 年,针对内存破坏的防御机制更是层出不穷。
2023 年推出的 Google Pixel 8 支持了被称为 " 内存问题终极武器 " 的 Memory Tagging Extension(MTE)特性,其是 ARM v8.5 新增的一个硬件特性,MTE 将指针与其内存利用 tag 进行匹配,以此来阻止内存的非法访问。同时,这也是 MTE 首次走入消费者群体。2024 年的 1 月,DARKNAVY 的安全研究员发布了关于 MTE 对软件安全性影响的研究。研究表明,MTE 有效缓解了堆内存漏洞(如 UAF、堆越界读写等),在线性溢出场景下几乎完全消除了漏洞利用的可能性。作为 UAF 漏洞的长期受害者,Google 也为 Chrome 提出了 MiraclePtr 机制,更是自信地宣称:受 MiraclePtr 保护的 UAF 不再视为安全漏洞。
Linux 作为使用最广泛的操作系统之一,其内核近几年也引入了各种防御措施以阻止内存破坏的利用。为了缓解内核中的堆内存破坏问题,Linux Kernel 中引入 "SLAB VIRTUAL"、"RANDOM_KMALLOC_CACHES"、"AUTOSLAB" 等一系列防御机制。为了加强用户态程序的安全性,Linux Kernel 6.10 新增系统调用 mseal(memory seal),允许开发人员在程序运行时保护内存区域免受非法修改。
那么如此多的防御机制是否阻止了某些利用呢?
2024 年 11 月,苹果披露了两个针对 WebKit 的在野利用,但这些利用仅限于 Intel 芯片的 Mac 设备。为什么 2024 年的漏洞只在较早的系统版本上被利用?这很可能与 M 系列芯片的先进防御机制有关,这些机制阻止了攻击者的利用。
WebKit 漏洞披露
从软件到硬件,从用户态到内核态,在防御机制的层层铁壁下,内存漏洞已难以突出重围。种种迹象表明,内存漏洞似乎正走向终结。
未来之 " 矛 "
漏洞不会消失,安全问题依然存在,那么在内存漏洞式微的时代,一个 "powerful" 的漏洞及其利用又是什么样呢?
2024 年 6 月,Meta Red Team 披露了漏洞 CVE-2024-31317,该漏洞允许攻击者以任意应用身份执行任意代码,并可在 Android 9 及更高版本上实现利用,实现 Android 通杀。
值得一提的是,CVE-2024-31317 并不是一个内存破坏漏洞,而是发生在 Zygote 的命令注入漏洞。Zygote 是 Android 系统上的核心组件之一,它会孵化出 Android 中 Java 世界的所有进程,system_server 也不例外。
Zygote 功能展示
( https://dawnslab.jd.com/the_return_of_mystique/ )
实际上,Zygote 是通过 command socket 从 system_server 中接收指令,并根据指令孵化出子进程。然而,Zygote 只是盲目地去解析从 system_server 接收到的 buffer,而不做额外的二次校验。因此,如果能够通过某种方式操纵 system_server 在 command socket 中写入攻击者可控的内容,就可以实现命令注入!
研究人员分析发现,denylistexemptions 就提供这种能力。在该机制中,当 hidden_api_blacklist_exemptions 被修改后,新写入的值会在解析后直接写入到 Zygote command socket 中。因此,只要控制该值即可实现命令注入。
下图展示了该漏洞的利用效果之一,启动一个可调试注入的 settings 进程:
CVE-2024-31317 的利用效果之一:启动一个可调试注入的 settings 进程
可以看到该漏洞并不涉及内存破坏,依然影响了众多的安卓系统,这种漏洞本质是程序逻辑层面出现了问题,其影响力不亚于甚至超过传统的内存漏洞。随着内存漏洞利用门槛的持续攀升,非内存破坏类漏洞逐渐成为攻击者实现目标的 " 捷径 ":
2024 年 2 月,著名的 "XZ Utils backdoor" 事件曝光,一位别有用心的开发者在社区潜伏多年,最终成为核心维护者后在项目中植入了隐蔽后门。
2024 年 4 月,全球知名防火墙软件 PAN-OS 被发现存在命令注入漏洞 CVE-2024-3400,攻击者可对运行该系统的设备进行未授权 RCE,并获取系统 root 权限。
2024 年 6 月,DEVCORE 披露了漏洞 CVE-2024-4577,揭示 Windows 环境下运行的 PHP-CGI 存在参数注入漏洞。
2024 年 11 月,watchTowr Labs 披露了 "FortiJump" 漏洞,指出网络管理平台 FortiManager 存在命令注入漏洞。
2024 年 12 月,DEVCORE 的 Orange Tsai 在 Black Hat EU 2024 揭示了 Windows ANSI API 中潜藏的安全隐患。众多软件未能正确处理 Windows 的 "Best-fit" 特性,导致路径 / 文件名、命令行和环境变量的注入问题,并且几乎影响到全球所有 Windows 系统版本。
大胆猜测,内存漏洞难以利用后,未来之 " 矛 " 或许就隐藏在各种逻辑漏洞、供应链攻击之下。
深蓝洞察
当内存安全防御构建起层层壁垒,攻击者的 " 矛 " 已悄然转向更隐蔽的战场。" 没有绝对安全的系统 ",内存安全逐渐成为基础设施的 " 及格线 ",安全防御面临更深层的体系化挑战:如何构建覆盖软件供应链的信任验证机制?如何实现业务逻辑的自动化安全建模?这些问题将是下一代安全对抗的重点。
安全对抗从未终结,只是在不断升级的维度中重塑对抗格局。安全研究者需要以更立体的视角审视安全边界——当内存漏洞走向黄昏时,逻辑漏洞的迷雾正在黎明中显现。
参 考:
[ 1 ] https://en.wikipedia.org/wiki/Address_space_layout_randomization
[ 2 ] https://source.android.com/docs/security/test/memory-safety/arm-mte
[ 3 ] https://www.darknavy.org/blog/strengthening_the_shield_mte_in_memory_allocators/
[ 4 ] https://blog.trailofbits.com/2024/10/25/a-deep-dive-into-linuxs-new-mseal-syscall/
[ 5 ] https://lore.kernel.org/lkml/20230915105933.495735-15-matteorizzo@google.com/
[ 7 ] https://webkitgtk.org/security/WSA-2024-0007.html
[ 8 ] https://support.apple.com/en-us/121752
[ 9 ] https://en.wikipedia.org/wiki/XZ_Utils_backdoor
[ 10 ] https://security.paloaltonetworks.com/CVE-2024-3400
[ 11 ] https://rtx.meta.security/exploitation/2024/06/03/Android-Zygote-injection.html
[ 13 ] https://labs.watchtowr.com/hop-skip-fortijump-fortijumphigher-cve-2024-23113-cve-2024-47575/
[ 14 ] https://worst.fit/
[ 15 ] https://blog.flanker017.me/the-new-mystique-bug-cve-2024-31317/
明日,请继续关注《深蓝洞察 | 2024 年度安全报告》第八篇。
登录后才可以发布评论哦
打开小程序可以发布评论哦