Ein Proof-of-Concept-Hack ermöglicht es Gegnern, an alten Exploits zu feilen, Code-Sprung-Container zu haben und die darunter liegende Infrastruktur anzugreifen.
Forscher von CyberArk haben einen Proof-of-Concept-Angriff entwickelt, der es Gegnern ermöglicht, die Containersicherheit zu umgehen, dem Container zu entkommen und ein ganzes Host-System zu kompromittieren. Das Angriffsszenario ist jedoch insofern begrenzt, als ein erfolgreicher Angriff von ungepatchten Schwachstellen im Hostsystem abhängt.
CyberArk, die hier auf der RSA-Konferenz am Donnerstag Forschungsergebnisse präsentiert, sagte, dass ihre Technik mit einer Reihe von Exploits funktioniert. "Mit etwa 20 Codezeilen und einigen kleinen Änderungen an einem Exploit haben wir eine Möglichkeit geschaffen, eine Eindämmung zu überspringen und den zugrunde liegenden Host anzugreifen", sagte Nimrod Stoler, ein Cyber-Sicherheitsforscher bei CyberArk.
In den am Montag veröffentlichten Forschungsergebnissen beschreibt CyberArk, wie eine Linux-Privilegien-Eskalationsanfälligkeit (CVE-2017-7308), die auf einem Hostsystem besteht, ausgenutzt werden könnte. Das Angriffsszenario beinhaltet einen Gegner, der eine Website infiziert, die in einem Container läuft. Sobald die Website kompromittiert ist, kann der Hacker die CyberArk-Proof-of-Concept-Technik verwenden, um die Eindämmung zu durchbrechen und den Host zu infizieren. Von dort aus besitzt der Kriminelle die Umgebung und kann entweder andere gemeinsam gehostete Container plündern oder versuchen, sich seitlich innerhalb eines Unternehmensnetzwerks zu bewegen, sagte der CyberArk-Sicherheitsforscher Lavi Lazarovitz.
"Bei unserem Proof-of-Concept-Angriff hat die Verteidigungsstrategie der Docker-Container uns vorübergehend daran gehindert, zum darunter liegenden Host zu fliehen. Aber wir haben die Nutzlast des Exploits erweitert, um Code zu integrieren, der die Namensräume des Containers manipuliert und schließlich die Eindämmung durchbricht", sagte Lazarovitz.
Docker-Container verwenden eine Reihe von Sicherheitsmaßnahmen, um einen Kernel zu schützen, der von Container und Host und den ihn unterstützenden Namensräumen und Gruppen gemeinsam genutzt wird. Namensräume sind ein Kernmerkmal des Linux-Kernels, die eine Isolierungsschicht für Container bieten. C-Gruppen (oder Kontrollgruppen) ermöglichen es der Docker-Engine, Hardwareressourcen wie Speicher gemeinsam zu nutzen.
Beim Proof-of-Concept-Angriff von CyberArk wurde zunächst der Namensraum eines Containers (Prozess 1) mit den Namensräumen des Hosts überschrieben. "Der Angriff endet mit dem Aufruf des Setns syscall, der die Namensräume des aktuellen Prozesses in die Namensräume von Prozess 1 und des Hosts ändert, wodurch die Namensraumwände zwischen Container und Host praktisch eingerissen werden und eine vollständige Flucht zum Host erreicht wird", beschreibt CyberArk in einem technischen Artikel, der Ende dieser Woche veröffentlicht wird.
Docker, die Firma, die hinter dem Virtualisierungsprogramm steht, das Container erstellt, sagte, dass jedes Hostsystem, das nicht vollständig gepatcht ist und auf dem Container laufen, infiziert werden kann - unabhängig von den Sicherheitsvorkehrungen des Containers.
"Container helfen nicht, wenn der Kernel defekt ist. Wie bei jeder Software sind Sie verwundbar, wenn Sie zwei Jahre lang keine Sicherheitsupdates installiert haben", sagte Docker in einer Erklärung gegenüber Threatpost.
Die Forscher von CyberArk stimmen in einem Punkt zu. Die Forscher weisen darauf hin, dass die hervorgehobene Proof-of-Concept-Schwachstelle (CVE-2017-7308) eine von vielen ist, die mit 20 Codezeilen leicht angepasst werden kann, um einem Container zu entkommen und einen verwundbaren Host anzugreifen.
"Wir glauben, dass noch mehr getan werden muss, um eine bessere Isolierung zwischen Container und ihren Hosts zu ermöglichen", sagte Stoler gegenüber Threatpost. Dem Bericht zufolge kann der Proof-of-Concept-Code von CyberArk in jeder zukünftigen Privilegieneskalations-Schwachstelle im Linux-Kernel verwendet werden, um einer containerisierten Umgebung zu entkommen.
Letzten Monat patchte Docker einen Container-Escape-Fehler (CVE-2019-5736), den der Forscher Adam Iwaniuk in Verbindung mit einem Fehler im Container-Verwaltungstool runC gefunden hatte. Im Januar hackte CyberArk die Docker-Testplattform namens Play-with-Docker, wodurch sie auf Daten zugreifen und alle Testdocker-Container, die auf dem Hostsystem laufen, manipulieren konnten.