Afgelopen zaterdag, 18 mei, heeft Jerry Gamblin van Kenna Security de 1000 populairste afbeeldingen op Docker Hub op het gebruikte wachtwoord voor de gebruiker root. In 19% van de gevallen bleek dit leeg te zijn.

Achtergrond met Alpine
De aanleiding voor het mini-onderzoek was het eerder deze maand verschenen Talos Vulnerability Report (), waarbij de auteurs — dankzij een ontdekking van Peter Adkins van Cisco Umbrella — meldden dat Docker-afbeeldingen met de populaire distributie voor containers Alpine geen wachtwoord voor root hebben:
„Officiële versies van Docker-afbeeldingen van Alpine Linux (vanaf v3.3) bevatten een NULL-wachtwoord voor de gebruiker root. Deze kwetsbaarheid is ontstaan door een regressie die in december 2015 is geïntroduceerd. Het komt erop neer dat systemen die zijn uitgerold met probleemversies van Alpine Linux in een container en die Linux PAM of een ander mechanisme gebruiken dat het systeembestand shadow als database voor authenticatie gebruikt, een nul (NULL) wachtwoord voor de gebruiker root kunnen accepteren.”
De versies van Docker-afbeeldingen met Alpine die op het probleem zijn getest, zijn 3.3 tot en met 3.9, evenals de laatste release edge.
De auteurs gaven de volgende aanbeveling aan gebruikers die aan het probleem zijn blootgesteld:
„Het root-account moet expliciet worden uitgeschakeld in Docker-afbeeldingen die zijn gebouwd op basis van probleemversies van Alpine. De waarschijnlijkheid van exploitatie van de kwetsbaarheid hangt af van de omgeving, omdat het succes een naar buiten doorgeschoven dienst of applicatie vereist die Linux PAM of een ander vergelijkbaar mechanisme gebruikt.”
Het probleem was in Alpine versies 3.6.5, 3.7.3, 3.8.4, 3.9.2 en edge (20190228 snapshot), en aan eigenaars van kwetsbare afbeeldingen wordt aangeraden om de regel met root in /etc/shadow of te controleren of het pakket linux-pam.
Vervolg bij Docker Hub
Jerry Gamblin besloot nieuwsgierig te zijn naar „hoe gebruikelijk de praktijk van het gebruik van null-wachtwoorden in containers kan zijn”. Hiervoor schreef hij een klein , waarvan de essentie zeer eenvoudig is:
- via een curl-aanroep naar de API in Docker Hub wordt een lijst van daar geopende Docker-afbeeldingen opgevraagd;
- via jq wordt deze gesorteerd op het veld
popularity, en uit de verkregen resultaten blijven de eerste duizend over; - voor elk van hen wordt uitgevoerd
docker pull; - voor elke verkregen Docker-afbeelding wordt uitgevoerd
docker runmet het lezen van de eerste regel van het bestand/etc/shadow; - als de waarde van de regel gelijk bleek aan
root:::0:::::, wordt de naam van de afbeelding in een apart bestand opgeslagen.
Wat is er uitgekomen? In Er zijn 194 regels met namen van populaire Docker-images met Linux-systemen, waarbij de root-gebruiker geen wachtwoord heeft ingesteld:
„Onder de bekendste namen in deze lijst bevonden zich govuk/governmentpaas, hashicorp, microsoft, monsanto en mesosphere. Kylemanna/openvpn is de meest populaire container op de lijst, met meer dan 10 miljoen pull-statistieken.”
Het is echter goed om te herinneren dat dit fenomeen op zichzelf niet noodzakelijk een directe kwetsbaarheid in de beveiliging van de systemen die ze gebruiken betekent: het hangt allemaal af van hoe ze precies worden toegepast. Zie de opmerking uit het geval met Alpine hierboven.. Maar de ‘les van dit verhaal’ hebben we al vaak gezien: de zichtbare eenvoud heeft vaak een schaduwzijde, waarvan men zich altijd bewust moet zijn en waarvan de gevolgen in de toepassingsscenario's van de technologie moeten worden meegerekend.
P.S.
Lees ook op onze blog:
- «»;
- «»;
- «»;
- «».
Bron: habr.com
