El 25 de abril de 2019, Docker descubrió un acceso no autorizado a una única base de datos de Docker Hub. Los datos de aproximadamente 190.000 cuentas —algo menos del 5 % de los usuarios de Hub— podrían haberse visto expuestos: nombres de usuario, hashes de contraseña bcrypt y los tokens de acceso de GitHub y Bitbucket que impulsaban la función de compilación automática de Docker. Docker lo reveló dos días después mediante avisos por correo electrónico y un anuncio de soporte de Kent Lamb, su director de soporte.

La exposición de los tokens importó mucho más que las contraseñas. ZDNet señaló que la mayoría de los usuarios de Docker Hub son empleados dentro de grandes empresas, que compilan automáticamente imágenes de contenedor que se despliegan en producción. Cualquiera que tuviera esos tokens podía acceder a repositorios de código privados o, peor aún, modificar silenciosamente los Dockerfiles que compilan el software de producción. Docker no pudo afirmar si el intruso había descargado algo, solo que el acceso «podría haberse visto expuesto».

La respuesta de Docker fue la única segura, y fue disruptiva por diseño: restablecer las contraseñas expuestas, revocar todos los tokens de GitHub y Bitbucket afectados y desvincular los repositorios. Los usuarios tuvieron que volver a conectar sus repositorios y auditar sus registros de seguridad de GitHub y Bitbucket en busca de signos de uso indebido. En los propios foros de Docker, los usuarios informaron de la aparición inesperada de claves de despliegue «Docker Cloud Build» en sus repositorios de GitHub mientras las integraciones revocadas se agitaban, y preguntaron en vano cómo saber si su cuenta había estado realmente entre las 190.000.

Docker nunca identificó públicamente al intruso ni confirmó ninguna exfiltración. Dijo que las imágenes oficiales no se habían visto afectadas y desplegó medidas de seguridad adicionales para garantizar su integridad. El daño duradero fue a la confianza: el registro que el ecosistema de contenedores trata como infraestructura básica había demostrado que una brecha allí entrega a un atacante las claves del código fuente de los clientes, no solo sus inicios de sesión.

Se restablecieron todas las contraseñas afectadas; se revocaron los tokens de GitHub/Bitbucket de cada compilación automática y se desvincularon los repositorios: las compilaciones permanecieron rotas hasta que cada propietario volvió a conectarlos

Los tokens OAuth de larga duración para GitHub y Bitbucket residían en una única base de datos operativa de Hub, de modo que una sola intrusión expuso las canalizaciones de código de los clientes, no solo sus inicios de sesión.

Docker Hub se había convertido en el registro público de facto para todo el ecosistema de contenedores, por lo que su radio de impacto era el de la industria, no el de un solo proveedor.

Docker no pudo determinar si se habían descargado datos, lo que dejó a unos 190.000 equipos de seguridad suponer lo peor y auditar sus repositorios manualmente.

Las cuentas expuestas no eran usuarios medios, sino operadores corporativos de compilación automática, lo que convirtió la exposición de credenciales en un riesgo activo de cadena de suministro en lugar de un restablecimiento de contraseña rutinario.

Un registro que todos tratan como infraestructura es también una caché de credenciales de origen. Los tokens de control de código fuente de larga duración en una única base de datos operativa convirtieron una breve intrusión en una auditoría de toda la industria.

Docker restableció las contraseñas afectadas, revocó los tokens de compilación automática y desvinculó los repositorios, y dijo a los clientes que revisaran sus registros de GitHub y Bitbucket en busca de accesos inesperados. Se declaró que las imágenes oficiales no se habían visto afectadas, con medidas de integridad adicionales añadidas. Nunca se confirmó ninguna exfiltración y no se nombró públicamente a ningún atacante. El incidente se convirtió en una cita habitual en los consejos de seguridad de la cadena de suministro para mantener las credenciales de CI a control de código fuente de corta duración y con un alcance limitado.

CONSULTA LAS PRUEBAS

Las fuentes

  1. Docker Hub hack exposed data of 190,000 users ZDNet · zdnet.com ·
  2. Docker Hub Breach Hits 190,000 Accounts SecurityWeek · securityweek.com ·
  3. Docker Hub Security Breach details, signs/hints Docker Community Forums · forums.docker.com ·