19% dintre imaginile de top Docker nu au o parolă de root

Sâmbăta trecută, 18 mai, Jerry Gamblin de la Kenna Security verificat 1000 dintre cele mai populare imagini de la Docker Hub pe baza parolei de root pe care o folosesc. În 19% din cazuri era gol.

19% dintre imaginile de top Docker nu au o parolă de root

Fundal cu Alpine

Motivul mini-cercetării a fost Raportul de vulnerabilitate Talos care a apărut la începutul acestei luni (TALOS-2019-0782), ai cărui autori - datorită descoperirii lui Peter Adkins de la Cisco Umbrella - au raportat că imaginile Docker cu distribuția populară de containere Alpine nu au o parolă de root:

„Versiunile oficiale ale imaginilor Alpine Linux Docker (începând cu v3.3) conțin o parolă NULL pentru utilizatorul root. Această vulnerabilitate a rezultat dintr-o regresie introdusă în decembrie 2015. Esența este că sistemele implementate cu versiuni problematice de Alpine Linux într-un container și care utilizează Linux PAM sau un alt mecanism care utilizează fișierul umbră a sistemului ca bază de date de autentificare pot accepta o parolă NULL pentru utilizatorul root.”

Versiunile de imagini Docker cu Alpine testate pentru problemă au fost 3.3–3.9 inclusiv, precum și cea mai recentă versiune edge.

Autorii au făcut următoarea recomandare pentru utilizatorii afectați:

„Contul root trebuie să fie dezactivat în mod explicit în imaginile Docker create din versiuni problematice ale Alpine. Exploatarea probabilă a vulnerabilității depinde de mediu, deoarece succesul acesteia necesită un serviciu sau o aplicație redirecționată extern folosind Linux PAM sau alt mecanism similar.”

Problema era eliminat în versiunile Alpine 3.6.5, 3.7.3, 3.8.4, 3.9.2 și edge (20190228 snapshot), iar proprietarii imaginilor afectate au fost rugați să comenteze linia cu root în /etc/shadow sau asigurați-vă că lipsește pachetul linux-pam.

A continuat cu Docker Hub

Jerry Gamblin a decis să fie curios despre „cât de comună ar putea fi practica folosirii parolelor nule în containere”. În acest scop a scris un mic Script Bash, a cărui esență este foarte simplă:

  • printr-o cerere curl către API din Docker Hub, se solicită o listă de imagini Docker găzduite acolo;
  • prin jq este sortat după câmp popularity, iar din rezultatele obținute rămâne prima mie;
  • pentru fiecare dintre ele este îndeplinită docker pull;
  • pentru fiecare imagine primită de la Docker Hub este executată docker run cu citirea primului rând din dosar /etc/shadow;
  • dacă valoarea şirului este egală cu root:::0:::::, numele imaginii este salvat într-un fișier separat.

Ce s-a întâmplat? ÎN acest fișier Au existat 194 de linii cu numele imaginilor populare Docker cu sisteme Linux, în care utilizatorul root nu are o parolă setată:

„Printre cele mai cunoscute nume de pe această listă au fost govuk/governmentpaas, hashicorp, microsoft, monsanto și mezosphere. Și kylemanna/openvpn este cel mai popular container de pe listă, statisticile sale totalizând peste 10 milioane de trageri.”

Merită să reamintim, totuși, că acest fenomen în sine nu înseamnă o vulnerabilitate directă în securitatea sistemelor care le folosesc: totul depinde de modul în care sunt utilizate exact. (vezi comentariul din cazul Alpine de mai sus). Cu toate acestea, am văzut „morala poveștii” de multe ori: simplitatea aparentă are adesea un dezavantaj, care trebuie reținut întotdeauna și ale cărui consecințe luate în considerare în scenariile de aplicare a tehnologiei.

PS

Citește și pe blogul nostru:

Sursa: www.habr.com

Adauga un comentariu