绕过 Ubuntu 的无特权命名空间限制的旅程

主要观点:Ubuntu 引入沙箱机制减少攻击面,看似坚不可破,深入研究后发现其存在问题,可被绕过。文章介绍了研究过程,包括内核级分析、发现绕过方法及相关故事,还阐述了 AppArmor 的相关知识、Ubuntu 内核补丁的调查、绕过方法的原理及证明-of-concept 代码,最后提到了缓解措施和披露时间线。

关键信息

  • Ubuntu 新沙箱模型限制特定应用创建非特权命名空间,曾被认为不可攻破。
  • 2025 年 2 月发现新 AppArmor 保护可被绕过,后 Pwn2Own 规则改变使绕过方法与比赛无关。
  • AppArmor 是 Linux 安全模块,可限制进程对系统资源的访问,Ubuntu 中所有 AppArmor 配置文件存储在特定目录。
  • 分析 Ubuntu 内核补丁时,通过特定策略和搜索关键字符串找到相关代码,了解 AppArmor 实现细节。
  • 可通过应用非默认的无限制状态配置文件绕过创建非特权命名空间的检查。
  • 提供了绕过限制的 Proof-Of-Concept 代码,缓解措施是在特定条件下禁用相关系统参数。
  • 披露时间线包括多个关键事件及相关团队的响应。

重要细节

  • AppArmor 相关函数及操作流程,如apparmor_userns_create()aa_profile_ns_perm()等的作用和执行逻辑。
  • 各种文件和目录的位置及内容,如/proc/self/attr/etc/apparmor.d/unprivileged_userns等。
  • 不同操作对 AppArmor 配置文件的影响,如写入/proc/self/attr/current/proc/self/attr/exec的效果。
  • 绕过方法的具体条件和限制,如仅在/proc/sys/kernel/apparmor_restrict_unprivileged_unconfined为 0 时有效等。
阅读 16
0 条评论