Mac 会自动扫描恶意软件,但用户全程不知情
来源标题:Why your Mac may not scan for malware
Mac 自动扫描并清除恶意软件已超过十年,但用户既不知道何时扫描,也不知道是否发现恶意代码,即使清除失败也不会通知。2022 年前该任务由 Apple 的 MRT 工具执行,最后一版 1.93 于 2022 年 4 月 29 日更新后不再自动运行,已被新机制取代。
以下正文由 AI 翻译自 Hacker News 最新(原文版权归原站所有),可能存在偏差,重要内容请以原文为准。
Mac 扫描自身恶意软件并尝试清除已发现威胁的历史,已有十多年。这项保护的一个特点就是悄无声息。用户不仅无从得知是否执行了扫描、何时执行,即使发现了恶意代码,用户也不会被告知,哪怕清除失败也一样。
直到 2022 年,这项工作由 MRT(Apple 的 Malware Removal Tool)负责。它最广为人知的一次亮相,是被改用来清除 Zoom 软件安装的一个有漏洞的 Web 服务器。2019 年 7 月 10 日发布的 MRT 1.45 版,据信挽救了数百万台原本可能通过那个隐藏 Web 服务器被攻击的 Mac。
作为一个相对轻量的恶意软件扫描器,MRT 会在 Mac 启动后不久运行,既有 agent 模式也有 daemon 模式。作为一个 app,它也可以手动运行:在 agent 模式下通过 Finder 运行,或者在 Terminal 中以两种模式运行。这让所有 Mac 都能扫描恶意软件,即使它们连续运行数周不关机。
尽管 Mac 至今仍会安装 MRT,但它的最后一次更新停留在 2022 年 4 月 29 日的 1.93 版,而且似乎已不再自动运行。它已被一个自称 XProtect 的 app 取代,通常被称为 XProtect Remediator(或 XPR),以区别于另一个只在需要时扫描的 XProtect。2022 年 6 月和 7 月,它获得了多个扫描模块,其中一个直接替代了 MRT。由于 XPR 只能在 macOS Catalina 及更高版本上安装和运行,这导致更早版本的 macOS 只能使用过时的保护,但换来的是更通用、更强大的扫描模块。
Apple 对 XPR 的成效仍然守口如瓶,但据信它曾缓解了过去一段时间内 app 公证环节出现的一个问题。随着能力增强,它对 CPU 时间和能耗的需求也随之增加。结果,它现在的每日扫描会被计时器提前中断,只有每周一次才会给足时间完整跑完。
XPR 通过 DAS-CTS 调度系统作为计划后台活动运行,每 24 小时一次。由于现在资源需求很高,当笔记本电脑未连接电源时,它们根本不会运行。对许多笔记本用户来说,这意味着 XPR 扫描很少执行,可能连续多天甚至数周被跳过。直到最近,这还不算大问题,因为和之前的 MRT 一样,XPR app 可以在 Finder 中手动运行,也可以在我的工具 XProCheck 中运行。
2026 年 9 月 18 日发布的 XPR 163 版改变了这一点,用户再也无法手动运行它。自 MRT 问世以来,macOS 第一次不再提供一个可手动运行的恶意软件扫描器。
尝试运行 XProtect app 会静默失败。从 Finder 运行时,LaunchServices、RunningBoard 以及所有参与 app 启动的子系统都按预期工作,但到了最后关头,XPR 就是拒绝启动或运行,于是被当作失踪、推定死亡而放弃。日志中最接近记录错误的条目是:
0.999074 kernel System Policy: launchservicesd(377) deny(1) signal same-sandbox [XProtect(1430)] signum:19 0.999078 com.apple.launchservices LAUNCH: Failed sending SIGCONT to process 0x0-0x4a04a 1430 com.apple.XProtectFramework.XProtect, errno=1 so waiting a bit and trying again.
后一条记录会反复出现,直到 LaunchServices 放弃这个 app,认定它没救了。
由于 XPR 从不直接向用户报告,也没有任何地方会报告它上次扫描是何时执行的,这会让粗心的人产生虚假的安全感。不借助第三方软件,用户除了已安装的版本号外,对 XPR 或其扫描一无所知。
扫描记录有两个来源:Endpoint Security 事件和日志条目。虽然 Endpoint Security 是 macOS 的功能,但据我所知,没有任何 Apple 软件向用户暴露它的事件。现在第三方安全产品正广泛支持它,不过它们恰恰最不可能愿意披露 Apple 安全保护的信息。
XPR 的日志条目在我的几个工具中都有展示,包括 SilentKnight 和 XProCheck,但受限于日志的保留期限。由于 XPR 扫描本应每 24 小时只运行一次,而日志条目的保留时间可能更短,所以用户检查时,最近的扫描结果常常已从活动日志中被清除。除非 Mac 很少使用,否则日志中很少能包含超过一轮 XPR 扫描的条目。
最终结果是,Mac 很少提供关于其 XPR 扫描的有用信息,即使它们确实在每 24 小时规律执行。
尽管 XPR 本应比 MRT 有大幅改进,但它现在在大多数笔记本电脑上并不可靠,而且缺乏报告机制,使其不如第三方替代品。尤其是在主要靠电池供电的笔记本电脑上,XPR 扫描可能很少发生,其结果也可能无从得知。如果你想要一个更可靠、更透明的恶意软件扫描器,最好使用第三方产品。
考虑到开发 XProtect Remediator 投入的工程努力,这实在令人遗憾。
正文由 探How 从来源站点 RSS 同步,内容未经改写;遇到排版缺失或需要图片、视频时请以原文为准。