第 3 课,共 4 课 · 8 分钟
macOS 如何检查您打开的应用程序
代码签名、Gatekeeper、公证和 XProtect:在打开应用程序之前和之后运行的四项检查。
每次您第一次打开应用程序时,macOS 都会在启动应用程序之前运行一系列简短的检查。大多数时候你看不到他们;你只会注意到其中一个人停止某事的时候。本课程遵循实际发生的情况,使用 Apple 自己对每个步骤的描述。
代码签名:证明是谁构建的
Apple 的安全文档解释说,在 macOS 上,“代码签名是由开发人员使用其开发者 ID 证书(由 Apple 颁发)执行的。”对此签名的验证可以向用户证明,自开发人员构建并签名以来,开发人员的软件没有被篡改过。它说该应用程序是开发人员生成的确切文件,此后未经修改。
公证:Apple 自己的支票
公证是一个单独的额外步骤。苹果公司解释说,它“可以由软件分发链中的任何人执行,并证明苹果公司已获得代码副本来检查[有害内容],并且没有发现[已知的有害软件]。公证的输出是一张票证,存储在 Apple 服务器上,并且可以选择将其装订到应用程序上。从 macOS Catalina 开始,此检查默认适用于您打开的几乎所有内容,无论它以何种方式到达您的 Mac。
Gatekeeper:打开应用程序时运行的检查
Gatekeeper 是在您双击某些内容时实际应用这些结果的。苹果将其描述为“帮助确保只有受信任的软件在用户的 Mac 上运行”。当用户从 App Store 外部下载并打开应用程序、插件或安装程序包时,Gatekeeper 会验证该软件是否来自已确定的开发人员、经过 Apple 公证,不含 [已知有害内容],并且未被更改。 Gatekeeper 还会在首次打开下载的软件之前请求用户批准,以确保用户不会被欺骗而运行他们认为只是数据文件的可执行代码。”这是您第一次打开从互联网下载的内容时看到的警报。
- 您从 App Store 外部下载一个应用程序并双击它。
- Gatekeeper 检查开发者的签名并查找 Apple 的公证票。
- 如果检查通过,macOS 仍会要求您确认是否要首次打开它。
- 如果 Apple 已撤销该应用程序,或者未进行任何检查,macOS 会拒绝打开它并告诉您原因。
XProtect:应用程序运行后监视
最后一层在事后起作用。 Apple 的指南将 XProtect 描述为 macOS 的“内置防病毒技术,用于基于签名的检测和删除[已知有害软件]”,该技术“在以下情况下检查已知[有害]内容:首次启动应用程序、更改应用程序或更新 XProtect 签名”,并且 Apple 会自动更新这些签名,独立于完整的系统更新。苹果解释说,如果发现已知威胁,它会“阻止它并将其移至垃圾箱”。然后它会在 Finder 中提醒用户。
要点
- 代码签名证明应用程序的文件自开发人员构建并签名以来未曾更改;它本身并不意味着该应用程序是安全的。
- 公证是 Apple 检查应用程序代码的副本,然后才能在当前 macOS 上默认运行。
- Gatekeeper 在您打开应用程序时应用这两项检查,并在第一次时请求您的批准。
- XProtect 在应用程序运行后不断检查,使用 Apple 自动更新的签名,且独立于完整的系统更新。
- macOS 允许您在“设置”中覆盖对特定应用程序的这些检查,但这样做会消除真正的保护,因此它应该很少见且经过深思熟虑。
自我检测
1. 有效的代码签名实际上证明了什么?
- 该应用程序不存在任何可能的问题
- 自开发人员签名以来,应用程序的文件未曾更改 — 正确。
- 该应用程序已由 Apple 人员审核
- 该应用程序无法访问互联网
代码签名验证完整性和开发人员的身份,而不是验证应用程序是否安全或行为良好。
2. 根据苹果公司的说法,公证是什么意思?
- 苹果写了这个应用程序
- 苹果已检查该应用程序代码的副本,未发现已知威胁 — 正确。
- 该应用程序是从 App Store 购买的
- 该应用程序已被翻译成多种语言
公证证明苹果公司获得了要检查的代码,并且在其中没有发现任何已知的有害物质。
3. Gatekeeper 何时会请求您批准打开应用程序?
- 每次您打开任何应用程序时
- 仅在您第一次打开下载的软件时 — 正确。
- 仅适用于 App Store 中的应用程序
- 从来没有,它默默地工作
当您第一次打开下载的软件时,Gatekeeper 会请求批准,因此您不会被欺骗而运行意外的内容。
4. XProtect 如何更新其检测签名?
- 仅当您安装主要 macOS 升级时
- 自动,独立于完整的系统更新 — 正确。
- 仅当您手动运行扫描时
- 一旦安装就永远不会更新
Apple 通常每天都会自动更新 XProtect 签名,并且独立于完整的系统更新。
用 FireAI 动手做
在你自己的 Mac 上练习这节课的内容。
来源
- Apple Platform Security: App code signing process in macOS
- Apple Platform Security: Gatekeeper and runtime protection in macOS
- Apple Platform Security: Protecting against malicious software in macOS
- Apple Support: Safely open apps on your Mac
在你的 Mac 上实践
免费试用全部功能 17 天,无需绑定银行卡。