许多安全公司和大型科技企业都有自己的团队,旨在发现软件中的缺陷和漏洞,与软件供应商私下沟通,然后根据行业标准流程发布修复程序。同时, Google Project Zero以 为代表的团队也致力于帮助发现和修复第三方的安全问题。本文将介绍微软在苹果 macOS 发现在上面“Shrootless”漏洞。
(来自:Microsoft 365 Defender Research Team)
微软指出,Shrootless 绕过操作系统的系统完整性保护,可以使用恶意攻击者来保护漏洞(SIP),然后执行任何代码。
与此同时,微软安全团队发现了一种用于提权的新型攻击技术。简单翻阅该公司的博客文章后,可知问题主要归咎于“软件包由苹果签名,脚本的软件包”安装方法。
攻击者可以通过创建可劫持安装过程中的自定义软件包来实现恶意目标。
比如绕过 SIP 防护措施后,攻击者可以安装 rootkit 和不可检测的恶意软件,甚至覆盖系统文件而不被 覆盖SIP 给阻止。
在某些情况下,软件包需要访问 SIP 系统更新等保护目录。
苹果为此类软件包分配了一些特权(
com.apple.rootless.install 和 com.apple.rootless.install.inheritable),但也可以用来绕过 SIP 。
有权绕过 进行评估SIP 保护的 macOS 过程中,微软安全团队发现了防护过程 system_installd 具有强大的
com.apple.rootless.install.inheritable 权限。
在此基础上,攻击者可以使用 system_installd 任何子过程完全绕过 SIP限制 文件系统。
借助 Microsoft Defender for Endpoint 后入侵组件(post-breach component),安全团队决定检查 system_installd 所有子过程。
结果震惊了他们,因为有些可能允许攻击者滥用,绕过 SIP 。例如, ,安装苹果签名.pkg 包装时,会调用 system_installed 并负责前者的安装。
但如果软件包含任何安装脚本, system_installd 调用默认 shell(在 macOS 上为 zsh)运行它们。
有趣的是,当 zsh 启动时会找到文件 //etc/zshenv 。如果发现,哈辉自动从文件操作命令 —— 即使在非交互模式下也是如此。
因此,对于潜在攻击者来说,他们在设备上任意操作的最可靠路径是创造恶意 /etc/zshenv 文件,然后等待 system_installd 调用 zsh 。
更糟糕的是,微软还发现 zshenv 可以作为通用攻击模式,而不仅仅是 Shrootless —— 滥用此 shell 或导致特权提升。
幸运的是,披露作为协调漏洞是幸运的(CVD)在流程的一部分,微软和苹果私下分享了其调查结果。后者承认了这一问题,并于2021年 10 月 26 向公众发布了漏洞修复补丁。
在 macOS Monterey、Catalina 和 Big Sur在 的安全补丁描述中,苹果还强调了微软的贡献。详情请查看 CVE-2021-30892安全公告。