sanitize
判定实际脱敏什么、它不脱敏什么,以及哪个控制治理一个工具返回的
内容。
1. “净化”在 mcp 面上意味着什么
当一个智能体通过 MCP 网关 调用一个工具时, 每一次tools/call 都在派发前在 mcp 面上被评估。一条匹配的
规则 可以携带可编写的防火墙判定之一
——allow、audit、deny、sanitize、pending_approval 或
cap_cost。sanitize 判定是做脱敏的那个:
- 它在调用的参数(模型传入工具的 JSON)上运行一组密钥形状 检测器。
- 每个匹配都被替换为一个像
[redacted:openai_key]的规范化令牌, 而被改写后的参数才是转发到服务器的内容。 - 工具仍然运行——
sanitize是一个非阻塞、放行的判定。智能体不 崩溃;它只是从不把原始密钥交给工具。
sk- 样式的 API
密钥、Bearer 令牌、US SSN、Luhn 校验有效的卡号、email),而一条
规则可以添加自定义正则,其匹配渲染为 [redacted:custom]。
在 inbound 面上——一个请求声明的声明
tools[],在任何工具被
调用之前——没有调用时的参数可脱敏,因此那里的一个 sanitize 判定
fail closed 并升级为 deny。Sanitize 只在有一个活的参数载荷可改写的
地方才有意义:mcp 和 response 面。2. 一条具体规则
假设你想让任何参数包含一个 OpenAI 样式密钥的工具调用都被以密钥 被清洗的方式转发,而不是被拦截。在 mcp 面上编写一条带sanitize
判定的规则,配置为检测那种密钥形状。从控制台执行此操作
(Firewall → 策略 → 规则);写入需要 Developer+。
该规则,概念上:
| 字段 | 值 |
|---|---|
| 面 | mcp |
tool_name_glob | *(或限定到一个服务器,例如 github.*) |
| 判定 | sanitize |
| Sanitize 预设 | 要启用的密钥检测器 |
sanitize 判定、面和
匹配的规则。
3. 工具结果是不可信的——在模型回复上治理它们
这里是大多数”净化输出”的设置弄错的部分。sanitize 判定只触及
参数。一个工具的结果——一个 MCP 服务器交回的文本或 JSON——
永不被一个防火墙判定改写。
OrcaRouter 把工具结果内容当作对模型的不可信输入。一个被攻破
或被投毒的 MCP 服务器可以返回一个密钥、一条 PII 记录,或一个伪装
成数据的提示注入载荷。针对那个内容的控制是 output 阶段上的一个
防护栏——模型的回复,在模型已经纳入工具
结果之后评估。
抓住在回复中浮现的密钥
抓住在回复中浮现的密钥
附加一个带 Secrets & API-Key Blocker 预设(类别
secrets)的
防护栏。它拦截 AWS / OpenAI / GitHub 样式的凭据;把它与
Private Keys & Cloud Tokens 配对以处理 PEM 密钥、Slack/Stripe
令牌、Google 密钥和 JWT。一次 output 阶段的拦截返回
guardrail_blocked(HTTP 400)并退还该请求的配额。脱敏回复中的 PII
脱敏回复中的 PII
PII Shield 预设屏蔽带类型的实体——
[EMAIL]、[SSN]、
[CREDIT_CARD]、……——把匹配的值渲染为标签。Input 阶段的屏蔽在
每个请求上都生效(无论流式与否):它在模型看到之前屏蔽请求。
Output 阶段的屏蔽只在非流式响应上改写模型回复;流式回复
的带内改写在路线图上,因此一条屏蔽规则尚未脱敏一个流式回复。Output 执行与流式。 Output 阶段的拦截在流式和非流式回复上
都被执行——在一个流上,一次拦截会在它匹配时切断该流并发出一个
通用拦截通知。Output 阶段的屏蔽只应用于非流式回复;流式
回复的带内改写在路线图上,因此一条屏蔽规则尚未脱敏一个流式回复。
4. 每个控制住在哪里
两个面的一张紧凑地图,让你把正确的旋钮接到正确的风险:5. 附加与观察
两个控制都是工作区限定的、有命名的、有序的,并且都以相同的两种 方式附加:- 按密钥 —— 在智能体使用的 密钥 上
设置
firewall_policy_id(用于 sanitize 规则)和guardrail_id(用于 output 策略)。 - 工作区默认 —— 把一个策略 / 防护栏标记为工作区默认,因此每个 密钥都继承它。
6. 下一步去哪里
允许列表 MCP 工具
默认拒绝一个服务器,只放行你已审查过的工具。
防火墙规则
完整的规则 DSL——判定、globs、args-match、sanitize 配置。
防护栏
内容策略、预设、PII 实体和 output 阶段执行。
MCP 工具投毒
一开始就让工具结果不可信的威胁。
