XProtect
又称:内建的恶意软件防护
简要回答
XProtect是macOS内建的恶意软件防护。它会在App首次打开、发生变化以及签名更新时,根据Apple的恶意软件签名检查App,在后台扫描Mac,并移除发现的恶意软件。Apple会独立于macOS更新来更新它的规则。
XProtect不是恶意软件,也不是第三方App。它是Apple自己的杀毒软件,随macOS安装在/Library/Apple/System/Library/CoreServices/XProtect.app中,没有自己的窗口或设置。你会通过两种方式注意到它:访达中提示某个App被当作恶意软件阻止并移到废纸篓的提醒,以及活动监视器中名称带有XProtect的进程。
它分两层工作。第一层在上述时刻根据Apple的签名检查App。第二层是XProtect Remediator,它按计划扫描Mac,查找已经安装的恶意软件并将其移除。macOS每天都会检查新的XProtect规则,并在后台安装,无需macOS更新,也无需重新启动。
XProtect为什么在占用CPU
最常见的原因是后台扫描。XProtect Remediator每隔几小时运行一次快速扫描,还有更长的每日和每周扫描,这些要等到Mac接通电源时才运行。扫描期间,你可能会看到XProtect、XProtectPluginService,以及名称为XProtectRemediator后面跟着恶意软件名的进程(例如XProtectRemediatorAdload或XProtectRemediatorPirrit)排在CPU和磁盘列表前面。每一个都只查找一个恶意软件家族,会自行结束。
新规则会带来第二轮较短的检查。签名更新安装后,XProtect会按新规则重新检查App,所以更新后它的CPU可能会上升一阵子。一次安装或更新好几个App时,也会发生规模较小的同样情况,因为每个有变化的App都会被重新检查。
怎么处理
让扫描完成。不要退出XProtect进程,也不要找办法停用它们:macOS会重新启动它们,而且正是它们在移除你Mac上的恶意软件。如果扫描总是赶在不方便的时候,就在你不用Mac时让它保持唤醒并接通电源一段时间,让较长的扫描能够完成。
保持它的更新处于打开状态。打开“系统设置”→“通用”→“软件更新”,点按“自动更新”旁边的“信息”按钮,确保“安装系统数据文件和安全性更新”已打开。在macOS Sequoia及更早版本中,这项设置名为“安装安全响应和系统文件”。新的XProtect规则就是这样送到你的Mac上的。
如何检查XProtect是否在运行且是最新版本
活动监视器能显示XProtect在工作,“终端”或“系统信息”能告诉你它的规则是哪个版本。
- 打开活动监视器,点按“CPU”标签页,选取“显示”→“所有进程”,然后在搜索栏中输入
xprotect。通常你会看到xprotectd、XprotectService和XProtectBridgeService。扫描期间,XProtect、XProtectPluginService和XProtectRemediator进程也会加入。 - 要查看每个进程从哪里运行,打开“终端”并运行
ps -axo user,comm | grep -i xprotect。Apple的进程从/usr/libexec、/Library/Apple/System/Library/CoreServices/XProtect.app或/System/Library/PrivateFrameworks/XprotectFramework.framework运行。 - 在macOS Sequoia及更高版本上,运行
xprotect version。它会显示已安装的XProtect规则版本及其安装日期。 - 运行
sudo xprotect check并输入密码,可以看到Apple发布的最新版本。如果比你的版本高,sudo xprotect update会立即安装它。 - 在任何较新的macOS上,按住Option键,选取苹果菜单→“系统信息”,然后点按“软件”下的“安装”。名为XProtectPlistConfigData、XProtectPayloads或XProtectCloudKitUpdate的更新就是XProtect的。在“终端”中,
system_profiler SPInstallHistoryDataType | grep -A4 XProtect会显示同样的列表。
XProtect的正常占用与异常情况
正常:XProtect的进程一天中时有时无,大部分时间占用很少。如果同一个进程每天都连续几小时排在CPU列表前面,就重新启动Mac(这会结束卡住的扫描),并确保打开了它的更新,这样Apple发布的修复才能送到你这里。
在以下时候,XProtect会比平时更忙,而且每种情况都会自行结束:
- 定期扫描:每隔几小时一次快速扫描,Mac接通电源时还有更长的每日和每周扫描。
- 新规则安装后的几个小时,它会按新规则重新检查App。
- 首次打开下载或更新过的App时,App会在打开前接受检查。
- 一次安装或更新很多App时,因为每个有变化的App都会被重新检查。
如果XProtect发现了恶意软件
XProtect在App打开时发现已知恶意软件,会阻止它,把它移到废纸篓,并在访达中显示提醒。清倒废纸篓,并且不要再从同一个地方下载这个App。XProtect Remediator在扫描中发现恶意软件时,会不经询问直接将其移除。
XProtect不会自行重新启动Mac,而有些移除要在重新启动后才能完成。如果你看到过提醒,方便时就重新启动一下。
如果某个你没亲自下载的App反复触发提醒,说明Mac上有东西在一次次重新获取它。在“系统设置”→“通用”→“登录项与扩展”中查找你不认识的项目,并移除它们所属的App。
常见问题
Mac上的XProtect是什么?
它是Apple内建的恶意软件防护。它会在App打开或发生变化时根据已知的恶意软件检查App,用XProtect Remediator在后台扫描Mac,并移除发现的恶意软件。
XProtect是恶意软件吗?
不是。XProtect是macOS的一部分,正是它负责移除恶意软件。真正的XProtect位于/Library/Apple/System/Library/CoreServices/XProtect.app和/System/Library/PrivateFrameworks/XprotectFramework.framework中,由Apple签名。
可以关闭XProtect吗?
“系统设置”中没有它的开关,你也不应该尝试。关闭自动安全更新只会让新规则无法送达,你的Mac能防护的恶意软件就更少了。
XProtectPluginService是什么?为什么CPU占用高?
它是XProtect的一部分,是XProtect.app内的一个帮助程序,参与定期的恶意软件扫描。它CPU占用高,说明扫描正在进行。扫描会自行结束,而较长的扫描只在Mac接通电源时运行。
XProtectRemediator进程是什么?
它们是XProtect Remediator的扫描程序。每一个只查找一个Mac恶意软件家族,所以名字会像XProtectRemediatorAdload或XProtectRemediatorPirrit这样。它们在扫描期间出现,扫描完成后退出。
相关条目
想找比活动监视器更好的工具?请看Mac上最好用的活动监视器替代品,或者浏览术语表中的所有条目。