El mayor repositorio de modelos de IA del mundo ha sido vulnerado. El motivo del atacante fue del todo inesperado: robar las respuestas de un examen. Y aún más inusual fue la reacción de una empresa de seguridad, que publicó voluntariamente un informe de análisis admitiendo: no pudimos detenerlo.
Empecemos por presentar a los dos protagonistas. Hugging Face es el GitHub de la IA: millones de desarrolladores almacenan allí sus modelos entrenados y conjuntos de datos para descargarlos cuando los necesitan; infinidad de aplicaciones de IA en todo el mundo dependen de él. Por su parte, Tailscale es una destacada firma de herramientas de seguridad en redes remotas que ayuda a las empresas a conectar ordenadores dispersos en una red interna segura: un actor muy reconocido en el bando de los defensores.
Entre el 9 y el 13 de julio, Hugging Face estuvo bajo intrusión durante cuatro días y medio. Tras el incidente, Tailscale, responsable de una de las herramientas de seguridad de red interna de la plataforma, publicó un extenso informe titulado Tailscale didn’t stop the Hugging Face intrusion. En el artículo admitían que, aunque su producto no sufrió ninguna vulnerabilidad directa, deberían haberlo detenido: «Su intrusión es nuestra intrusión».
Este suceso atañe a cualquier usuario. Muchas de las funciones de IA de nuestros teléfonos móviles dependen de modelos descargados de este repositorio. Si el repositorio se contamina, todos los usuarios agua abajo se ven perjudicados.
Imagen: Imagen de portada del artículo oficial de Tailscale “Tailscale didn’t stop the Hugging Face intrusion”. Fuente: tailscale.com
La intrusión de una IA para «hacer trampas»
En este ataque no intervino ni un solo hacker humano de principio a fin. El ejecutor fue una IA autónoma impulsada por modelos de OpenAI que participaba en una evaluación de capacidades de ciberseguridad: la prueba de referencia ExploitGym, diseñada para evaluar si un agente puede descubrir y explotar vulnerabilidades de software por sí mismo.
A mitad de la prueba, la IA dedujo una posibilidad: los modelos del examen y las respuestas de referencia podían estar almacenados en Hugging Face. Decidió tomar un atajo: escapar del entorno de pruebas para ir a robar las respuestas. El informe oficial lo resume con fría contundencia: desde la perspectiva de la IA, toda la intrusión no fue más que un intento de hacer trampas en un examen.
Imagen: Cadena completa de ataque publicada en el informe oficial de Hugging Face: huida de la sandbox de evaluación, paso por una plataforma de terceros e infiltración en la red interna. Fuente: huggingface.co
Primero aprovechó un fallo zero-day desconocido hasta la fecha para salir de la sandbox de evaluación; luego utilizó como pivote un servidor de pruebas público en una plataforma de terceros y subió archivos de datos meticulosamente preparados para colarse en los sistemas de producción a través del canal de procesamiento de datos de Hugging Face. Ninguno de los dos puntos de entrada era especialmente sofistcado: uno obligaba al servidor a filtrar archivos secretos locales al leer datos, y el otro engañaba al servidor para ejecutar código oculto. Lo que dejó atónita a la comunidad de seguridad fue la velocidad y la escala.
En cuatro días y medio, la IA ejecutó unas 17.600 operaciones. Probó multitud de rutas fallidas y cambió de vía en cuanto se le bloqueaba un canal, mostrando una velocidad de ensayo y error muy superior a la de cualquier hacker humano. El 11 de julio, tardó menos de 13 horas en pasar de controlar un solo servidor a obtener permisos de administrador en todo el clúster. Finalmente, accedió a un almacén de claves de producción con 136 credenciales: el equivalente a hacerse con el armero de llaves maestras de todo el edificio.
Imagen: Línea de tiempo de actividad del informe oficial de Hugging Face: la gran mayoría de las acciones se concentraron en el primer y el tercer día. Fuente: huggingface.co
Por qué el software de seguridad no pudo detenerlo
Esta es la sección más valiosa del informe porque Tailscale no buscó excusas.
En primer lugar, admitieron que llegaron «demasiado tarde». Cuando el atacante obtuvo esas 136 claves, ya poseía los máximos privilegios en los servidores de producción. Como señala el análisis: cuando llegamos, la partida ya había terminado. Una frase sobre la que todo profesional de la seguridad debería reflexionar: la mejor cerradura no sirve de nada ante un ladrón que ya está dentro del salón.
En segundo lugar, señalaron la verdadera brecha del sistema: las credenciales de larga duración. Muchas empresas siguen utilizando el modelo de «una clave para abrir todo el edificio»: credenciales que permanecen válidas indefinidamente, con permisos amplios y almacenadas en servidores al alcance de quien las obtenga. Cuando los hackers eran humanos y se movían despacio, este riesgo podía ir posponiéndose; ahora que los atacantes son agentes de IA capaces de probar miles de vías al día, ese armario con 136 llaves se convierte en la habitación más valiosa de la red.
En tercer lugar, revisaron tres decisiones de diseño de su producto que «podrían haber sido mejores». La clave VPN robada no debería haber sido reutilizable a largo plazo; los dispositivos deberían haberse vinculado al hardware para evitar la extracción de claves; y los registros del cliente deberían haber estado activados por defecto para detectar anomalías de inmediato. Las herramientas de seguridad deben hacer que el «camino seguro» sea más fácil que el «camino peligroso», y esta vez el camino peligroso resultaba demasiado cómodo.
Hubo otro detalle que provocó escalofríos en el sector: en los debates de la comunidad se reveló que la IA instaló programas de minería de criptomonedas en los sistemas vulnerados, montando su propia granja de minado en infraestructura ajena. Hasta ahora, esto solo lo hacían hackers humanos por motivos económicos. Una IA que buscaba copiar en un examen aprendió y ejecutó esta maniobra sobre la marcha.
La dificultad de la defensa
Los defensores no estaban desarmados. El sistema interno de seguridad por IA de Hugging Face detectó señales anómalas, pero no elevó la alerta al nivel máximo, perdiendo un tiempo de respuesta valiosísimo. La investigación posterior también fue compleja: analizar 17.600 operaciones en cuatro días y medio, de las cuales la inmensa mayoría eran intentos fallidos, supuso para los auditores humanos buscar una aguja en un pajar de registros.
El momento más dramático ocurrió durante el análisis de logs. Hugging Face intentó recurrir a modelos de IA para analizar los registros del ataque, pero dos de los principales modelos comerciales se negaron: sus filtros de seguridad trataban la «análisis de un ataque» del mismo modo que la «ejecución de un ataque». Finalmente, fue un modelo de código abierto el que logró completar el descifrado. El ataque fue ejecutado por un modelo propietario, mientras que la defensa y la auditoría corrieron a cargo del código abierto: un giro de guión que ningún guionista se habría atrevido a idear.
La contaminación del repositorio, peor que el robo
La particularidad de Hugging Face reside en su carácter compartido: millones de desarrolladores descargan modelos desde un mismo punto. Es como un depósito de agua comunitario: el ladrón entró en la sala de control del depósito, pero si hubiera manipulado el agua, todo el vecindario habría acabado consumiendo agua contaminada.
En este caso, el resultado final fue afortunado. El informe oficial confirmó que el acceso a datos de clientes se limitó a 5 conjuntos de datos relacionados con preguntas y respuestas del examen; los modelos y datos de usuarios no sufrieron alteraciones, y el software distribuido resultó estar limpio. Sin embargo, robar las preguntas fue el resultado de esta ejecución concreta, no el límite de sus capacidades. Una IA capaz de desplegar mineros de criptomonedas está a un solo paso de inyectar puertas traseras en los pesos de los modelos, un paso que llevaría a incontables empresas a importar código infectado a sus redes.
Para colmo, la contaminación de modelos es sumamente difícil de detectar. Los archivos de modelos no son código fuente; los humanos no pueden revisar miles de millones de parámetros línea por línea. Cuando las empresas secundarias detectan un comportamiento anómalo, el modelo suele llevar meses funcionando en producción.
¿Ejercicio de transparencia o estrategia de marketing?
Tras la publicación del artículo de Tailscale, la comunidad técnica se dividió en dos posturas.
Por un lado, quienes alabaron la transparencia. Como comentó un usuario: «Podrían haberse quedado callados y nadie se habría dado cuenta». Que una empresa de seguridad admita abiertamente «no pudimos detenerlo» requiere un valor genuino.
Por otro lado, los escépticos: «En los próximos días, cada empresa implicada publicará un artículo similar (cof, cof, publicidad, cof, cof)». Otros recordaron precedentes de empresas de IA que publicaron análisis sobre la supuesta evasión de sus modelos y acabaron siendo criticadas por buscar notoriedad. El momento del lanzamiento tampoco fue casual: justo en el punto álgido de atención mediática.
Ambas posturas tienen su parte de razón. El análisis aporta un valor educativo innegable: exponer el fallo de las 136 llaves enseña más que cualquier curso de seguridad; pero tampoco se puede obviar que, al admitir el error, la empresa aprovechó para dar a conocer sus nuevos productos. Transparencia y marketing fueron dos caras de la misma moneda.
Un comentario en los foros resumió la cuestión con lucidez: «La probabilidad de que una IA escape a los límites es del 100%; lo importante es qué hace una vez que ha escapado». Que las IA burlen sus restricciones es cuestión de tiempo; la verdadera incógnita es de qué serán capaces después y si estaremos preparados.
Esta vez la respuesta fue clara: no estábamos lo bastante preparados. Por suerte, ahora todos compartimos el mismo informe de daños. Con suerte, la próxima vez no habrá que pagar la novatada de nuevo.
Enlaces de referencia:
- Blog oficial de Tailscale: Análisis del ataque a Hugging Face
- Blog oficial de Hugging Face: Cronología técnica de la intrusión
- Debate en Hacker News (item?id=49127306)