Sicherheitsschwachstellen in Kubernetes-Clustern aufspüren
kube-hunter wird nicht mehr aktiv weiterentwickelt. Wenn Sie Kubernetes-Cluster auf bekannte Schwachstellen scannen möchten, empfehlen wir die Verwendung von Trivy. Insbesondere Trivys Kubernetes-Fehlkonfigurationsscan und KBOM-Schwachstellenscan. Erfahren Sie mehr in der Trivy-Dokumentation.
kube-hunter jagt nach Sicherheitslücken in Kubernetes-Clustern. Das Tool wurde entwickelt, um das Bewusstsein und die Sichtbarkeit für Sicherheitsprobleme in Kubernetes-Umgebungen zu erhöhen. Sie sollten kube-hunter NICHT auf einem Kubernetes-Cluster ausführen, der Ihnen nicht gehört!
kube-hunter ausführen: kube-hunter ist als Container verfügbar (aquasec/kube-hunter), und wir bieten auch eine Website unter kube-hunter.aquasec.com an, auf der Sie sich online registrieren können, um einen Token zu erhalten, mit dem Sie die Ergebnisse online einsehen und teilen können. Sie können den Python-Code auch selbst ausführen, wie unten beschrieben.
Schwachstellen erkunden: Die Wissensdatenbank von kube-hunter enthält Artikel über erkennbare Schwachstellen und Probleme. Wenn kube-hunter ein Problem meldet, zeigt es seine VID (Vulnerability ID) an, sodass Sie es in der KB unter https://aquasecurity.github.io/kube-hunter/ nachschlagen können.
Wenn Sie an der Integration von kube-hunter mit der Kubernetes ATT&CK Matrix interessiert sind, lesen Sie weiter hier
kube-hunter unterstützt nun das neue Format der Kubernetes ATT&CK-Matrix. Während die Schwachstellen von kube-hunter eine Sammlung kreativer Techniken sind, die einen Angreifer im Cluster (oder außerhalb) nachahmen sollen, definiert Mitres ATT&CK eine allgemeinere standardisierte Kategorisierung von Techniken.
Man kann sich die Schwachstellen von kube-hunter als kleine Schritte eines Angreifers vorstellen, die dem Pfad einer allgemeineren Technik folgen, auf die er abzielt. Die meisten Jäger und Schwachstellen von kube-hunter lassen sich eng unter diese Techniken einordnen. Daher sind wir dazu übergegangen, dem Matrix-Standard zu folgen.
Einige Schwachstellen von kube-hunter, die wir keiner Mitre-Technik zuordnen konnten, sind mit dem Schlüsselwort General gekennzeichnet.

Es gibt drei verschiedene Möglichkeiten, kube-hunter auszuführen, die jeweils einen anderen Ansatz zur Erkennung von Schwachstellen in Ihrem Cluster bieten:
Führen Sie kube-hunter auf einem beliebigen Rechner (einschließlich Ihres Laptops) aus, wählen Sie die Remote-Scanning-Option und geben Sie die IP-Adresse oder den Domainnamen Ihres Kubernetes-Clusters an. Dies gibt Ihnen die Sicht eines Angreifers auf Ihre Kubernetes-Einrichtung.
Sie können kube-hunter direkt auf einem Rechner im Cluster ausführen und die Option wählen, alle lokalen Netzwerkschnittstellen zu scannen.
Sie können kube-hunter auch in einem Pod innerhalb des Clusters ausführen. Dies zeigt, wie exponiert Ihr Cluster wäre, wenn einer Ihrer Anwendungs-Pods kompromittiert wird (z. B. durch eine Software-Sicherheitslücke). (--pod Flag)
Überprüfen Sie zunächst diese Voraussetzungen.
Standardmäßig öffnet kube-hunter eine interaktive Sitzung, in der Sie eine der folgenden Scan-Optionen auswählen können. Sie können die Scan-Option auch manuell über die Befehlszeile angeben. Ihre Optionen:
Um entfernte Rechner zum Jagen anzugeben, wählen Sie Option 1 oder verwenden Sie die Option --remote. Beispiel:
kube-hunter --remote some.node.com
Um das Scannen von Schnittstellen anzugeben, können Sie die Option --interface verwenden (dadurch werden alle Netzwerkschnittstellen des Rechners gescannt). Beispiel:
kube-hunter --interface
Um ein bestimmtes CIDR zu scannen, verwenden Sie die Option --cidr. Beispiel:
kube-hunter --cidr 192.168.0.0/24
Setzen Sie das Flag --k8s-auto-discover-nodes, um Kubernetes nach allen Knoten im Cluster abzufragen und dann zu versuchen, alle zu scannen. Standardmäßig wird die In-Cluster-Konfiguration verwendet, um eine Verbindung zur Kubernetes-API herzustellen. Wenn Sie eine explizite kubeconfig-Datei verwenden möchten, setzen Sie --kubeconfig /pfad/zur/kubeconfig/datei.
Beachten Sie auch, dass dies immer im --pod-Modus durchgeführt wird.
Um einen Angreifer in seinen frühen Phasen nachzuahmen, benötigt kube-hunter keine Authentifizierung für die Jagd.
Impersonate - Sie können kube-hunter ein bestimmtes Service-Account-Token zur Verwendung während der Jagd bereitstellen, indem Sie das JWT-Bearer-Token des Service-Account-Secrets manuell mit dem Flag --service-account-token übergeben.
Beispiel:
$ kube-hunter --active --service-account-token eyJhbGciOiJSUzI1Ni...
Bei Verwendung des --pod-Flags verwendet kube-hunter das Service-Account-Token, das innerhalb des Pods eingebunden ist, um sich bei Diensten zu authentifizieren, die während der Jagd gefunden werden.
--service-account-token Priorität, wenn als Pod ausgeführt wird.Aktives Jagen ist eine Option, bei der kube-hunter gefundene Schwachstellen ausnutzt, um nach weiteren Schwachstellen zu suchen. Der Hauptunterschied zwischen normalem und aktivem Jagen besteht darin, dass ein normales Jagen niemals den Zustand des Clusters ändert, während aktives Jagen potenziell zustandsändernde Operationen am Cluster durchführen kann, die schädlich sein können.
Standardmäßig führt kube-hunter kein aktives Jagen durch. Verwenden Sie das Flag --active, um einen Cluster aktiv zu jagen. Beispiel:
kube-hunter --remote some.domain.com --active
Sie können die Liste der Tests mit der Option --list einsehen. Beispiel:
kube-hunter --list
Um sowohl aktive als auch passive Jagd-Tests zu sehen:
kube-hunter --list --active
Um nur eine Abbildung Ihres Knotennetzwerks zu sehen, führen Sie mit der Option --mapping aus. Beispiel:
kube-hunter --cidr 192.168.0.0/24 --mapping
Dies gibt alle Kubernetes-Knoten aus, die kube-hunter gefunden hat.