Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
kubeaudit — kubeaudit helps you audit your Kubernetes clusters against common security controls | Kitploit
Tools/GitHubGitHub/shopify/kubeaudit
Cloud Infrastructure SecurityVulnerability ScannersContainer SecurityConfiguration AuditingCloud SecurityDevSecOpsMisconfigurationArchived
GitHubshopify/kubeaudit

kubeaudit

kubeaudit helps you audit your Kubernetes clusters against common security controls

Repository anzeigen
1.9k189vor 1 JahrVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

Build Status Go Report Card GoDoc

Es ist jetzt eine Voraussetzung für Cluster, Kubernetes >=1.19 auszuführen.

Überschreibungs-Labels mit nicht registrierten kubernetes.io-Annotationen werden veraltet. Es wird bald erforderlich sein, stattdessen kubeaudit.io zu verwenden.
Siehe diese Diskussion für weiteren Kontext.

🚨 Veraltungsankündigung 🚨

Kubeaudit ist für die Einstellung bis Oktober 2024 geplant.

Wir suchen aktiv nach Betreuern, die daran interessiert sind, die Verantwortung für dieses Projekt zu übernehmen. Wenn Sie Leidenschaft für die Weiterentwicklung und Wartung haben, kontaktieren Sie uns bitte.

Für Benutzer, die nach Alternativen suchen, empfehlen wir den Umstieg auf Kubebench, das ähnliche Funktionalitäten bietet und aktiv gewartet wird.

Vielen Dank an die Community für Ihre Beiträge und Unterstützung.

kubeaudit ☁️ 🔒 💪

kubeaudit ist ein Kommandozeilenwerkzeug und ein Go-Paket zur Überprüfung von Kubernetes-Clustern auf verschiedene Sicherheitsbedenken, wie z. B.:

  • Ausführung als Nicht-Root
  • Verwendung eines schreibgeschützten Root-Dateisystems
  • gefährliche Capabilities entfernen, keine neuen hinzufügen
  • nicht privilegiert ausführen
  • und mehr!

TL;DR. kubeaudit stellt sicher, dass Sie sichere Container bereitstellen!

Paket

Um kubeaudit als Go-Paket zu verwenden, siehe die Paketdokumentation.

Der Rest dieser README konzentriert sich darauf, wie man kubeaudit als Kommandozeilenwerkzeug verwendet.

Kommandozeilenschnittstelle (CLI)

  • Installation
  • Schnellstart
  • Überprüfungsergebnisse
  • Befehle
  • Konfigurationsdatei
  • Fehler überschreiben
  • Mitwirken

Installation

Brew

root@kitploit:~
brew install kubeaudit

Ein Binärprogramm herunterladen

Kubeaudit hat offizielle, stabile und geprüfte Veröffentlichungen: Offizielle Veröffentlichungen

Eigenbau

Der Hauptzweig kann neuere Funktionen enthalten als die stabilen Veröffentlichungen. Wenn Sie eine neuere Funktion benötigen, die noch nicht in einer Veröffentlichung enthalten ist, stellen Sie sicher, dass Sie das aktuelle Go verwenden, und führen Sie Folgendes aus:

root@kitploit:~
go get -v github.com/Shopify/kubeaudit

Beginnen Sie mit der Nutzung von kubeaudit mit dem Schnellstart oder sehen Sie sich alle unterstützten Befehle an.

Kubectl-Plugin

Voraussetzung: kubectl v1.12.0 oder höher

Mit kubectl v1.12.0, das die einfache Pluginfähigkeit externer Funktionen einführte, kann kubeaudit als kubectl audit aufgerufen werden, indem

  • make plugin ausgeführt wird und $GOPATH/bin in Ihrem Pfad verfügbar ist.

oder

  • die Binärdatei in kubectl-audit umbenannt wird und im Pfad verfügbar ist.

Docker

Wir veröffentlichen keine Images mehr auf Docker Hub (seit Docker Hub die Free Team-Organisationen eingestellt hat). Vorläufig sind alte Images noch verfügbar, könnten aber jederzeit nicht mehr verfügbar sein. Wir werden bald damit beginnen, Images in der Github Container Registry zu veröffentlichen.

Um kubeaudit als Job in Ihrem Cluster auszuführen, siehe Ausführen von kubeaudit in einem Cluster.

Schnellstart

kubeaudit hat drei Modi:

  1. Manifest-Modus
  2. Lokaler Modus
  3. Cluster-Modus

Manifest-Modus

Wenn eine Kubernetes-Manifestdatei mit dem Flag -f/--manifest angegeben wird, überprüft kubeaudit die Manifestdatei.

Beispielbefehl:

root@kitploit:~
kubeaudit all -f "/path/to/manifest.yml"

Beispielausgabe:

root@kitploit:~
$ kubeaudit all -f "internal/test/fixtures/all_resources/deployment-apps-v1.yml"

---------------- Results for ---------------

  apiVersion: apps/v1
  kind: Deployment
  metadata:
    name: deployment
    namespace: deployment-apps-v1

--------------------------------------------

-- [error] AppArmorAnnotationMissing
   Message: AppArmor annotation missing. The annotation 'container.apparmor.security.beta.kubernetes.io/container' should be added.
   Metadata:
      Container: container
      MissingAnnotation: container.apparmor.security.beta.kubernetes.io/container

-- [error] AutomountServiceAccountTokenTrueAndDefaultSA
   Message: Default service account with token mounted. automountServiceAccountToken should be set to 'false' or a non-default service account should be used.

-- [error] CapabilityShouldDropAll
   Message: Capability not set to ALL. Ideally, you should drop ALL capabilities and add the specific ones you need to the add list.
   Metadata:
      Container: container
      Capability: AUDIT_WRITE
...

Wenn keine Fehler mit einer bestimmten Mindestschwere gefunden werden, wird Folgendes zurückgegeben:

root@kitploit:~
All checks completed. 0 high-risk vulnerabilities found

Autofix

Der Manifest-Modus unterstützt auch die automatische Behebung aller Sicherheitsprobleme mit dem Befehl autofix:

root@kitploit:~
kubeaudit autofix -f "/path/to/manifest.yml"

Um das korrigierte Manifest in eine neue Datei zu schreiben, anstatt die Quelldatei zu ändern, verwenden Sie das Flag -o/--output.

root@kitploit:~
kubeaudit autofix -f "/path/to/manifest.yml" -o "/path/to/fixed"

Um ein Manifest basierend auf benutzerdefinierten Regeln zu korrigieren, die in einer kubeaudit-Konfigurationsdatei angegeben sind, verwenden Sie das Flag -k/--kconfig.

root@kitploit:~
kubeaudit autofix -k "/path/to/kubeaudit-config.yml" -f "/path/to/manifest.yml" -o "/path/to/fixed"

Cluster-Modus

Kubeaudit kann erkennen, ob es in einem Container in einem Cluster ausgeführt wird. Wenn ja, wird versucht, alle Kubernetes-Ressourcen in diesem Cluster zu überprüfen:

root@kitploit:~
kubeaudit all

Lokaler Modus

Kubeaudit versucht, mithilfe der lokalen Kubeconfig-Datei ($HOME/.kube/config) eine Verbindung zu einem Cluster herzustellen. Ein anderer Kubeconfig-Pfad kann mit dem Flag --kubeconfig angegeben werden. Um einen Kontext der Kubeconfig anzugeben, verwenden Sie das Flag -c/--context.

root@kitploit:~
kubeaudit all --kubeconfig "/path/to/config" --context my_cluster

Für weitere Informationen zu Kubernetes-Konfigurationsdateien siehe https://kubernetes.io/docs/concepts/configuration/organize-cluster-access-kubeconfig/

Überprüfungsergebnisse

Kubeaudit erzeugt Ergebnisse mit drei Schweregraden:

  • Error: Ein Sicherheitsproblem oder eine ungültige Kubernetes-Konfiguration
  • Warning: Eine Empfehlung zu Best Practices
  • Info: Nur zur Information, kein Handlungsbedarf. Dazu gehören Ergebnisse, die überschrieben wurden.

Der minimale Schweregrad kann mit dem Flag --minSeverity/-m festgelegt werden.

Standardmäßig gibt kubeaudit Ergebnisse in menschenlesbarer Form aus. Wenn die Ausgabe weiterverarbeitet werden soll, kann sie mit dem Flag --format json auf JSON gesetzt werden. Für die Ausgabe als Logs (der vorherige Standard) verwenden Sie --format logrus. Einige Ausgabeformate enthalten Farben, um die Ergebnisse im Terminal leichter lesbar zu machen. Um Farben zu deaktivieren (z. B. wenn Sie die Ausgabe in eine Textdatei senden), können Sie das Flag --no-color verwenden.

Sie können einen kubeaudit-Bericht im SARIF-Format mit dem Flag --format sarif erstellen. Um die SARIF-Ergebnisse in eine Datei zu schreiben, können Sie die Ausgabe mit > umleiten. Zum Beispiel:

root@kitploit:~
kubeaudit all -f path-to-my-file.yaml --format="sarif" > example.sarif

Wenn es Ergebnisse mit dem Schweregrad error gibt, beendet sich kubeaudit mit dem Exit-Code 2. Dies kann mit dem Flag --exitcode/-e geändert werden.

Für alle Möglichkeiten, kubeaudit anzupassen, siehe Globale Flags.

Befehle

Auditoren

Auditoren können auch einzeln ausgeführt werden.

Globale Flags

Konfigurationsdatei

Die kubeaudit-Konfiguration kann für zwei Dinge verwendet werden:

  1. Nur bestimmte Auditoren aktivieren
  2. Konfiguration für Auditoren angeben

Jede Konfiguration, die mit Flags für die einzelnen Auditoren angegeben werden kann, kann auch mit der Konfiguration dargestellt werden.

Die Konfiguration hat das folgende Format:

root@kitploit:~
enabledAuditors:
  # Auditoren sind standardmäßig aktiviert, wenn sie nicht explizit auf "false" gesetzt werden
  apparmor: false
  asat: false
  capabilities: true
  deprecatedapis: true
  hostns: true
  image: true
  limits: true
  mounts: true
  netpols: true
  nonroot: true
  privesc: true
  privileged: true
  rootfs: true
  seccomp: true
auditors:
  capabilities:
    # Fügen Sie benötigte Capabilities zur Add-Liste hinzu, damit kubeaudit keine Fehler meldet
    allowAddList: ['AUDIT_WRITE', 'CHOWN']
  deprecatedapis:
    # Wenn keine Versionen angegeben werden und der Auditor 'deprecatedapis' aktiviert ist, werden WARN-Ergebnisse für Ressourcen erzeugt, die mit einer veralteten API definiert sind.
    currentVersion: '1.22'
    targetedVersion: '1.25'
  image:
    # Wenn kein Image angegeben wird und der Auditor 'image' aktiviert ist, werden WARN-Ergebnisse für Container erzeugt, die ein Image ohne Tag verwenden
    image: 'myimage:mytag'
  limits:
    # Wenn keine Limits angegeben werden und der Auditor 'limits' aktiviert ist, werden WARN-Ergebnisse für Container erzeugt, die keine CPU- oder Speicherlimits haben
    cpu: '750m'
    memory: '500m'

Weitere Details zu jedem Auditor, einschließlich einer Beschreibung der auditorspezifischen Konfiguration in der Konfigurationsdatei, finden Sie in der Auditor-Dokumentation.

Hinweis: Die kubeaudit-Konfiguration ist nicht identisch mit der Kubeconfig-Datei, die mit dem Flag --kubeconfig angegeben wird. Letztere bezieht sich auf die Kubernetes-Konfigurationsdatei (siehe Lokaler Modus). Beachten Sie auch, dass nur die Befehle all und autofix die Verwendung einer kubeaudit-Konfiguration unterstützen. Sie funktioniert nicht mit anderen Befehlen.

Hinweis: Wenn Flags in Kombination mit der Konfigurationsdatei verwendet werden, haben die Flags Vorrang.

Fehler überschreiben

Sicherheitsprobleme können für bestimmte Container oder Pods durch das Hinzufügen von Überschreibungs-Labels ignoriert werden. Dadurch erzeugt der Auditor anstelle von error-Ergebnissen info-Ergebnisse, und der Ergebnisname erhält den Zusatz Allowed. Die Labels sind in der Dokumentation jedes Auditors beschrieben, aber das allgemeine Format für Auditoren, die Überschreibungen unterstützen, ist wie folgt:

Ein Überschreibungs-Label besteht aus einem key und einem value.

Der key ist eine Kombination aus dem Überschreibungstyp (Container oder Pod) und einer Überschreibungs-ID, die für jeden Auditor einzigartig ist (siehe die Dokumentation für den jeweiligen Auditor). Der key kann eine von zwei Formen annehmen, abhängig vom Überschreibungstyp:

  1. Container-Überschreibungen, die den Auditor für diesen spezifischen Container überschreiben, haben folgendes Format:
root@kitploit:~
container.kubeaudit.io/[containername].[Überschreibungs-ID]
  1. Pod-Überschreibungen, die den Auditor für alle Container innerhalb des Pods überschreiben, haben folgendes Format:
root@kitploit:~
kubeaudit.io/[Überschreibungs-ID]

Wenn der value auf einen nicht leeren String gesetzt wird, wird er im info-Ergebnis als OverrideReason angezeigt:

root@kitploit:~
$ kubeaudit asat -f "auditors/asat/fixtures/service-account-token-true-allowed.yml"

---------------- Results for ---------------

  apiVersion: v1
  kind: ReplicationController
  metadata:
    name: replicationcontroller
    namespace: service-account-token-true-allowed

--------------------------------------------

-- [info] AutomountServiceAccountTokenTrueAndDefaultSAAllowed
   Message: Audit result overridden: Default service account with token mounted. automountServiceAccountToken should be set to 'false' or a non-default service account should be used.
   Metadata:
      OverrideReason: SomeReason

Gemäß der Kubernetes-Spezifikation muss value 63 Zeichen oder kürzer sein und entweder leer sein oder mit einem alphanumerischen Zeichen ([a-z0-9A-Z]) beginnen und enden, mit Bindestrichen (-), Unterstrichen (_), Punkten (.) und alphanumerischen Zeichen dazwischen.

Es können mehrere Überschreibungs-Labels (für mehrere Auditoren) zur gleichen Ressource hinzugefügt werden.

Siehe die spezifische Auditor-Dokumentation für den Auditor, den Sie überschreiben möchten, für Beispiele.

Um mehr über Labels zu erfahren, siehe https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/

Mitwirken

Wenn Sie einen Fehler beheben, eine Funktion beisteuern oder nur einen Tippfehler korrigieren möchten, können Sie dies gerne tun, solange Sie unseren Verhaltenskodex befolgen.

  1. Erstellen Sie Ihren eigenen Fork!
  2. Holen Sie sich den Quellcode: go get github.com/Shopify/kubeaudit
  3. Gehen Sie zum Quellcode: cd $GOPATH/src/github.com/Shopify/kubeaudit
  4. Fügen Sie Ihr geforktes Repository als Fork hinzu: git remote add fork https://github.com/you-are-awesome/kubeaudit
  5. Erstellen Sie Ihren Feature-Branch: git checkout -b awesome-new-feature
  6. Installieren Sie Kind
  7. Führen Sie die Tests aus, um zu sehen, dass alles wie erwartet funktioniert: USE_KIND=true make test (um Tests ohne Kind auszuführen: make test)
  8. Committen Sie Ihre Änderungen: git commit -am 'Fügt tolle Funktion hinzu'
  9. Pushen Sie auf den Branch: git push fork
  10. Unterschreiben Sie die Contributor License Agreement
  11. Reichen Sie einen PR ein (Alle PRs müssen mit 🐛 (Fehlerbehebung), ✨ (Neue Funktion), 📖 (Dokumentationsaktualisierung) oder ⚠️ (Breaking Changes) gekennzeichnet sein)
  12. ???
  13. Profitieren Sie

Beachten Sie, dass Sie, wenn Sie die CLA vor dem Öffnen Ihres PRs nicht unterschrieben haben, die Überprüfung erneut ausführen können, indem Sie einen Kommentar zum PR hinzufügen, der sagt: "I've signed the CLA!"!

Tool herunterladen
BefehlBeschreibungDokumentation
allFührt alle verfügbaren Auditoren aus, oder diejenigen, die in einer kubeaudit-Konfiguration angegeben sind.docs
autofixKorrigiert Sicherheitsprobleme automatisch.docs
versionGibt die aktuelle Version von kubeaudit aus.
BefehlBeschreibungDokumentation
apparmorFindet Container, die ohne AppArmor ausgeführt werden.docs
asatFindet Pods, die ein automatisch gemountetes Standarddienstkonto verwenden.docs
capabilitiesFindet Container, die die empfohlenen Capabilities nicht entfernen oder neue hinzufügen.docs
deprecatedapisFindet Ressourcen, die mit einer veralteten API-Version definiert sind.docs
hostnsFindet Container, die HostPID, HostIPC oder HostNetwork aktiviert haben.docs
imageFindet Container, die nicht die gewünschte Version eines Images (über den Tag) verwenden oder ein Image ohne Tag verwenden.docs
limitsFindet Container, die die angegebenen CPU- und Speicherlimits überschreiten oder keine angeben.docs
mountsFindet Container, die sensible Host-Pfade eingebunden haben.docs
netpolsFindet Namespaces, die keine Default-Deny-Netzwerkrichtlinie haben.docs
nonrootFindet Container, die als Root ausgeführt werden.docs
privescFindet Container, die eine Privilegienausweitung erlauben.docs
privilegedFindet Container, die privilegiert ausgeführt werden.docs
rootfsFindet Container, die kein schreibgeschütztes Dateisystem haben.docs
seccompFindet Container, die ohne Seccomp ausgeführt werden.docs
KurzLangBeschreibung
--formatDas zu verwendende Ausgabeformat (eines von "sarif", "pretty", "logrus", "json") (Standard ist "pretty")
--kubeconfigPfad zur lokalen Kubernetes-Konfigurationsdatei. Wird nur im lokalen Modus verwendet (Standard ist $HOME/.kube/config)
-c--contextDer Name des zu verwendenden Kubeconfig-Kontextes
-f--manifestPfad zur zu überprüfenden YAML-Konfiguration. Wird nur im Manifest-Modus verwendet. Sie können - verwenden, um von der Standardeingabe zu lesen.
-n--namespaceNur Ressourcen im angegebenen Namespace überprüfen. Derzeit nicht im Manifest-Modus unterstützt.
-g--includegeneratedGenerierte Ressourcen in den Scan einbeziehen (z. B. Pods, die von Deployments erstellt wurden). Wenn Sie möchten, dass kubeaudit Ergebnisse für generierte Ressourcen erzeugt (z. B. bei benutzerdefinierten Ressourcen oder verwaisten Ressourcen, deren Besitzer-Ressource nicht mehr existiert), können Sie dieses Flag verwenden.
-m--minseverityLegt den niedrigsten zu meldenden Schweregrad fest (eines von "error", "warning", "info") (Standard ist "info")
-e--exitcodeExit-Code, der verwendet werden soll, wenn es Ergebnisse mit dem Schweregrad "error" gibt. Üblicherweise steht 0 für Erfolg und alle Null-Codes für einen Fehler. (Standard ist 2)
--no-colorKeine Farben in der Ausgabe verwenden (Standard ist false)