XProtect 是 Apple 的病毒检测系统可确保您的 Mac 安全。以下是 macOS 保护功能的工作原理。
病毒和其他恶意软件对计算机构成持续威胁,网络冲浪者每次上网都必须避开这些威胁。
计算机病毒是一小段代码,会悄悄安装到您的计算机上。它运行或嵌入其他软件并造成严重破坏。
恶意软件是由不良行为者编写的,他们意图损坏计算机、系统或其他电子设备。一旦病毒肆虐,它就会迅速在数百万台计算机上传播,而往往在发现时为时已晚。
为了应对病毒和其他恶意软件,许多软件和操作系统供应商开发了防病毒或反恶意软件软件。它们可以扫描并“清除”计算机中的恶意代码。
防病毒软件执行此操作的一种方法是扫描已知的应用程序签名、大小和代码。然后将它们与下载的已知恶意软件数据库进行比较。
如果找到匹配项,则可以从计算机中删除不良软件。
Mac 上的两个早期防病毒软件包可以追溯到几十年前诺顿防病毒软件和维雷克斯。迈克菲是另一款防病毒应用程序,已在 Mac 上运行多年,至今仍然可用。
XP保护
从 2009 年的 Mac OS X 10.6 Snow Leopard 开始,Apple 添加了自己的防病毒保护功能,称为XP保护。
XProtect 运行在后台,每当应用程序首次启动、应用程序在文件系统中发生更改或新的可下载 XProtect 签名数据库可用时进行分析。
这些是安全响应你会经常看到列出的系统设置->常规->软件更新
一些用户报告后台 XProtect 服务 (XProtectService) 的 CPU 使用率很高,如活动监视器实用程序中所示,但就我个人而言,我们还没有看到这种情况。
由于 XProtect 在后台静默运行,它会在文件系统和应用程序运行时对其进行监视 - 检查您的 Mac 是否存在 XProtect 签名数据库中列出的任何恶意软件。如果找到匹配项,XProtect 会提示您从计算机中删除恶意软件。
通过使用无声后台监视器来监视恶意软件,XProtect 可确保您的 Mac 安全并免受潜在有害应用程序的侵害。
由于 XProtect 是,并且由于其签名文件由 Apple 托管和安装,因此您无需担心任何事情 - 您的 Mac 会为您处理一切。
X(保护)文件
您可以通过按住选项键并选择系统信息从苹果菜单在菜单栏中。
这将运行 /Utilities 中的系统信息应用程序。滚动到软件->安装在左边可以看到XProtect有效负载和XProtectPlistConfigData其中显示从 Apple 下载每个 XProtect 签名数据库的版本和日期/时间。
运行系统信息以查看最近的 XProtect 下载。
公证和把关人
当第三方开发者构建 Mac 应用程序时,他们可以将其发送给 Apple公证。以这种方式提交给 Apple 的应用程序将被扫描是否存在恶意软件,Apple 会对该应用程序的已知版本进行签名以包含在 XProtect 签名文件中。
苹果为开发者提供了两种用于公证的命令行工具:altool
(已过时)和较新的notarytool
之后发货13.altool
不再附带红杉和苹果有一个技术说明 (TN3147)从旧工具迁移到新工具。
您可以获得使用帮助notarytool
在 macOS 的终端应用程序中输入:
man notarytool
并按返回。
按Control-Z按键盘上的 退出手册页。
Notarization 与 Apple 的 Gatekeeper 和 Developer ID 协同工作,确保 Mac 应用程序在 Mac 之外分发是真实的并且不包含恶意软件 - 包括病毒。
Apple 对第三方应用程序进行公证后,开发人员就可以在 Mac App Store 之外发布该应用程序。
Notarization 和 Gatekeeper 以及 XProtect 是您首次运行未通过 Mac App Store 发布的应用程序时导致 Finder 中出现“正在验证...”对话框的原因。
应用程序扫描过程会扫描应用程序的捆绑包(文件夹)中是否存在恶意组件,并在发现任何组件时阻止其运行。它还将应用程序的内容与 XProtect 签名数据库中包含的已知恶意软件签名进行比较。
这就是第一次运行大型应用程序时“验证”过程可能需要很长时间的原因之一。
当您在 macOS Finder 中双击经过公证的 Mac 应用程序时,您会看到“此应用程序是从互联网下载的应用程序。您确定要打开它吗?”对话。如果您愿意,这使您有机会退出运行该应用程序。
如果您点击好的Finder 启动该应用程序,如果该应用程序经过公证,XProtect 就会开始扫描它是否存在恶意组件。
图片来源:阿瓦古斯塔夫森
以前可以完全禁用 Gatekeeper,但 Apple 在 2016 年删除了此功能。如果非 Gatekeeper 第三方 Mac 软件未经公证或使用开发者 ID 构建,则无法在当前版本的 macOS 上运行,且不会事先警告您。
如果您在启动 Mac 应用程序时在 Finder 中收到“移至废纸篓”或未经验证的警告,则需要转至系统设置->隐私与安全。单击无论如何打开按钮并输入 Mac 的管理员密码。
苹果现在还要求第三方开发者添加LSQuarantine
(com.apple.quarantine) 在将其应用程序下载到互联网上之前将其文件系统属性扩展。此属性会触发 Gatekeeper 在运行应用程序之前对其进行扫描。
但是,开发人员仍然可以在不添加此属性的情况下在互联网上发布 Mac 软件。
总而言之,这些安全功能意味着恶意软件攻击者更难用不良软件感染您的 Mac。
据 Apple 称,XProtect 每天至少运行一次,并且当 Mac 上的用户活动较少时运行。
雅苒规则
XProtect 使用 Yara International ASA 的一组规则将其数据库与 Mac 上的应用程序进行比较。 YARA 使用基于签名的检测来定位代码中嵌入的恶意软件。
当 XProtect 扫描 Mac 上的应用程序是否存在恶意软件时,它会使用 YARA 规则检查每个应用程序进行一组比较。这些可能会产生指向应用程序或应用程序包中嵌入的恶意代码的线索。
CISA 有一个关于使用的有点过时的文档YARA 用于恶意软件检测。您实际上不需要了解 YARA 的内部细节即可发挥作用,因为 Apple 处理其在 macOS 中的使用。
XProtect 下载并更新其自己的签名文件。
XProtect 恶意软件警报
如果您尝试启动包含已知恶意软件的应用程序,XProtect 将运行XProtect修复器并会在 Finder 中提醒您,它认为该应用程序可能包含恶意软件。 Finder 会询问您是否要将其移至废纸篓。
如果您点击移至垃圾箱,Finder 会将应用程序移动到 macOS 的垃圾箱中,但不会将其删除。您必须使用Finder->清空垃圾箱菜单项以实际从 Mac 中删除该应用程序。
当您尝试启动特定应用程序时,XProtect Remediator 会在 Finder 中告诉您 XProtect 在该应用程序中发现了哪些恶意软件。然后您可以决定是否将其移至垃圾箱。
Eclectic Light Company 的 Howard Oakley 有一个不错的页面有关 XProtect Remediator 运行时会发生什么情况的信息。
奥克利还有一个2022 年注释关于 Apple 对 XProtect 所做的更改 - 以及它扫描的恶意软件,尽管该列表并不详尽。
有关 XProtect 和其他 macOS 安全软件工作原理的摘要信息,请参阅 Apple平台安全指南和网守和运行时保护在 macOS 中。
macOS 还包括一个名为 XProtect 的命令行界面 (CLI)xprotect
。您可以使用命令在终端中运行此工具,以获取有关 Mac 上运行的 XProtect 的信息。
欲了解以下清单xprotect
终端类型中的命令:
man xprotect
并按返回在你的键盘上。
简而言之,命令是:
- 更新 - 强制下载新的 XProtect 文件
- 检查 - 打印当前可用的在线更新版本
- version - 打印当前安装的 XProtect 文件版本
- 日志 - 显示 XProtect 日志
- status - 打印 XProtect 的当前状态
- help - 打印子命令的帮助
请注意,所有xprotect
命令必须使用sudo
命令和终端中的管理员密码才能使其正常工作。
例如,运行sudo xprotect update
印刷:
Starting update.
No update applied, already up to date
当没有 XProtect 的新部分可供下载时。
苹果如何回应
正如 Apple 指出的那样,当 XProtect 检测到恶意软件时,Apple 可能会以多种方式做出响应 - 包括但不限于:
- 任何关联的开发者 ID 证书均被吊销
- 为所有文件签发公证撤销票
- XProtect 签名开发并发布
一般来说,您还可以使用以下命令在终端中检查 Mac 的系统安全策略:spctl
命令行工具:
spctl --status
(系统策略控制)。
如果启用了安全扫描,您将看到以下响应:
assessments enabled
spctl
有大量的选项和工具 - 所以你需要检查man
在终端中翻页以获取更多信息。
XProtect 可以禁用吗?
答案是:大多。但不要。
除非您的 Mac 始终处于离线状态、您很少安装软件,或者您遇到特定的性能问题,否则没有理由禁用 XProtect。这样做会使您的 Mac 面临互联网上大量已知和未知恶意软件的攻击 - 如果这样做,您只是自找麻烦。
话虽如此,如果你绝对必须禁用 XProtect,您可以在终端中使用以下命令执行此操作:
sudo spctl --master-disable
要重新启用 XProtect,请使用:
sudo spctl --master-enable
并按返回。
即使您确实禁用 XProtect,您也希望禁用的时间尽可能短 - 完成任何需要禁用它的任务后,请务必立即重新启用它。
第三方扫描仪
尽管 XProtect 由 Apple 管理并且是 macOS 的一部分,但有时您仍可能希望在 Mac 上运行第三方恶意软件扫描程序来查找恶意软件。
Norton 和 McAfee 等久经考验的扫描仪已经存在了几十年,因此它们始终是一个安全的选择。还有一些较小的第三方也不错,例如隐私扫描(15 美元)来自 SecureMac.com。
如果您确实使用第三方扫描仪,请尝试使用 Mac App Store 中出售的扫描仪,因为 Apple 会审核所有 App Store 应用程序以确保它们也不包含恶意软件。
Apple 在 XProtect 方面做得很好,而且在大多数情况下,它安静且可靠。您可能需要在“系统设置”中打开自动安全更新,以确保您的 Mac 在 Apple 发布后立即获取所有新的漏洞文件和更新。