Wenn ich einen Container als normaler Benutzer ausführen kann ich zuordnen und Verzeichnisse im Besitz von Root auf meinem Host-Dateisystem ändern. Dies scheint ein großes Sicherheitsloch zu sein. Zum Beispiel kann ich folgendes tun:Docker Root-Zugriff auf Host-System
$ docker run -it --rm -v /bin:/tmp/a debian
[email protected]:/# cd /tmp/a
[email protected]:/tmp/a# mv df df.orig
[email protected]:/tmp/a# cp ls df
[email protected]:/tmp/a# exit
Jetzt ist mein Host-Dateisystem führen Sie den Befehl ls
wenn df
eingegeben wird (meist harmlos Beispiel). Ich kann nicht glauben, dass dies das gewünschte Verhalten ist, aber es passiert in meinem System (Debian Stretch). Der Befehl docker
hat normale Berechtigungen (755, nicht setuid).
Was fehlt mir?
Vielleicht ist es gut, ein bisschen mehr zu klären. Ich bin im Moment nicht daran interessiert, was der Container selbst macht oder tun kann, und ich mache mir auch keine Gedanken über den Root-Zugriff innerhalb des Containers.
Vielmehr merke ich, dass jemand auf meinem System, das einen Docker Container es Root-Zugriff auf mein Host System erlangen können ausgeführt werden können und/schreiben als root lesen, was sie wollen: effektiv alle Zugang Benutzer root geben. Das ist offensichtlich nicht das, was ich will. Wie kann man das verhindern?
Aber einen normalen Benutzer auf meinem Rechner-System, I ** kann ** zum Beispiel das Standard-Debian-Image laufen lassen und ** bekomme ** Root-Zugriff auf den ** Host **. Das Labor sagt: "Es birgt jedoch auch potentielle Sicherheitsrisiken." Das ist eher eine Untertreibung Sollte es nicht heißen: niemals docker auf diese Weise ausführen, da es allen Benutzern Root-Zugriff auf das Host-System gibt –
Danke Es ist jetzt klar, dass ich keinen normalen Benutzer docker ausführen lassen sollte, sondern das tun für sie.Der Laborzeiger ist auch nützlich. –