kalafoto - stock.adobe.com
Die Sicherheit von Kubernetes richtig gewährleisten
Viele Unternehmen setzen auf Kubernetes, wenn es um die Orchestrierung von Containern gibt. Wir zeigen in diesem Beitrag, was bezüglich der Sicherheit beachtet werden muss.
Vor allem ungeübte Administratoren haben beim Einsatz von Kubernetes oft das Problem, nur schwer einen Überblick zum Thema Sicherheit in Kubernetes-Umgebungen zu erhalten.
Besonders wichtig ist es, möglichst die aktuelle Version von Kubernetes einzusetzen und Sicherheits-Updates so schnell wie möglich zu installieren. Wenn in der Verwaltungslösung eine Sicherheitslücke vorliegt, also in diesem Fall in Kubernetes, können natürlich auch alle Container kompromittiert werden, die durch diese Lösung verwaltet werden.
Vor den Lösungen 1.10.11, 1.11.5, 1.12.3 und 1.13.0 sind Sicherheitslücken in Kubernetes vorhanden, die unberechtigten Personen erlaubt, Code im Cluster und für die Container auszuführen. Die Sicherheitslücke „CVE-2018-1002105“ wird als besonders kritisch bewertet. Durch die Sicherheitslücken können Angreifer sogar Admin-Rechte erreichen.
Sichere Container betreiben
Für den sicheren Betrieb einer Container-Plattform ist es wichtig, auch sichere Container-Images zu betreiben. Auf Basis der Images werden wiederum die Container erstellt. Daher ist es wichtig, dass die Images möglichst sicher sind. Ein unsicheres Image resultiert darin, dass in der Umgebung alle Container unsicher betrieben werden, die auf dieses Image aufbauen. Problematisch sind beim Einsatz von Containern natürlich deren Berechtigungen für das Netzwerk und den Cluster. Container übernehmen natürlich die Berechtigungen, die im entsprechenden Image hinterlegt sind.
Wenn für den Betrieb eines Containers Benutzerrechte notwendig sind, werden oft Benutzer mit zu vielen Rechten, oder der Benutzer „root“ verwendet. Viele Container-Images benötigen zumindest kurzzeitig Root-Rechte, um Container zu erstellen und zu starten. Danach werden die Rechte wieder abgegeben. Allerdings werden in der Zwischenzeit Anwendungen mit zu hohen Rechten ausgeführt. Das führt zwangsweise zu sehr hohen Sicherheitsrisiken. Eine der wichtigsten Sicherheitsoptimierungen für Kubernetes besteht daher darin, zu hohe Rechte für Container-Images zu entfernen.
Mit Tools Kubernetes und Container sicher betreiben und überprüfen
Lösungen wie Clair helfen dabei, Schwachstellen in Containern zu identifizieren. Auch Kube-Bench spielt dabei eine Rolle. Denn hier lässt sich überprüfen, ob die Bereitstellung der empfohlenen Sicherheit entspricht. Mit den Scripts von Neuvector für Kubernetes CIS Benchmark lassen sich Tests durchführen, ob die Kubernetes-Umgebung den empfohlenen Einstellungen und Voraussetzungen entspricht.
Authentifizierung in Kubernetes – Single Sign-On
Die Anmeldung an verschiedenen Stellen in Kubernetes muss natürlich entsprechend abgesichert sein. Cluster-Administratoren müssen konfigurieren, auf welcher Basis Anmeldungen erfolgen sollen, und ob Funktionen wie Single-Sign-On erlaubt sein dürfen. Dienste wie Open ID Connect lassen sich mit Kubernetes nutzen.
Das Kubernetes Dashboard wird, neben Kubectl, oft verwendet, um viele Bereiche einer Kubernetes-Umgebung zu verwalten. Das Dashboard verfügt über eine Login-Seite. Hier können Administratoren eine kubeconfig-Datei hochladen oder ein Token eingeben. Die Login-Seite verfügt über einen Skip-Button. Wenn die Berechtigungen nicht korrekt konfiguriert sind, kann der Benutzer mit Administratorrechten auf das Dashboard zugreifen. Idealerweise sollte in einer Kubernetes-Umgebung mit Role Based Access Control (RBAC) gearbeitet werden, um Berechtigungen so effektiv wie möglich zu steuern. Im Rahmen von RBAC sollte eine Struktur von Benutzergruppen und -rechten konfiguriert werden. Die Benutzer können entweder von einem LDAP-Server übernommen werden, oder auf Basis einer Cloud-Authentifizierung, wie Azure Active Directory stammen.
Mit Richtlinien arbeiten
Beim Einsatz von Containern sollten auch Netzwerkrichtlinien genutzt werden. In diesem Rahmen spielen auch Sicherheitsrichtlinien eine wichtige Rolle. Lösungen wie Istio können dabei helfen, diese Sicherheitsrichtlinien zu steuern und umzusetzen. Umsetzen lassen sich diese Richtlinien mit Lösungen wie Open Policy Agent (OPA).