“我的 Mac 需要杀毒软件吗,还是有防火墙就够了?”是 HisnLabs 最常听到的问题之一,而诚实的回答是:这是一个错误的比较。防火墙和杀毒软件看的是不同的东西。一个监视连接,另一个监视文件和程序。每一个都有对方能够弥补的盲区,而一台只装了其中之一的 Mac,是一侧有防护、另一侧敞开着。
我们开发 FireAI,它是一个防火墙。它不是杀毒软件,本文也绝不会假装它是。涉及文件扫描那一半时,我们会把你指向 Apple 内置在 macOS 中的东西、Apple 自己关于这些层止步于何处的说明,以及独立测试机构——而不是我们的任何产品。
防火墙做什么
防火墙对网络连接做决定。它看到某个程序想要通过某个端口和某个地址通信,然后允许或阻止这场对话。它不会打开这个程序,不会读取这个程序的文件,也不知道程序运行起来之后会做什么。它的工作单位是连接。
macOS 内置的防火墙是入站防火墙。Apple 的使用手册把它描述为针对“其他电脑发起的不必要联系”的保护,Apple 的《平台安全指南》则列出了它所控制的内容:阻止所有传入连接,自动允许已签名和内置软件接受传入连接,按应用允许或拒绝传入连接,以及一个忽略 ICMP 探测和端口扫描的隐身模式。传出流量没有被提及,因为它不被过滤。第三方出站防火墙补上了另一个方向:它看到你的应用向外发送什么,并让你按应用决定允许什么。这就是 FireAI 所属的类别。
杀毒软件做什么
杀毒软件对文件和正在运行的程序做决定。它检查磁盘上有什么、什么即将执行,用签名以及——在大多数现代产品中——行为规则将其与已知的有害软件对比,然后隔离或删除它认出的东西。它的工作单位是文件或进程。对于一个正当的应用在和哪台服务器通信,它没有意见;那不是它的工作。
macOS 已经自带了这一层的一个版本,Apple 对此有清晰的文档。《平台安全指南》描述了三个阶段:通过 App Store、Gatekeeper 和公证阻止有害软件启动;如果它确实进入了 Mac,则通过 Gatekeeper、公证和 XProtect 阻止它;在它运行之后,则通过 XProtect 进行修复。XProtect 使用 Apple 定期更新的 YARA 签名,而 Apple 声明它“只扫描已被更改的应用或首次启动的应用”。根据 Apple 关于运行时保护的指南,Gatekeeper 会在下载的软件首次打开前请求你的批准,并确认来自 App Store 之外的软件已经过公证且未被修改。
Apple 的防护层止步于何处
仔细读 Apple 的措辞,边界就清晰可见。基于签名的检测识别的是已经被编目的东西。在首次启动和发生更改时扫描,意味着一个启动时干净、之后又下载了新东西来运行的程序,在那一刻不会被 XProtect 重新检查。而 Gatekeeper 是门口的一道检查:一旦你点过去了,或者被说服右键点击“仍要打开”,它的任务就已经完成了。Apple 自己的使用手册指出,绕过这项检查是 Mac 最终被感染的最常见方式。
这些都不是缺陷,而是工具的形态。这也恰恰是防火墙从另一侧关上的那种缺口。一个越过了门口的程序,仍然必须和一台服务器通信,以获取它的下一阶段载荷、发送它收集到的东西,或接收指令。无论是否已有任何扫描器为这个程序准备了签名,这个连接对出站防火墙都是可见的。
为什么你不能只选一个
- 防火墙看不到一个从不使用网络的程序。一个只破坏本地文件、或者按兵不动的工具,对它是不可见的。只有扫描器能抓住那种东西。
- 扫描器看不到一个正当应用的不当行为。一款把你的文档上传到一台你从未同意过的服务器的笔记应用,按任何签名来看都不是有害软件;它只是一个你要是看到了就会阻止的连接。
- 防火墙无法清理。如果某个东西确实运行了,防火墙可以切断它与互联网的联系,却无法把它从磁盘上删除。FireAI 从不扫描、隔离或删除文件。
- 扫描器无法阻止数据以明文离开。一个把你的卡号通过未加密 HTTP 提交出去的表单是一个网络事件;FireAI 的未加密数据防护正是为此而生,而任何文件扫描器都不会注意到它。
- 两者都需要底层的操作系统。二者都不能替代 macOS 更新、Gatekeeper、公证或 XProtect,无论有没有第三方工具,这些都应保留。
AI 在两者中各改变了什么,说实话
“AI”这个词如今被贴在两个类别上,所以值得说清楚它在各自当中做了什么。在杀毒产品中,机器学习模型主要是扩展签名匹配,以捕获已知家族的变种并标记可疑行为;AV-TEST Institute 这样的独立测试机构定期发布 macOS 家用产品在防护、性能和易用性方面的测试结果,想了解某款产品的真实表现,那里才是正确的地方,而不是厂商的页面。
在防火墙中,模型的有用角色更窄。FireAI 的设备端审查器查看那些尚无规则的应用发出的连接,使用的是防火墙可以正当看到的信息:应用及其代码签名、目标、端口、目标是否在某个威胁情报源上,以及同类软件通常的行为。它阻止或标记该连接,在提示中用直白的语言展示理由,而每一个决定都会变成一条你可以撤销的可见规则。模型是一个可选的 1.5 GB 下载,完全运行在你的 Mac 上;你的流量永远不会被发送到任何地方去审查。它不检查文件,也不读取加密流量的内部。它是关于连接的第二意见,而不是扫描器。
性能
两层的代价各不相同。文件扫描器最繁重的工作发生在文件到达、程序启动以及全盘扫描的时候。内容过滤器式防火墙为每一个新连接做一次决定,而不是每一个数据包,所以一旦你的常用应用有了规则,日常使用中你不会注意到网络这一侧的存在。如果你同时运行两者,明智的做法是保持扫描器的实时防护开启、把全盘扫描安排在你不工作的时候,并让防火墙用一周时间建立规则,好让提示停下来。两个各做一件事的工具,往往比一个试图包揽一切的工具代价更低。
macOS 内置工具,以及免费的补充
在购买任何东西之前,先用好已经有的。在“系统设置”的“网络”下的“防火墙”中开启 Apple 的入站防火墙。保持 macOS 更新,因为 XProtect 签名和 Gatekeeper 策略正是通过更新送达的。不要动 Gatekeeper,也不要对你并非有意寻找的软件使用“仍要打开”。
在文件这一侧,Objective-See 发布了一套免费、开源的 macOS 工具,被以此为业的人广泛使用:KnockKnock 列出持久安装的软件,让你看到什么东西会自行启动;BlockBlock 监视持久化位置,并在有新东西自行安装时发出警报;TaskExplorer 显示正在运行的进程及其代码签名状态;RansomWhere? 监视对你文件的可疑加密行为。它们不是一套完整的杀毒套件,但它们是我们会首先推荐给朋友的免费工具。如果你想要商业杀毒软件,请从在 AV-TEST 这样的独立实验室有公开测试结果的产品中选择,而不是听广告的。
搭建分层防护
- 操作系统:保持 macOS 最新,尊重 Gatekeeper 和公证,让 XProtect 自行更新。
- 入站:开启 Apple 的防火墙,如果你使用公共网络,启用隐身模式。
- 出站:一个带有绑定到代码签名的按应用规则的出站防火墙。FireAI 就是做这件事的,它有面向家庭、咖啡馆以及更严格场景的安全模式、在本地应用的威胁情报源,以及一个切断互联网、同时保留本地网络的断网开关。
- 文件与持久化:如果你想要,可以从独立测试结果中选一款扫描器,再加上 KnockKnock 和 BlockBlock 这样的免费工具。
- 备份:唯一能回答其他每一层最终都会失守的那个问题的层。这个清单里没有任何东西能在勒索软件事件之后解密文件;备份能把它恢复回来。
这样一说,“防火墙还是杀毒软件”的问题就自己有了答案。它们不是相互竞争的产品;它们是一条边界的两半,一半画在你的文件周围,一半画在你的连接周围。FireAI 只是第二半,我们宁愿把这话说明白,也不愿让你跳过第一半。
FireAI 和 HisnLabs 在其中扮演的角色
FireAI is the firewall half of that pair and nothing more: it never scans a file, and it is at its best sitting next to macOS’s own protections and, if you want one, an antivirus chosen from an independent test.
FireAI 是 HisnLabs 自己的产品:一款直接在 Mac 上运行的 AI 防火墙。它用通俗易懂的语言显示你的应用建立的每一个连接,并让你决定哪些数据可以离开你的 Mac——它的 AI 在本地运行,因此你的流量永远不会发送给我们或任何其他人。HisnLabs 的安全研究团队负责让这些判断保持准确:归类哪些域名只是普通的遥测、哪些属于真正的服务,追踪连接背后的国家和网络,并用真实的流量模式训练设备端模型(Autopilot 功能)——这一切都不会离开你的 Mac。
你可以阅读它背后的技术决策,或试用 FireAI 17 天:HisnLabs 出品的 FireAI。
