Segundo os pesquisadores da Universidade RWTH Aachen, milhares de imagens no Docker Hub vazam segredos de autenticação e chaves privadas.
O Docker Hub é um repositório baseado em nuvem para a comunidade Docker armazenar, compartilhar e distribuir imagens do Docker.
Esses modelos de criação de contêineres incluem todo o código de software, tempo de execução, bibliotecas, variáveis de ambiente e arquivos de configuração necessários para implantar facilmente um aplicativo no Docker.
Agora, pesquisadores da Universidade RWTH Aachen, na Alemanha, publicaram um estudo revelando que dezenas de milhares de imagens de contêineres hospedadas no Docker Hub contêm segredos confidenciais, expondo software, plataformas online e usuários a uma superfície de ataque massiva.
Milhares de imagens no Docker Hub vazam segredos
Os pesquisadores alemães analisaram 337.171 imagens do Docker Hub e milhares de registros privados e descobriram que cerca de 8,5% contêm dados confidenciais, como chaves privadas e segredos de API.
O artigo mostra ainda que muitas das chaves expostas são usadas ativamente, minando a segurança de elementos que dependem delas, como centenas de certificados.
(Inadvertidamente) expondo segredos
O estudo reuniu um enorme conjunto de dados de 1.647.300 camadas de 337.171 imagens do Docker, obtendo as versões de imagem mais recentes de cada repositório quando possível.
A análise de dados usando expressões regulares para procurar segredos específicos revelou a exposição de 52.107 chaves privadas válidas e 3.158 segredos de API distintos em 28.621 imagens do Docker.
Os números acima foram validados pelos pesquisadores excluindo chaves de teste, exemplos de segredos de API e correspondências inválidas.
Descobertas secretas finais (arxiv.org)
A maioria dos segredos expostos, 95% para chaves privadas e 90% para segredos de API, residia em imagens de um único usuário, indicando que provavelmente vazaram involuntariamente.
O maior impacto foi no Docker Hub, que teve uma porcentagem de exposição secreta de 9,0%, enquanto as imagens provenientes de registros privados expuseram segredos a uma taxa de 6,3%.
Essa diferença pode indicar que os usuários do Docker Hub geralmente têm uma compreensão mais pobre da segurança do contêiner do que aqueles que configuram repositórios privados.
Uso de chaves expostas
Em seguida, os pesquisadores precisavam determinar o uso real dos segredos expostos para avaliar o tamanho da superfície de ataque.
De forma alarmante, foram encontrados 22.082 certificados comprometidos com base nas chaves privadas expostas, incluindo 7.546 certificados privados assinados por CA e 1.060 certificados públicos assinados por CA.
Os milhares de certificados assinados por CA são uma preocupação especial, pois esses certificados são normalmente usados por um grande número de usuários e são universalmente aceitos.
Na época do estudo, 141 certificados assinados por CA ainda eram válidos, diminuindo um pouco o risco.
Para determinar ainda mais o uso dos segredos expostos na natureza, os pesquisadores usaram 15 meses de medições em toda a Internet fornecidas pelo banco de dados Censys e encontraram 275.269 hosts que dependem das chaves comprometidas.
Esses incluem:
- 8.674 hosts MQTT e 19 AMQP que potencialmente transferem dados de Internet das Coisas (IoT) sensíveis à privacidade.
- 6.672 instâncias FTP, 426 PostgreSQL, 3 Elasticsearch e 3 MySQL que fornecem dados potencialmente confidenciais.
- 216 hosts SIP usados para telefonia.
- 8.165 servidores SMTP, 1.516 POP3 e 1.798 IMAP usados para e-mail.
- 240 servidores SSH e 24 instâncias do Kubernetes que usam chaves vazadas que podem levar ao acesso de shell remoto, extensão de botnets ou acesso adicional a dados.
Esse nível de exposição destaca um enorme problema na segurança do contêiner e um descuido na criação de imagens sem antes limpá-las de segredos.
Com relação à exposição da API, a análise constatou que a maioria dos contêineres (2.920) pertence a provedores de nuvem como Amazon AWS, mas alguns pertencem a serviços financeiros como Stripe.
No entanto, os pesquisadores citaram limitações éticas na validação de segredos de API expostos em seus terminais de serviço, portanto, seu uso na natureza é desconhecido.