Mit der überwältigenden Popularität von Kubernetes, sind diese Systeme auch für potenzielle Angreifer sehr interessant geworden. Daher drängt sich auch die Frage auf, wie Kubernetes Cluster geeignet abgesichert werden können.

Den Haupteingang absichern!

Der Kubernetes API Service fungiert als Haupteingang eines jeden Clusters. Da dieser für Management-Zwecke benötigt wird, steht er jedem Deployment zur Verfügung. Aus diesem Grunde muss er unbedingt gesichert werden.

Glücklicherweise bieten die meisten Kubernetes Deployments eine Authentifizierung für den betroffenen Port an. Dennoch ist es möglich, ihn versehentlich zu exponieren, wenn das Dashboard über diesen Port ohne Authentifizierung bereitgestellt wird.

Eine weitere Möglichkeit diesen Port zu exponieren ist, wenn der insecure API Service aktiviert ist. Wie der Name schon sagt, darf diese Option keinesfalls in einem unsicheren Netzwerk eingeschaltet sein. Trotz aller Offensichtlichkeit, treten auch solche Fälle wiederholt auf und sollten explizite Beachtung finden.

Im Internet sind Sie immer sichtbar

Sobald ein Dienst über das Internet nutzbar ist, ist er auch sichtbar für potenzielle Angreifer. Beim Betrieb eines Entwicklungs- und Testsystems verliert der Aspekt Sicherheit schnell an Fokus. Doch gerade mit Tools wie Shodan ist es ein Leichtes für Hacker, vielversprechende Ziele zu erspähen.

In kürzester Zeit ermöglichen diese Tools es, Ihren Kubernetes Cluster ausfindig zu machen, da diese eine Reihe von charakteristischen Ports verfügbar machen. Ein Beispiel hierfür ist etcd, welches von Kubernetes als Cluster-Datenbank eingesetzt wird. Typischerweise hört etcd auf Port 2379/TCP, ist so bei Shodan indiziert und leicht aufzuspüren.

Analysen haben ergeben, dass häufig etcd-Services ohne jegliche Authentifizierung erscheinen. Dies ist natürlich ein schwerwiegendes Problem, da Angreifer die Datenbank erfolgreich kompromittieren und potenziell das gesamte System gefährden können.

Ports auf dem Host

Es sind nicht nur der etcd-Service und die Kubernetes API, die nur mit Bedacht exponiert werden sollten. Je nach Konfiguration des Clusters, können auch andere Services Probleme bereiten, wenn ein Angreifer auf sie zugreifen kann.

Die Kubelet API, die von Kubernetes genutzt wird, um Container auf einzelnen Nodes und in einigen Clustern zu managen, ist ebenfalls ohne Authentifizierung verfügbar. Somit ist es Angreifern möglich, Code innerhalb von Container auszuführen und möglicherweise den kompletten Cluster zu übernehmen.

Dies ist ein seit längerer Zeit bekanntes Problem. Kubelet exploit existiert bereits seit 2016. Erst kürzlich wurden Einsätze bekannt. Somit handelt es sich um eine sehr aktive Form des Angriffs.

Ein kompromittierter Container entspricht einem kompromittierten Cluster

Kubernetes kann Mengen von Container hosten. Daher ist es nicht auszuschließen, dass ein kompromittierter Container zu einer weitaus größeren Sicherheitsproblematik führen kann.

Daher gilt es einige Dinge zu beachten, die Angreifer ausnutzen könnten, um ihre Rechte auszudehnen.

Das default-Verhalten vieler Kubernetes Cluster, bei denen ein Token, das den Zugang zur Kubernetes API ermöglicht, in jeden Container gereicht wird, kann zu Sicherheitsproblematiken führen, insbesondere wenn das Token Clusteradmin-Rechte beinhaltet. Dies passiert, wenn role-based access control (RBAC) nicht konfiguriert ist. Bei dieser Konfiguration kann ein Angreifer, der einen einzelnen Container erreichen kann, relativ einfach seine Rechte eskalieren und die volle Kontrolle erhalten.

Aufgrund dieser Tatsache ist es unverzichtbar, diese Komponente entsprechende zu verschließen. Idealerweise wäre vollständig auf Tokens zu verzichten. Sind diese unumgänglich, müssen die mit den Token verbundenen Rechte entsprechend eingedämmt werden.

Die andere hierbei zu beachtende Thematik sind „privilegierten Container“. Ein Container, der als „privilegiert“ läuft, schaltet implizit den Sicherheitsmechanismus von Docker aus und erlaubt es, Code auf dem darunterliegenden System auszuführen. Wenn möglich, sollte es vermieden werden teile des Cluster mit dieser Einstellung auszuführen.

Ein fundiertes Wissen und Erfahrung zum Thema Security ist für den professionellen Einsatz von IT unabdingbar. Setzen Sie daher auf zielsicher auf teuto.net. Wir betreiben und sichern seit nunmehr 25 Jahren die Systeme unserer Kunden auf höchstem Niveau.