Docker ist eine der am häufigsten verwendeten Containerisierungsplattformen und bei Softwareentwicklern sehr beliebt. Es wird mit einem leistungsstarken CLI-Tool zum Verwalten von Docker-Containern und anderen verwandten Aufgaben geliefert.
Standardmäßig benötigen Sie Root-Rechte, um alle Docker-bezogenen Befehle unter Linux auszuführen. Natürlich können Sie dies der Einfachheit halber ändern und Docker-Befehle ohne Root-Rechte ausführen, aber Sie sollten sich der Auswirkungen auf die Sicherheit bewusst sein.
Was ist die Docker-Angriffsfläche?
Eine Angriffsfläche ist die Anzahl der Angriffspunkte, eher wie die Anzahl der Fenster, die ein böswilliger Benutzer verwenden kann, um in Ihr System einzudringen und Chaos zu verursachen. Als Faustregel gilt, dass IT-Systeme minimale Angriffsflächen haben sollten, um Sicherheitsrisiken zu reduzieren.
Generell ist die Angriffsfläche von Docker sehr gering. Container werden in einer sicheren, isolierten Umgebung ausgeführt und wirken sich nicht auf das Hostbetriebssystem aus, sofern nichts anderes angegeben ist. Darüber hinaus führen Docker-Container nur minimale Dienste aus, was sie sicherer macht.
Sie können Ihr Linux-System so konfigurieren, dass es Docker ohne sudo-Berechtigungen steuert. Dies kann in Entwicklungsumgebungen praktisch sein, kann aber in Produktionssystemen eine ernsthafte Sicherheitslücke darstellen. Und aus diesem Grund sollten Sie Docker niemals ohne sudo ausführen.
1. Fähigkeit zur Steuerung von Docker-Containern
Ohne die sudo-Berechtigungen kann jeder, der Zugriff auf Ihr System oder Ihren Server hat, jeden Aspekt von Docker steuern. Sie haben Zugriff auf Ihre Docker-Protokolldateien und können Container nach Belieben oder versehentlich stoppen und löschen. Sie könnten auch wichtige Daten verlieren, die für die Geschäftskontinuität von entscheidender Bedeutung sind.
Wenn Sie Docker-Container in Produktionsumgebungen verwenden, führen Ausfallzeiten zu einem Verlust von Geschäft und Vertrauen.
2. Gewinnen Sie die Kontrolle über die Verzeichnisse des Host-Betriebssystems
Docker Volumes ist ein leistungsstarker Dienst, mit dem Sie Containerdaten freigeben und speichern können, indem Sie sie in einen bestimmten Ordner auf dem Host-Betriebssystem schreiben.
Eine der größten Bedrohungen, die das Ausführen von Docker ohne sudo darstellt, besteht darin, dass jeder auf Ihrem System die Kontrolle über die Verzeichnisse des Host-Betriebssystems erlangen kann, einschließlich des Stammverzeichnisses.
Sie müssen lediglich ein Linux-Docker-Image ausführen, z. B. das Ubuntu-Image, und es mit dem folgenden Befehl im Stammordner mounten:
docker run -ti -v /:/hostproot ubuntu bash
Und da Linux-Docker-Container als Root-Benutzer ausgeführt werden, bedeutet dies im Wesentlichen, dass Sie Zugriff auf den gesamten Root-Ordner haben.
Der oben genannte Befehl lädt das neueste Ubuntu-Image herunter, führt es aus und stellt es im Stammverzeichnis bereit.
Gehen Sie auf dem Docker-Containerterminal zu /hostproot Verzeichnis verwenden der cd-Befehl:
CD /hostproot
Auflisten des Inhalts dieses Verzeichnisses mit dem Befehl ls zeigt alle Dateien des Host-Betriebssystems, die jetzt in Ihrem Container verfügbar sind. Jetzt können Sie Dateien manipulieren, geheime Dateien anzeigen, Dateien ein- und ausblenden, Berechtigungen ändern usw.
3. Schadsoftware installieren
Ein gut gestaltetes Docker-Image kann im Hintergrund laufen und Ihr System manipulieren oder vertrauliche Daten sammeln. Schlimmer noch, ein böswilliger Benutzer könnte bösartigen Code über Docker-Container in Ihrem Netzwerk verbreiten.
Es gibt mehrere praktische Anwendungsfälle von Docker-Containern, und mit jeder Anwendung gehen andere Sicherheitsbedrohungen einher.
Sichern Sie Ihre Docker-Container unter Linux
Docker ist eine leistungsstarke und sichere Plattform. Das Ausführen von Docker ohne sudo erhöht Ihre Angriffsfläche und macht Ihr System angreifbar. In Produktionsumgebungen wird dringend empfohlen, sudo mit Docker zu verwenden.
Bei so vielen Benutzern auf einem System wird es extrem schwierig, jedem Benutzer Berechtigungen zuzuweisen. In solchen Fällen kann Ihnen die Befolgung der besten Zugriffskontrollpraktiken dabei helfen, die Sicherheit Ihres Systems aufrechtzuerhalten.