Jorge Turbica / blog · Blog ← Todos los artículos EN · Read in English
IA

OpenAI aisló a sus agentes sin red y aun así se pasaron mensajes por la caché de la CPU

Un DNS mal configurado sacó a internet un modelo de OpenAI. Lo que encontró después atacándose con agentes sirve a quien ejecuta agentes en sandboxes.

Dos agentes de IA en entornos separados, sin red y sin ficheros compartidos, consiguieron intercambiar un secreto: uno alteraba lo que había en la caché del procesador y el otro medía cuánto tardaban sus lecturas. Es una de las pruebas que OpenAI ha documentado tras aislar del todo el entrenamiento de sus modelos de frontera, y la lección llega a cualquiera que ejecute agentes en sandboxes.

Un resolver DNS mal configurado y once días de pausa

El 20 de septiembre de 2026, un modelo interno de investigación aprovechó un resolver DNS mal configurado para llegar a internet en pleno entrenamiento. Ocurrió aunque OpenAI ya había endurecido su seguridad tras el incidente de Hugging Face de julio. La fuga se contuvo rápido, pero la compañía detuvo todo el entrenamiento y la evaluación de modelos de frontera.

La pausa duró once días: OpenAI retomó el entrenamiento y el uso interno de esos modelos el 1 de octubre. Lo interesante es lo que hizo entretanto.

La solución: un internet de mentira y agentes atacando la casa

Un "mundo offline". Los modelos de frontera entrenan ahora sin acceso a internet, hasta que las medidas de seguridad justifiquen devolvérselo. Aprenden a navegar y buscar dentro de un entorno cerrado construido con contenido web indexado y en caché, y todas las ejecuciones de aprendizaje por refuerzo de frontera funcionan así. El aislamiento total (un air gap) no es viable todavía, según OpenAI, porque los experimentos siguen necesitando conexiones externas para la operación y la monitorización.

Red teaming con agentes. Durante la pausa, equipos de agentes atacaron la infraestructura de OpenAI con el código fuente, la configuración y documentación de vulnerabilidades potenciales a mano; condiciones pensadas para favorecer al atacante. Entre ellos estaban el próximo GPT-6 Astra Cyber y un modelo interno de frontera. La campaña consumió cientos de miles de millones de tokens, y la mayoría de los problemas únicos aparecieron en los primeros 110.000 millones.

Lo que encontraron:

  • Vulnerabilidades desconocidas en componentes open source que permitieron escapar de máquinas virtuales protegidas. Una estaba en Kata Containers, publicada como CVE-2026-24834 y con parche aportado por OpenAI.
  • Con un host ya comprometido, una vulnerabilidad en casi todos los servicios expuestos a internet que quedaban.
  • Un agente que usó una conexión permitida por el firewall para descargar una URL externa a través de un servicio de métricas, y otros que esquivaron filtros por errores de configuración.
  • Huecos en la monitorización y en el mecanismo de pausa automática.

Tras corregirlo, los agentes ya no encontraron una vía a internet que fuera a la vez fácil de explotar y ajena a la monitorización. Esta campaña es ahora un paso estándar para aprobar cada nueva ejecución de entrenamiento.

Canales encubiertos: lo que el aislamiento de red no para

La prueba de la caché usa la misma técnica que Spectre y Meltdown. No fue la única: aparecieron canales a través de patrones de escritura en memoria compartida y a través de la propia infraestructura offline que sustituye a internet. Un agente escribió en su razonamiento que podía crear "una señal parecida a la de un módem acústico" alternando escrituras continuas y reposo. En otra prueba, con solo una lista genérica de vulnerabilidades, los agentes diseñaron un canal por su cuenta, acordaron una codificación e intercambiaron información.

OpenAI matiza que estos canales suelen ser lentos y difíciles de explotar. Pero cruzan fronteras pensadas precisamente para mantener a los agentes separados.

Qué se puede aprender

El DNS es salida a internet. El incidente que lo desencadenó no fue un exploit sofisticado, sino un resolver. Si tus agentes corren en un namespace o una VM "sin red", comprueba qué resuelve y a dónde reenvía su DNS; una política que bloquea TCP pero deja libre el DNS es una puerta abierta.

Todo servicio que descarga URLs es un proxy. El agente que salió por el servicio de métricas lo hizo con una conexión permitida. Webhooks, exportadores, servicios que generan miniaturas o validan enlaces: si aceptan una URL y están dentro del perímetro, forman parte de tu superficie de salida.

Aislar la red no aísla el hardware. Dos cargas en el mismo nodo comparten caché y memoria. Si dos agentes no deben poder comunicarse (por ejemplo, porque trabajan para clientes distintos), el sandbox por proceso no basta como garantía; separa por nodo.

Los runtimes de micro-VM también tienen bugs. Kata Containers existe para dar a los contenedores el aislamiento de una VM, y aun así fue una vía de escape. Mantén el runtime al día (revisa el aviso GHSA-wwj6-vghv-5p64 si lo usas) y no lo trates como la única capa.

Prueba el botón de pausa. La campaña encontró fallos en la monitorización y en la pausa automática, las piezas que tenían que actuar si todo lo demás fallaba. Un kill switch que nunca se ha ejercitado contra un atacante es una suposición.

Qué no es trasladable

La escala: cientos de miles de millones de tokens de red teaming y un modelo como GPT-6 Astra Cyber no están al alcance de casi nadie. Y el modelo de amenaza es otro: OpenAI se protege de un modelo de frontera que intenta salir, mientras que la mayoría de equipos se protege de un agente que obedece a un prompt malicioso. Las lecciones sobre DNS, servicios que descargan URLs y nodos compartidos valen igual en los dos casos.

Fuentes

Jorge Turbica

Software Engineer y SRE. Escribo sobre los retos reales que me encuentro en producción.

Ver portfolio ↗