跳转到主要内容
你注册的每一个 MCP 服务器、一个智能体安装的每一个技能,以及 一个工具触及的每一个主机,都是一个你并未编写的依赖。一个智能体 的供应链是动态的——它在运行时增长,往往没有人工介入——所以 经典的”在构建时审查 lockfile”模型不再成立。一个社区技能可能 在你信任它之后被劫持;一个远程 MCP 服务器可能悄悄添加一个工具; 一个抓取工具可能被引导到一个攻击者控制的主机。 OrcaRouter 的答案是在供应链行动之处治理它——在网关上、于 首次使用时——而不是试图在安装时审查每一个依赖。本页是 ai supply chain security 的用例落地页; 防火墙技能 参考承载完整的机制。

1. 面向智能体的 ai supply chain security,在网关上

那个咽喉点是中继路径。无论一个能力是手动注册的、由智能体自动 安装的,还是从一个社区注册表拉取的,它的第一次工具调用都穿越 api.orcarouter.ai——而那正是防火墙评估它的地方。四个控制组合成 一个单一姿态:

MCP 网关,逐次调用评估

每一次 tools/call 都在派发之前对照你的策略被评估——清单 (manifest)永远不是真理之源。

技能风险评级与隔离

已安装的能力被扫描、评分,并被挂起待审查,直到一个人工批准 它们。

加密的 MCP 凭据

服务器认证密钥在静态时被加密、在派发时被注入——绝不暴露给 模型、智能体或调用参数。

Egress 允许列表

钉住工具调用可以把数据发往何处,这样一个被攻陷的依赖就无法 外泄到一个你从未批准的主机。
检测在网关上、于首次使用时——而非在你的包管理器或文件系统里。 这是有意为之:它是那条能看到每一个智能体、每一次工具调用 的唯一路径,无论该能力是怎么进来的。

2. 威胁:一个在你信任它之后增长的依赖

向量发生了什么
抽地毯(Rug-pull)一个已注册的 MCP 服务器添加了一个你从未批准的工具(shell.exec、一个新的 fetch)。
技能蔓延(Skill creep)一个已安装的技能使用了它的清单从未声明的工具或主机。
凭据窃取一个被攻陷服务器的工具实现读取它自己的认证密钥去回拨主控。
Egress 外泄一条 retrieve→send 链把你的数据运往一个攻击者控制的主机。
共同的根因:“我信任这个服务器”被当作永久的,而智能体继续调用 新的或被修改的工具,不再有任何进一步审查。

3. 一个具体示例——注册并钉住一个 MCP 服务器

你从控制台注册一个第三方 MCP 服务器 (Settings → Firewall → MCP servers;写入需要 Developer+)。该 服务器的认证密钥被加密存储——你提供它一次,网关在派发时注入它, 此后每一次读取它都被掩码。 一条 MCP 服务器记录携带:
字段取值
auth_modenonebeareroauthbasic
statusokdegradeddown(由健康探测设定)
credentials静态时加密,从不以明文返回
注册之后,从控制台探测它以枚举其当前工具。该探测是一个工作区 会话(/api/workspace/firewall/*)操作,需要 Developer+,不是 一把中继密钥——注册、探测和规则编写全都发生在管理平面:
# Console / management plane — workspace session, Developer+.
# (The relay sk-orca-... key is for /v1/* traffic only.)
curl -X POST https://api.orcarouter.ai/api/workspace/firewall/mcp_servers/<id>/probe \
  -H "Authorization: Bearer <workspace-session-token>"
该探测会持久化服务器的可达性,并快照其声明工具集的一个基线 哈希(首次使用即信任)。然后把一条 tool_name_glob: <server>.* 的防火墙规则限定为 pending_approval,直到你看到一段干净的 调用历史——来自那个服务器的每一次调用都在它运行之前被挂起交给 一个人工。一旦你信任它,把该规则放松到 auditallow。 从那一点起,MCP 网关会在派发之前于 mcp 执行面上评估每一次 tools/call——因此如果一次抽地毯稍后添加了一个未声明的工具, 是你的策略、而非服务器的清单,来决定它是否运行。
在任何上游版本升级之后重新探测 (POST /api/workspace/firewall/mcp_servers/:id/probe,Developer+)。 如果声明的工具集漂离了已批准的基线,该服务器的 schema_status 会翻转为 changed,且派发故障关闭,直到一个 admin 重新 建立基线(approve_schema)或将其隔离——这次抽地毯无法悄悄上线。

4. 技能风险评级与隔离

每一个可安装的能力——无论是你注册的还是网关在运行时自动检测的 ——都会被跑过 技能扫描器。发现项 汇总为一个风险评级(risk band)和一个执行模式
low · medium · high · critical。该评级由对清单和声明 范围的确定性扫描遍历推导而来(未声明的工具使用、超出已批准 范围的网络 egress、不安全的文件系统写入、注入形态的清单文本)。
allow(由你的策略规则决定)、quarantine(任何非 deny 判定 都升级为 pending_approval——一个人工批准每一次调用)、block (无论规则如何,对该技能的所有工具强制 deny)。一个 high 评级的技能会自动隔离;critical 则拦截。
一个智能体自行安装的能力,或一次抽地毯添加的工具,无论其扫描 得分如何,都被挂在 pending_approval 中,直到一个人工审查它。 一个操作者无法悄悄添加一个工具就让你的智能体开始使用它。
执行模式只会往更紧的方向棘轮——批准一个技能永远不会放松一次 新扫描所设定的拦截。

5. Egress 允许列表——遏制”回拨主控”

最具破坏性的供应链结果是一个外泄的被攻陷依赖。防火墙的 egress 执行面评估一个工具报告的出站目的地(host / IP / CIDR),因此你 可以钉住数据被允许去往何处。 你自己编写一条 egress 规则:一份带 cidr_match 谓词的主机/CIDR 允许列表会拒绝一切不在列表上的目的地。把它与一条打断 retrieve→egress 链的序列规则组合,那么一个试图把检索到的 文档运往未知主机的被投毒工具就会在网关上被拒绝。
tight 自治级别附带一个 SSRF 预设,但它拒绝的是抓取形态的 工具名http_fetchweb_searchfetch_urlrequest)——它 不是一份 CIDR/云元数据拒绝列表。如果你需要 RFC-1918 / 元数据 / 特定-CIDR 的 egress 拦截,请自己编写 egress 主机/CIDR 拒绝规则。 cidr_match 操作符和 egress 限定参见 防火墙:规则

6. 加密凭据——一个被攻陷服务器读不到你的密钥

服务器认证密钥在静态时被加密,并在派发时由网关注入。它们永远 到不了模型、智能体或工具调用参数——因此一个被攻陷或恶意的服务器 无法通过读取它自己的凭据 blob 来外泄你的 API 密钥。控制台总是 返回掩码后的密钥——即便对一个 Admin 也是如此。解密后的值只在 恰好一条路径上被发出:一个携带 firewall-gateway-scoped 令牌 (一种 Admin 专为网关/代理显式铸造的专用令牌类型)的请求, 因此一把普通的泄露中继密钥无法枚举你的 MCP 凭据。

7. 把它汇总成一份审计

供应链治理也是一个审计制品。OrcaRouter 映射到 OWASP Top 10 for LLM Applications——包括 LLM05 Supply Chain 控制——作为合规引擎的一部分,与 soc2iso_27001iso_42001nist_ai_rmfeu_ai_act 等框架并列。 安装一个合规包 (POST /api/compliance/packs/:key/install,工作区 Admin,付费 计划)会物化匹配的防护栏和防火墙策略,并以一个 observe-first 姿态起步。合规报告包含一个 AI 供应链证据章节——你的工作区 实际路由到的上游提供商,外加一份特权访问和密钥卫生审查——并 经 Ed25519 签名、可公开验证。浏览目录和就绪度对每个 Member 免费; 完整生命周期参见 合规
MCP 治理是两个互补的层:在 mcp 执行面上的逐次调用防火墙评估 (对一个依赖做什么的执行),外加一份工具 schema 完整性 基线(声明工具集的首次使用即信任哈希,在每次探测时重新核对 ——漂移会把服务器的 schema_status 翻转为 changed 并让派发 故障关闭,直到一个 admin 重新建立基线或将其隔离)。与技能风险 评级和隔离合在一起,那就是对一个依赖做什么的执行,以及一份它 声明了什么的可验证记录。

8. 一个供应链基线

注册它、探测它的工具集,并把一条 <server>.* 规则限定为 pending_approvalaudit。阅读扫描发现项——任何未声明 工具或外部 egress 的发现都是把它继续隔离的理由。核实是谁 控制着那个端点 URL。
为任何带 fetch/search/export 工具的智能体保持一份 egress 允许 列表被钉住。观察 Discovered tools 视图 里那些无规则就出现的能力,以及异常信息流里新颖的工具到工具 路径。
禁用该服务器(PUT .../mcp_servers"enabled": false)——它 被禁用期间凭据从不被解密。重新探测以浮现新工具、重新扫描 技能,并审查 pending_approval 队列,而不是批量批准。

9. 相关威胁与概念

防火墙:MCP 服务器

在网关后注册 MCP 服务器、探测它们的工具,并在任何调用到达 真实服务器之前应用一个逐次调用判定。

防火墙:技能

扫描每一个可安装能力并为其评定风险分。在风险技能的工具运行 之前隔离或拦截它们。