19 % av de øverste Docker-bildene har ikke et root-passord

Sist lørdag 18. mai, Jerry Gamblin fra Kenna Security krysset av De 1000 mest populære bildene fra Docker Hub etter passordet de bruker for root-brukeren. I 19 % av tilfellene viste det seg å være tomt.

19 % av de øverste Docker-bildene har ikke et root-passord

Bakgrunn med alpint

Årsaken til ministudien var Talos Vulnerability Report som dukket opp tidligere denne måneden (TALOS-2019-0782), hvis forfattere - takket være oppdagelsen av Peter Adkins fra Cisco Umbrella - rapporterte at Docker-bilder med den populære alpine containerdistribusjonen ikke har et root-passord:

"Offisielle versjoner av Alpine Linux Docker-bilder (som starter fra v3.3) inneholder et NULL-passord for root-brukeren. Denne sårbarheten dukket opp som et resultat av en regresjon presentert i desember 2015. Essensen koker ned til det faktum at systemer som er distribuert med problematiske versjoner av Alpine Linux i en container og bruker Linux PAM eller en annen mekanisme som bruker systemskyggefilen som en database for autentisering, kan godta et null (NULL) passord for root-brukeren.

Versjonene av Alpine Docker-bilder som ble testet for problemet var 3.3-3.9 inklusive, i tillegg til den siste utgaven av edge.

Forfatterne ga følgende anbefaling til berørte brukere:

"Rotkontoen må eksplisitt deaktiveres i Docker-bilder bygget fra problematiske versjoner av Alpine. Den sannsynlige utnyttelsen av sårbarheten avhenger av miljøet, siden suksessen krever en ekstern videresendt tjeneste eller applikasjon som bruker Linux PAM eller annen lignende mekanisme.

Problemet var eliminert i alpine versjoner 3.6.5, 3.7.3, 3.8.4, 3.9.2 og edge (20190228 øyeblikksbilde), og eiere av berørte bilder ble bedt om å kommentere linjen med root in /etc/shadow eller sørg for at pakken mangler linux-pam.

Fortsatt fra Docker Hub

Jerry Gamblin bestemte seg for å spørre om "hvor vanlig praksisen med å bruke null-passord i containere kan være." For å gjøre dette skrev han en liten bash script, hvis essens er veldig enkel:

  • gjennom en krølleforespørsel til API-en i Docker Hub, blir det bedt om en liste over Docker-bilder som er vert der;
  • via jq sorterer den etter felt popularity, og fra de oppnådde resultatene gjenstår de første tusen;
  • for hver av dem, docker pull;
  • for hvert bilde mottatt fra Docker Hub, docker run les første linje fra fil /etc/shadow;
  • hvis strengverdien er lik root:::0:::::, er bildenavnet lagret i en separat fil.

Hva skjedde? I denne filen det var 194 linjer med navnene på populære Docker-bilder med Linux-systemer, der root-brukeren ikke har et passord satt:

"Blant de mest kjente navnene på denne listen var govuk/governmentpaas, hashicorp, microsoft, monsanto og mesosphere. Og kylemanna/openvpn er den mest populære containeren på listen, med over 10 millioner trekk.»

Det er imidlertid verdt å minne om at dette fenomenet i seg selv ikke betyr en direkte sårbarhet i sikkerheten til systemene som bruker dem: alt avhenger av nøyaktig hvordan de brukes. (se kommentar fra Alpine case ovenfor). Imidlertid har vi allerede sett "moralen i denne historien" mange ganger: tilsynelatende enkelhet har ofte en ulempe, som du alltid bør huske og ta hensyn til konsekvensene av i scenariene dine for bruk av teknologi.

PS

Les også på bloggen vår:

Kilde: www.habr.com

Legg til en kommentar