Erkennen massiver Krypto-Mining-Angriffe auf Kubernetes-Cluster

Veröffentlicht am 8 April, 2020

Security Research Software Engineer, Azure Security Center

Mit dem Bedrohungsschutz von Azure Security Center können Sie Bedrohungen übergreifend über eine Vielzahl von Diensten erkennen und verhindern – von der Infrastrukturschicht (Infrastructure-as-a-Service, IaaS) bis hin zu PaaS-Ressourcen (Platform as a Service) in Azure wie IoT, App Service und lokale virtuelle Computer.

Auf der Ignite 2019 haben wir neue Funktionen für den Bedrohungsschutz angekündigt, um raffinierten Bedrohungen auf Cloudplattformen zu begegnen. Dazu zählte auch die Vorschau auf die Unterstützung des Bedrohungsschutes für Azure Kubernetes Service (AKS) in Azure Security Center sowie die Vorschau auf die Sicherheitsrisikobewertung für Azure Container Registry (ACR)-Images.

Azure Security Center und Kubernetes-Cluster 

In diesem Blog wird ein kürzlich erfolgter massiver Krypto-Mining-Angriff auf Kubernetes-Cluster beschrieben, der unlängst von Azure Security Center erkannt wurde. Dies ist eines der vielen Beispiele, bei denen Azure Security Center Ihnen beim Schutz Ihrer Kubernetes-Cluster vor Bedrohungen helfen kann.

Krypto-Mining-Angriffe in containerisierten Umgebungen sind nicht neu. In Azure Security Center wird regelmäßig eine Vielzahl von Mining-Aktivitäten erkannt, die in Containern ausgeführt werden. In der Regel werden diese Aktivitäten in anfälligen Containern (z. B. Webanwendungen) ausgeführt, bei denen bekannte Schwachstellen ausgenutzt werden.

Unlängst hat Azure Security Center eine neue Krypto-Mining-Kampagne erkannt, die speziell auf Kubernetes-Umgebungen abzielt. Dieser Angriff scheidet sich von anderen Krypto-Mining-Angriffen durch seine schiere Größe: In nur zwei Stunden wurde in zig Kubernetes-Clustern ein böswilliger Container bereitgestellt.

In den jeweiligen Containern wurde ein Image aus einem öffentlichen Repository ausgeführt: kannix/monero-miner. Dieses Image führt XMRig aus, ein sehr beliebter Open-Source Monero Miner.

Die Telemetriedaten haben gezeigt, dass der Container von einer Kubernetes-Bereitstellung namens kube-control bereitgestellt wurde.

Wie aus der nachstehenden Bereitstellungskonfiguration hervorgeht, sorgt die Bereitstellung in diesem Fall dafür, dass 10 Replikate des Pods auf jedem Cluster ausgeführt werden:

KB Cluster2


Außerdem listet derselbe Akteur, der die Krypto-Mining-Container bereitgestellt hat, auch die Clusterressourcen auf, einschließlich der Kubernetes-Geheimnisse. Dies kann zur Offenlegung von Verbindungszeichenfolgen, Kennwörtern und anderen Geheimnissen führen, die möglicherweise eine Seitwärtsbewegung ermöglichen.

Das Interessante daran ist, dass die Identität in dieser Aktivität system:serviceaccount:kube-system:kubernetes-dashboard lautet: das Dienstkonto des Dashboards.
Diese Tatsache weist darauf hin, dass der böswillige Container vom Kubernetes-Dashboard bereitgestellt wurde. Die Ressourcenauflistung wurde ebenfalls vom Dienstkonto des Dashboards initiiert.

Es gibt drei Möglichkeiten, wie ein Angreifer das Kubernetes-Dashboard nutzen kann:

  1. Verfügbar gemachtes Dashboard: Der Clusterbesitzer hat das Dashboard für das Internet verfügbar gemacht, und der Angreifer hat es beim Scannen gefunden.
  2. Der Angreifer hat Zugriff auf einen einzelnen Container im Cluster erlangt und das interne Netzwerk des Clusters für den Zugriff auf das Dashboard verwendet (dies ist durch das Standardverhalten von Kubernetes möglich).
  3. Legitime Navigation zum Dashboard mithilfe von Cloud- oder Clusteranmeldeinformationen.

Die Frage ist, welche der drei obigen Optionen an diesem Angriff beteiligt war. Um diese Frage zu beantworten, können wir einen Hinweis von Azure Security Center verwenden, nämlich die Sicherheitswarnungen beim Verfügbarmachen des Kubernetes-Dashboards. Azure Security Center gibt Warnungen aus, wenn das Kubernetes-Dashboard für das Internet verfügbar gemacht wird. Die Tatsache, dass diese Sicherheitswarnung für einige der angegriffenen Cluster ausgelöst wurde, impliziert, dass der Zugriffsvektor in diesem Fall ein für das Internet verfügbar gemachtes Dashboard war.

Eine Darstellung dieses Angriffs sähe in der Kubernetes-Angriffsmatrix wie folgt aus:

KB Cluster3 

Vermeiden von Krypto-Mining-Angriffen

Wie lassen sich solche Angriffe vermeiden?

  1. Machen Sie das Kubernetes-Dashboard nicht für das Internet verfügbar: Wenn Sie das Dashboard für das Internet verfügbar machen, bedeutet das, dass Sie eine Verwaltungsschnittstelle verfügbar machen müssen.
  2. Wenden Sie die rollenbasierte Zugriffssteuerung (RBAC) im Cluster an: Wenn RBAC aktiviert ist, hat das Dienstkonto des Dashboards standardmäßig nur sehr eingeschränkte Berechtigungen, die keine Funktionalität (auch nicht die Bereitstellung neuer Container) zulassen.
  3. Erteilen Sie den Dienstkonten nur die notwendigen Berechtigungen: Stellen Sie bei Verwendung des Dashboards sicher, dass Sie nur die notwendigen Berechtigungen für das Dienstkonto des Dashboards anwenden. Wenn das Dashboard beispielsweise nur zur Überwachung verwendet wird, erteilen Sie dem Dienstkonto nur die Berechtigungen zum Abrufen.
  4. Lassen Sie nur vertrauenswürdige Images zu: Erzwingen Sie die Bereitstellung von ausschließlich vertrauenswürdigen Containern aus vertrauenswürdigen Registrierungen.

Weitere Informationen

Kubernetes entwickelt sich in Rekordzeit zum neuen Standard für die Softwarebereitstellung und -verwaltung in der Cloud. Derzeit gibt es noch wenige Benutzer, die reiche Erfahrung mit Kubernetes vorweisen können. Viele konzentrieren sich auf die allgemeine Entwicklung und Verwaltung und vernachlässigen dabei den Sicherheitsaspekt. Eine Kubernetes-Umgebung muss sorgfältig konfiguriert werden, damit sie wirklich sicher ist. So wird sichergestellt, dass keine Angriffsfläche für Angriffe auf Container geboten wird. Azure Security Center stellt Folgendes bereit:

  1. Erkennung und Sichtbarkeit: Fortlaufende Erkennung von verwalteten AKS-Instanzen in den registrierten Security Center-Abonnements
  2. Secure Score-Empfehlungen: Aktionselemente, mit denen Kunden im Rahmen des Secure Score eines Kunden die bewährten Methoden für die Sicherheit in AKS einhalten können (z. B. „Die rollenbasierte Zugriffssteuerung sollte verwendet werden, um den Zugriff auf Kubernetes Service-Cluster einzuschränken.“)
  3. Bedrohungserkennung: Host- und clusterbasierte Analysen (z. B. „Ein privilegierter Container wurde erkannt.“)

Weitere Informationen zur Unterstützung von AKS in Azure Security Center finden Sie in dieser Dokumentation.