大多数 Mac 用户相信自己的机器出厂就带着一个可用的防火墙。的确如此——但仅限于 Apple 文档所描述的那个狭义范围:用 Apple 自己的话说,这是一个保护你免受“连接到互联网或网络时,其他电脑发起的不必要联系”的过滤器。这句话就是全部内容,值得读两遍。macOS 内置的防火墙关注的是抵达你 Mac 的连接,它对你的 Mac 向外发送了什么只字未提。
本文要谈的正是那后半部分:出站缺口是什么,为什么它比过去更重要,一个现代的 macOS 出站防火墙究竟是什么,以及设备端 AI 审查器在哪些地方真正有用。本文也有意谈到这种方法的局限。HisnLabs 开发了 FireAI——一款面向 Mac 的 AI 防火墙——所以我们在这里显然有自己的立场;我们让它保持诚实的方式,是为每一个论断标明来源,并且把防火墙做不到的事说得和它能做到的事一样清楚。
Apple 的防火墙做什么,不做什么
Apple 的《macOS 使用手册》把防火墙放在“系统设置”的“网络”部分。其《平台安全指南》描述了这项功能所控制的内容:它可以不分应用地阻止所有传入连接,自动允许内置软件和已签名软件接受传入连接,允许或拒绝你指定的特定应用的传入访问,以及启用隐身模式——让 Mac 不再回应 ICMP 探测和端口扫描。这些选项无一例外,都是关于进来的流量。
这也是一个 Apple 要求你自己去开启的设置。使用手册写成了开启防火墙保护的操作说明,而不是对某个已在运行的功能的描述;如果你从没打开过那个面板,今天就值得去检查一下。而且即便开启之后,它的设计依然只针对入站。Apple 的安全指南完全没有提到过滤传出连接,因为那根本不是这项功能的用途。
这些都不是在批评 Apple。入站过滤器是正确的第一层:它把门关上,挡住从网络上敲门的陌生人。但对于一台整天在家庭 Wi-Fi、办公网络和咖啡馆之间辗转的笔记本电脑来说,今天大多数风险来自那些已经在机器里、并且被允许向外通信的软件。
缺口:没有人在看什么东西离开了
想一想一台正在工作的 Mac 上实际运行着什么:你安装的应用、它们派生的辅助进程、菜单栏小工具、更新检查器、浏览器扩展,还有你某次跟着教程装的几个命令行工具。它们中的每一个都可以向互联网上的任何服务器打开一个连接,而 macOS 会放行。入站防火墙不会被询问,因为连接是从你这一侧发起的。
普通的遥测数据就是这样离开机器的;一款笔记应用就是这样悄悄同步到一台你从未同意过的服务器的;一个窃取凭据的工具一旦成功运行,也是这样把收集到的东西发回家的。Apple 自己针对有害程序的防御——Gatekeeper、公证(notarization)和 XProtect——工作在软件被下载和启动的那个节点,而且 Apple 的《平台安全指南》明确指出,XProtect 使用签名规则“只扫描已被更改的应用或首次启动的应用”。这些层是有价值的;但它们对网络保持沉默。如果有什么东西越过了它们,或者只是一个普通应用在做坏事,剩下唯一能抓住它的地方,就是它试图连接的那一刻。
macOS 上的出站防火墙究竟是什么
在当前的 macOS 上,第三方防火墙并不会修补内核。Apple 的开发者文档描述了运行在用户空间的系统扩展,它们可以作为网络扩展分发,其中包括内容过滤器。内容过滤器能看到每一个网络流以及打开它的进程,并回答一个问题:允许还是丢弃。由于它以系统扩展的形式运行,macOS 要求你先在“系统设置”中批准它,之后它才能做任何事——而你也可以在同一个地方随时把它关掉。
正是这种架构让按应用设置规则成为可能。一条规则可以规定某个应用只能访问一个域名而不能访问其他任何地方,或者永远不能使用某个特定端口,或者根本不能联网。更好的工具会把这些规则绑定到应用的代码签名而不是文件名上,这样一个被重命名或被替换的二进制文件不会继承从未授予它的权限。FireAI 就是这样工作的:规则跟随应用的签名,你可以按主机、域名、IP 地址或端口来允许或拒绝。
设备端 AI 审查器在哪里有用
出站防火墙的经典问题不在于能力,而在于注意力。使用一款每个连接都弹窗的工具,头一周就是一堵对话框之墙,大多数人要么对一切点“允许”,要么把它卸载。规则解决了你熟悉的那些应用的问题,却对你十分钟前刚安装的那个应用毫无帮助——而后者恰恰是你最应该小心的。
这正是 AI 审查器适合承担的那项窄小的工作。在 FireAI 中,一个运行在你 Mac 上的小型模型会审查那些尚无规则的应用发出的连接。它查看自己可以正当看到的东西:哪个应用在请求,它是否已签名、由谁签名,目标主机和端口,该目标是否出现在某个威胁情报源里,以及这个请求与同类软件通常的行为相比如何。然后它阻止或标记该连接,并用直白的语言写下理由,于是你看到的提示会是类似“一个未签名的实用工具正试图通过一个不常见的端口连接到一个裸 IP 地址”,而不是一个光秃秃的主机名。
有两个设计选择比模型本身更重要。第一,审查在设备上进行。FireAI 的模型是一个约 1.5 GB 的可选下载,之后你的流量永远不会被发送到任何地方去分析;一个把你的连接元数据上传到云服务、再判断它是否安全的防火墙,恰恰制造了它声称要防止的那种泄露。第二,每一个 AI 决定都会变成一条你可以撤销的可见规则。模型是一个起草决定的助手;签字的人始终是你。
它做不到什么
- 它无法读取加密流量的内部。几乎所有连接都使用 TLS,所以审查器看到的是应用、目标和连接的形态,而不是内容。这足以判断一个应用是否应该和某个地方通信,却不足以知道它说了什么。
- 它无法知道你的意图。如果你是有意安装了一款屏幕共享工具,它连接中继服务器是正常的;同样的连接来自一个你不认识的应用则不然。审查器给你做出判断所需的上下文,让你能快速决定。它并不能替你做出永远正确的决定——这正是撤销功能存在的原因。
- 它不是杀毒软件。FireAI 不扫描文件,不分析内存中的进程,不从磁盘上删除任何东西,也不会在勒索软件事件之后解密文件。它守在网络边界上,仅此而已。
- 它无法阻止一个从不使用网络的程序。一个只破坏本地文件、或者离线等待的工具,对任何防火墙都是不可见的。这是保留 Gatekeeper、XProtect 和系统更新而不是取代它们的最有力的理由。
威胁情报源:不是 AI 的那部分,也不需要是
人们期望从一个“智能”防火墙得到的东西,很大一部分其实是列表匹配,而列表就很好。abuse.ch 这样的项目发布 URLhaus、ThreatFox 和 SSL Blacklist 作为社区驱动的威胁情报;Spamhaus Project 的 DROP 列表列出了不应被路由或对等互联的网络地址段。它们维护着关于被用于滥用的基础设施的公开数据。FireAI 可以把来自 abuse.ch、Spamhaus、Phishing Army、OpenPhish、FireHOL 和 Tor 出口节点列表的情报源作为系统级 IP 屏蔽列表来应用,在你的 Mac 上本地更新和匹配。
这个区分值得说清楚。情报源回答的是“这个目标是否已经被认定为坏的?”。设备端模型回答的是“即便还没有人举报这个目标,这个连接对于这个应用来说是否看起来不对?”。两者你都需要,而且两者都不应该要求把你的流量发给第三方。
性能、隐私和模型的代价
内容过滤器为每一个新的网络流添加一次决策,而不是为每一个数据包,所以一旦你常用的应用有了规则,日常浏览不会有任何不同的感觉。设备端模型是更重的那个组件,这也是 FireAI 让它保持可选的原因:防火墙、规则、提示、屏蔽列表和情报源在没有它的情况下全部可用,只有当你想要审查器时才去下载模型。FireAI 需要 macOS 14 或更高版本,以及一台搭载 Apple 芯片的 Mac;目前还没有 Intel 版本,不过已在计划之中。
家用 Mac 与商用 Mac
在家里,价值主要在于知情:在 FireAI 的实时世界地图上看到你的应用连到了哪里,并阻止那些没有理由这么做的应用。安全模式让这件事变得实用:Home(家庭)模式是宽松的,Coffee shop(咖啡馆)模式在共享网络上收紧限制,Paranoid(偏执)和 Under attack(受攻击)模式会阻止遥测、跟踪器和未签名的应用,而一个断网开关会切断互联网访问、同时保留你的本地网络。你还可以用英语或法语直接下达指令,比如“block Microsoft Teams”,而不必在规则列表里翻找。
在小型企业里,有用的功能往往是那些不起眼的:一个未加密数据防护,阻止卡号、密码和 API 密钥通过明文 HTTP 离开;以及可以导出为可读文本、再导入到每一台 Mac 的规则文件,让每台机器从同一套策略开始。FireAI 目前还没有中央管理控制台,也没有 MDM 部署指南;两者都在路线图上,而规则文件是今天诚实的答案。
如何开始
先在“系统设置”里开启 Apple 的防火墙;它是免费的,而且把入站这一侧关好了。然后添加一个出站防火墙——无论是 FireAI,还是 macOS 上其他几款认真的工具——在 macOS 询问时批准它的网络扩展,然后给它一周时间。为你认识的应用回答提示,让规则逐渐建立起来,并且读一读审查器针对你不认识的应用给出的理由。过了第一周,Mac 会安静下来,而此后每一个仍会弹出提示的连接,都是你真正想知道的。
FireAI 和 HisnLabs 在其中扮演的角色
Everything above is the reasoning behind FireAI: an outbound firewall for Apple silicon Macs whose reviewer runs on your own machine, explains itself in plain language, and can be overruled by you at any time.
FireAI 是 HisnLabs 自己的产品:一款直接在 Mac 上运行的 AI 防火墙。它用通俗易懂的语言显示你的应用建立的每一个连接,并让你决定哪些数据可以离开你的 Mac——它的 AI 在本地运行,因此你的流量永远不会发送给我们或任何其他人。HisnLabs 的安全研究团队负责让这些判断保持准确:归类哪些域名只是普通的遥测、哪些属于真正的服务,追踪连接背后的国家和网络,并用真实的流量模式训练设备端模型(Autopilot 功能)——这一切都不会离开你的 Mac。
你可以阅读它背后的技术决策,或试用 FireAI 17 天:HisnLabs 出品的 FireAI。
