Dank Container-Engines wie Docker und prall gefüllten Container-Registries mit fertigen Images für jeden erdenklichen Zweck dauert es heutzutage wenige Sekunden, eine Webanwendung oder einen Webserver aufzusetzen. Was soll schon schiefgehen? Immerhin sehen die Prozesse im Container ja nur dessen Dateisystem und sind dank Kernel-Namespaces vom Host isoliert. Wenn Sie jedoch mit dem Befehl docker run ein Container-Image aus der Docker-Registry ziehen und den Container starten, dann läuft dieser gewöhnlich mit Root-Rechten. Das heißt, der Benutzer root im Container entspricht root auf dem Host.
Es könnte einem geschickten Angreifer gelingen, aus einem Container auszubrechen, indem er eine Schwachstelle im Container ausnutzt. Dann ist der Host in Windeseile übernommen. Weil der Docker-Daemon, der alle Fäden in der Hand hält, mit Root-Rechten läuft, kann man damit auch das Wurzelverzeichnis / in einen Container hineinreichen und so Dateiberechtigungen aushebeln. Alle Nutzer, die Zugriff auf den Docker-Daemon haben, verfügen also de facto über Systemverwalterrechte. Ein Albtraum für Administratoren.
Rootless-Container, also Container, die nicht als root laufen, verkleinern die Angriffsfläche erheblich. Praktisch: Solche Container können von gewöhnlichen Nutzern gestartet werden. Das ist wichtig für Systeme, die sich mehrere Nutzer für die Containerei teilen, etwa in der Forschung oder auf einer geteilten Entwicklungsmaschine.
Immer mehr Wissen. Das digitale Abo für IT und Technik.
Nur bis zum 31. Mai: heise+ 1 Jahr für nur 1,90 pro Woche lesen. Unbegrenzter Zugriff auf alle heise+ Artikel inklusive allen Digital-Magazinen.Länger lesen, mehr sparen: heise+ 1 Jahr lang für nur 1,90 € pro Woche lesen und brandaktuelles IT- und Tech-Wissen sichern. Zugriff auf alle heise+ Artikel inklusive der Digital-Magazine. Nur bis zum 31. Mai!