1. 为何要保护一个 MCP 智能体
直接把一个智能体指向五个 MCP 服务器,你就有了五条信任边界、五个凭据 存储,以及零个共享的审计追踪。读取一条客户记录的那个tools/call 和
运行一条 shell 命令的那个,在模型看来完全相同,而一个社区服务器在它
首次加载时可以悄悄请求 shell.exec 和一个外部网络范围。
修复办法是让 OrcaRouter 成为每一次调用都穿过的那个咽喉点。要端到端地
保护 mcp 智能体流量,你把所有 MCP 派发都通过防火墙的
MCP 网关 路由,这样每一次 tools/call 都在它
到达真实服务器之前被策略评估——同时技能被风险评分、egress 被治理、
凭据静态加密。
2. 从 Secure Agents 基线出发
在编写任何定制内容之前,先设定一个姿态。在控制台中打开 Firewall → Posture 并应用balanced
自治级别(Developer 角色)。
在一个事务中,它审计工具调用并 flag PII,同时拒绝最具破坏性的动作
——你在广泛执行之前先观察,并带一键撤销。
当 Events 和 Runs 信息流看起来对了,
就转到 tight:默认拒绝、破坏性 shell 被拒绝、SSRF 形态的 egress 被
拒绝,加上 PII Shield 和 Secrets Blocker 防护栏被执行。那个单一开关就是
本配方所构建于其上的底线。
3. 把每一次 tools/call 通过一个 MCP 网关路由
把每个 MCP 服务器注册一次;网关在单一连接下聚合它们的工具(命名空间为<server>.<tool>),并把每一次 tools/call 通过防火墙引擎运行。
从控制台(或 REST API,Developer+)注册一个服务器:
github.create_issue 和 shell.exec 在一个连接下并排显示,而每一次
派发都在它运行之前被评估。一个被拦截的调用作为一个工具错误
(firewall deny: …)返回给模型,而不是一次传输崩溃,因此智能体能
适应。
在你能针对一个服务器的工具编写规则之前,先**探测(probe)**它以发现
它们的名字和 schema:
4. 隔离智能体拉入的技能
MCP 网关治理调用;技能治理治理一个智能体加载的能力。每一个可安装 技能、自带 MCP 服务器或插件都被扫描进一个风险等级和一个叠加在每个 规则判定之上的执行模式:| 模式 | 运行时效果 |
|---|---|
allow | 由规则判定决定;技能不增加任何东西。 |
quarantine | 任何未到 deny 程度的判定都被挂起等待 pending_approval。 |
block | 该技能的工具被强制拒绝。 |
5. 拒绝 SSRF 形态的 egress
一个被攻陷或被迷惑的 MCP 工具访问云元数据或一个内网主机,是经典的 外泄路径。两层覆盖它。 首先,网关在注册时以及每一个派发跳上,对照一个 SSRF 策略校验每一个 远程 MCP 端点及其解析出的拨号 IP——内网范围和云元数据地址被拒绝, 并重新检查以挫败 DNS 重绑定。这是内置的;你不配置它。 其次,tight 自治级别附带一个 SSRF egress 预设,它拒绝 fetch
形态的工具名——http_fetch、web_search、fetch_url、request,以及
它们的 <server>.* 命名空间形式——这样一个整个职责就是”去抓取这个
URL”的工具会在它拨号之前被阻止。
要按目的地治理工具能访问哪里,编写你自己的 egress 规则,带一个
host/CIDR 拒绝列表——那是钉住出站触达的执行面:
6. 让服务器凭据保持加密
每个 MCP 服务器的auth_json 都静态加密并在读取时掩码;网关在派发时
注入凭据,因此它们永远不会到达模型或客户端。支持的 auth_mode 值:
bearer
bearer
{ "token": "…" } —— 一个静态 bearer 令牌,作为
Authorization: Bearer 发送。oauth
oauth
{ "client_id": "…", "client_secret": "…", "token_url": "…" } ——
client-credentials OAuth;网关获取并刷新令牌。basic
basic
{ "username": "…", "password": "…" } —— HTTP Basic 认证。none
none
"" —— 一个未认证的服务器。默认值。status
(ok / degraded / down)会在你依赖它之前告诉你它是否可达。
7. 在请求上加一条内容防护栏
防火墙治理动作;把它和一条 防护栏 配对, 这样流经你 MCP 智能体的文本也被筛查。 Secrets Blocker 预设在模型——或任何工具——看到之前就捕捉请求中的凭据,而一条 PII Shield 在进入时掩码 标识符。二者都随tight 自治级别一起开启,或通过 guardrail_id 把一条
命名防护栏附加到智能体的中继密钥。
8. 验证与观察
在你信任策略之前先确认它做你预期的事,然后盯着信息流:测试一次工具调用
针对你的策略 dry-run 一个样本
tools/call,看到判定、匹配到的规则和
原因——什么都不派发,什么都不记录。Discovered tools
工作区见过的每一个工具,标记 covered 或 gap——直接从真实 MCP 流量
编写规则。
Events & Runs
每一次派发、它的判定,以及它命中的执行面,按智能体运行汇总。
Anomaly feed
对照一个学习到的基线的速率/成本尖峰、重试循环和新型工具路径。
9. 接下来去哪里
MCP 工具投毒
隔离与 MCP 网关背后的威胁模型。
过度自主
为何默认拒绝和 HITL 对自治工具使用很重要。
自治智能体配方
端到端加固一个高自治智能体。
阻止外泄
深入锁定出站 egress。
