19% das principais imagens do Docker não têm senha root

No último sábado, 18 de maio, Jerry Gamblin da Kenna Security verificado As 1000 imagens mais populares do Docker Hub pela senha que usam para o usuário root. Em 19% dos casos, estava vazio.

19% das principais imagens do Docker não têm senha root

Fundo com alpino

A razão para o mini-estudo foi o Relatório de Vulnerabilidade Talos que apareceu no início deste mês (TALOS-2019-0782 See More), cujos autores - graças à descoberta de Peter Adkins da Cisco Umbrella - relataram que as imagens do Docker com a popular distribuição de contêineres Alpine não possuem uma senha root:

“As versões oficiais das imagens Alpine Linux Docker (a partir da v3.3) contêm uma senha NULL para o usuário root. Essa vulnerabilidade surgiu como resultado de uma regressão apresentada em dezembro de 2015. Sua essência se resume ao fato de que os sistemas implantados com versões problemáticas do Alpine Linux em um contêiner e usando Linux PAM ou outro mecanismo que usa o arquivo shadow do sistema como banco de dados para autenticação podem aceitar uma senha nula (NULL) para o usuário root.

As versões das imagens Alpine Docker testadas para o problema foram 3.3-3.9 inclusive, bem como a versão mais recente do edge.

Os autores fizeram a seguinte recomendação aos usuários afetados:

“A conta raiz deve ser explicitamente desativada nas imagens do Docker criadas a partir de versões problemáticas do Alpine. A provável exploração da vulnerabilidade depende do ambiente, pois seu sucesso requer um serviço ou aplicativo encaminhado externamente usando Linux PAM ou outro mecanismo semelhante.

o problema era eliminado nas versões Alpine 3.6.5, 3.7.3, 3.8.4, 3.9.2 e edge (instantâneo 20190228), e os proprietários das imagens afetadas foram solicitados a comentar a linha com root em /etc/shadow ou verifique se o pacote está faltando linux-pam.

Continuação do Docker Hub

Jerry Gamblin decidiu perguntar sobre "quão comum pode ser a prática de usar senhas nulas em contêineres". Para fazer isso, ele escreveu um pequeno script bash, cuja essência é muito simples:

  • por meio de uma solicitação de curl para a API no Docker Hub, é solicitada uma lista de imagens do Docker hospedadas lá;
  • via jq ele classifica por campo popularity, e dos resultados obtidos, restam os primeiros mil;
  • para cada um deles, docker pull;
  • para cada imagem recebida do Docker Hub, docker run lendo a primeira linha do arquivo /etc/shadow;
  • se o valor da string for igual a root:::0:::::, o nome da imagem é salvo em um arquivo separado.

O que aconteceu? EM este ficheiro foram 194 linhas com nomes de imagens populares do Docker com sistemas Linux, nas quais o usuário root não tem senha definida:

“Entre os nomes mais famosos desta lista estavam govuk/governmentpaas, hashicorp, microsoft, monsanto e mesosphere. E kylemanna/openvpn é o container mais popular da lista, com mais de 10 milhões de pulls.”

No entanto, vale lembrar que esse fenômeno em si não significa uma vulnerabilidade direta na segurança dos sistemas que os utilizam: tudo depende de como exatamente eles são usados. (veja o comentário do caso Alpine acima). Porém, já vimos muitas vezes a “moral dessa história”: a aparente simplicidade costuma ter um lado negativo, do qual você deve sempre se lembrar e levar em consideração as consequências disso em seus cenários de uso da tecnologia.

PS

Leia também em nosso blog:

Fonte: habr.com

Adicionar um comentário