c't 15/2022
S. 168
Praxis
Container ohne Root

Vorsichtige Robbe

Container ohne Root-Rechte mit Docker-Alternative Podman betreiben

Wenn Admins von Containern sprechen, dann meinen sie meistens Docker. Podman ist eine alternative Container-Engine, die mit den gleichen Befehlen arbeitet und auf Daemon und Root verzichtet. Wir zeigen, wie Sie mit Podman „Rootless“-Container betreiben, ohne sich umzugewöhnen.

Von Niklas Dierking

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.

Kommentieren