Il 19% delle migliori immagini Docker non ha una password di root

Sabato scorso, 18 maggio, Jerry Gamblin della Kenna Security ho provato 1000 delle immagini più popolari da Docker Hub in base alla password di root utilizzata. Nel 19% dei casi era vuoto.

Il 19% delle migliori immagini Docker non ha una password di root

Sfondo con alpino

Il motivo della mini-ricerca è stato il rapporto sulle vulnerabilità di Talos apparso all'inizio di questo mese (TALOS-2019-0782), i cui autori - grazie alla scoperta di Peter Adkins di Cisco Umbrella - hanno riferito che le immagini Docker con la popolare distribuzione di container Alpine non hanno una password di root:

“Le versioni ufficiali delle immagini Docker Alpine Linux (a partire dalla v3.3) contengono una password NULL per l'utente root. Questa vulnerabilità è il risultato di una regressione introdotta nel dicembre 2015. Il succo di ciò è che i sistemi distribuiti con versioni problematiche di Alpine Linux in un contenitore e che utilizzano Linux PAM o un altro meccanismo che utilizza il file shadow del sistema come database di autenticazione possono accettare una password NULL per l'utente root.

Le versioni delle immagini Docker con Alpine testate per il problema erano 3.3–3.9 incluse, così come l'ultima versione di edge.

Gli autori hanno formulato la seguente raccomandazione per gli utenti interessati:

“L'account root deve essere esplicitamente disabilitato nelle immagini Docker create da versioni problematiche di Alpine. Il probabile sfruttamento della vulnerabilità dipende dall'ambiente, poiché il suo successo richiede un servizio o un'applicazione inoltrata all'esterno che utilizzi Linux PAM o altro meccanismo simile."

Il problema era eliminato nelle versioni Alpine 3.6.5, 3.7.3, 3.8.4, 3.9.2 e edge (istantanea 20190228) e ai proprietari delle immagini interessate è stato chiesto di commentare la riga con root in /etc/shadow oppure assicurati che manchi il pacco linux-pam.

Continua con Docker Hub

Jerry Gamblin ha deciso di essere curioso di sapere "quanto possa essere comune la pratica di utilizzare password nulle nei contenitori". A questo scopo ha scritto un piccolo Script Bash, la cui essenza è molto semplice:

  • tramite una richiesta curl all'API in Docker Hub, viene richiesto un elenco di immagini Docker ivi ospitate;
  • tramite jq viene ordinato per campo popularity, e dai risultati ottenuti restano i primi mille;
  • per ciascuno di essi si compie 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 stringa è uguale a root:::0:::::, il nome dell'immagine viene salvato in un file separato.

Quello che è successo? IN questa vita C'erano 194 righe con i nomi delle immagini Docker più diffuse nei sistemi Linux, in cui l'utente root non ha una password impostata:

“Tra i nomi più noti in questa lista c’erano govuk/governmentpaas, hashicorp, microsoft, monsanto e mesosphere. E kylemanna/openvpn è il contenitore più popolare della lista, le sue statistiche ammontano a più di 10 milioni di pull."

Vale la pena ricordare, però, che questo fenomeno di per sé non significa una vulnerabilità diretta nella sicurezza dei sistemi che li utilizzano: tutto dipende da come esattamente vengono utilizzati (vedi commento sul caso Alpine sopra). Abbiamo però visto più volte la “morale della favola”: l’apparente semplicità spesso ha un rovescio della medaglia, che va sempre ricordato e le cui conseguenze prese in considerazione nei propri scenari applicativi tecnologici.

PS

Leggi anche sul nostro blog:

Fonte: habr.com

Aggiungi un commento