Docker von einem unprivilegierten Benutzer zu steuern, ist eine große Sicherheitslücke. Wie kann man dem entgegenwirken?

776
user1625837

Stellen Sie sich einen Webanwendungsentwickler vor, der ein unberechtigtes Benutzerkonto ohne sudoBerechtigungen durchführt. Da die Tools des Entwicklers keinen Root-Zugriff erfordern, ist dies die sicherste Entwicklungsumgebung (die Art der Entwicklungsumgebung, die ich vorziehen). Wenn man mit Tausenden von unbekannten Bibliotheken arbeitet und Webbrowser in seiner Entwicklungsumgebung verwendet, halte ich dies für eine sinnvolle und empfehlenswerte Vorsichtsmaßnahme.

Normalerweise geben die Entwickler ihr Passwort nur ein, um ihren Rechner zu entsperren, niemals aber auf der Kommandozeile. Arbeit ist auf diese Weise angenehm. Um diesen Komfort zu gewährleisten, fügt der Entwickler, nachdem er sich für die Installation von Docker entschieden hat, seinen nicht privilegierten Benutzer der dockerGruppe hinzu. Diese verwandelt ihr nicht privilegiertes Konto heimlich in ein Konto mit Superuser-Befugnissen: Ein Docker-Container-Mounting-Systemverzeichnis kann alles tun, sogar Dateien ändern, deren Eigentümer es ist root, das ist ein riesiges Sicherheitsloch.

Um diese Lücke zu schließen, könnte man den nicht privilegierten Benutzer aus der dockerGruppe entfernen und stattdessen NOPASSWDder sudoersDatei Einträge für die wichtigsten, aber immer noch harmlosen Docker-Befehle wie docker start some-containeroder hinzufügen docker ps.

Beispiel: sudo docker ps

Wenn die Ausführung eines zulässigen Docker-Befehls zu Container-Builds (wie docker buildoder docker-compose up) führen kann, müssen Eingabedateien für den nicht privilegierten Benutzer schreibgeschützt sein und sich im Besitz eines rootoder eines anderen "sicheren" Benutzers befinden, damit sie von keinem Rogue-Benutzer manipuliert werden können. Das zu erledigen ist etwas umständlich.

Abgesehen davon kommen mir zwei Fragen in den Sinn:

  • Ist das sicher genug oder sieht der Entwickler immer noch etwas Gefährliches durch die Arbeit mit Docker?
  • Ist dies die einzige sichere Möglichkeit, Docker zu steuern, ohne das Kennwort eingeben zu müssen, wenn Sie sudoDocker verwenden möchten?
-1
Diese Themen sind nicht allzu vertraut (und ja, mir ist bekannt, dass die Gruppenmitgliedschaft "docker" Zugriff gleichwertig wie "root" gewährt), aber siehe https://docs.docker.com/engine/security/security/ bwDraco vor 5 Jahren 0
Natürlich habe ich dieses Dokument gelesen. Es bietet jedoch keine Lösung für mein Problem. Zumindest soweit ich den Inhalt des Dokuments verstehe. user1625837 vor 5 Jahren 0

0 Antworten auf die Frage