Ubuntu Linux 系统中存在三个关键的绕过非特权用户命名空间限制的方法,这使得本地攻击者能够提升权限并利用内核漏洞。

这些绕过方法影响 Ubuntu 23.10 和 24.04 LTS 系统,在这些系统中,基于 AppArmor 的防护机制本是为了限制对命名空间的滥用而引入的。

虽然这些绕过方法本身并不能让攻击者完全掌控系统,但当它们与那些需要诸如 CAP_SYS_ADMIN 或 CAP_NET_ADMIN 等管理权限的内核漏洞相结合时,就会变得极具破坏力。

Ubuntu 用户命名空间绕过技术

Qualys 威胁研究部门(TRU)的公告称,Ubuntu 的用户命名空间限制旨在防止非特权用户在隔离环境中获取管理能力,而现在存在三种绕过该限制的方法:

1.通过 aa-exec 绕过:默认安装的 aa-exec 工具允许切换到宽松的 AppArmor 配置文件(例如,trinity、chrome 或 flatpak)。攻击者可以利用这一点来执行 unshare 命令并创建不受限制的命名空间,这使得攻击者在命名空间内拥有了全部权限,从而绕过了 Ubuntu 的限制。

2.通过 Busybox 绕过:默认的 Busybox shell 的 AppArmor 配置文件允许无限制地创建命名空间。攻击者通过 Busybox 启动一个 shell 并执行,这种方法在 Ubuntu 服务器版和桌面版的安装环境中均有效。

3.通过 LD_PRELOAD 绕过:攻击者通过将恶意共享库注入到诸如 Nautilus(GNOME 的文件管理器)等受信任的进程中,利用宽松的配置文件,该库在进程中启动一个 shell,从而能够创建特权命名空间。

这些漏洞主要影响以下系统:

1.Ubuntu 24.04 长期支持版本:限制默认启用。

2.Ubuntu 23.10 版本:限制存在,但需要手动激活。

用户命名空间对于容器化和沙盒机制至关重要,然而一旦配置错误,就会暴露出内核的攻击面。

研究人员强调,虽然这些绕过方法单独使用时并不会使系统遭到破坏,但它们降低了利用诸如内存损坏或竞态条件等内核漏洞的门槛。

Canonical(Ubuntu 的发行商)承认了这些限制,但将它们归类为纵深防御层面的弱点,而非关键漏洞。缓解措施包括:

1.内核参数调整:启用 kernel.apparmor_restrict_unprivileged_unconfined=1 来阻止对 aa-exec 的滥用:

2.配置文件强化:禁用 Busybox 和 Nautilus 的宽泛 AppArmor 配置文件:

3.更严格的 bwrap 配置文件:对依赖 bwrap(例如 Flatpak)的应用程序实施精细的命名空间控制。

管理员可以使用 aa-status 命令来审计配置文件,并通过标准的 Ubuntu 渠道应用更新,不过这些修复措施不会作为紧急补丁而加速推出。

Qualys 提供了其 TruRisk Eliminate 平台来实现自动化防御,该平台提供了经过预先测试的脚本,以强制实施内核参数并禁用易受攻击的配置文件。它还可以与 Qualys 代理集成,以便集中部署缓解措施,并在不打补丁的情况下隔离关键资产的风险。

这一发现凸显了在 Linux 发行版中平衡可用性与安全性所面临的挑战。尽管 Ubuntu 的主动防御措施树立了行业标杆,但这些绕过方法也表明,纵深防御机制可能会在不经意间带来复杂性。

随着内核层面的漏洞利用事件不断增加,像 TruRisk Eliminate 这样的解决方案以及快速强化安全措施的做法,对于那些在保障系统正常运行时间的同时也重视安全性的企业来说至关重要。

Qualys 和 Canonical 将继续就 AppArmor 的长期改进展开合作,预计未来的 Ubuntu 版本中会有相关更新。目前,管理员必须手动采取缓解措施来保护易受攻击的系统。

 

 

文章原文链接:https://www.anquanke.com/post/id/306072