19% van de beste Docker-images heeft geen root-wachtwoord

Afgelopen zaterdag 18 mei, Jerry Gamblin van Kenna Security gecontroleerd 1000 van de meest populaire afbeeldingen van Docker Hub op basis van het rootwachtwoord dat ze gebruiken. In 19% van de gevallen was deze leeg.

19% van de beste Docker-images heeft geen root-wachtwoord

Achtergrond met Alpine

Aanleiding voor het mini-onderzoek was het Talos Vulnerability Report dat eerder deze maand verscheen (TALOS-2019-0782), waarvan de auteurs - dankzij de ontdekking van Peter Adkins van Cisco Umbrella - meldden dat Docker-images met de populaire Alpine-containerdistributie geen root-wachtwoord hebben:

“Officiële versies van Alpine Linux Docker-images (sinds v3.3) bevatten een NULL-wachtwoord voor de rootgebruiker. Deze kwetsbaarheid is het gevolg van een regressie die in december 2015 werd geïntroduceerd. De essentie hiervan is dat systemen die worden ingezet met problematische versies van Alpine Linux in een container en die Linux PAM of een ander mechanisme gebruiken dat het systeemschaduwbestand als authenticatiedatabase gebruikt, een NULL-wachtwoord voor de rootgebruiker kunnen accepteren.”

De versies van Docker-images waarbij Alpine op dit probleem werd getest, waren 3.3 t/m 3.9, evenals de nieuwste versie van Edge.

De auteurs hebben de volgende aanbeveling gedaan voor getroffen gebruikers:

“Het root-account moet expliciet worden uitgeschakeld in Docker-images die zijn opgebouwd uit problematische versies van Alpine. De waarschijnlijke exploitatie van de kwetsbaarheid hangt af van de omgeving, omdat het succes ervan een extern doorgestuurde service of applicatie vereist die gebruik maakt van Linux PAM of een ander soortgelijk mechanisme."

Het probleem was geëlimineerd in Alpine-versies 3.6.5, 3.7.3, 3.8.4, 3.9.2 en edge (20190228 snapshot), en eigenaren van getroffen afbeeldingen werd gevraagd om commentaar te geven op de regel met root in /etc/shadow of controleer of het pakket ontbreekt linux-pam.

Vervolg met Docker Hub

Jerry Gamblin besloot nieuwsgierig te zijn naar “hoe gebruikelijk het gebruik van null-wachtwoorden in containers zou kunnen zijn.” Voor dit doel schreef hij een klein Bash-script, waarvan de essentie heel eenvoudig is:

  • via een curl-verzoek aan de API in Docker Hub wordt een lijst met Docker-images opgevraagd die daar worden gehost;
  • via jq wordt het gesorteerd op veld popularity, en uit de verkregen resultaten blijven de eerste duizend over;
  • voor elk van hen is het vervuld docker pull;
  • voor elke afbeelding ontvangen van Docker Hub wordt uitgevoerd docker run met het lezen van de eerste regel uit het bestand /etc/shadow;
  • als de waarde van de string gelijk is aan root:::0:::::, wordt de naam van de afbeelding in een apart bestand opgeslagen.

Wat is er gebeurd? IN dit bestand Er waren 194 regels met de namen van populaire Docker-images met Linux-systemen, waarin de rootgebruiker geen wachtwoord heeft ingesteld:

“Tot de bekendste namen op deze lijst behoorden govuk/governmentpaas, hashicorp, microsoft, monsanto en mesosphere. En kylemanna/openvpn is de meest populaire container op de lijst, de statistieken bedragen in totaal meer dan 10 miljoen pulls.”

Het is echter de moeite waard eraan te herinneren dat dit fenomeen op zichzelf geen directe kwetsbaarheid betekent in de beveiliging van de systemen die er gebruik van maken: het hangt allemaal af van hoe ze precies worden gebruikt (zie commentaar uit de Alpine-zaak hierboven). We hebben de ‘moraal van het verhaal’ echter vaak gezien: schijnbare eenvoud heeft vaak een keerzijde, die altijd in gedachten moet worden gehouden en waarvan de gevolgen in aanmerking moeten worden genomen in uw technologietoepassingsscenario’s.

PS

Lees ook op onze blog:

Bron: www.habr.com

Voeg een reactie