# Mac 上的 Crush 智能体安全:用 FireAI 监控它的网络 > Crush 是 Charm 用 Go 编写的终端编程智能体,具有权限询问、MCP 和提供方目录更新功能。了解它在 Mac 上能访问什么,以及 FireAI 如何监视它的连接。 FireAI Security & Research Team (HisnLabs) · Published 2026-10-04 Canonical: https://hisnlabs.com/zh/blog/mac-crush-zhinengti-anquan-jiankong Crush 是 Charm 推出的终端编程智能体,Charm 是一系列知名命令行工具背后的公司。它在运行工具之前会先询问,也可以被设置为不询问,其 README 记录了不止一种网络行为。因此,对于搜索“crush ai agent security mac”“crush network access”或“is Crush safe”的读者而言,它是一个合适的研究对象。本文汇总 README 的说明,然后解释 HisnLabs 开发的 macOS 设备端防火墙 FireAI 如何监视单个编译程序的连接。 ## Crush 是什么 Crush 由 Charm(GitHub 上的 charmbracelet)开发,使用 Go 编写。README 将它描述为一款终端中的智能体编程软件,把工具、代码和工作流连接到语言模型。它支持众多提供方,包括 OpenAI、Anthropic、Gemini、Ollama 和 Bedrock,其模型目录通过开源提供方数据库 Catwalk 保持更新。它可以通过 stdio、HTTP 和 SSE 使用 MCP 服务器(HTTP 支持 OAuth),并使用语言服务器(LSP)获取代码上下文 [[1]](https://github.com/charmbracelet/crush)。 ## Crush 如何在 macOS 上运行 README 列出了 `brew install charmbracelet/tap/crush`、`npm install -g @charmland/crush`、`go install github.com/charmbracelet/crush@latest` 以及适用于 macOS 的预构建二进制文件。由于它是 Go 程序,在 Mac 上运行的进程是一个名为 `crush` 的单一原生可执行文件,而不是运行脚本的解释器。 ## 它能访问什么,如何加以控制 默认情况下,Crush 在执行工具调用之前会请求许可。`--yolo` 标志会跳过所有询问,README 对此警告:“Be very, very careful with this feature.”(使用此功能时务必非常非常小心。)权限也可以配置:`permissions allow` 让指定的工具无需询问即可运行,`permissions deny` 则让智能体完全看不到相应工具。配置范围涵盖提供方、LSP、MCP、权限、主题和技能 [[2]](https://github.com/charmbracelet/crush/blob/main/README.md)。 这些控制决定哪些工具调用可以继续执行。README 没有描述网络允许列表。 ## 它连接到哪里 README 记录了两种无需你发出提示就会建立连接的行为。第一,Crush 会收集假名化的使用元数据,并声明从不收集提示和响应;可以通过 `CRUSH_DISABLE_METRICS=1` 或遵循 `DO_NOT_TRACK` 将其关闭。第二,它会自动从 Catwalk 获取提供方目录,可以通过 `CRUSH_DISABLE_PROVIDER_AUTO_UPDATE=1` 关闭,并通过 `crush update-providers` 手动刷新 [[2]](https://github.com/charmbracelet/crush/blob/main/README.md)。其他目的地取决于你配置的提供方和 MCP 服务器。 > **Note:** 本文报告的是 Crush 自己的文档说了什么、没说什么。凡是上述资料来源未提及的域名、事件或漏洞,本文一概不列。 ## 用 FireAI 监视 Crush FireAI 是一款在 Mac 上运行的 macOS 防火墙。其 [Agent profile](https://hisnlabs.com/zh/docs/agent-profile) 功能可识别 19 种 AI 智能体,学习每种智能体通常连接到哪里,并标记新出现的情况。FireAI 的 Agent profile 页面把 Crush 列为按程序名称识别的命令行智能体之一。来自名为 `crush` 的程序及其子进程(例如 shell、git 或 curl)的连接,都会被归属于 Crush。 - 在最初的 3 天里,FireAI 学习该智能体通常联系的目的地,并按域名分组,因此 api.anthropic.com 会归为 anthropic.com。在此期间不会标记任何内容。 - 此后,基线之外首次出现的目的地会在 Suggestions、AI agents 卡片和 Quick Review 中被标记以供审查。向左滑动为拦截,向右滑动为“It’s fine”(没问题)。 - 上传峰值也会被标记:某一小时内该智能体的上传量至少是其此前最繁忙一小时的 4 倍,且不少于 25 MB。 - FireAI 只使用元数据,即主机名和字节数,从不读取连接的有效载荷。 > 想要一款在 Crush 访问新地方时告诉你的防火墙吗?FireAI 会在你的 Mac 上学习每个智能体的常用目的地。 [Download FireAI for Mac](https://hisnlabs.com/en/download) ## 为 Crush 设置 FireAI 1. 安装 FireAI,然后像平常一样使用该智能体。3 天学习期会自动开始,期间不会标记任何内容。 2. 打开 Suggestions,找到 AI agents 卡片。学习期结束后,针对该智能体的标记会出现在那里以及 Quick Review 中。 3. 审查每一个标记。选择 Block 会为发起连接的进程创建一条规则,选择“It’s fine”会把该目的地加入智能体的基线。 4. 若要让智能体只访问它已经在用的地方,请在安全模式菜单中选择 Agent profile,它与 Home、Coffee shop、Paranoid 和 Under attack 并列。你的规则会像在 Home 模式中一样生效,而一旦智能体完成学习,连接到基线之外目的地的请求会被拦截,而不只是被标记。 5. 被拦截的目的地会出现在 AI agents 卡片中,并附有 Allow 和 Keep blocked 两个选项。Allow 会把它加入基线,智能体随即可以访问。Keep blocked 会创建一条在所有模式下都有效的拦截规则。 你为网站、域名或地址编写的允许规则仍然优先,DNS 和你的本地网络也绝不会被拦截。对于 FireAI 未列出的智能体,请在[按 App 设置规则](https://hisnlabs.com/zh/docs/per-app-rules)中为其程序手动编写规则。Agent profile 模式需要 FireAI 1.0.3 或更高版本,识别 Crush 需要 1.0.4。 ## 局限 - `CRUSH_DISABLE_METRICS` 等环境变量会改变 Crush 自身发送的内容。FireAI 不读取这些设置,只报告该程序联系了哪些主机、上传了多少数据。 - Crush 是按程序名称识别的,这意味着它只是被标注,而未经验证:只有 Claude Code、Claude 和 Cursor 会根据其开发者的签名进行核验。 - FireAI 无法阻止提示注入。它通过标记数据离开你的 Mac 的路径并允许你拦截该路径来限制损害。 - FireAI 看不到提示、MCP 工具的内容、文件访问或技能。TLS 隐藏了有效载荷,而且 FireAI 并不在智能体内部。 - 很快就退出的子进程可能会被遗漏,而且子进程是按路径而非签名匹配的。 - 在 3 天学习期内不会标记任何内容,上传峰值只会被标记,不会被拦截。 - 在 Agent profile 模式下,直接连接到没有主机名的裸 IP 地址时,会按地址进行匹配,因此智能体常用服务的新地址在你允许之前会被拦截。 ## 其他智能体 同样的方法适用于 FireAI 识别的每一种智能体。请参阅其他指南:[Claude Code](https://hisnlabs.com/en/blog/monitor-claude-code-network-mac-fireai)、[Claude 桌面 App](https://hisnlabs.com/en/blog/monitor-claude-desktop-app-network-mac-fireai)、[Cursor](https://hisnlabs.com/en/blog/monitor-cursor-network-mac-fireai)、[ChatGPT Mac App](https://hisnlabs.com/en/blog/monitor-chatgpt-mac-app-network-fireai)、[OpenAI Codex CLI](https://hisnlabs.com/en/blog/monitor-openai-codex-cli-network-mac-fireai)、[OpenClaw](https://hisnlabs.com/en/blog/monitor-openclaw-network-mac-fireai)、[Hermes Agent](https://hisnlabs.com/en/blog/monitor-hermes-agent-network-mac-fireai)、[Gemini CLI](https://hisnlabs.com/en/blog/monitor-gemini-cli-network-mac-fireai)、[GitHub Copilot CLI](https://hisnlabs.com/en/blog/monitor-github-copilot-cli-network-mac-fireai)、[Amp](https://hisnlabs.com/en/blog/monitor-amp-agent-network-mac-fireai)、[Qwen Code](https://hisnlabs.com/en/blog/monitor-qwen-code-network-mac-fireai)、[opencode](https://hisnlabs.com/en/blog/monitor-opencode-network-mac-fireai)、[Aider](https://hisnlabs.com/en/blog/monitor-aider-network-mac-fireai)、[Goose](https://hisnlabs.com/en/blog/monitor-goose-agent-network-mac-fireai)、[Windsurf](https://hisnlabs.com/en/blog/monitor-windsurf-network-mac-fireai)、[Kiro](https://hisnlabs.com/en/blog/monitor-kiro-network-mac-fireai)、[Trae](https://hisnlabs.com/en/blog/monitor-trae-network-mac-fireai)、[Meta 的 Muse](https://hisnlabs.com/en/blog/monitor-muse-meta-network-mac-fireai)、[在 python 或 node 上运行的任何其他 AI 智能体](https://hisnlabs.com/en/blog/monitor-any-ai-agent-mac-python-node-fireai)。完整的功能说明见 HisnLabs 发布的 [Agent profile 文档页面](https://hisnlabs.com/zh/docs/agent-profile)。 > See every connection your Mac makes — and decide which ones go through. [Download FireAI for Mac](https://hisnlabs.com/en/download) ## FireAI 和 HisnLabs 在其中扮演的角色 FireAI 会学习 Crush 在你的 Mac 上通常连接到哪里,并标记首次出现的目的地或上传峰值,且不读取你的数据。 FireAI 是 HisnLabs 自己的产品:一款直接在 Mac 上运行的 AI 防火墙。它用通俗易懂的语言显示你的应用建立的每一个连接,并让你决定哪些数据可以离开你的 Mac——它的 AI 在本地运行,因此你的流量永远不会发送给我们或任何其他人。HisnLabs 的安全研究团队负责让这些判断保持准确:归类哪些域名只是普通的遥测、哪些属于真正的服务,追踪连接背后的国家和网络,并用真实的流量模式训练设备端模型(FireAI Pilot 功能)——这一切都不会离开你的 Mac。 你可以阅读它背后的技术决策,或试用 FireAI 17 天:[HisnLabs 出品的 FireAI](https://hisnlabs.com/zh/download)。 ## Sources - [Crush: project repository and README (GitHub)](https://github.com/charmbracelet/crush) - [Crush: README configuration reference (GitHub)](https://github.com/charmbracelet/crush/blob/main/README.md) - [FireAI docs: Agent profile](https://hisnlabs.com/en/docs/agent-profile) - [FireAI docs: Rules](https://hisnlabs.com/en/docs/per-app-rules)