19 % af de øverste Docker-billeder har ikke en root-adgangskode

Sidste lørdag den 18. maj, Jerry Gamblin fra Kenna Security kontrolleret 1000 af de mest populære billeder fra Docker Hub baseret på den root-adgangskode, de bruger. I 19 % af tilfældene var den tom.

19 % af de øverste Docker-billeder har ikke en root-adgangskode

Baggrund med Alpine

Årsagen til mini-forskningen var Talos Vulnerability Report, der udkom tidligere på måneden (TALOS-2019-0782), hvis forfattere - takket være opdagelsen af ​​Peter Adkins fra Cisco Umbrella - rapporterede, at Docker-billeder med den populære alpine containerdistribution ikke har en root-adgangskode:

"Officielle versioner af Alpine Linux Docker-billeder (siden v3.3) indeholder en NULL-adgangskode til root-brugeren. Denne sårbarhed skyldtes en regression introduceret i december 2015. Kernen i dette er, at systemer, der er installeret med problematiske versioner af Alpine Linux i en container og bruger Linux PAM eller en anden mekanisme, der bruger systemskyggefilen som en godkendelsesdatabase, kan acceptere en NULL-adgangskode for root-brugeren."

Versioner af Docker-billeder med Alpine testet for problemet var 3.3-3.9 inklusive, såvel som den seneste udgivelse af edge.

Forfatterne fremsatte følgende anbefaling til berørte brugere:

"Root-kontoen skal udtrykkeligt deaktiveres i Docker-billeder bygget fra problematiske versioner af Alpine. Den sandsynlige udnyttelse af sårbarheden afhænger af miljøet, da dens succes kræver en eksternt videresendt tjeneste eller applikation, der bruger Linux PAM eller anden lignende mekanisme."

Problemet var elimineret i alpine versioner 3.6.5, 3.7.3, 3.8.4, 3.9.2 og edge (20190228 snapshot), og ejere af berørte billeder blev bedt om at kommentere linjen med root in /etc/shadow eller sørg for, at pakken mangler linux-pam.

Fortsat med Docker Hub

Jerry Gamblin besluttede sig for at være nysgerrig efter "hvor almindelig praksis med at bruge null-adgangskoder i containere kan være." Til dette formål skrev han en lille Bash script, hvis essens er meget enkel:

  • gennem en krølleanmodning til API'et i Docker Hub anmodes der om en liste over Docker-billeder, der hostes der;
  • via jq er det sorteret efter felt popularity, og af de opnåede resultater er de første tusinde tilbage;
  • for hver af dem er den opfyldt docker pull;
  • for hvert billede, der modtages fra Docker Hub, udføres docker run med at læse den første linje fra filen /etc/shadow;
  • hvis værdien af ​​strengen er lig med root:::0:::::, er navnet på billedet gemt i en separat fil.

Hvad skete der? I denne fil Der var 194 linjer med navnene på populære Docker-billeder med Linux-systemer, hvor root-brugeren ikke har en adgangskode sat:

“Blandt de mest kendte navne på denne liste var govuk/governmentpaas, hashicorp, microsoft, monsanto og mesosphere. Og kylemanna/openvpn er den mest populære container på listen, dens statistikker i alt mere end 10 millioner pulls.”

Det er dog værd at huske på, at dette fænomen i sig selv ikke betyder en direkte sårbarhed i sikkerheden af ​​de systemer, der bruger dem: det hele afhænger af, hvordan de præcist bruges (se kommentar fra Alpe-sagen ovenfor). Vi har dog set "moralen i historien" mange gange: tilsyneladende enkelhed har ofte en bagside, som altid skal huskes, og konsekvenserne af som tages i betragtning i dine teknologiapplikationsscenarier.

PS

Læs også på vores blog:

Kilde: www.habr.com

Tilføj en kommentar