【#苹果Gatekeeper被曝安全漏洞#】macOS的安全防线正遭遇一次信任危机。近日,安全研究人员Talal Haj Bakry与Tommy Mysk披露了一项macOS安全漏洞:攻击者可以在无需获取系统管理员权限的情况下,将用户已下载并运行过的应用程序悄然替换为恶意版本,而苹果的Gatekeeper安全机制全程不会发出任何警告。苹果在审查后认定该行为不构成安全漏洞,不予修复。
Gatekeeper是macOS的核心安全机制,其职责是在用户首次打开从互联网下载的应用程序时,验证应用的签名与公证状态。一旦验证通过,macOS便会将该应用标记为“可信”,并将这一信任状态缓存下来。
研究人员发现,这一设计存在一个可被利用的漏洞:当应用首次通过验证后,macOS不会再对其进行二次完整性检查。攻击者只需获得当前用户级别的代码执行权限(例如通过恶意脚本、感染的CLI工具、npm或Homebrew的供应链攻击等),即可执行以下操作:
1. 使用`tar`命令将已信任的应用打包归档
2. 删除原始应用
3. 在相同位置解压一个恶意版本
由于macOS将恢复后的应用视为“本地构建”的应用,Gatekeeper不会再进行任何验证或重新授权。整个过程对用户完全透明。
这一漏洞影响所有从Mac App Store以外渠道下载的应用程序——包括Brave、Slack、Signal、Visual Studio Code、Cursor、Proton Mail、Mullvad Browser、Xcode等。Mac App Store应用不受影响,因为它们归root用户所有,普通用户进程无法覆盖。
一旦恶意“双胞胎”应用就位,它可以在用户信任的合法应用名称和图标下,弹出虚假的权限请求。例如,一个被替换的“Signal”应用可能会请求访问钥匙串或桌面文件夹,而macOS会显示“Signal”想要访问您的数据——用户很难察觉到异常。
需要注意的是,替换后的应用不会继承原应用的代码签名身份、权限或已授予的TCC(透明、同意与控制)权限。当它尝试访问受保护资源时,macOS仍会弹出授权提示——但提示显示的是被替换应用原本的名称和图标。
研究人员于6月向苹果报告了这一问题,苹果于7月14日关闭了该案件。苹果的结论是:该行为不构成安全漏洞,因为攻击需要恶意软件已在当前用户下运行,并未绕过Gatekeeper或TCC,且仍需要用户批准权限请求。苹果还指出,Gatekeeper的设计目的是在应用首次启动前进行验证,而非持续监控用户自有且可修改的文件。苹果未回应媒体的置评请求。
Mysk团队对此持不同意见。他们认为,macOS应在应用包内容发生变化后重新验证其代码签名,而权限提示应显示发起请求的可执行文件的代码签名身份或Team ID,而非仅显示应用名称和图标。
对于Mac用户而言,这一发现意味着:Gatekeeper仅在应用首次运行时进行验证,此后信任决策被缓存,存在被滥用的风险。研究人员建议用户,在批准敏感文件或钥匙串访问权限时保持警惕——即使提示来自看似熟悉的应用。从Mac App Store安装的应用仍受保护,而网页下载的应用则面临“一条tar命令即可被替换”的风险。
