So scannen Sie mit Kubescape nach Kubernetes-Sicherheitslücken

0
203
dennizn/Shutterstock.com

Kubescape ist ein neues Open-Source-Tool von ARMO, mit dem Sie Kubernetes-Cluster-Scans automatisieren können, um Sicherheitsprobleme zu identifizieren. Kubescape prüft Ihren Cluster anhand der von NSA und CISA veröffentlichten Härtungsempfehlungen.

So installieren Sie Kubescape und beginnen mit dem Scannen Ihres Clusters. Regelmäßige Scans können Ihnen helfen, Probleme zu beheben, bevor sie von Angreifern wiederverwendet werden.

Kubescape herunterladen

Kubescape wird derzeit als vorgefertigte Binärdatei für Windows, macOS und Ubuntu vertrieben. Sie können es direkt von der GitHub-Versionsseite des Projekts herunterladen.

Es gibt auch ein automatisiertes Installationsskript, das Sie in Ihr Terminal einfügen können. Dadurch wird die richtige Binärdatei für Ihr System abgerufen und Ihrem Pfad hinzugefügt.

curl -s https://raw.githubusercontent.com/armosec/kubescape/master/install.sh | /bin/bash

Versuchen Sie, kubescape auszuführen, um zu überprüfen, ob die Installation abgeschlossen ist. Sie sehen eine Zusammenfassung der verfügbaren Befehle.

< h2 id="scanning-your-cluster">Scannen Ihres Clusters

Kubernetes stellt mithilfe von Standard-Kubectl-Konfigurationsdateien eine Verbindung zu Ihrem Cluster her. Legen Sie die Umgebungsvariable KUBECONFIG in Ihrer Shell fest, um auf die Konfigurationsdatei für den zu scannenden Cluster zu verweisen:

export KUBECONFIG=.kube/my-cluster.yamlKubescape wird sich darüber beschweren, dass es “Fehler beim Laden der Kubernetes-Konfiguration” wenn diese Variable nicht gesetzt ist oder die angegebene Datei ungültig ist. Aktualisieren Sie die Variable KUBECONFIG jedes Mal, wenn Sie Kubescape ausführen, wenn Sie mehrere Cluster scannen möchten.

Scans werden mit dem Scan-Befehl initiiert. Sie müssen das härtende Framework angeben, gegen das Sie scannen möchten. Derzeit ist nsa die einzige unterstützte Option.

kubescape scan Framework nsa –exclude-namespaces kube-system,kube-public

Kubescape scannt alle Ressourcen in Ihrem Cluster, mit Ausnahme von Ressourcen in Namespaces, die durch das Flag –exclude-namespaces weggelassen werden. Es wird empfohlen, die integrierten Kubernetes-Namespaces hier aufzulisten, da Sie keine gefundenen Probleme beheben können.

Ihr erster Kubescape-Scan kann einige Zeit dauern, da das Tool seine Framework-Definitionen herunterladen muss. Diese definieren die Tests, mit denen Ihr Cluster bewertet wird. Sobald der Scan abgeschlossen ist, sehen Sie in Ihrem Terminal eine farbige Ausgabe, die alle entdeckten Probleme detailliert beschreibt.

Scan-Ergebnisse

Jeder fehlgeschlagener Test erzeugt einen eigenen Ausgabeabschnitt mit einer Liste der verdächtigen Ressourcen, einer Beschreibung des Problems und einem Hinweis zur Behebung. Eine Tabelle am Ende des Berichts bietet eine Zusammenfassung aller durchgeführten Tests, die Anzahl der Ressourcen, die sie nicht bestanden haben, und den Gesamterfolgsprozentsatz.

Werbung

Kubescape prüft anhand der von der NSA identifizierten Liste über 20 mögliche Schwachstellen. Der Bericht der NSA enthält eine Beschreibung der behandelten Themen und die Gründe für ihre Aufnahme. Zu den wichtigsten Problemen, auf die Kubescape prüft, gehören:

  • Möglichkeiten zur Eskalation von Privilegien
  • Container, die im privilegierten Modus ausgeführt werden
  • Container, die mit gefährlichen Fähigkeiten ausgeführt werden
  • Exponiertes Kubernetes-Dashboard
  • Container, die als Root ausgeführt werden
  • Anmeldeinformationen in Konfigurationsdateien
  • Falsch gesicherte Steuerungsebene

Mit Kubescape können Sie den Zustand Ihres Clusters überprüfen gegen die aktuellen Best-Practice-Richtlinien, sodass Sie sicherer sind, dass Sie Ihre Daten und Arbeitslasten nicht gefährden.

Manifestdateien scannen

< p>Kubescape kann ohne Clusterverbindung arbeiten. Sie können Ressourcenmanifeste scannen, die als lokale YAML-Dateien gespeichert sind, sodass Sie deren Sicherheit überprüfen können, bevor Sie sie auf Ihren Cluster anwenden. Fügen Sie nach dem Framework-Namen ein zusätzliches Argument hinzu, um die Dateien anzugeben, die Sie scannen möchten:

kubescape scan framework nsa k8s/*.yaml

Sie können eine URL als Dateipfad verwenden, um remote gespeicherte Dateien zu scannen, wie z in einem Git-Repository.

Verwenden Sie am besten den standardmäßigen Cluster-Scanmodus, wenn Sie eine umfassende Sicherheitsprüfung durchführen. Manifest-Scans werden idealerweise in CI-Pipelines eingebunden. Auf diese Weise können Sie vermeiden, dass unbeabsichtigt neue Schwachstellen eingeführt werden, wenn Sie Ihre Ressourcen aktualisieren und in Ihrem Cluster bereitstellen.

Offline-Scans

Kubescape is für die Online-Nutzung konzipiert, da die Framework-Definitionen heruntergeladen werden müssen, bevor ein Scan abgeschlossen werden kann. Sie können das Framework jedoch manuell speichern, um Offline-Scans zu erleichtern. Sie sollten versuchen, die Datei regelmäßig zu aktualisieren, damit sie nicht veraltet.

Laden Sie die NSA-Framework-Datei herunter:

kubescape download Framework nsa –output nsa.json

Scannen Sie jetzt Ihren Cluster mit der heruntergeladenen Datei:

kubescape scan Framework nsa –use-from nsa.json Werbung

Die –use- from-Flag weist Kubescape an, Framework-Definitionen aus der angegebenen Datei zu laden. Es gibt auch –use-default, das versucht, die lokal zwischengespeicherte Datei am Standardspeicherort zu verwenden, wenn sie verfügbar ist. Kubescape greift darauf zurück, die neuesten Definitionen vom Server herunterzuladen, wenn keine Datei gefunden wird.

Ausgabeformate

Kubescape gibt standardmäßig auf Ihrem Terminal aus, kann aber auch Berichte im JSON- oder Junit-Format erstellen. Fügen Sie das Flag -f hinzu, um Ihren gewünschten Modus anzugeben:

kubescape scan framework nsa -f json kubescape scan framework nsa -f junit

Die letztere Option gibt eine XML-Datei aus, die von Testberichtstools verwendet werden kann, die mit arbeiten das Junit-Format. Auf diese Weise können Sie Kubescape-Scans zur Visualisierung und Aggregation in Ihre vorhandenen Testberichtslösungen einspeisen.

Die Ausgabe wird unabhängig vom angegebenen Berichtsformat an den Standardausgabestream Ihres Terminals ausgegeben. Fügen Sie das Flag -o hinzu, um einen Dateipfad zum Speichern anzugeben:

kubescape scan Framework nsa -f json -o report.json

Kubescape’s übliche Fortschrittsmeldungen können mit dem Flag -s deaktiviert werden. Dies ist in CI-Szenarien hilfreich, in denen Sie Jobprotokolle nicht mit ASCII-Zeichen verschmutzen möchten.

Schlussfolgerung

Mit Kubescape können Sie die Sicherheit Ihres Kubernetes-Cluster gegen die von der NSA veröffentlichten Richtlinien. Das einfache Open-Source-Tool bietet einen einzigen Befehl, um Ihre Umgebung mit über 20 Schlüsselüberprüfungen zu vergleichen.

Werbung

Kubescape prüft nicht auf Sicherheitslücken in den Containern, die Sie in Ihrem Cluster ausführen. Dazu benötigen Sie ein anderes Tool wie Docker Scan oder Trivy. Wenn Sie neben Kubescape eine Container-Scanning-Engine ausführen, erhalten Sie ein vollständiges Bild des Sicherheitsstatus Ihrer Umgebung.