19% najboljih Docker slika nema root lozinku

Prošle subote, 18. svibnja, Jerry Gamblin iz Kenna Securityja provjereno 1000 najpopularnijih slika iz Docker Huba prema lozinci koju koriste za root korisnika. U 19% slučajeva pokazalo se da je prazan.

19% najboljih Docker slika nema root lozinku

Pozadina s Alpine

Povod za mini studiju bilo je izvješće o ranjivosti Talosa koje se pojavilo ranije ovog mjeseca (TALOS-2019-0782), čiji su autori – zahvaljujući otkriću Petera Adkinsa iz Cisco Umbrelle – objavili da Docker slike s popularnom distribucijom kontejnera Alpine nemaju root lozinku:

“Službene verzije Alpine Linux Docker slika (počevši od v3.3) sadrže NULL lozinku za root korisnika. Ova se ranjivost pojavila kao rezultat regresije predstavljene u prosincu 2015. Njegova se bit svodi na činjenicu da sustavi implementirani s problematičnim verzijama Alpine Linuxa u spremniku i koji koriste Linux PAM ili neki drugi mehanizam koji koristi datoteku sjene sustava kao bazu podataka za autentifikaciju mogu prihvatiti null (NULL) lozinku za root korisnika.

Inačice Alpine Docker slika testirane za problem bile su 3.3-3.9 uključivo, kao i najnovije izdanje edgea.

Autori su dali sljedeće preporuke pogođenim korisnicima:

“Root račun mora biti eksplicitno onemogućen u Docker slikama napravljenim od problematičnih verzija Alpinea. Vjerojatno iskorištavanje ranjivosti ovisi o okruženju, budući da njen uspjeh zahtijeva eksterno proslijeđenu uslugu ili aplikaciju koja koristi Linux PAM ili neki drugi sličan mehanizam.

Problem je bio eliminiran u Alpine verzijama 3.6.5, 3.7.3, 3.8.4, 3.9.2 i edge (snimka 20190228), a vlasnici zahvaćenih slika zamoljeni su da komentiraju redak s korijenom u /etc/shadow ili provjerite nedostaje li paket linux-pam.

Nastavak iz Docker Huba

Jerry Gamblin odlučio se raspitati "koliko bi praksa korištenja null lozinki u spremnicima mogla biti uobičajena". Da bi to učinio, napisao je mali bash skripta, čija je suština vrlo jednostavna:

  • putem curl zahtjeva API-ju u Docker Hubu, traži se popis Docker slika koje se tamo nalaze;
  • preko jq razvrstava po polju popularity, a od dobivenih rezultata ostaje prva tisućica;
  • za svakog od njih, docker pull;
  • za svaku sliku primljenu od Docker Huba, docker run čitanje prvog reda iz datoteke /etc/shadow;
  • ako je vrijednost niza jednaka root:::0:::::, naziv slike sprema se u zasebnu datoteku.

Što se dogodilo? U ovu datoteku bilo je 194 retka s nazivima popularnih Docker slika s Linux sustavima, u kojima root korisnik nema postavljenu lozinku:

“Među najpoznatijim imenima na ovoj listi bili su govuk/governmentpaas, hashicorp, microsoft, monsanto i mesosphere. A kylemanna/openvpn je najpopularniji spremnik na popisu, s više od 10 milijuna povlačenja.”

Međutim, vrijedi podsjetiti da ovaj fenomen sam po sebi ne znači izravnu ranjivost u sigurnosti sustava koji ih koriste: sve ovisi o tome kako se točno koriste. (vidi komentar iz slučaja Alpine iznad). No, već smo se mnogo puta uvjerili u “moral ove priče”: prividna jednostavnost često ima i lošu stranu, čega se uvijek trebate sjetiti i uzeti u obzir posljedice toga u svojim scenarijima korištenja tehnologije.

PS

Pročitajte i na našem blogu:

Izvor: www.habr.com

Dodajte komentar