I lørdags den 18. maj, kontrollerede Jerry Gamblin fra Kenna Security 1000 af de mest populære billeder fra Docker Hub for at se, hvilket password der blev brugt til root-brugeren. I 19% af tilfældene var det tomt.

Baggrund om Alpine
Anledningen til den gennemførte mini-undersøgelse var en nyudgivet Talos Vulnerability Report (), hvor forfatterne — takket være opdagelsen fra Peter Adkins fra Cisco Umbrella — rapporterede, at Docker-billeder med den populære distribution Alpine ikke har noget root-password:
«Officielle versioner af Docker-billeder af Alpine Linux (fra v3.3) indeholder NULL-password til root-brugeren. Denne sårbarhed opstod på grund af en regression, der blev introduceret i december 2015. Problemet er, at systemer, der er implementeret med problematiske versioner af Alpine Linux i containere og bruger Linux PAM eller en anden mekanisme, der anvender systemfilen shadow som databasen til autentificering, kan acceptere et null (NULL) password for root-brugeren».
De undersøgte Docker-billeder med Alpine, der var berørt af problemet, var versioner 3.3—3.9 inklusive, samt den nyeste udgave edge.
Forfatterne gav følgende anbefaling til brugere, der er berørt af problemet:
«Root-kontoen bør være eksplicit deaktiveret i Docker-billeder, der er bygget på problematiske versioner af Alpine. Den sandsynlige udnyttelse af sårbarheden afhænger af miljøet, da dens succes kræver, at der er en offentlig tilgængelig tjeneste eller applikation, der bruger Linux PAM eller en lignende mekanisme».
Problemet var i Alpine versionerne 3.6.5, 3.7.3, 3.8.4, 3.9.2 og edge (20190228 snapshot), og ejere af berørte billeder blev anbefalet at kommentere linjen med root i /etc/shadow eller sikre sig, at pakken linux-pam.
Fortsættelse fra Docker Hub
Jerry Gamblin besluttede at undersøge, «hvor udbredt praksis med at bruge null-passwords i containere kunne være». Til dette formål skrev han et lille , hvor essensen er ganske simpel:
- gennem en curl-anmodning til API'et på Docker Hub anmodes der om en liste af de uploadede Docker-billeder;
- gennem jq sorteres den efter feltet
popularity, og af de opnåede resultater beholdes de første tusinde; - for hver af dem udføres
docker pull; - for hvert billede fra Docker Hub udføres
docker runmed læsning af den første linje fra filen,/etc/shadow; - hvis værdien af linjen var lig med
root:::0:::::, gemmes billednavnet i en separat fil.
Hvad kom der ud af det? I Det viste sig, at der var 194 linjer med navne på populære Docker-billeder med Linux-systemer, hvor root-brugeren ikke har noget indstillet kodeord:
«Blandt de mest kendte navne på denne liste var govuk/governmentpaas, hashicorp, microsoft, monsanto og mesosphere. Kylemanna/openvpn er det mest populære container fra listen, dets statistik tæller mere end 10 millioner pull’ere».
Det er dog værd at nævne, at dette fænomen i sig selv ikke nødvendigvis betyder en direkte sårbarhed i sikkerheden for de systemer, der bruger dem: det afhænger også af, hvordan de præcist anvendes. (se kommentaren fra Alpine-sagen ovenfor). Men «moralen i denne fortælling» har vi set mange gange før: den synlige enkelhed har ofte en bagside, som man altid skal huske og tage konsekvenserne af i sine scener for anvendelse af teknologien.
P.S.
Læs også på vores blog:
- «»;
- «»;
- «»;
- «».
Kilde: habr.com
