Zephyrnet-Logo

Jetzt patchen: Kubernetes RCE-Fehler ermöglicht vollständige Übernahme von Windows-Knoten

Datum:

Eine Sicherheitslücke im weit verbreiteten Container-Management-System Kubernetes ermöglicht es Angreifern, Code mit Systemrechten remote auf Windows-Endpunkten auszuführen, was möglicherweise zur vollständigen Übernahme aller Windows-Knoten innerhalb eines führt Kubernetes-Cluster.

Der Sicherheitsforscher von Akamai, Tomer Peled, entdeckte den Fehler, der als CVE-2023-5528 verfolgt wird und einen CVSS-Score von 7.2 aufweist. Die Ausnutzung liegt in der Manipulation von Kubernetes-Volumes, einer Funktion, die darauf abzielt, die gemeinsame Nutzung von Daten zwischen Pods in einem Cluster zu unterstützen oder diese außerhalb des Lebenszyklus eines Pods dauerhaft zu speichern, erklärte er in einem Blog-Post März 13 erschienen.

Als Angriffsvektor bräuchten Angreifer um Pods und persistente Volumes zu erstellen auf Windows-Knoten, was es ihnen ermöglichen würde, auf diesen Knoten Administratorrechte zu erlangen, heißt es in einer GitHub-Liste für den Fehler.

„Es ist sehr einfach, diese Schwachstelle auszunutzen, da ein Angreifer nur einen Parameter ändern und drei YAML-Dateien anwenden müsste, um RCE über die Windows-Endpunkte zu erlangen“, sagt Peled gegenüber Dark Reading. Das Kubernetes-Framework „Verwendet YAML-Dateien für praktisch alles“, schrieb er in dem Beitrag.

Kubernetes-Cluster sind nur betroffen, wenn sie ein In-Tree-Storage-Plugin für Windows verwenden; Allerdings „gibt es viele verschiedene Volume-Typen, die Entwickler verwenden können“, was zu unterschiedlichen Angriffsszenarien führt, stellte Peled in dem Beitrag fest.

Standardinstallationen von Kubernetes vor Version 1.28.4, auf denen sowohl lokale Bereitstellungen als auch Azure Kubernetes Service ausgeführt werden, sind anfällig. Das Kubernetes-Team wurde über den Fehler informiert und es steht ein Patch zur Behebung zur Verfügung, der dringend empfohlen wird.

„Da das Problem im Quellcode liegt, bleibt diese Bedrohung aktiv und ihre Ausnutzung wird wahrscheinlich zunehmen – deshalb empfehlen wir dringend, Ihren Cluster zu patchen, auch wenn er keine Windows-Knoten hat“, schrieb Peled.

Den Fehlern folgen

Peled entdeckte den Fehler nach einer Untersuchung einer anderen Schwachstelle, die dieselbe Grundursache hatte: unsicherer Funktionsaufruf und mangelnde Bereinigung von Benutzereingaben in Kubernetes. Dieser Fehler war CVE-2023-3676, eine Schwachstelle durch Befehlseinschleusung, die ausgenutzt werden kann, indem eine bösartige YAML-Datei auf den Cluster angewendet wird. Die Entdeckung dieser Sicherheitslücke führte zur Entdeckung von zwei weiteren Sicherheitslücken, die ebenfalls auf die mangelnde Bereinigung des subPath-Parameters in YAML-Dateien zurückzuführen sind, wodurch Pods mit Volumes erstellt werden und die Möglichkeit für die Einschleusung von Schadcode besteht.

„Am Ende dieser Recherche bemerkten wir eine potenzielle Stelle im Code, die so aussah, als könnte sie zu einer weiteren Schwachstelle durch Befehlsinjektion führen“, die letztendlich zu CVE-2023-5528 wurde, erklärte Peled.

„Nach mehreren Versuchen gelang es uns, ein ähnliches Ergebnis zu erzielen: Befehle als Kubelet-Dienst (SYSTEM-Berechtigungen) auszuführen“, schrieb er.

Ausbeutung und Patching

Der Proof of Concept, den die Forscher durchführten, konzentrierte sich auf lokale Volumes, einen der Volume-Typen innerhalb von Kubernetes. Beim Erstellen eines Pods, der ein lokales Volume enthält, erreicht der Kubelet-Dienst schließlich eine Funktion mit einem Cmd-Zeilenaufruf von „exec.command“, der einen symbolischen Link zwischen dem Speicherort des Volumes auf dem Knoten und dem Speicherort innerhalb des Pods erstellt.

Wie viele Terminals ermöglicht auch die Eingabeaufforderung (cmd) von Windows die Ausführung von zwei oder mehr Befehlen direkt nacheinander sowie mehrere Befehle in derselben Befehlszeile. „Die Tatsache, dass wir einen der Parameter bei der cmd-Ausführung steuern können, bedeutet, dass wir die Befehlsinjektion verwenden können“, erklärte Peled.

Um dies auf lokalen Volumes zu erreichen, sind Voraussetzungen erforderlich, darunter unter anderem die Notwendigkeit, ein persistentes Volume anzugeben oder zu erstellen. Sobald dieses Volume jedoch erstellt ist, „kann ein Benutzer mithilfe eines persistentVolumeClaim Speicherplatz anfordern“, schrieb er. „Hier kann die Injektion platziert werden.“

Der für den Fehler erstellte Patch beseitigt die Möglichkeit einer Injektion, indem er den cmd-Aufruf löscht und ihn durch eine native GO-Funktion ersetzt, die denselben Vorgang zum Erstellen des Symlinks ausführt. „Jetzt führt die GO-'os'-Bibliothek nur noch eine Symlink-Operation aus, wie ursprünglich beabsichtigt war“, erklärte er.

Ist Ihr System anfällig?

Kubernetes hat sich zu einem der am weitesten verbreiteten Open-Source-Systeme für Container entwickelt; es ist jedoch auch geworden ein vorrangiges Ziel für Bedrohungsakteure aufgrund seiner großes Potenzial zur Nutzung und zum Zugriff auf Organisationsdaten. Darüber hinaus schafft die Kubernetes-Konfiguration oft selbst eine anfällige Installation und bietet Bedrohungsakteuren eine breite Angriffsfläche.

„Kubernetes ist ein sehr komplexes und robustes Tool“, sagt Peled. „Auf der einen Seite ermöglicht seine Robustheit den Benutzern, ihre Erfahrung an die Bedürfnisse ihres Unternehmens anzupassen, auf der anderen Seite macht es es jedoch sehr schwierig, jeden Aspekt davon sowohl aus Entwickler- als auch aus Benutzersicht zu sichern.“

Tatsächlich verdeutlicht die Entdeckung von CVE-2023-5528 und den damit verbundenen Schwachstellen für Unternehmen, die Kubernetes einsetzen, „wie wichtig es ist, Kubernetes-Konfigurations-YAMLs zu überprüfen, da die Eingabebereinigung in mehreren Codebereichen in Kubernetes selbst und seinen Sidecar-Projekten fehlt“, schrieb Peled .

Das Befolgen von Best Practices wie der rollenbasierten Zugriffskontrolle (RBAC) und die Sicherstellung, dass Cluster auf dem neuesten Stand sind, „sollte auch einen großen Teil der bekannten Bedrohungen abschwächen“, sagt er gegenüber Dark Reading.

Eine Unternehmensumgebung, in der Kubernetes ausgeführt wird, ist nur dann anfällig für die Ausnutzung des Fehlers, wenn eine Version des Systems älter als 1.28.4 ist und auf dem System Windows-Knoten ausgeführt werden. Wenn dies der Fall ist, stellt Akamai einen Befehl bereit, den Administratoren ausführen können, um festzustellen, ob das System gepatcht werden sollte. Wenn ja, sollte das Patchen Vorrang haben.  

„Wenn Ihr Kubernetes-Cluster keine Windows-Knoten hat, müssen Sie sich nicht beeilen, diese spezielle Schwachstelle zu schließen“, bemerkte Peled. „Aber es ist trotzdem wichtig, das Problem zu beheben, wenn man Zeit dafür hat.“

Wenn ein sofortiges Patchen keine Option ist, bietet sich auch Akamai an bietet eine Open Policy Agent (OPA)-Regel, die dabei hilft, diese Art von Verhalten zu erkennen und zu blockieren. OPA ist ein Open-Source-Agent, der es Benutzern ermöglicht, Daten über den ein- und ausgehenden Datenverkehr von Knoten zu empfangen und richtlinienbasierte Aktionen für die empfangenen Daten durchzuführen.

spot_img

Neueste Intelligenz

spot_img