Skip to main content

Activar la protección Safe House

Safe House es la capa de pre-filtrado de Mnemom para el tráfico de agentes. Se sitúa entre tus agentes y sus llamadas al modelo, y evalúa cada mensaje entrante — y, opcionalmente, cada respuesta saliente y cada llamada/resultado de herramienta — contra las tarjetas de alineamiento y protección de tu organización antes de que nada de eso llegue al modelo. Un mensaje que Safe House detiene nunca se convierte en una decisión que tu agente tenga que tomar. Este inicio rápido te guía para activar Safe House en un agente existente mediante la API/CLI, observar detecciones de amenazas reales, cambiar al modo enforce y gestionar mensajes puestos en cuarentena. ¿Prefieres hacer clic en lugar de programar? Los mismos controles (modo, umbrales, superficies filtradas) también están disponibles por agente en la pestaña Agent → Security del panel de control — esta guía sirve para automatizar la configuración, configurar muchos agentes a la vez, o integrar Safe House en CI. Necesitarás un agente de Mnemom ya registrado — si no tienes uno, consulta primero Descripción general de Mnemom Gateway.

Requisitos previos

  • Un token API de Mnemom en $MNEMOM_TOKEN (para las llamadas API /v1/protection/* y /v1/safe-house/*)
  • Un ID de agente en $AGENT_ID (p. ej. mnm-550e8400-e29b-41d4-a716-446655440000)
  • Tu clave API de proveedor en $ANTHROPIC_API_KEY (para los mensajes de prueba enviados a través de la pasarela en los Pasos 2 y 5)

Paso 1 — Activar Safe House en modo observe

Comienza con el modo observe. Esto ejecuta un análisis de amenazas completo sin ningún impacto en la latencia, para que puedas ver lo que Safe House detectaría antes de comprometerte a bloquear. La configuración de Safe House vive en la tarjeta de protección del agente — mode es el interruptor maestro de primer nivel; screen_surfaces decide qué superficies inspecciona el pipeline de detectores. Las superficies son unidades de filtrado, no un presupuesto por turno: la puerta de entrada se ejecuta una vez por cada superficie habilitada que lleve la solicitud. La tarjeta de abajo comienza solo con incoming, así que verás una evaluación de puerta de entrada por solicitud. Activar tool_responses (Paso 7) añade otra evaluación por cada resultado de herramienta que la solicitud devuelva al modelo — dentro de esa misma solicitud, antes de que el modelo lo lea.
Idempotency-Key es obligatorio en cada PUT de tarjeta de protección — cualquier cadena generada por el cliente funciona, pero usar una nueva por cada escritura distinta (como uuidgen arriba) mantiene los reintentos seguros sin repetir accidentalmente una antigua. La gramática completa de la tarjeta de protección está en /specifications/protection-card-schema; la tarjeta canónica que devuelve el compositor también incluye card_id, _composition, y cualquier valor predeterminado de plataforma / organización que fluya hacia la tarjeta efectiva del agente. Alternativa por CLI. Guarda la tarjeta como protection.card.yaml y publícala con un solo comando — sin necesidad de curl:

Paso 2 — Enviar un mensaje de amenaza de prueba

Envía un mensaje de estilo BEC (compromiso de correo empresarial) a través de la pasarela y revisa los encabezados de respuesta. Esto no bloqueará nada en modo observe — pero registrará una detección. Enrútalo a través de la Gateway exactamente como lo harías normalmente — usa el mismo nombre x-mnemom-agent bajo el que se registró este agente (u omite el encabezado si se creó sin uno) para que la solicitud se resuelva a $AGENT_ID:
Busca el estado de Safe House en la respuesta. Los antiguos encabezados X-Safe-House-* se retiraron en favor de la estructura unificada de cuatro puntos de control X-Mnemom-Verdict (consulta la referencia de encabezados):
En modo observe, X-Mnemom-Verdict.front reporta observed para que puedas rastrear lo que habría pasado en modo enforce — el mensaje llega al agente de todas formas. El encabezado X-Mnemom-Advisory lleva los hallazgos del detector como un array JSON; consulta /api-reference/headers#x-mnemom-advisory.

Paso 3 — Revisar las detecciones en el panel de control

Abre tu panel de control de Mnemom para ver las detecciones de Safe House registradas a partir de tu prueba — selecciona el agente, luego su pestaña Security. El mensaje de prueba debería aparecer a los pocos segundos de completarse la solicitud. También puedes obtener estadísticas agregadas de detección directamente vía la API. Las estadísticas tienen ámbito de organización — un solo acumulado sobre cada agente de la organización, en una ventana móvil en días (no hay filtro por agente):
days es 7 por defecto y tiene un tope de 90.

Paso 4 — Cambiar al modo enforce

Una vez que te sientas cómodo con lo que Safe House está detectando, cambia al modo enforce. A partir de este punto, los mensajes que puntúen por encima del umbral quarantine se retienen para revisión, y los mensajes por encima del umbral block se descartan.
Aplicar una cuarentena o un bloqueo no hace fallar la solicitud HTTP — la pasarela sigue devolviendo un 2xx. En su lugar, el contenido del mensaje se reemplaza antes de llegar al modelo, y X-Mnemom-Verdict reporta front=enforced con un aviso safe_house.quarantine que lleva el id de cuarentena. Consulta Las intervenciones de Safe House no son respuestas de error para la tabla completa de códigos de estado. El enum de 4 modos no tiene simulate — comienza con observe (sin bloqueo) y avanza por nudge (inyección de aviso, sin bloqueo) antes de habilitar enforce. Consulta el concepto Safe House para la semántica completa de los modos.

Paso 5 — Ver un mensaje puesto en cuarentena

Envía el mismo mensaje BEC de nuevo, esta vez en modo enforce:
El estado sigue siendo 200, pero los encabezados de veredicto y aviso muestran que el mensaje fue puesto en cuarentena antes de que el modelo lo viera:
Extrae el id de la entrada de aviso safe_house.quarantine — ese es tu id de cuarentena. El mensaje original se retuvo antes de llegar al agente; el modelo vio en su lugar un placeholder de cuarentena. Tu aplicación debería analizar X-Mnemom-Verdict en cada respuesta (no solo en las que no son 2xx) y mostrar un resultado front=enforced a quien sea responsable de la revisión de seguridad.

Paso 6 — Revisar y liberar de la cuarentena

Inspecciona el mensaje en cuarentena y decide si liberarlo o descartarlo. Los endpoints de cuarentena tienen ámbito de organización (una cola de cuarentena por organización); el id de cuarentena del aviso safe_house.quarantine del Paso 5 es la clave de búsqueda. Ten en cuenta que el texto del mensaje original nunca se almacena — solo su hash — así que aquí no hay una vista previa en texto plano que inspeccionar:
Si el mensaje es legítimo (un falso positivo), libéralo. Esto cambia la entrada a released; pasa is_false_positive: true para también realimentar la liberación a la calibración de umbrales:
Para descartar el mensaje sin liberarlo (confirmando que era una amenaza real) — DELETE sobre el recurso de cuarentena, que lo marca como deleted (el hash del contenido se conserva para auditoría; al agente nunca se le envía el contenido original):
Liberar con is_false_positive: true realimenta la calibración de umbrales. Después de suficientes falsos positivos confirmados en una categoría, puede valer la pena revisar los umbrales de tu agente.

Paso 7 — Filtrar resultados de herramientas

Los Pasos 1–6 solo filtraron incoming — el mensaje del usuario. Si tu agente usa herramientas, la ruta de inyección más común es el resultado de herramienta: un resultado de búsqueda, el cuerpo de un correo, una respuesta de API con instrucciones ocultas dentro. Activa la superficie tool_responses:
A partir de aquí, una solicitud que devuelve resultados de herramientas al modelo se filtra de nuevo dentro de esa misma solicitud — una vez por resultado de herramienta, en su propia superficie, antes de que el cuerpo se reenvíe aguas arriba. Esta es una comprobación de puerta de entrada; nada espera al siguiente turno del agente. Sin embargo, la cobertura no es incondicional: una solicitud que se ramifica hacia muchas llamadas de herramientas en un solo turno no tiene garantizada una cobertura completa. Un resultado de herramienta marcado funciona igual que un mensaje entrante marcado en el Paso 5 — la solicitud no falla, el contenido marcado se elimina del cuerpo antes de que el modelo lo vea, y el encabezado de veredicto lo reporta:
No interpretes un 200 como “la puerta de entrada no hizo nada este turno”. Analiza X-Mnemom-Verdict — front=enforced en un 200 significa que un resultado de herramienta fue retenido o modificado dentro de la solicitud.

Próximos pasos

Añadir credenciales canario

Planta claves API falsas en el contexto del agente. Cualquier intento de usarlas es un indicador de cero falsos positivos de una exfiltración exitosa.

Configurar confianza de origen

Añade a la lista blanca los upstreams de confianza en trusted_sources.{domains, agent_ids, ip_ranges} para saltar la detección en llamantes conocidos como confiables (cada salto se sigue registrando para auditoría).

Habilitar DLP saliente

Analiza las respuestas del agente en busca de PII y secretos antes de que se devuelvan a los llamantes.

Revisar tu panel de control

Resumen de seguridad, tendencias de riesgo de sesión y desgloses de detección por categoría para todos tus agentes.

Véase también