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 popularitye 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: