微软在macOS系统中发现了一个安全漏洞,漏洞CVE编号为CVE-2021-30892。攻击者可利用该漏洞绕过macOS的系统完整性保护(SystemIntegrityProtection,SIP),对设备进行任意操作。研究人员还发现了一种类似的技术,允许攻击者在受影响的设备上实现根级特权升级。SIP是macOS系统中使用的一项技术,用于限制root用户执行可能破坏系统完整性的操作。研究人员发现,该漏洞存在于包含安装后脚本的Apple签名包的安装中。恶意用户可以创建一个精心伪造的文件来劫持安装过程。通过绕过SIP限制,攻击者可以安装恶意内核驱动程序、覆盖系统文件以及安装无法检测的恶意软件。Shrootless漏洞分析当ApplemacOS能够绕过受SIP保护的进程时,研究人员发现了守护进程system_installd,它具有com.apple.rootless.install.inheritable权限。有了这个权限,任何system_installd子进程都可以绕过SIP文件系统的限制。图system_installdPermissions随后,研究人员检查了system_installd的子进程,发现攻击者可以滥用该特性绕过SIP。例如,当安装一个Apple签名的包(.PKG文件)时,包调用system_installd,然后安装包。如果软件包包含安装后脚本,system_installd会调用macOSzsh中的默认shell。zsh启动后,会寻找/etc/zshenv这个文件,如果找到了,就会自动非交互地运行文件中的命令。因此,想要对设备进行任意操作的攻击者只需要创建一个恶意的/etc/zshenv文件,等待system_installd调用zsh即可。为了实现PoC漏洞利用,研究人员实施了以下算法:下载包含安装后脚本的Apple签名包(使用wget);植入一个检查父进程的恶意/etc/zshenv,如果是system_installd,则写入受限位置;调用安装程序来安装包。如下图所示,PoC利用可以覆盖内核扩展排除列表:图Overwritesthekernelextensionexclusionlistwitharbitrarydata.研究人员发现/etc/zshenv相当于每个用户的~/.zshenv,功能相同但不需要root权限即可写入。zshenv可用于以下攻击活动:实现常驻机制:等待zsh启动;提权:当admin用户使用sudo-s或sudo命令提升到root权限时,home目录不需要改变。因此,设置~/.zshenv为admin权限,然后等待管理员使用sudo触发~/.zshenv文件,实现root提取。目前,苹果已于10月26日发布了针对该漏洞的安全补丁。本文翻译自:https://www.microsoft.com/security/blog/2021/10/28/microsoft-finds-new-macos-vulnerability-shrootless-that-c??ould-bypass-system-integrity-protection/如有转载请注明出处。
