Nel 19% delle immagini Docker più popolari non c'è password per root

Lo scorso sabato, 18 maggio, Jerry Gamblin di Kenna Security ha verificato 1000 delle immagini più popolari su Docker Hub per la password utilizzata per l'utente root. Nel 19% dei casi si è rivelata vuota.

Nel 19% delle immagini Docker più popolari non c'è password per root

Retroscena su Alpine

La motivazione dietro questo mini-studio è stata il Talos Vulnerability Report apparso all'inizio di questo mese (TALOS-2019-0782), i cui autori - grazie alla scoperta di Peter Adkins di Cisco Umbrella - hanno segnalato che le immagini Docker con il popolare distribuzione per container Alpine non hanno una password per root:

"Le versioni ufficiali delle immagini Docker di Alpine Linux (a partire da v3.3) contengono una password NULL per l'utente root. Questa vulnerabilità è emersa a causa di una regressione introdotta nel dicembre 2015. La sostanza è che i sistemi distribuiti con versioni problematiche di Alpine Linux in un container e che utilizzano Linux PAM o un altro meccanismo che coinvolge il file di sistema shadow come database per l'autenticazione, possono accettare una password nulla (NULL) per l'utente root."

Le versioni delle immagini Docker con Alpine identificate come problematiche erano le 3.3—3.9 incluse, così come l'ultima release edge.

Gli autori hanno fornito la seguente raccomandazione agli utenti colpiti dal problema:

"L'account root dovrebbe essere esplicitamente disabilitato nelle immagini Docker costruite sulle versioni problematiche di Alpine. La potenziale sfruttabilità della vulnerabilità dipende dall'ambiente poiché il suo successo richiede un servizio o un'applicazione esposta che utilizzi Linux PAM o un meccanismo simile."

Il problema è stato è stato risolto nelle versioni Alpine 3.6.5, 3.7.3, 3.8.4, 3.9.2 e edge (snapshot 20190228), e agli utenti con immagini vulnerabili è stato consigliato di commentare la riga con root in /etc/shadow o assicurarsi che il pacchetto linux-pam.

Continuazione su Docker Hub

Jerry Gamblin ha deciso di indagare "quanto possa essere comune la pratica di utilizzare password null in container". Per fare questo ha scritto un piccolo script Bash, la cui essenza è piuttosto semplice:

  • viene richiesta una lista delle immagini Docker pubblicate su Docker Hub tramite una richiesta curl all'API;
  • viene ordinata tramite jq in base al campo popolarità, e dai risultati ottenuti rimane solo il primo migliaio;
  • per ciascuna di esse viene eseguito docker pull;
  • per ogni immagine ricevuta da Docker Hub viene eseguita docker run leggendo la prima riga del file /etc/shadow;
  • se il valore della riga risulta essere root:::0:::::, il nome dell'immagine viene salvato in un file separato.

Cosa è successo allora? In questo file sono emerse 194 righe con i nomi di immagini Docker popolari con sistemi Linux, in cui l'utente root non ha una password impostata:

«Tra i nomi più noti in questo elenco ci sono govuk/governmentpaas, hashicorp, microsoft, monsanto e mesosphere. E kylemanna/openvpn è il contenitore più popolare della lista, con oltre 10 milioni di pull».

Vale tuttavia la pena ricordare che questo fenomeno di per sé non implica una vulnerabilità diretta nella sicurezza dei sistemi che li utilizzano: tutto dipende da come vengono applicati. (vedi il commento del caso con Alpine sopra). Tuttavia, "la morale di questa favola" l'abbiamo già vista molte volte: la semplicità apparente ha spesso un lato opposto di cui è sempre necessario tenere conto e le cui conseguenze devono essere considerate nei propri scenari di applicazione della tecnologia.

P.S.

Leggi anche nel nostro blog:

Fonte: habr.com

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster