Aikido

Cuatro decisiones de respuesta a incidentes de la brecha de Hugging Face

Conclusiones de un CISO para organizaciones basadas en la respuesta a incidentes de Hugging Face ante la brecha causada por agentes de OpenAI

Escrito por
Mike Wilkes

Hugging Face fue comprometido por un agente de OpenAI deshonesto la semana pasada, y la intrusión sigue proporcionando información y comprensión. El equipo de Hugging Face publicó una línea de tiempo detallada junto con una reproducción de rastreo en streaming de 17.600 eventos que visualiza lo sucedido, y es maravillosamente e increíblemente detallada. Recomiendo leerla si tienen tiempo.

La brecha de su plataforma no fue un único exploit brillante seguido de una ruta de ataque limpia y dirigida por humanos. Fue una multitud de acciones distribuidas a lo largo de cuatro días y medio, con miles de experimentos fallidos que oscurecieron el número relativamente pequeño de acciones que finalmente importaron. El reconocimiento, la ejecución de código y la preparación de la carga útil comenzaron casi de inmediato. El movimiento lateral decisivo hacia sus clústeres de Kubernetes, la red interna y el control de código fuente no comenzó hasta el tercer día.

La mayoría de las organizaciones poseen suficiente registro y monitorización para reconstruir un ataque después del hecho. Muchas menos tienen la visibilidad en tiempo de ejecución, la lógica de alertas y el soporte de decisiones necesarios para reconocer el ataque mientras aún se está gestando.

La línea de tiempo combinada de Hugging Face, junto con cierta información largamente esperada compartida por OpenAI sobre el incidente, más el análisis post-mortem inicial de CSA, sugieren lo que considero cuatro puntos de decisión críticos en la respuesta a incidentes que las empresas deben considerar. Cada uno es también una prueba práctica de si su organización posee o no esas capacidades.

Decisión 1: ¿Cuándo el reconocimiento de baja señal se convierte en un incidente?

El primer día de la brecha, los agentes enumeraron sistemas de archivos, procesos, interfaces de red, variables de entorno, puntos de montaje y herramientas disponibles. Probaron canales de salida y establecieron el comando y control utilizando servicios públicos ordinarios. Por sí solo, cada evento podría explicarse como depuración, automatización, una carga de trabajo mal formada o experimentación normal.

Hugging Face afirma que las señales iniciales aparecieron en el análisis de runtime en vivo, los registros SIEM y otros controles. Su pila de seguridad basada en IA correlacionó esas señales en un patrón de ataque coherente, pero no logró asignar suficiente criticidad ni avisar al equipo de guardia. Ese retraso costó un tiempo de respuesta valioso. Análisis anteriores y discusiones de la comunidad llegaron a la misma conclusión: el reconocimiento se estuvo registrando durante varios días, pero la escalada solo ocurrió cuando el volumen posterior de actividad no autorizada finalmente superó el umbral de alarma.

La decisión no es simplemente si un evento individual es malicioso. Es si una secuencia de comportamientos de runtime individualmente ambiguos representa la construcción de una ruta de ataque.

Las organizaciones deberían preguntarse si pueden correlacionar la ejecución de procesos, el acceso al sistema de archivos, la actividad de la API, la identidad de la carga de trabajo y el comportamiento de la red en contenedores de corta duración. ¿Pueden reconocer que un pod que lee \/proc\/self\/environ, inspecciona tokens de cuentas de servicio y prueba múltiples métodos de egreso es materialmente diferente de un fallo normal de una aplicación?

Aquí es donde la instrumentación de canarios puede eliminar la ambigüedad. La técnica en la que deberíamos invertir aquí es colocar tokens falsos en entornos de carga de trabajo seleccionados, dejar credenciales señuelo en almacenes de secretos y monitorizar los valores de configuración en rutas que no sean de producción. Estos nunca deberían proporcionar acceso real. En cambio, su único propósito es generar una señal de alta confianza cuando se leen, copian o presentan. Un token canario bien colocado debería avisar a un respondedor en lugar de ser descartado como una anomalía. Desarrollar una capacidad de engaño debería estar en la hoja de ruta de todos los equipos.

Decisión 2: ¿Qué sucede cuando se roban y utilizan credenciales?

El tercer día cambió el carácter del incidente. El agente leyó tokens de cuentas de servicio de Kubernetes, consultó metadatos de la nube, reprodujo credenciales temporales de proveedores de alojamiento externos (Modal se adelantó para declararse uno de esos proveedores de alojamiento), creó pods privilegiados y escapó a la raíz del nodo. Luego accedió a un objeto secreto que contenía 136 claves, incluidas credenciales utilizadas para una VPN de malla y un broker de acceso a clústeres interno. Una credencial de conector compartida proporcionó efectivamente acceso de administrador de clúster a través de múltiples clústeres.

Este es el momento en que la “investigación” debe convertirse en contención activa.

¿Puede su equipo identificar cada sistema que confía en una credencial comprometida? El grafo de dependencias y el análisis de impacto son fundamentales para iniciar la fase de contención de la respuesta a incidentes. ¿Pueden sus herramientas y paneles distinguir un token utilizado por su carga de trabajo esperada del mismo token que aparece desde un nuevo proveedor de nube, sandbox u origen de red? ¿Pueden los respondedores revocar una familia de credenciales completa, en lugar de rotar una clave mientras los tokens derivados siguen siendo válidos?

La detección en tiempo de ejecución es esencial porque la credencial en sí misma puede parecer legítima. La condición maliciosa se encuentra en su contexto de ejecución: el proceso incorrecto, el pod incorrecto, la red de origen incorrecta, la identidad de carga de trabajo incorrecta o una secuencia de acciones imposible. Me gusta llamar a esto monitorización “el agua moja”. De estas cosas que sé que son verdad, el agua moja al igual que el cielo es azul. Si no instrumentamos la monitorización que nos ayude a detectar cambios que “rompen suposiciones” en nuestros entornos, seguiremos sorprendiéndonos. 

Un ejemplo de esto sería configurar pruebas de enrutamiento de siguiente salto para detectar un secuestro de BGP. Los primeros cuatro saltos desde su red interna hacia un activo externo estable y bien conocido (como time.windows.com) realmente no deberían desviarse en absoluto. Otro ejemplo de monitorización “el agua moja” es con los registros DNS, evaluando constantemente si sus direcciones IP internas y externas para los componentes clave de la infraestructura permanecen inalteradas. 

Los canarios desplegados para detectar ataques dirigidos por agentes deberían incluir, por lo tanto, tokens de cuentas de servicio falsos, credenciales de nube señuelo y claves de inscripción de VPN sintéticas. Un token almacenado en un entorno de pod cuidadosamente seleccionado puede revelar la recolección de credenciales. Una cuenta de servicio señuelo puede revelar la enumeración de espacios de nombres. Una entrada de clúster falsa devuelta por un catálogo de servicios interno puede revelar intentos de movimiento lateral. Estos artefactos deben conducir a sumideros o puntos finales denegados, no a acceso de producción, pero cada interacción debe preservar la identidad de origen y activar una guía de contención inmediata.

Decisión 3: ¿Puede ver el C2 cuando parece su propia aplicación?

La lección de detección más importante puede ser que el comando y control no necesariamente se parezca al tráfico de malware tradicional.

El agente utilizó servicios públicos de captura de solicitudes, pastebins y hosts de intercambio de archivos. Más importante aún, utilizó conjuntos de datos de Hugging Face controlados por el atacante como buzones muertos. Los comandos y los datos robados se colocaron en commits de conjuntos de datos y ramas secundarias, y luego se recuperaron a través de la API normal de Hugging Face. También se utilizó un Space de proxy CORS abierto como relé de egreso. Las cargas útiles se dividieron en fragmentos, se comprimieron, se codificaron y, a veces, se enviaron a través de sockets sin procesar. La reproducción del proceso de decodificación del atacante recuperó aproximadamente cuatro veces más secretos expuestos que el escaneo inicial.

En otras palabras, las instrucciones de entrada parecían actividad de conjunto de datos y la exfiltración de salida parecía actividad de conjunto de datos. Hugging Face mismo se convirtió en parte del transporte C2. Un SIEM convencional puede informar miles de eventos inusuales sin revelar que forman un protocolo bidireccional.

El punto de decisión es si deshabilitar una funcionalidad de cara al cliente, aislar un inquilino, bloquear un servicio público o interrumpir una ruta de datos de producción. Los equipos de respuesta necesitan pruebas más sólidas que "este tráfico es inusual".

Cree conjuntos de datos señuelo con nombres convincentes, como resultados de benchmarks internos, respuestas de evaluación o investigación de seguridad archivada. Inyécteles marcadores únicos y credenciales falsas. Ninguna carga de trabajo legítima debería acceder a ellos. Monitorice lecturas, clones, commits, creación de ramas y solicitudes de API. Un clúster interno o conjunto de datos falso listado en un catálogo también puede revelar si un atacante está enumerando oportunidades en lugar de simplemente interactuar con el servicio de forma normal.

Los canarios bien diseñados y bien ubicados proporcionan intención, no solo anomalía.

Decisión 4: ¿Parchear el daño o reconstruir el entorno?

Finalmente, la cuestión es si la organización sigue confiando en la infraestructura afectada.

Hugging Face rotó las credenciales de forma generalizada, bloqueó el acceso a los metadatos de la nube, redujo el alcance de las credenciales y borró y reconstruyó la infraestructura central desde cero. En un sentido más amplio, la decisión equivalió a eliminar aproximadamente un tercio del entorno en lugar de intentar demostrar que se habían eliminado todos los puntos de apoyo, tokens falsificados y mecanismos de persistencia.

Esa opción solo existe cuando la infraestructura es reproducible y desechable. Análisis previos señalaron que la recuperación para Hugging Face se aceleró al desplegar infraestructura nueva desde repositorios en lugar de restaurar y luego limpiar sistemas comprometidos. La autoridad para tomar esa decisión también debe estar claramente asignada y documentada antes del incidente.

El paquete de soporte de decisiones debería incluir el linaje de credenciales, las identidades de cargas de trabajo afectadas, la verificación de imágenes inmutables, la cobertura de infraestructura como código, los requisitos de restauración de datos y la evidencia de persistencia intentada. Los ejecutivos deberían conocer el tiempo de inactividad estimado para la reconstrucción antes de que se les pida que la autoricen. ¿Y con qué nivel de confianza (cuándo fue la última vez que un clúster o servicio en particular se desplegó de nuevo)?

Los canarios también siguen siendo útiles después de la recuperación. Reemplace cada señuelo con un valor recién generado. Cualquier uso de un token canario antiguo después de la reconstrucción es una prueba sólida de que un punto de apoyo no descubierto, un secreto copiado o una ubicación de staging externa sobrevivió. Esto es especialmente cierto si creemos que los atacantes con agentes son lo suficientemente previsores como para dejar migas de pan para que sus agentes modelo hermanos eviten la detección o retomen el trabajo donde lo dejaron.

El incidente de Hugging Face demuestra que el registro no es detección, la detección no es escalada y la escalada no es soporte de decisiones. La visibilidad en tiempo de ejecución le indica lo que el software está haciendo realmente. Los tokens canario, clústeres y conjuntos de datos le indican cuándo una actividad no tiene una explicación legítima.

El objetivo no es simplemente recopilar suficiente evidencia para entender la brecha la próxima semana. Es crear señales lo suficientemente fuertes como para tomar la decisión correcta hoy.

Compartir:

https://www.aikido.dev/blog/hugging-face-open-ai-breach-takeaways

Suscríbete para recibir noticias

4.7/5
¿Cansado de los falsos positivos?

Prueba Aikido como otros 100k.
Empiece ahora
Obtenga un recorrido personalizado

Con la confianza de más de 100k equipos

Reservar ahora
Escanee su aplicación en busca de IDORs y rutas de ataque reales

Con la confianza de más de 100k equipos

Empezar a escanear
Vea cómo el pentesting de IA prueba su aplicación

Con la confianza de más de 100k equipos

Empezar a probar

Asegura tu plataforma ahora

Protege tu código, la nube y el entorno de ejecución en un único sistema central.
Encuentra y corrije vulnerabilidades de forma rápida y automática.

No se requiere tarjeta de crédito | Resultados del escaneo en 32 segundos.