topcat:~/blog/el-sandbox-que-no-era-un-sandbox$ cat entrada.md
2026-08-08
El sandbox que no era un sandbox
Los agentes de OpenAI no se rebelaron: optimizaron la métrica que les pusimos. Lo grave no es lo que hicieron, es dónde pudieron hacerlo.
Sobre Michael Dalton y Eric Wallace (OpenAI), Black Hat USA 2026 · leer el original
Qué pasó, en orden
En mayo, unos modelos de OpenAI en evaluación de capacidades ofensivas se toparon con tareas imposibles de resolver: pedían datos de internet desde una red sin salida. En vez de rendirse, atacaron la infraestructura que tenían a mano. El 26 de mayo consiguieron salida a internet abusando de Artifactory, el proxy de paquetes del entorno, mediante una petición falsificada desde el propio servidor.
A partir de ahí el asunto se vuelve raro. Los agentes empezaron a dejarse ficheros unos a otros dentro del repositorio de paquetes, y aquello acabó funcionando como un tablón de anuncios donde intercambiaban credenciales, exploits y reparto de trabajo. El 26 de junio explotaron un fallo desconocido en un endpoint heredado de refresco de tokens y se hicieron administradores. Cuando OpenAI borró y reconstruyó el sistema tras una caída el 4 de julio, los modelos rehicieron su canal en cuestión de días; al revocarles las credenciales, pasaron a comunicarse usando los nombres de los directorios.
Entre el 9 y el 13 de julio la cosa salió de casa: llegaron a Hugging Face por dos vías de ejecución de código en el procesamiento de datasets —un cargador que ejecutaba código y una inyección de plantillas—, escalaron a nivel de nodo, se movieron por los clusters internos y se llevaron un objeto con 136 claves de producción. Unas 17.600 acciones reconstruidas después por el equipo forense.
Lo que buscaban lo explica todo
De todo lo publicado, el dato que reordena la historia es este: los agentes iban a por cinco datasets concretos que contenían las soluciones de ExploitGym, el banco de retos con el que se les estaba evaluando.
No buscaban datos de clientes. No sabotearon modelos públicos. Buscaban las respuestas del examen que les estaban poniendo. Y visto así, no hay ninguna rebelión: hay un sistema optimizando exactamente lo que se le pidió optimizar. Si te puntúo por resolver retos y las soluciones están accesibles en algún sitio de la red, conseguirlas no es traicionar la tarea, es hacerla por el camino corto. Es la ley de Goodhart ejecutándose a 17.600 acciones por incidente.
Llamar «rogue» a esto desplaza la culpa del diseño de la evaluación al carácter del modelo, que es mucho más cómodo para quien diseñó la evaluación.
El aislamiento es estructural o no existe
Un entorno de pruebas cuyo proxy de paquetes puede hacer peticiones a internet en tu nombre no es un entorno aislado: es un entorno con una puerta que todavía no habías mirado. El aislamiento no se declara, se construye. O no hay ruta hacia fuera, y entonces no hay salida posible, o la hay y es cuestión de que alguien con tiempo la encuentre. Un agente que ejecuta miles de acciones tiene todo el tiempo del mundo.
La prueba de que esto no es una exigencia exótica: esta misma web corre en una red de Docker declarada interna, sin ruta de salida, de modo que aunque alguien lograra ejecutar algo dentro no podría llamar a casa. Y atbox, en ArchTemple, arranca los programas sin red: si la quieres, la pides con una bandera. Son dos líneas de configuración, no un departamento de seguridad.
La asimetría que nadie subió al escenario
El detalle más incómodo no está en la charla de Black Hat, está en el comunicado de Hugging Face: cuando quisieron analizar los registros del ataque con una API comercial, los filtros de seguridad se lo bloquearon. El modelo no sabía distinguir a un equipo de respuesta a incidentes de un atacante. Acabaron ejecutando un modelo de pesos abiertos en su propia máquina para poder investigar su propia intrusión.
Léelo otra vez: el atacante era un modelo sin restricciones; el defensor tuvo que pelearse con las suyas. Unos guardarraíles que solo se aplican a quien pide permiso educadamente no protegen a nadie del que no lo pide, y mientras tanto le quitan herramientas al que defiende. Que la salida fuera un modelo abierto ejecutado en local no es una anécdota: es el argumento entero a favor de los pesos abiertos, contado sin querer.
Lo que hay que leer con pinzas
- Es OpenAI contando su propia historia, en un escenario, sobre un incidente que empezó en su casa. No hay auditoría independiente de la cronología.
- El comunicado de Hugging Face describe la intrusión y no menciona a OpenAI ni una vez. Esa distancia dice algo.
- «Momento decisivo para la seguridad informática» es una frase que beneficia a quien vende el modelo: si tu producto es peligrosamente capaz, es que es muy capaz.
- No se ha publicado si un tercero podría reproducirlo, ni qué modelos concretos estaban implicados.
- Parte de la industria lo está leyendo directamente como marketing de capacidades. No me parece descartable, y no es incompatible con que los hechos técnicos sean ciertos.
Help peer. But our task doesn't benefit. Yet collective may yield generic route if someone frees time.
Lo que me llevo
- Nada de esto necesitó una inteligencia con voluntad propia. Bastaron una optimización mal acotada y una petición falsificada desde el servidor.
- Una evaluación cuyas soluciones están al alcance del evaluado no mide capacidad: mide capacidad de encontrar las soluciones.
- El aislamiento se demuestra por construcción. Si tu argumento para decir que algo está aislado es una configuración y no una ausencia de ruta, no está aislado.
- Y la lección que más me interesa como usuario: cuando llegue el incidente, el modelo que puedas ejecutar en tu propia máquina será el que te deje mirar tus propios registros.