揭示 Mac 安全性:对沙盒和 AppData TCC 的全面探索

这是一份关于 macOS 安全相关的报告,主要内容如下:

  • 前言:报告首先介绍了该演示文稿的来源和背景,包括在Blackhat USA 2024以英文呈现,后在KCon 2024以中文呈现,还提供了下载 PDF 的链接。作者从 Android 漏洞挖掘转向苹果,介绍了研究目标和发现,由于苹果无法修复 16 个漏洞,不得不省略部分细节。
  • macOS 的安全保护

    • 系统完整性保护(Rootless):防止恶意软件修改受保护文件和文件夹,限制根用户账户权限,只有苹果签名的进程和有特殊权限的进程才能修改受保护部分,还能防止软件选择启动磁盘。
    • 透明度、同意和控制(TCC):工作方式类似 Android 权限,按需动态应用,通用的 TCC 绕过漏洞比用户空间 root LPE 更有价值。
  • 将传统无用的漏洞转化为沙盒逃逸:通用的应用沙盒逃逸方法

    • macOS 的远程攻击面:分为内存损坏漏洞、下载并运行不受信任的应用、恶意文档等三类,本报告重点关注通过恶意文档实现 RCE 即从 Office 沙盒逃逸。
    • macOS 上的应用沙盒逃逸:有三种方法,本报告重点介绍通过启动完全受控的非沙盒化应用来逃逸应用沙盒。
    • macOS 上的隔离保护:隔离包含 4 部分,重点介绍未信任应用和信任应用的隔离保护,总结指出至少需要一次额外点击才能启动应用,有效缓解了一键 RCE 攻击面。
    • 是否可以在不修改隔离标志的情况下启动可执行文件?:可以使用未设置隔离属性的应用文件夹来包装可执行文件,但 macOS 基于具体隔离标志应用不同的安全策略。
    • 作者的假设:认为隔离的设计包含用户是否允许操作的概念,系统会根据操作的授权情况处理文件。
    • 从代码角度验证假设:通过分析 Quarantine SPI 的代码,了解隔离属性的生成过程和相关 API 的使用。
    • 通过启动非沙盒化应用实现 SBX:需要找到允许创建无隔离属性的应用文件夹的漏洞和创建具有非 0086 隔离标志的可执行文件的漏洞或利用功能。
    • CVE-2023-42947:创建无隔离属性的应用文件夹:介绍了 macOS 10.15 - 14.0 中应用程序组容器的相关漏洞和补丁。
    • 0082 路径:介绍了 4 种实现修改隔离标志的路径,包括特权授权、滥用用户选择功能、滥用 OpenFile Apple Event、滥用剪贴板等。
    • 结论:传统的任意文件夹创建漏洞在 macOS 上可通过组合一些利用方法修改隔离标志,从而实现通用的沙盒逃逸,安全研究人员不应忽视看似不重要的漏洞。
  • macOS 上的权限授予机制

    • MACL 是什么样子?:介绍了 macOS 上的权限授予机制 MACL,开发者可以通过两种方式限制文件访问,macOS 通常使用第二种方式,通过标记文件的 MACL 属性来控制访问。
    • GuluBadFinder:CVE-2023-42850:利用 Finder 的默认文件处理机制,通过替换默认文件处理程序来获取对任意文件的访问权限,但无法访问 TCC.db。
    • MACL 的作用:深入探讨 MACL 在文件访问控制中的作用。
    • 未修补的漏洞:5 个:计划披露更多漏洞,但目前处于修补状态,将在后续会话中披露。
  • 关于 AppData TCC 你需要知道的一切

    • 如何生成 MACL(基于 macOS 14.5):介绍了 Secinitd 注册应用容器并应用 MACL 到数据文件夹的两种方式,以及分析 Sandbox.kext 中的相关验证和 MACL 生成策略。
    • 滥用 AppData TCC:介绍了多个与 AppData TCC 相关的漏洞,如 GuluBadContainerManager、GuluBadContainerManager2、GuluBadContainerManager3 等,以及它们的漏洞根源和补丁情况。
    • Hello macOS 15:提及 macOS 15 的相关内容。
    • 你是否在 AppData TCC 中发现了攻击面?:讨论了 AppData TCC 的设计和潜在的安全问题,如仅允许列表而无阻止列表可能导致的安全风险。
  • 总结

    • 未修补漏洞:超过 30 个:介绍了一些尚未披露的漏洞,包括通用 TCC 绕过等,并展示了在最新 macOS 15.0 上的通用 TCC 绕过演示。
    • 收获:总结了研究的主要收获,包括发现任意文件夹创建漏洞等同于发现沙盒逃逸漏洞、MACL 权限授予机制、AppData TCC 的相关知识以及利用安装的第三方应用程序的旧版本中的 N 天漏洞绕过 TCC 等。
  • 结束:报告披露了一些实现 SBX 和 LPE 的方法,但许多漏洞正在被修补,为避免对用户造成伤害,作者决定明年披露一些隐藏图标的技巧,感谢阅读。
阅读 27
0 条评论