sanitize do firewall de fato redige, o que ele não
redige, e qual controle governa o conteúdo que uma ferramenta retorna.
1. O que “sanitize” significa na superfície mcp
Quando um agente chama uma ferramenta através do gateway MCP, cadatools/call é avaliado na
superfície mcp antes do dispatch. Uma regra
correspondente pode carregar um dos vereditos de firewall escrevíveis —
allow, audit, deny, sanitize, pending_approval ou cap_cost. O
veredito sanitize é o que redige:
- Ele roda um conjunto de detectores de formato-de-segredo sobre os argumentos da chamada (o JSON que o modelo passou para a ferramenta).
- Cada correspondência é substituída por um token canônico como
[redacted:openai_key], e os argumentos reescritos são o que é encaminhado ao servidor. - A ferramenta ainda roda —
sanitizeé um veredito não bloqueante, de deixar-passar. O agente não quebra; ele só nunca entrega o segredo bruto à ferramenta.
sk-, tokens Bearer, SSN dos EUA,
números de cartão válidos por Luhn, email), e uma regra pode adicionar regexes
customizadas cujas correspondências renderizam como [redacted:custom].
Na superfície inbound — os
tools[] anunciados que uma requisição
declara, antes de qualquer ferramenta ser chamada — não há argumentos em
tempo de chamada para redigir, de modo que um veredito sanitize ali falha
fechado e escala para deny. Sanitize só é significativo onde há um payload
de argumento ao vivo para reescrever: as superfícies mcp e response.2. Uma regra concreta
Digamos que você queira que qualquer chamada de ferramenta cujos argumentos contenham uma chave no estilo OpenAI seja encaminhada com a chave removida, em vez de bloqueada. Escreva uma regra na superfície mcp com um vereditosanitize, configurada para detectar esse formato de segredo. Faça isso a
partir do console (Firewall → política → regras); a escrita exige
Developer+.
A regra, conceitualmente:
| Campo | Valor |
|---|---|
| Superfície | mcp |
tool_name_glob | * (ou escope a um servidor, ex.: github.*) |
| Veredito | sanitize |
| Presets de sanitize | os detectores de segredo a habilitar |
sanitize, a superfície e a regra
correspondente.
3. Os tool-results não são confiáveis — governe-os na resposta do modelo
Aqui está a parte que a maioria dos setups de “sanitize the output” erra. O vereditosanitize toca apenas nos argumentos. O resultado de uma
ferramenta — o texto ou JSON que um servidor MCP devolve — nunca é reescrito
por um veredito de firewall.
O OrcaRouter trata o conteúdo do tool-result como input não confiável para
o modelo. Um servidor MCP comprometido ou envenenado pode retornar um
segredo, um registro de PII ou um payload de injeção de prompt disfarçado de
dado. O controle para esse conteúdo é um
guardrail no estágio output — a resposta do
modelo, avaliada depois que o modelo incorporou o resultado da ferramenta.
Pegue segredos que aparecem na resposta
Pegue segredos que aparecem na resposta
Anexe um guardrail com o preset Secrets & API-Key Blocker (categoria
secrets). Ele bloqueia credenciais no estilo AWS / OpenAI / GitHub;
combine-o com Private Keys & Cloud Tokens para chaves PEM, tokens
Slack/Stripe, chaves Google e JWTs. Um block de output-stage retorna
guardrail_blocked (HTTP 400) e reembolsa a quota da requisição.Redija PII na resposta
Redija PII na resposta
O preset PII Shield mascara entidades tipadas —
[EMAIL], [SSN],
[CREDIT_CARD], … — renderizando os valores correspondentes como tags. O
mascaramento de input-stage está ativo em cada requisição (streaming ou
não): ele mascara a requisição antes que o modelo a veja. O
mascaramento de output-stage reescreve a resposta do modelo apenas em
respostas não-streaming; a reescrita in-band de uma resposta em
streaming está no roadmap, de modo que uma regra de mask ainda não redige
uma resposta transmitida.Neutralize injeção que vai em tool-results
Neutralize injeção que vai em tool-results
Um resultado envenenado pode carregar texto no estilo “ignore previous
instructions”. O preset de segurança Prompt-Injection Basics
(keyword/regex) mais uma regra
llm_judge que pontua intenção de injeção
são os controles aqui. Veja
Envenenamento de ferramentas MCP e
Injeção de prompt.Enforcement de output e streaming. O block de output-stage é aplicado
tanto em respostas streaming quanto não-streaming — em um stream, um block
corta o stream quando corresponde e emite um aviso genérico de block. O
mask de output-stage se aplica apenas a respostas não-streaming; a
reescrita in-band de uma resposta em streaming está no roadmap, de modo que
uma regra de mask ainda não redige uma resposta transmitida.
4. Onde cada controle vive
Um mapa compacto das duas superfícies, para que você ligue o botão certo ao risco certo:| Você quer governar… | Controle | Onde |
|---|---|---|
| Segredos nos argumentos de uma chamada de ferramenta | Veredito sanitize do firewall (superfície mcp) | Regras de firewall |
| Segredos / PII / injeção no resultado de uma ferramenta | Guardrail no estágio output | Guardrails |
5. Anexando e observando
Ambos os controles têm escopo de workspace, são nomeados e ordenados, e ambos anexam das mesmas duas formas:- Por chave — defina
firewall_policy_id(para a regra de sanitize) eguardrail_id(para a política de output) na chave que o agente usa. - Padrão de workspace — marque uma política / guardrail como o padrão do workspace de modo que toda chave o herde.
6. Para onde ir em seguida
Lista de permissão de ferramentas MCP
Negue por padrão um servidor e permita apenas as ferramentas que você
revisou.
Regras de firewall
O DSL completo de regras — vereditos, globs, args-match, config de
sanitize.
Guardrails
Políticas de conteúdo, presets, entidades de PII e enforcement de
output-stage.
Envenenamento de ferramentas MCP
A ameaça que torna os resultados de ferramenta não confiáveis em primeiro
lugar.
