FireAI 安全博客

作者 FireAI Security & Research Team · 发布于

在 Mac 上监控 Claude 桌面 App 的网络:用 FireAI 保障安全

在 Mac 上监控 Claude 桌面 App 的网络:用 FireAI 保障安全

Claude 桌面 App 是 Anthropic 为 Claude 推出的原生应用程序。它不只是一个聊天窗口:Anthropic 的文档描述了三个标签页,Chat 用于对话,Cowork 用于较长的智能体工作,Code 用于软件开发。一旦某个 App 能够运行读取文件和执行操作的会话,它所建立的连接就值得了解。本文总结 Anthropic 的文档内容,然后展示如何用 FireAI 监视该 App 的网络行为。

这款 App 是什么,如何安装

Anthropic 提供的 macOS App 是同时适用于 Intel 和 Apple 芯片的通用版本,以磁盘映像形式从 claude.ai 下载。安装后,你启动 Claude 并登录;如需进行开发工作,则打开 Code 标签页。Code 标签页中的每个对话都是一个会话,拥有自己的聊天记录和项目文件夹,多个会话可以并行运行。

它能访问什么,以及权限模型

在 Code 标签页中,发送按钮旁的模式选择器控制 Claude 拥有多大的自主权:它在编辑文件之前、运行命令之前,还是两者之前都先询问。文档所述的模式有 Manual、Accept edits、Plan 和 Auto,另有一个启用后才会出现的 Bypass permissions 模式。对于 Bypass permissions,Anthropic 表示只应在沙箱化的容器或虚拟机中使用。较早的版本把这些模式标为 Ask permissions、Auto accept edits 和 Plan mode。

桌面版文档还涉及计算机使用(computer use),即 Claude 在你实际的桌面上执行操作。Anthropic 指出,与沙箱化的 Bash 工具不同,计算机使用在你的桌面上运行,可以访问你批准的任何内容,而 Claude 会检查每一项操作,并标记来自屏幕内容的潜在提示注入。在浏览外部网站时,无论处于哪种权限模式,安全分类器都会审查 Claude 的写入类操作,例如点按和输入。

该 App 文档列出的主机

Anthropic 的桌面版页面说明,该 App 从 Anthropic 的 CDN 主机加载应用程序代码和用户内容,并列出了在受管理网络上应当允许的域名。除非你为 OTLP、LLM 网关或 MCP 服务器配置了自定义端口,流量均为 443 端口上的 HTTPS。

  • anthropic.com 和 *.anthropic.com
  • claude.ai 和 *.claude.ai
  • claude.com 和 *.claude.com
  • claude.app 和 *.claude.app
  • *.claudeusercontent.com,用于提供 artifacts
  • *.claudemcpcontent.com,用于提供某些连接器的交互式小组件

Anthropic 的网络页面补充说明,如果允许 claude.ai 却拦截了包括 assets-proxy.anthropic.com 在内的 CDN 主机,结果会是一个空白页面而不是错误提示,因此手动拦截其中某个主机可能会以令人困惑的方式使 App 失效。这是在拦截被标记的目的地之前先审查它的一个充分理由。

Code 标签页与 Claude Code 的共同行为

Code 标签页是该 App 中围绕 Claude Code 构建的部分。关于代理变量和自定义证书颁发机构,Anthropic 的文档说明,在由 App 管理提供方连接的会话中,Claude Code 只从托管设置和 ~/.claude/settings.json 中读取它们。关于 Claude Code 的姊妹篇列出了该命令行工具文档中的其他主机,例如 api.anthropic.com 和可选的遥测主机。

为什么要监视该 App 的连接

该 App 的连接器和 MCP 服务器、预览以及 artifacts 都会访问各自的主机。防火墙无法告诉你某个会话对你的文件做了什么,但它可以显示该 App 联系了哪些主机、发送了多少数据,而这正是你能够在 App 之外加以核实的部分。

用 FireAI 监视 Claude 桌面 App

FireAI 是 HisnLabs 开发的 macOS 防火墙,自 1.0.2 版起提供一项名为 Agent profile 的功能。它能识别 19 种 AI 智能体,学习每种智能体通常连接到哪里,并标记异常行为供你审查。Claude 桌面 App 与 Claude Code 和 Cursor 一样,是通过其代码签名来识别的。

Claude 桌面 App 是 FireAI 根据其开发者代码签名进行核验的三种智能体之一,因此匹配结果不只是一个名称。

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

FireAI 会标记什么

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

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

为 Claude 桌面 App 进行设置

  1. 安装 FireAI 并完成设置,然后像平常一样继续使用 Claude 桌面 App。3 天学习期从 FireAI 看到的内容开始计算。
  2. 打开 Suggestions,查看 AI agents 卡片。它列出 FireAI 已识别的智能体,以及它对每个智能体学到的内容。
  3. 当 Claude 桌面 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 工具的内容,也看不到 Claude 桌面 App 读取了哪些文件,例如 ~/.ssh。TLS 隐藏了有效载荷,而且 FireAI 并不在智能体内部。
  • 很快就退出的子进程可能会被遗漏,而且子进程是按路径而非签名匹配的。
  • 在 3 天学习期内不会标记任何内容。
  • 在 Agent profile 模式下,直接连接到没有主机名的裸 IP 地址时,会按地址进行匹配。如果智能体常用的某项服务从一个新地址响应,该连接在你允许之前会被拦截。
  • FireAI 对标记所作的平实说明依据的是它测量到的事实。它从不声称某个目的地安全或危险,决定权在你。

相关指南

同样的方法适用于 FireAI 识别的其他智能体:Claude Code、Cursor、ChatGPT Mac App、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 在其中扮演的角色

一个能够操作你的文件的桌面助手,也应当在你的网络中清晰可见。

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

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

来源