如何判断 Mac 上的陌生进程是否安全
「活动监视器」会显示应用、辅助程序、代理、守护进程和系统服务。熟悉或晦涩的名字都只是很弱的证据,因为不同软件可能使用通用名称,恶意软件也可以模仿名称。
判断一个进程时,应结合所属用户、可执行文件路径、父进程、代码签名、资源变化,以及触发它的操作。
在「活动监视器」中选择「显示 > 所有进程」,避免列表只限于当前账号。可以加入用户、CPU 时间、线程和种类等列。双击进程能够检查父进程、打开的文件与端口,以及近期统计。Apple 的活动监视器说明还介绍了分层视图和系统进程视图。
进程看起来卡住时,「取样进程」可以短时间记录各线程在做什么,不必立刻结束它。
最常让人担心的几个进程
- kernel_task 是内核本身,它的高 CPU 通常与 macOS 为过热芯片降温有关,详见 kernel_task 高 CPU。
- WindowServer 负责绘制屏幕,其负载会随显示器和窗口增加,详见 WindowServer 高 CPU。
- mds、mds_stores、mdworker 负责 Spotlight 文件索引,详见 mds 与 mdworker 高 CPU。
- Google Chrome Helper 进程承载 Chrome 标签页和扩展,详见 Chrome Helper 高 CPU。
你没有主动打开的后台守护进程
这些进程会自行运行,而且绝大多数时候都很正常:
- launchd 是 macOS 启动的第一个进程,也是所有服务的父进程。它始终运行,这就是它的职责。
- trustd 在应用启动或建立安全连接时检查证书与应用签名。打开应用时短暂升高很正常。
- nsurlsessiond 处理 iCloud、应用下载和更新等后台网络传输。同步或下载期间会活跃,完成后通常会平静。
- cloudd 与 bird 负责 iCloud 同步。刚登录账号或向 iCloud 添加大量文件后,它们会高负载工作,之后应逐渐下降。
- coreaudiod 是系统音频引擎,通常负载很低。持续高 CPU 有时意味着音频应用或插件行为异常。
- photoanalysisd 分析照片中的人物和物体等内容。调度会根据供电、散热状态和照片资料库工作而变化。
- backupd 表示 Time Machine 正在备份。备份期间活跃是预期行为。
- syspolicyd 协助执行系统安全策略,包括应用评估。安装或首次启动应用时出现峰值有明确背景;无关任务期间持续运行仍值得测量。
正常还是卡住,要看模式,不要看固定计时
关注关联和进度。打开应用、接入磁盘或开始同步后,进程占用升高,工作持续推进并最终下降,这种行为很合理。CPU 长期不退、内存快速增长、反复崩溃,或每次同一触发条件后都出现峰值,才值得深入调查。
强制退出前,先比较进程取样、打开文件活动和日志。许多系统服务会自行重启,因为请求它的应用或启动策略仍然需要它。
对第三方软件,确认可执行文件位于预期应用内部或厂商支持目录,并确认代码签名属于该厂商。对 Apple 服务,修改或删除启动配置很少是正确修复。应找出正在向服务提供工作量的客户端、文件集、设备或网络操作。
launchd 与按需服务怎样工作
后台守护进程很多,是因为 launchd 作为 PID 1 管理着整个服务体系。大多数后台进程并不会始终运行。launchd 会先注册它们,在对应事件出现时按需启动,比如安全连接需要 trustd、一个文件交给元数据导入器,或应用发来 XPC 消息;工作结束后再让服务回到空闲。
因此,进程列表会随着操作不断变化,强制退出也经常没有意义。下一次触发条件出现时,launchd 仍会把它重新启动。
换个角度看,这份列表不是「有人决定一直运行的程序」,而是一组由系统随工作到来而启动和停止的小型服务。也正因如此,判断异常的信号是长时间行为,而不是某个名字是否存在。
进程解释能提供什么
「活动监视器」提供权威的进程与检查器数据。Mole「状态」页可以补充通俗解释和趋势,但仅依据名称给出的说明只能算起始假设。路径、所属用户、签名和行为,才决定眼前这个进程是不是预期对象。
按这个顺序检查进程
记录进程名称、用户、路径、父进程、签名、CPU 与内存趋势、打开文件和触发条件。问题发生时取样,然后先停止发起请求的应用或输入源,再考虑处理守护进程。
这种方法比单纯查一份进程名词典,更能区分正常后台工作、卡住的厂商辅助程序和冒用名称的进程。