Kube-Bench - Tool zum Ausführen des Kubernetes CIS-Benchmarks

Kube-BenchIn diesem Beitrag möchte ich einen kurzen Überblick über das Tool namens Kube-Bench geben.

kube-bench ist eine kleine, kostenlose Anwendung, die überprüft, ob ein Kubernetes-Cluster den Empfehlungen des CIS Kubernetes Benchmarks entspricht. Das Tool wurde als Open-Source von der Firma „Aqua Security“ entwickelt.

Der CIS Kubernetes Benchmark ist eine Reihe von Empfehlungen oder besser gesagt von Richtlinien, die vom Center for Internet Security (CIS) in den regelmäßigen Abständen veröffentlich werden. Das CIS ist eine öffentliche Organisation, die über mehr als einhundert unterschiedlichen Benchmarks für verschiedenen Plattformen / Produktfamilien von mehreren Anbietern kostenlos zur Verfügung stellt. Zum Beispiel, im Bereich Kubernetes gibt es angepassten Benchmarks für AKS (Microsoft), GKE (Google), EKS (Amazon) usw. In gewissermaßen ist CIS ein englischsprachiges Pendant zu den IT-Grundschutz-Bausteinen des BSI.

CIS Kubernetes Benchmark

CIS Kubernetes BenchmarkEin CIS Kubernetes V1.23 Benchmark (die aktuelle Version) ist ein 304-seitiges Dokument, welches über 120 verschiedenen Empfehlung in den fünf folgenden Bereichen liefert:

1. Control Plane Components

2. etcd

3. Control Plane Configuration

4. Worker Nodes

5. Policies

Inbetriebnahme und Konfiguration

Es gibt mehrere Methoden wie Sie kube-bench betreiben können. Die einfachste von denen wäre, die mitgelieferte job.yaml-Datei zu verwenden und diese auszuführen:

kubectl apply -f job.yaml

Mit dem oberen Befehl wird ein Pod erstellt. Weiterhin lässt sich der Pods-Name mit dem Befehl kubectl get pods anzeigen. Alle Überprüfungsergebnisse sind bereits in der Log-Datei gespeichert. Anschließend werden die Ergebnisse mit dem Befehl kubectl logs angezeigt.

kube-bench hat eine Reihe von fertigen Manifesten (vordefiniert für Master-Nodes, Worker-Nodes oder Managed Clusters) im Angebot, die Sie in Ihrem Cluster ausführen dürfen. kube-bench versucht die laufende Version von Kubernetes automatisch zu erkennen und diese der dazugehörigen CIS Benchmark-Version zuzuordnen.

Es ist wichtig zu merken, dass der Zugriff auf einige Konfigurationsdateien nur mit der Root/Sudo- Berechtigung möglich ist. Ebenfalls ist der Zugriff auf dem PID-Namespace des Hosts notwendig, um einige laufende Prozesse zu überprüfen.

Wenn Sie ein Managed Kubenetes (GKE, EKS, AKS, Tanzu) verwenden, dann haben Sie selbstverständlich keinen Zugang zu diesen Master-Knoten und können diese nicht durch kube-bench überprüfen lassen.

Test-Ergebnisse

kube bench 03

Leider werden viele Test-Ergebnisse mit der Type „manuell“ markiert und dadurch immer mit dem irreführenden WARN-Status beendet. Dies bedeutet nicht, dass es in diesem Fall unbedingt ein Sicherheitsrisiko ist, sondern die Überprüfung wurde nicht automatisch durchgeführt.

Fazit

kube-bench ist ein einfach zu bedienendes Open-Source-Tool, mit dem Sie überprüfen können, ob Ihr Kubernetes-Cluster sicher bereitgestellt wird, indem die in CIS Kubernetes-Benchmarks dokumentierten Prüfungen durchgeführt werden. Man muss auch beachten, dass die Zuordnung zwischen den Kubernetes- und CIS-Benchmark-Versionen nicht exakt ist.

Wenn wir es wirklich schaffen, alle oberen Punkte abzuarbeiten, so dass diese als „Pass“ markiert werden, dann kann das Cluster als sicher gelten. Aber das birgt die Gefahr der Beeinträchtigung der Funktionsfähigkeit des Clusters.  Und das Ignorieren der Empfehlung kann ein Gefühl der Angst um die Sicherheit des Clusters erzeugen...

kube-bench kann als eine Art Vortest der kostenpflichtigen Aqua Enterprise Plattform betrachtet werden.

 

Wichtige Links: