sanitize del firewall, qué no, y qué control
gobierna el contenido que una herramienta devuelve.
1. Qué significa “sanitize” en la superficie mcp
Cuando un agente llama a una herramienta a través del gateway MCP, cadatools/call se evalúa en la superficie mcp
antes del despacho. Una regla coincidente puede
llevar uno de los veredictos de firewall autorables — allow, audit, deny,
sanitize, pending_approval o cap_cost. El veredicto sanitize es el que
redacta:
- Ejecuta un conjunto de detectores de forma de secreto sobre los argumentos de la llamada (el JSON que el modelo pasó a la herramienta).
- Cada coincidencia se reemplaza con un token canónico como
[redacted:openai_key], y los argumentos reescritos son lo que se reenvía al servidor. - La herramienta igual se ejecuta —
sanitizees un veredicto no bloqueante, de dejar pasar. El agente no falla; simplemente nunca le entrega el secreto en bruto a la herramienta.
sk-, tokens Bearer, SSN de EE. UU., números de
tarjeta válidos por Luhn, email), y una regla puede añadir regexes personalizados
cuyas coincidencias se renderizan como [redacted:custom].
En la superficie inbound — el
tools[] anunciado que una solicitud declara,
antes de que se llame a ninguna herramienta — no hay argumentos en tiempo de
llamada que redactar, así que un veredicto sanitize ahí falla cerrado y escala a
deny. Sanitize es significativo solo donde hay una carga útil de argumentos en
vivo que reescribir: las superficies mcp y response.2. Una regla concreta
Digamos que quieres que cualquier llamada a herramienta cuyos argumentos contengan una clave estilo OpenAI se reenvíe con la clave depurada, en vez de bloqueada. Autora una regla en la superficie mcp con un veredictosanitize, configurada
para detectar esa forma de secreto. Haz esto desde la consola (Firewall →
política → reglas); la escritura requiere Developer+.
La regla, conceptualmente:
| Campo | Valor |
|---|---|
| Superficie | mcp |
tool_name_glob | * (o acota a un servidor, p. ej. github.*) |
| Veredicto | sanitize |
| Presets de sanitize | los detectores de secreto a habilitar |
sanitize, la superficie y la regla coincidente.
3. Los resultados de herramienta son no confiables — gobiérnalos en la respuesta del modelo
Aquí está la parte que la mayoría de las configuraciones de “sanear la salida” hacen mal. El veredictosanitize toca solo los argumentos. El resultado de
una herramienta — el texto o JSON que un servidor MCP devuelve — nunca se reescribe
por un veredicto de firewall.
OrcaRouter trata el contenido del resultado de herramienta como entrada no
confiable al modelo. Un servidor MCP comprometido o envenenado puede devolver un
secreto, un registro de PII o una carga útil de inyección de prompts disfrazada de
datos. El control para ese contenido es un guardrail en
la etapa output — la respuesta del modelo, evaluada después de que el modelo
ha incorporado el resultado de la herramienta.
Atrapa secretos que afloran en la respuesta
Atrapa secretos que afloran en la respuesta
Adjunta un guardrail con el preset Secrets & API-Key Blocker (categoría
secrets). Bloquea credenciales estilo AWS / OpenAI / GitHub; empárejalo con
Private Keys & Cloud Tokens para claves PEM, tokens Slack/Stripe, claves
Google y JWTs. Un bloqueo de etapa de salida devuelve guardrail_blocked
(HTTP 400) y reembolsa la cuota de la solicitud.Redacta PII en la respuesta
Redacta PII en la respuesta
El preset PII Shield enmascara entidades tipadas —
[EMAIL], [SSN],
[CREDIT_CARD], … — renderizando los valores coincidentes como etiquetas. El
enmascaramiento de etapa de entrada está en vivo en cada solicitud (streaming o
no): enmascara la solicitud antes de que el modelo la vea. El enmascaramiento
de etapa de salida reescribe la respuesta del modelo solo en respuestas no
streaming; la reescritura en banda de una respuesta streaming está en la hoja
de ruta, así que una regla de máscara aún no redacta una respuesta en streaming.Neutraliza la inyección que viaja en los resultados de herramienta
Neutraliza la inyección que viaja en los resultados de herramienta
Un resultado envenenado puede llevar texto estilo “ignora las instrucciones
anteriores”. El preset de seguridad Prompt-Injection Basics (palabra
clave/regex) más una regla
llm_judge que puntúa la intención de inyección son
los controles aquí. Ver
Envenenamiento de herramientas MCP y
Inyección de prompts.Cumplimiento de salida y streaming. El bloqueo de etapa de salida se aplica
tanto en respuestas streaming como no streaming — en un stream, un bloqueo corta el
stream cuando coincide y emite un aviso de bloqueo genérico. El enmascaramiento
de etapa de salida aplica solo a respuestas no streaming; la reescritura en
banda de una respuesta streaming está en la hoja de ruta, así que una regla de
máscara aún no redacta una respuesta en streaming.
4. Dónde vive cada control
Un mapa compacto de las dos superficies, así cableas la perilla correcta al riesgo correcto:| Quieres gobernar… | Control | Dónde |
|---|---|---|
| Secretos en los argumentos de una llamada a herramienta | Veredicto sanitize del firewall (superficie mcp) | Reglas del firewall |
| Secretos / PII / inyección en el resultado de una herramienta | Guardrail en la etapa output | Guardrails |
5. Adjuntar y observar
Ambos controles tienen alcance de espacio de trabajo, nombre y orden, y ambos se adjuntan de las mismas dos maneras:- Por clave — establece
firewall_policy_id(para la regla de sanitize) yguardrail_id(para la política de salida) en la clave que usa el agente. - Valor por defecto de espacio de trabajo — marca una política / guardrail como el valor por defecto del espacio de trabajo así cada clave lo hereda.
6. Dónde ir a continuación
Lista de permitidos de herramientas MCP
Deniega por defecto un servidor y permite solo las herramientas que has
revisado.
Reglas del firewall
El DSL completo de reglas — veredictos, globs, args-match, config de sanitize.
Guardrails
Políticas de contenido, presets, entidades de PII y cumplimiento de etapa de
salida.
Envenenamiento de herramientas MCP
La amenaza que hace que los resultados de herramienta sean no confiables en
primer lugar.
