Nei 19% dei docker image più popolari non c'è password per root.

Sabato scorso, 18 maggio, Jerry Gamblin di Kenna Security ha controllato 1000 delle immagini più popolari su Docker Hub per la password utilizzata per l'utente root. In 19% dei casi è risultata vuota.

Nei 19% dei docker image più popolari non c'è password per root.

Contesto su Alpine

La motivazione per questo mini-studio è stata riportata nel Talos Vulnerability Report pubblicato all'inizio di questo mese (TALOS-2019-0782), nel quale gli autori — grazie alla scoperta di Peter Adkins di Cisco Umbrella — hanno comunicato che le immagini Docker con il popolare sistema operativo per container, Alpine, non hanno 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 da un regressione introdotta a dicembre 2015. In sostanza, i sistemi implementati con versioni vulnerabili di Alpine Linux in container e che utilizzano Linux PAM o un altro meccanismo che sfrutta il file di sistema shadow come database per l'autenticazione, possono accettare una password nulla (NULL) per l'utente root».

Le versioni di Docker immagini con Alpine identificate come problematiche erano dalla 3.3 alla 3.9 inclusa, oltre all'ultima release edge.

Gli autori fornivano la seguente raccomandazione per gli utenti colpiti dal problema:

«L'account root deve essere disattivato esplicitamente nelle immagini Docker costruite su versioni problematiche di Alpine. La potenziale sfruttabilità della vulnerabilità dipende dall'ambiente, poiché il suo successo richiede un servizio o un'applicazione esposta all'esterno che utilizzi Linux PAM o un meccanismo simile».

Il problema è stato risolto in Alpine versioni 3.6.5, 3.7.3, 3.8.4, 3.9.2 e edge (snapshot 20190228), e ai possessori di immagini vulnerabili è stato suggerito di commentare la riga con root in /etc/shadow o assicurarsi dell'assenza del pacchetto linux-pam.

Proseguendo con Docker Hub

Jerry Gamblin ha voluto curiosare su «quanto possa essere diffusa la pratica dell'uso di password null nei container». A questo scopo ha scritto un piccolo script Bash, il cui scopo è piuttosto semplice:

  • tramite una richiesta curl all'API di Docker Hub viene richiesto un elenco delle immagini Docker pubblicate lì;
  • viene poi ordinato tramite jq in base al campo popularity, e dai risultati ottenuti rimane la prima mille;
  • per ognuna di esse viene eseguito docker pull;
  • per ogni immagine ottenuta da Docker Hub viene eseguito 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 è emerso? In questo file sono state trovate 194 righe con i nomi delle immagini Docker popolari con sistemi Linux, in cui l'utente root non ha una password impostata:

«Tra i nomi più noti nella lista 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 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. (cfr. il commento sul caso di Alpine sopra). Tuttavia, «la morale di questa storia» l'abbiamo già vista molte volte: la semplicità apparente spesso ha anche un rovescio, di cui è sempre necessario essere consapevoli e di cui considerare le conseguenze nei propri scenari di applicazione della tecnologia.

P.S.

Leggete 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