FireAI 安全博客

作者 FireAI Security & Research Team · 发布于

监控 ChatGPT Mac App 的网络连接:Mac 上的安全

监控 ChatGPT Mac App 的网络连接:Mac 上的安全

macOS 版 ChatGPT App 是 OpenAI 为 ChatGPT 推出的原生客户端。与浏览器标签页不同,桌面 App 是 Mac 上一个拥有自己网络连接的程序,它可以像其他任何程序一样被更新、扩展和攻击。本文介绍关于其安全性的公开报道、网络防火墙能够和不能告诉你哪些关于它的信息,以及 FireAI 如何对待它。

Mac App 中一个被报道的漏洞

2026 年,WIRED 报道了 ChatGPT Mac App 中的一个漏洞,该漏洞由 Objective-See Foundation 的研究人员发现,可能让黑客获取敏感数据。WIRED 称该漏洞已于近期修补,并引用了 macOS 研究人员 Patrick Wardle 关于 AI App 在 Mac 上被授予多少系统访问权限和信任的看法。这篇题为 “A flaw in ChatGPT’s Mac app could have let hackers grab sensitive data” 的报道是原始资料来源,其标题中的“could have”(可能)一词值得保留:它描述的是一个曾经存在的弱点,而不是已知被窃取的数据。技术细节请阅读原文。请保持 ChatGPT App 为最新版本,以确保已安装修复。

对读者而言,这件事的启示具有普遍性,并不取决于具体细节。处理你的对话和文件的软件可能含有缺陷,保持 App 更新是第一道防线。防火墙是第二道相互独立的防线:无论原因为何,它都能显示 App 把数据发送到哪里。

FireAI 如何对待 ChatGPT

FireAI 的 Agent profile 列表包含 ChatGPT,并注明 OpenAI 的 dots 通过它到达 Mac。因此,FireAI 把 ChatGPT App 当作一个智能体来监视,它在 AI agents 卡片中有自己的角色形象。该 App 是根据其运行所在的 App 来识别的。

网络视角能显示聊天 App 的哪些信息

防火墙看到的是主机名和字节数,而不是对话内容。对于聊天 App 而言,这在两个方面仍有参考价值。第一是该 App 通常使用的主机集合:FireAI 学习这些主机之后,首次出现的目的地就会显得突出。第二是数据量:一个通常只发送简短提示的 App,如果在某一小时内突然发送了非常大的上传量,那么无论它在做什么,都值得调查。FireAI 的上传峰值规则正是这种比较,即与该 App 自身最繁忙的一小时相比。

这两项检查都不能告诉你原因。大量上传可能是你附加了一个大文件,也可能是正常的同步。关键在于你可以依据摆在面前的事实作出决定,而不是对该事件一无所知。

无需额外工具的实用检查

  • 保持 App 为最新版本,并优先从 OpenAI 自己的网站下载。
  • 谨慎选择附加到聊天中的内容,因为附件按设计就会离开你的 Mac。
  • 在“系统设置”的“隐私与安全性”中,检查你已授予访问权限的其他 App 和扩展。

用 FireAI 监视 ChatGPT Mac App

FireAI 是 HisnLabs 开发的 macOS 防火墙,自 1.0.2 版起提供一项名为 Agent profile 的功能。它能识别 19 种 AI 智能体,学习每种智能体通常连接到哪里,并标记异常行为供你审查。ChatGPT,包括通过它到达 Mac 的 OpenAI 的 dots,是根据其运行所在的 App 来识别的。

ChatGPT Mac App 是根据其运行所在的 App 来匹配的,这意味着 FireAI 只是对匹配结果进行标注,而不会根据开发者签名进行核验。只有 Claude Code、Claude 和 Cursor 会以这种方式核验。

FireAI 还会识别智能体的子进程,例如智能体运行的 shell、git 或 curl,方法是沿着进程的父进程向上追溯,直到找到该智能体。因此,这些连接会被计为智能体自己的连接。

FireAI 会标记什么

  1. 在最初的 3 天里,FireAI 学习该智能体通常联系的目的地,并按域名分组。在此学习期内不会标记任何内容。
  2. 此后,学习所得基线之外首次出现的目的地会被标记以供审查。
  3. 上传峰值也会被标记:某一小时内该智能体的上传量至少是其此前最繁忙一小时的 4 倍,且不少于 25 MB。

Agent profile 只使用元数据,即主机名和字节数。FireAI 从不读取连接的有效载荷,也无法读取加密连接的内部内容。

为 ChatGPT Mac App 进行设置

  1. 安装 FireAI 并完成设置,然后像平常一样继续使用 ChatGPT Mac App。3 天学习期从 FireAI 看到的内容开始计算。
  2. 打开 Suggestions,查看 AI agents 卡片。它列出 FireAI 已识别的智能体,以及它对每个智能体学到的内容。
  3. 当 ChatGPT Mac App 访问一个它从未联系过的目的地时,标记会出现在 AI agents 卡片和 Quick Review 中。向左滑动为拦截,向右滑动为“It’s fine”(没问题)。
  4. Block 会为发起连接的进程创建一条规则。“It’s fine”会把该目的地加入智能体的基线,使其不再被标记。
  5. 若要让智能体只访问它已经在用的地方,请在安全模式菜单中选择 Agent profile,它与 Home、Coffee shop、Paranoid 和 Under attack 并列。智能体完成学习后,连接到基线之外目的地的请求会被拦截,而不只是被标记。
  6. 被拦截的目的地会出现在 AI agents 卡片中,并附有 Allow 和 Keep blocked 两个选项。Allow 会把它加入基线,智能体随即可以访问。Keep blocked 会创建一条拦截规则,使该目的地在所有模式下都保持被拦截。

局限

  • FireAI 无法阻止提示注入。隐藏在网页或文件中的提示仍可能操纵智能体。FireAI 能做的是标记数据离开你的 Mac 的路径,并允许你拦截该路径。
  • FireAI 看不到提示、MCP 工具的内容,也看不到 ChatGPT Mac App 读取了哪些文件,例如 ~/.ssh。TLS 隐藏了有效载荷,而且 FireAI 并不在智能体内部。
  • 很快就退出的子进程可能会被遗漏,而且子进程是按路径而非签名匹配的。
  • 在 3 天学习期内不会标记任何内容。
  • 在 Agent profile 模式下,直接连接到没有主机名的裸 IP 地址时,会按地址进行匹配。如果智能体常用的某项服务从一个新地址响应,该连接在你允许之前会被拦截。
  • FireAI 对标记所作的平实说明依据的是它测量到的事实。它从不声称某个目的地安全或危险,决定权在你。

相关指南

同样的方法适用于 FireAI 识别的其他智能体:Claude Code、Claude 桌面 App、Cursor、Codex CLI、OpenClaw、Hermes Agent、Gemini CLI、GitHub Copilot CLI、Amp、Qwen Code、opencode、Aider、Goose、Crush、Windsurf、Kiro、Trae、Meta 的 Muse、由 Python 或 Node 运行的任何其他 AI 智能体。完整的功能说明见 Agent profile 文档。

FireAI 和 HisnLabs 在其中扮演的角色

聊天 App 同时也是网络客户端。FireAI 显示它连接到哪里、发送了多少数据。

FireAI 是 HisnLabs 自己的产品:一款直接在 Mac 上运行的 AI 防火墙。它用通俗易懂的语言显示你的应用建立的每一个连接,并让你决定哪些数据可以离开你的 Mac——它的 AI 在本地运行,因此你的流量永远不会发送给我们或任何其他人。HisnLabs 的安全研究团队负责让这些判断保持准确:归类哪些域名只是普通的遥测、哪些属于真正的服务,追踪连接背后的国家和网络,并用真实的流量模式训练设备端模型(FireAI Pilot 功能)——这一切都不会离开你的 Mac。

你可以阅读它背后的技术决策,或试用 FireAI 17 天:HisnLabs 出品的 FireAI。

来源