In 19 % der beliebtesten Docker-Images gibt es kein Passwort für root

Am vergangenen Samstag, dem 18. Mai, überprüfte Jerry Gamblin von Kenna Security die 1000 beliebtesten Images von Docker Hub auf das darin verwendete Passwort für den Benutzer root. In 19 % der Fälle war es leer.

In 19 % der beliebtesten Docker-Images gibt es kein Passwort für root

Hintergrund zu Alpine

Der Anlass für die durchgeführte Mini-Studie war der zuvor in diesem Monat erschienene Talos Vulnerability Report (TALOS-2019-0782), dessen Autoren — dank der Entdeckung von Peter Adkins von Cisco Umbrella — mitteilten, dass Docker-Images mit der beliebten Distribution für Container, Alpine, kein Passwort für root haben:

„Offizielle Versionen der Docker-Images von Alpine Linux (seit v3.3) enthalten ein NULL-Passwort für den Benutzer root. Diese Schwachstelle entstand durch eine Regression, die im Dezember 2015 eingeführt wurde. Es geht darum, dass Systeme, die mit fehlerhaften Versionen von Alpine Linux in Containern ausgeführt werden und Linux PAM oder einen anderen Mechanismus verwenden, der die Systemdatei shadow als Datenbank für die Authentifizierung nutzt, ein null (NULL) Passwort für den Benutzer root akzeptieren können.“

Die bei dem Problem getesteten Versionen der Docker-Images mit Alpine waren 3.3—3.9 einschließlich sowie die letzte Edge-Version.

Die Autoren gaben folgenden Rat an die betroffenen Benutzer:

„Das root-Konto sollte in Docker-Images, die auf fehlerhaften Versionen von Alpine basieren, ausdrücklich deaktiviert werden. Das wahrscheinliche Ausnutzen der Schwachstelle hängt von der Umgebung ab, da der Erfolg einen nach außen durchgereichten Dienst oder eine Anwendung erfordert, die Linux PAM oder einen ähnlichen Mechanismus verwendet.“

Das Problem war behoben in Alpine-Versionen 3.6.5, 3.7.3, 3.8.4, 3.9.2 und Edge (20190228 Snapshot), und betroffenen Benutzern von Images wurde empfohlen, die Zeile mit root in /etc/shadow auszukommentieren oder sich zu vergewissern, dass das Paket linux-pam.

Fortsetzung von Docker Hub

Jerry Gamblin wollte herausfinden, „wie verbreitet die Praxis der Verwendung von Null-Passwörtern in Containern sein könnte“. Dazu schrieb er ein kleines Bash-Skript, dessen Zweck recht einfach ist:

  • über eine cURL-Anfrage an die API von Docker Hub wird eine Liste der dort gehosteten Docker-Images angefordert;
  • er wird über jq nach dem Feld popularity, sortiert, und aus den erhaltenen Ergebnissen bleiben die ersten tausend zurück;
  • für jedes von ihnen wird docker pull;
  • für jedes erhaltene Docker-Image von Docker Hub wird docker run die erste Zeile aus der Datei gelesen; /etc/shadow;
  • wenn der Wert der Zeile gleich root:::0:::::, wird der Name des Images in einer separaten Datei gespeichert.

Was ist dabei herausgekommen? In dieser Datei Es wurden 194 Zeilen mit Namen beliebter Docker-Images mit Linux-Systemen gefunden, bei denen der Root-Benutzer kein Passwort hat:

„Unter den bekanntesten Namen in dieser Liste befinden sich govuk/governmentpaas, hashicorp, microsoft, monsanto und mesosphere. Der kylemanna/openvpn ist das beliebteste Container-Image in der Liste mit mehr als 10 Millionen Pulls.“

Es ist jedoch wichtig zu erwähnen, dass dieses Phänomen an sich keine direkte Sicherheitsanfälligkeit der Systeme bedeutet, die sie verwenden: Es hängt alles davon ab, wie sie tatsächlich eingesetzt werden. (Siehe Kommentar zum Fall mit Alpine oben). Doch „die Moral dieser Geschichte“ haben wir schon oft gesehen: Die sichtbare Einfachheit hat oft auch eine Kehrseite, an die man immer denken und deren Konsequenzen man in seinen Anwendungsszenarien berücksichtigen sollte.

P.S.

Lesen Sie auch in unserem Blog:

Quelle: habr.com

60GB SSD 8Gb DDR4