Docker-Container-Escape bezieht sich auf den Prozess und das Ergebnis, bei dem der Angreifer die Fähigkeit zur Befehlsausführung unter bestimmten Berechtigungen im Container erlangt hat, indem er die Geschäftslogik des Containers oder die direkte Kontrolle übernommen hat. Da Docker Isolationstechnologie verwendet, ist das Innere des Containers der Prozess Der äußere Prozess kann nicht gesehen werden, aber der äußere Prozess kann nach innen sehen. Wenn ein Container also auf externe Ressourcen zugreifen oder sogar die Berechtigungen des Hosts erhalten kann, wird dies als „Docker-Escape“ bezeichnet.
Die Betriebsumgebung dieses Tutorials: Linux7.3-System, Docker-Version 19.03, Dell G3-Computer.
„Container-Escape“ bezieht sich auf einen solchen Prozess und ein solches Ergebnis. Durch andere Methoden wurde die Fähigkeit zur Befehlsausführung unter bestimmten Berechtigungen im Container erlangt. Der Angreifer nutzt diese Fähigkeit zur Befehlsausführung und verwendet einige Mittel, um weiter an den direkten Host-Computer zu gelangen, auf dem sich der Container befindet (was oft beobachtet wird). „Eine physische Maschine führt eine virtuelle Maschine aus“, die virtuelle Maschine führt dann den Container aus. In diesem Szenario bezieht sich der direkte Host auf die Fähigkeit zur Befehlsausführung unter bestimmten Berechtigungen auf der virtuellen Maschine außerhalb des Containers.
Da Docker Isolationstechnologie verwendet, kann der Prozess im Container den externen Prozess nicht sehen, der externe Prozess jedoch das Innere. Wenn ein Container also auf externe Ressourcen zugreifen kann, kann er sogar die Berechtigungen des Host-Hosts erhalten namens „Docker Escape“.Es gibt derzeit drei Gründe für das Entkommen von Docker:
Da Docker ein direkt gemeinsam genutzter Host-Host-Kernel ist, wirkt sich eine Sicherheitslücke im Host-Host-Kernel auch auf die Sicherheit von Docker aus, was dazu führen kann, dass Docker entkommt . Der spezifische Prozess ist wie folgt:
Diese Escape-Methode wird häufiger verwendet als die anderen beiden. Der privilegierte Modus wurde in Version 6.0 für Docker eingeführt. Seine Kernfunktion besteht darin, dem Root im Container Root-Berechtigungen auf der externen physischen Maschine zu gewähren .
Bei der Steuerung eines Containers im privilegierten Modus kann der Docker-Administrator das externe Host-Festplattengerät über den Mount-Befehl in den Container einbinden, um Lese- und Schreibberechtigungen für Dateien für den gesamten Host zu erhalten. Darüber hinaus kann er auch geplante Aufgaben usw. schreiben . Die Methode führt den Befehl auf dem Host-Computer aus. Zusätzlich zur Verwendung des privilegierten Modus zum Starten von Docker, der dazu führt, dass Docker entkommt, führt die Verwendung funktionaler Mechanismen auch dazu, dass Docker entkommt. Der Linux-Kernel hat seit Version 2.2 Funktionen (Capabilities) eingeführt, die die Konzepte von Superuser und normalen Benutzern in UNIX/LINUX-Betriebssystemen durchbrechen und es normalen Benutzern ermöglichen, Befehle auszuführen, die nur mit Superuser-Berechtigungen ausgeführt werden können. Wenn der Container beispielsweise mit --cap-add=SYSADMIN gestartet wird, darf der Containerprozess eine Reihe von Systemverwaltungsbefehlen wie mount und umount ausführen, wenn der Angreifer zu diesem Zeitpunkt das externe Geräteverzeichnis im Container bereitstellt , Docker-Escape wird stattfinden.
Empfohlenes Lernen: „
Docker-Video-Tutorial“
Das obige ist der detaillierte Inhalt vonWas ist Docker-Container-Escape?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!