# Mac 上的 GitHub Copilot CLI 安全：监视它的连接

> GitHub Copilot CLI 会在你的终端中编辑文件并运行命令。了解它的受信任目录和审批询问，以及 FireAI 如何在 Mac 上标记新的目的地和上传峰值。

FireAI Security & Research Team (HisnLabs) · Published 2026-10-04
Canonical: https://hisnlabs.com/zh/blog/mac-github-copilot-cli-anquan

GitHub Copilot CLI 把编程智能体带入终端。它可以编辑文件、运行命令，并处理仓库、issue 和拉取请求。搜索“github copilot cli security”或“is Copilot CLI safe”的人，大多想知道它可以运行什么、会向外发送什么。本文总结 GitHub 自己的文档，并展示 HisnLabs 开发的 macOS 网络防火墙 FireAI 如何监视它的连接。

## Copilot CLI 是什么，如何在 Mac 上运行

其[代码仓库](https://github.com/github/copilot-cli)说明，该工具由 GitHub 开发，与 Copilot 编程智能体使用相同的智能体框架。它支持 macOS、Linux 和 Windows，可以通过 npm（`npm install -g @github/copilot`）、Homebrew（`brew install copilot-cli`）或安装脚本安装。你可以使用 `/login` 命令登录，也可以使用具有 Copilot Requests 权限的个人访问令牌，以 `GH_TOKEN` 或 `GITHUB_TOKEN` 提供。它可以在交互模式下工作，也可以通过 `-p` 标志在程序化模式下工作，默认附带 GitHub 的 MCP 服务器，并支持自定义 MCP 服务器。

## 它能访问什么

GitHub 的文档说明，在受信任目录中，Copilot 可以读取、修改和执行文件，而智能体通过你已验证的账户与 GitHub.com 交互。由于它可以运行命令，它也可以建立网络连接，例如通过 `curl` 或 `git`。

## 文档所述的权限模型

- 受信任目录：你需要确认信任启动 CLI 时所在的目录。文档建议不要从主目录或含有不受信任可执行文件的位置启动。
- 工具审批：对于会修改或执行内容的工具，例如 `rm`、`node` 或 `sed`，Copilot 会请你选择批准一次、在本次会话中批准，或拒绝并建议替代方案。
- 标志：`--allow-tool='shell(COMMAND)'` 和 `--deny-tool='shell(COMMAND)'` 用于设置按命令的规则，`--deny-tool` 优先。`--allow-all-tools` 会跳过审批，用文档的话说，这会让 Copilot 拥有与你相同的访问权限。

对于最后这种情况，文档建议使用本地或云端沙箱，或隔离的虚拟机。本文查阅的页面没有详细说明哪些数据会被传输给 GitHub 或模型提供方，因此要了解确切的目的地，应当依靠观察。这正是 OWASP 所称的[过度代理（excessive agency）](https://genai.owasp.org/llmrisk/llm062025-excessive-agency/)：智能体被允许行动，而每一步都没有人工检查。

> 审批询问决定运行什么，而不决定连接到哪里。FireAI 监视这些连接，并允许你拦截新的连接。可免费试用。 [Download FireAI for Mac](https://hisnlabs.com/en/download)

## 用 FireAI 监视 GitHub Copilot CLI

FireAI 是 HisnLabs 开发的 macOS 设备端防火墙。其 [Agent profile](https://hisnlabs.com/zh/docs/agent-profile) 功能把 GitHub Copilot CLI 列为它识别的 19 种 AI 智能体之一。由于 Copilot CLI 在 node 下运行，FireAI 通过运行时所运行的脚本来识别它，这是 Agent profile 针对 node、bun、deno 和 python 智能体所采用的方法。智能体的子进程，例如它启动的 shell、git 或 curl，会通过向上追溯父进程而归属于它。随后，FireAI 会在最初 3 天学习 GitHub Copilot CLI 通常联系哪些目的地，按域名分组，在此期间不标记任何内容。此后，首次出现的目的地会在 Suggestions、AI agents 卡片和 [Quick Review](https://hisnlabs.com/zh/docs/quick-review-suggestions) 中被标记。上传峰值也会被标记：某一小时内该智能体的上传量至少是其此前最繁忙一小时的 4 倍，且不少于 25 MB。

FireAI 只使用元数据，即主机名和字节数，从不读取连接的有效载荷。默认情况下，它只作标记，把决定留给你。在 Agent profile 安全模式下，它会更进一步：学习结束后，连接到基线之外目的地的请求会被拦截，直到你点按 Allow；Keep blocked 则会把这次拦截变成一条在所有模式下都有效的规则。

### 逐步设置

1. 安装 FireAI 并完成首次运行设置，参见 [Install and finish setup](https://hisnlabs.com/zh/docs/install-and-finish-setup)。
2. 像平常一样使用 GitHub Copilot CLI 3 天。FireAI 会在后台学习其目的地，此时还不会标记任何内容。
3. 打开 Suggestions，找到 AI agents 卡片。出现标记时，阅读那句平实的说明，然后在 Quick Review 中向左滑动拦截，或向右滑动选择“It’s fine”（没问题）。
4. 如果希望智能体只访问它已经在用的地方，请在安全模式菜单中选择 Agent profile，它与 Home、Coffee shop、Paranoid 和 Under attack 并列。
5. 有内容被拦截时，打开 AI agents 卡片，选择 Allow 将其加入基线，或选择 Keep blocked 创建拦截规则。

## 局限

- FireAI 无法阻止提示注入。它通过标记数据离开你的 Mac 的路径并允许你拦截该路径来限制损害。
- FireAI 看不到 GitHub Copilot CLI 的提示、MCP 工具的内容、技能，也看不到它读取了哪些文件，因为 TLS 隐藏了有效载荷，而且 FireAI 并不在智能体内部。
- Copilot CLI 是按脚本名称匹配的，因此 FireAI 只是对它进行标注，而不是验证：只有 Claude Code、Claude 和 Cursor 会根据其开发者的签名进行核验。
- 由 `gh` 或 `git` 程序建立的连接通过进程树进行匹配，即按路径匹配，而很快就退出的子进程可能会被遗漏。
- FireAI 不读取审批或命令，因此无法告诉你是哪条命令建立了某个连接。
- 在 3 天学习期内不会标记任何内容，上传峰值只会被标记，不会被拦截。
- 由于目的地按域名分组，智能体已在使用的域名下的新服务器会被视为已知。

该功能的说明见 [Agent profile 文档](https://hisnlabs.com/zh/docs/agent-profile)。

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)、[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)、[Crush](https://hisnlabs.com/en/blog/monitor-crush-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)。

## FireAI 和 HisnLabs 在其中扮演的角色

Copilot CLI 在你批准后可以运行命令。FireAI 显示它接下来连接到哪里，并且可以拦截。

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

你可以阅读它背后的技术决策，或试用 FireAI 17 天：[HisnLabs 出品的 FireAI](https://hisnlabs.com/zh/download)。

## Sources

- [GitHub Copilot CLI repository (README)](https://github.com/github/copilot-cli)
- [GitHub Docs: About GitHub Copilot CLI](https://docs.github.com/en/copilot/concepts/agents/about-copilot-cli)
- [FireAI docs: Agent profile](https://hisnlabs.com/en/docs/agent-profile)
- [OWASP Gen AI Security Project: LLM06:2025 Excessive Agency](https://genai.owasp.org/llmrisk/llm062025-excessive-agency/)
