一周以来,使用虚拟化软件 Docker 的开发人员一直受到一个问题的困扰,用户抱怨 macOS 错误地将其检测为恶意软件。macOS 中的苹果安全系统旨在保护用户及其数据在正常使用中免受大量在线攻击。 不过,如果出现错误,这些系统也会触发合法软件。
Docker 似乎就是这种情况,这是一种常用于在 Mac 上开发应用程序的虚拟化工具。 一个多星期以来,用户发现他们的 Mac 正在阻止 Docker 运行,原因是所谓的恶意软件问题。
在某些版本的 Docker Desktop 中,用户可以看到"恶意软件已被阻止"的警告信息,以及"com.docker.vmnetd 因包含恶意软件而未被打开。 此操作不会对你的 Mac 造成伤害"。 然后,Docker Desktop 就完全无法运行了。
虽然用户对此感到震惊,但事实证明这并不是恶意软件的问题。 实际上,这是一个签名问题,在 macOS 安全性分析时会以这种方式表现出来。
苹果在 macOS 中内置了许多安全工具,应用程序必须遵守这些工具才能运行。 其中包括用于检测恶意软件的XProtect、用于检查恶意组件和代码签名问题的 Notarization 以及用于检查开发人员 ID 签名有效性的 Gatekeeper。
在 Docker 的状态页面上,针对 macOS 的 Docker Desktop 列出了从 1 月 7 日开始的"活动事件"。 官方列表为"由于恶意软件报告,macOS 上的 Docker Desktop 无法启动"。
macOS 中的恶意软件错误信息 图片来源:Docker/Github
最初,Docker 团队提供了一种解决方法,包括停止 Docker 服务、删除两个二进制文件、重新安装二进制文件,然后重启 Docker。
1 月 8 日,问题的真正原因被揭露出来。 现有安装中的某些文件签名不正确,导致 macOS 的反恶意软件保护功能失效。
为了解决这个问题,开发人员最初是通过将正确签名的文件从 Docker.app 应用程序捆绑包复制到正确的位置来解决的。 直到 1 月 9 日,Docker Desktop 4.32 至 4.37 版本才发布补丁,修复了这个问题。
此外还发布了支持文档以帮助用户,其中包括如何安装补丁的指导。 使用自制酒桶安装 Docker Desktop 的用户应执行完全重新安装以修复该问题。
还为企业环境中的 IT 管理员提供了 MDM 脚本。