19% das imagens mais populares do Docker não possuem uma senha root

No último sábado, 18 de maio, Jerry Gamblin, da Kenna Security, verificou as 1000 imagens mais populares do Docker Hub quanto à senha de root usada nelas. Em 19% dos casos, ele estava ausente.



Fundo com alpino


O motivo do mini-estudo foi o Talos Vulnerability Report ( TALOS-2019-0782 ), que apareceu no início deste mês, cujos autores - graças à descoberta de Peter Adkins da Cisco Umbrella - relataram que as imagens do Docker com o popular kit de distribuição de contêineres Alpine não têm uma senha para raiz:

“As versões oficiais das imagens do Alpine Linux Docker (começando na v3.3) contêm uma senha NULL para o usuário root. Esta vulnerabilidade apareceu como resultado de uma regressão introduzida em dezembro de 2015. Sua essência é que os sistemas implantados com versões problemáticas do Alpine Linux em um contêiner e usando o Linux PAM ou outro mecanismo que usa o arquivo de sistema sombra como um banco de dados de autenticação podem aceitar uma senha NULL para o usuário root. ”

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

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

“A conta raiz deve ser explicitamente desabilitada nas imagens do Docker criadas com base em versões problemáticas do Alpine. A provável exploração da vulnerabilidade depende do ambiente, pois seu sucesso exige um serviço ou aplicativo que foi encaminhado para fora, usando o Linux PAM ou outro mecanismo similar. ”

O problema foi corrigido nas versões Alpine 3.6.5, 3.7.3, 3.8.4, 3.9.2 e edge (snapshot 20190228), e os proprietários das imagens afetadas foram solicitados a comentar a linha com raiz no /etc/shadow ou se certificar de que não há pacote linux-pam .

Continuação com o Docker Hub


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

  • por meio de uma solicitação de curvatura para a API no Docker Hub, é solicitada uma lista de imagens do Docker hospedadas lá;
  • por jq, ele é classificado pelo campo popularity e os primeiros mil remanescentes dos resultados obtidos;
  • docker pull é executada para cada um deles;
  • para cada imagem recebida do Docker Hub, a docker run é realizada com a leitura da primeira linha do arquivo /etc/shadow ;
  • se o valor da sequência for root:::0::::: , o nome da imagem será salvo em um arquivo separado.

O que aconteceu? Este arquivo continha 194 linhas com os nomes de imagens populares do Docker com sistemas Linux, o usuário raiz no qual não possui uma senha:

“Entre os nomes mais famosos desta lista estavam govuk / governamentais, hashicorp, microsoft, monsanto e mesosfera. E o kylemanna / openvpn é o contêiner mais popular da lista, suas estatísticas somam mais de 10 milhões de tentativas. "

No entanto, vale lembrar que esse fenômeno por si só não significa uma vulnerabilidade direta na segurança dos sistemas que os utilizam: tudo depende de como eles são usados (veja o comentário do caso da Alpine acima) . No entanto, já vimos “a moralidade dessa fábula” muitas vezes: a aparente simplicidade geralmente tem uma desvantagem, que sempre deve ser lembrada e cujas consequências devem ser levadas em consideração nos cenários de aplicativos de tecnologia.

PS


Leia também em nosso blog:

Source: https://habr.com/ru/post/pt452754/


All Articles