Em 25 de abril de 2019, o Docker descobriu um acesso não autorizado a um único banco de dados do Docker Hub. Os dados de aproximadamente 190.000 contas — pouco menos de 5% dos usuários do Hub — podem ter sido expostos: nomes de usuário, hashes de senha bcrypt e os tokens de acesso do GitHub e do Bitbucket que alimentavam o recurso de compilação automática do Docker. O Docker divulgou o caso dois dias depois, por meio de avisos enviados por e-mail e de um anúncio de suporte feito por Kent Lamb, seu Diretor de Suporte.
A exposição dos tokens importou muito mais do que as senhas. O ZDNet observou que a maioria dos usuários do Docker Hub são funcionários dentro de grandes empresas, que compilam automaticamente imagens de contêiner que acabam implantadas em produção. Qualquer pessoa que tivesse esses tokens poderia acessar repositórios de código-fonte privados ou, pior, modificar silenciosamente os Dockerfiles que compilam o software de produção. O próprio Docker não conseguiu dizer se o invasor havia baixado algo — apenas que o acesso "pode ter sido exposto".
A resposta do Docker foi a única segura, e foi disruptiva por concepção: redefinir as senhas expostas, revogar todos os tokens afetados do GitHub e do Bitbucket e desvincular os repositórios. Os usuários tiveram de reconectar seus repositórios e auditar os registros de segurança do GitHub e do Bitbucket em busca de sinais de uso indevido. Nos próprios fóruns do Docker, usuários relataram o surgimento inesperado de chaves de implantação "Docker Cloud Build" em seus repositórios do GitHub enquanto as integrações revogadas eram processadas, e perguntaram em vão como saber se sua conta realmente estava entre as 190.000.
O Docker nunca identificou publicamente o invasor nem confirmou qualquer exfiltração. Afirmou que as imagens oficiais não foram afetadas e implementou medidas de segurança adicionais para garantir sua integridade. O dano duradouro foi à confiança: o registro que o ecossistema de contêineres trata como infraestrutura básica havia mostrado que uma violação ali entrega a um atacante as chaves do código-fonte dos clientes, não apenas seus logins.
Todas as senhas afetadas foram redefinidas; os tokens do GitHub/Bitbucket de cada compilação automática foram revogados e os repositórios desvinculados — as compilações ficaram quebradas até que cada proprietário reconectasse
Tokens OAuth de longa duração para o GitHub e o Bitbucket ficavam em um único banco de dados operacional do Hub, de modo que uma única intrusão expôs os pipelines de código dos clientes, e não apenas seus logins.
O Docker Hub havia se tornado o registro público de fato para todo o ecossistema de contêineres, de modo que seu raio de impacto era o da indústria, não o de um único fornecedor.
O Docker não conseguiu determinar se os dados haviam sido baixados, deixando cerca de 190.000 equipes de segurança a presumir o pior e auditar seus repositórios manualmente.
As contas expostas não eram usuários comuns, mas operadores corporativos de compilação automática, o que tornou a exposição de credenciais um risco ativo de cadeia de suprimentos, e não uma redefinição de senha de rotina.
A lição
Um registro que todos tratam como infraestrutura também é um repositório de credenciais upstream. Tokens de controle de código-fonte de longa duração em um único banco de dados operacional transformaram uma breve intrusão em uma auditoria de toda a indústria.
O Docker redefiniu as senhas afetadas, revogou os tokens de compilação automática e desvinculou os repositórios, e orientou os clientes a verificar seus registros do GitHub e do Bitbucket em busca de acessos inesperados. As imagens oficiais foram declaradas intactas, com medidas extras de integridade adicionadas. Nenhuma exfiltração foi jamais confirmada e nenhum atacante foi nomeado publicamente. O incidente tornou-se uma citação recorrente nos conselhos de segurança da cadeia de suprimentos sobre manter as credenciais de CI para controle de código-fonte de curta duração e com escopo restrito.
CONFIRA AS EVIDÊNCIAS
As fontes
- Docker Hub hack exposed data of 190,000 users ZDNet · zdnet.com ·
- Docker Hub Breach Hits 190,000 Accounts SecurityWeek · securityweek.com ·
- Docker Hub Security Breach details, signs/hints Docker Community Forums · forums.docker.com ·