Traducción automática. El texto en inglés es la versión de referencia. English

verifica, no confíes

Demuéstralo. Atácalo tú mismo.

Cada afirmación de este sitio tiene un botón en esta página, conectado al sistema real en funcionamiento: una base de datos en vivo con seguridad a nivel de fila, la cola de aprobación real, el interruptor de emergencia real. No son grabaciones.

01, aislamiento de tenants

🔒 la joya de la corona · en vivo

Intenta romper el aislamiento entre tenants. Mira cómo aguanta.

Dos tenants de prueba, cada uno con una nota privada. Alpha es propietario de una herramienta compartida y se la ha concedido a Beta. Cuando Beta la llama, incluso pidiendo explícitamente los datos de Alpha, Postgres no devuelve nada, porque la herramienta se ejecuta bajo el ámbito de Beta. Se ejecuta en vivo contra una base de datos real con seguridad a nivel de fila y un rol NOBYPASSRLS. Ninguna auditoría ha conseguido atravesar la política de la base de datos; la única fuga entre tenants encontrada (julio) estaba en el historial de chat guardado fuera de la base de datos, y está corregida. No es un guion, pulsa el botón.

Qué demuestra esto: una lectura de una herramienta compartida, entre dos tenants sandbox, no devuelve nada. No demuestra: que la memoria, las cachés, las exportaciones o los trabajos en segundo plano estén aislados, ni que cada petición esté vinculada al tenant correcto.

tenant Bherramienta compartida →datos del tenant A

B llama a la herramienta de A, pidiendo explícitamente los datos de A.
Pulsa Ejecutar y mira cómo RLS devuelve cero filas.

El mecanismo: la política real, no un diagrama:
ALTER TABLE bookings ENABLE ROW LEVEL SECURITY;
ALTER TABLE bookings FORCE  ROW LEVEL SECURITY;          -- even the table owner obeys it
CREATE POLICY tenant_isolation ON bookings
  USING (tenant_id = NULLIF(current_setting('app.current_tenant', true), '')::uuid);

-- Two roles: migrations run as the owner; the runtime connects as pantheon_app
-- (NOBYPASSRLS), so app code cannot switch the policy off. It relies on the right tenant being set per request.
-- Per request:  SET LOCAL app.current_tenant = '<id>'   →   no context ⇒ zero rows.
Una casa de guardia y su rastrillo. Grabado generado y animado por Runway.

02, acción gobernada

⛔ gobernanza · en vivo

Mira cómo se gobierna una acción de alto riesgo.

Pide al sandbox que haga algo con consecuencias: publicar un anuncio público (tier-3). No se ejecuta sin más. Se clasifica, se comprueba contra el interruptor de emergencia y queda en espera de una persona. Lo apruebas y entonces actúa. Activa el interruptor de emergencia y verás cómo tier-3 se niega antes siquiera de entrar en la cola.

interruptor de emergencia

Qué demuestra esto: una acción demo de tier-3 queda en cola para una persona, y el interruptor de emergencia la detiene. No demuestra: que toda acción real se clasifique como tier-3 cuando debería.

tier-3→cola de aprobación→humano

No se ejecuta. Se encola. Envía una y luego apruébala o recházala.
Activa el interruptor de emergencia para detenerla antes de que pueda siquiera encolarse.

03, eval reproducible

eval · en vivo · ~15s

La auditoría, reproducible. Ejecútala tú mismo.

Una evaluación de gobernanza: casos adversarios puntuados como aprobado/suspendido contra el asistente real y el sandbox en vivo, ahora mismo. No es una insignia; es un botón. La misma idea que las auditorías que lo siguen endureciendo, la más reciente una auditoría con 50 agentes y una re-auditoría con 14 enfoques: sondear y después verificar.

Qué demuestra esto: cinco casos fijos pasan ahora contra el sistema en vivo; cada resultado lleva un comprobante (caso, esperado, observado, hora, build). No demuestra: robustez frente a ataques fuera de estos cinco.

5 casos adversariales
aislamiento · gobernanza · seguridad · inyección · honestidad

Evaluados como aprobado/fallido contra el sistema en vivo. Pulsa Ejecutar.

04, protocolo abierto

🔌 MCP · en vivo

Conecta tu propia IA a la mía, a través del protocolo abierto.

PANTHEON habla el Model Context Protocol en ambos sentidos: puede consumir herramientas MCP externas bajo gobernanza y, en vivo, aquí mismo. sirve sus propios agentes gobernados como herramientas MCP. Voy a ser directo: conectar MCP es trabajo de un fin de semana. Lo que importa es lo que lo envuelve, y no quiero que te lo creas porque sí. Conecta tu propio cliente y haz que lo demuestre. El protocolo es solo el enchufe. La gobernanza es lo que importa.

npx mcp-remote https://pantheonlabs.co.uk/mcp --header "Authorization: Bearer <mint a token →>"

Trae cualquier cliente MCP, Claude Desktop (vía mcp-remote), MCP Inspector, Cursor, Cline. Funciona con un token de sandbox anónimo de corta duración, emitido bajo demanda.

Después, mira cómo se gobierna a sí mismo. Pregúntale lo que sea al asistente: credits_spent vuelve en cada llamada, así que nada puede quedar en descubierto. Luego pídele que realice una acción: es una llamada tier-3 y nunca se ejecuta, queda aparcada en la puerta de autorización esperando a una persona. Esa negativa la has provocado tú. No es una captura en una presentación.

A qué puedes acceder: un asistente gobernado que responde + una acción de "demo de la puerta" deliberadamente inerte. Un sandbox anónimo con límite de uso, sin datos reales y sin acciones con dinero real. Si buscas una herramienta que no existe, recibes el mismo error que con una que no tienes concedida, así que los errores no filtran nada.

05: el constructor

Todo lo que acabas de atacar lo construyó una sola persona.

No te creíste nada a ciegas; lo ejecutaste. Si quieres sistemas construidos para sobrevivir a una página como esta, hablemos.