Nuthawut - stock.adobe.com

Wie Angreifer Docker-APIs für Krypto-Jacking nutzen

Bei der Nutzung von Containern in einer Cloud-Umgebung kommt es immer wieder zu schwerwiegenden Konfigurationsfehlern, so dass Angreifer die Infrastruktur missbrauchen können.

Wenn man die Schlagzeilen verfolgt, kann man den Eindruck gewinnen, dass nahezu jeden Tag Container und die für ihre Verwaltung genutzten Werkzeuge versehentlich im Internet frei zur Verfügung stehen. Bei manchen der bekannt gewordenen Fälle waren überhaupt keine Sicherheitsmaßnahmen in Kraft, die die Container hätten schützen können.

Allein im Juni 2018 wurden rund 22.000 frei zugängliche Konsolen entdeckt, die zur Orchestrierung von Containern, zum Administrieren und zum Management ihrer APIs (Application Programming Interfaces) genutzt werden konnten.

Bei den meisten von ihnen handelte es sich um Kubernetes-Container, die in öffentlich zugänglichen Bereichen von AWS (Amazon Web Services) zu finden waren. Die Zahlen zeigen, dass sowohl viele Cloud- als auch DevOps-Teams überfordert sind, wenn es um die Absicherung der von ihnen in der Cloud gehosteten Daten und Container geht.

So waren nach Erkenntnissen von Trend Micro frei zugängliche APIs für Docker dafür verantwortlich, dass es Angreifern gelingen konnte, heimlich neue Container anzulegen, die sie dann für Krypto-Jacking nutzten. Um zu verstehen, wie die Hacker dabei vorgehen konnten, ist es wichtig, sich zuerst mit den Grundlagen von Docker zu beschäftigen.

Wie Docker-APIs missbraucht werden können

Docker ist zunächst einmal ein Daemon oder Dienst, der innerhalb einer Betriebssystemumgebung läuft. Damit ist es möglich, neue Container anzulegen, zu importieren und auszuführen. Der Betriebssystem-Kernel wird dabei zum Teilen wichtiger Ressourcen verwendet. Standardmäßig kann der Docker-Client dazu genutzt werden, um Container zu erstellen und auszuführen. Dazu bietet er Befehle wie docker import, docker pull und docker run.

Wenn diese Kommandos nur lokal eingesetzt werden, kommt es meist zu keinen Problemen. Einige Unternehmen wollen es ihren Mitarbeitern aber ermöglichen, sie auch von der Ferne aus auszuführen. Das führt dann dazu, dass Docker-Hosts Teil einer Client-Server-Architektur werden. In einem internen Netzwerk mit adäquaten Kontrollen ist das in der Regel kein Problem. Wenn diese APIs und Schnittstellen aber mit dem Internet verbunden werden, kann es zu ernsten Konsequenzen kommen, wenn keine zusätzlichen Sicherheitsmaßnahmen eingerichtet wurden.

Standardmäßig sind zwei Docker-Ports für Aufgaben aus der Ferne geöffnet. Dabei handelt es sich um den TCP-Port 2375 für normale HTTP-Verbindungen und den TCP-Port 2376 für HTTPS-Verbindungen. Es liegt auf der Hand, dass HTTPS bevorzugt werden sollte. Dabei sollte aber darauf geachtet werden, dass entweder Transport Layer Security (TLS) oder eine andere geeignete Authentifizierungsmethode genutzt wird. Nur so kann eine sichere Anmeldung für Clients angeboten werden, die Docker-Kommandos ausführen wollen.

Laut den Erkenntnissen von Trend Micro war keine dieser Sicherheitsvorkehrungen vor dem bereits erwähnten Vorfall bei AWS Mitte 2018 aktiv. So konnten die Angreifer ungestört auf Docker-Ports zugreifen und darüber Befehle ausführen, um eigene, neue lokale Images zu erstellen, um sie von einem externen Repository zu laden oder um sie aus einem mit zum Beispiel TAR gepackten Archiv zu importieren.

Den Sicherheitsexperten ist es sogar gelungen, automatisierte Installations-Skripte zu finden, mit denen die Container eingerichtet wurden. Der Zugang erfolgte dabei mit Hilfe extra angelegter neuer Root-Nutzer, die dann Krypto-Mining-Software installierten, die zum Schürfen nach Monero diente.

Darüber hinaus wurde auf den von den Angreifern erstellten Containern auch das Tool masscan installiert. Dieses Werkzeug wurde dann genutzt, um in verfügbaren Netzen nach weiteren Systemen zu scannen, bei denen ebenfalls die Ports 2375 und 2376 offen waren. Auf diese Weise nutzten die Angreifer die Container nicht nur dazu, nach Krypto-Währungen zu schürfen, sondern auch um sich zu verbreiten und um weitere Opfer zu finden.

Wie sich der Missbrauch der Docker-APIs verhindern lässt

Es gibt mehrere Maßnahmen, die Unternehmen ergreifen können, um diese Art von Attacken zu verhindern. Die erste ist dabei, ganz einfach die Verfügbarkeit der Docker-APIs über das Internet zu beenden beziehungsweise gar nicht einzurichten. Es gibt keinen wirklich guten Grund, um diese APIs öffentlich verfügbar zu machen. Weit besser ist es, sie nur in einem privaten Netzwerk erreichbar zu machen.

Zweitens sollte unbedingt eine solide Authentifizierung eingerichtet werden, die entweder auf TLS oder einer anderen bewährten Methode wie Multifaktor-Authentifizierung basiert. Eine Voraussetzung dafür ist jedoch, dass diese Techniken auch für die von Docker benötigten offenen Ports verwendet werden können. Außerdem sollten keine Images auf den Docker-Hosts genutzt werden dürfen, die nicht aus einer vertrauenswürdigen Quelle stammen und die nicht von einer freigegebenen Registry heruntergeladen wurden.

Ich habe jedenfalls bisher noch kein einziges Unternehmen gefunden, dass zu seinen Kernaufgaben das Schürfen nach Krypto-Währungen wie Monero zählt. Dieses kriminelle Vorgehen lässt sich zudem leicht mit einer Whitelist verhindern. Stellen Sie außerdem sicher, dass kein einzelner Container einen großen Teil der zur Verfügung stehenden Ressourcen nutzen darf.

Wenn ein Unternehmen die im Artikel genannten Maßnahmen umsetzt, dann ist es in der Lage, Hacker daran zu hindern, seine Cloud-Container für böswillige Aktivitäten wie Krypto-Jacking zu missbrauchen.

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

Nächste Schritte

Gratis-eBook: Container sicher einsetzen

Container sicher betreiben

Container Security: Die Risiken von Image Repositories

Erfahren Sie mehr über Anwendungs- und Plattformsicherheit