macOS 12 进程注入漏洞破坏所有安全层

在 macOS 12.0.1 Monterey 中,苹果修复了编号为 CVE-2021-30873 的进程注入漏洞 (process injection),此漏洞影响所有基于 macOS AppKit 的应用。

进程注入是指一个进程在另一个进程中执行代码的能力。在 Windows 中,使用它的原因之一是躲避反病毒扫描程序的检测,例如称为 DLL 劫持的技术。该技术允许恶意代码伪装成不同可执行文件的一部分。在 macOS 中,由于两个应用程序拥有的权限不同,这种漏洞的影响要大得多。

苹果发布修复漏洞的更新后,发现此漏洞的研究人员近日对它进行了详细介绍,描述了使用漏洞逃逸沙盒、root 提权,并绕过 SIP 文件系统限制的方法。


研究人员还介绍了苹果修复此漏洞的思路。首先是修复了逃逸沙盒,不再读取com.apple.appkit.xpc.openAndSavePanelService中应用程序的保存状态 (CVE-2021-30659)。至于其他部分,修复手段更加复杂,因为第三方应用程序可能会将他们自己的对象存储在已保存状态,而这些对象可能不支持安全编码。这意味着如果应用程序继续允许非安全编码,那么进程注入可能仍然存在。

从这方面来看,macOS 安全设计存在一个问题,由于某一应用程序的代码签名(以及由此产生的权限)将在很长一段时间内保持有效,如果应用程序被降级,应用程序的 TCC 权限仍将有效。非沙盒应用程序可以静默下载一个较旧的、易受攻击的应用程序版本并加以利用。因此,只要与旧的 macOS 应用程序向后兼容,此漏洞就会一直存在。

猜你喜欢

转载自www.oschina.net/news/206685/process-injection-breaking-all-macos-security-layers