Communitygithub.com

Benchmarking von Kubernetes mit kube-bench

kube-bench (von Aqua Security) ist ein Open-Source-Tool, das Kubernetes-Cluster auf Sicherheitskonformität gemäß dem CIS Kubernetes Benchmark prüft und detaillierte Berichte und Abhilfemaßnahmen bereitstellt.

Was ist Benchmarking von Kubernetes mit kube-bench?

kube-bench automatisiert die Überprüfung eines Kubernetes-Clusters anhand der strengen Richtlinien des CIS Kubernetes Benchmark. Das Tool prüft Control-Plane-Komponenten (API-Server, Scheduler, Controller-Manager, etcd), Worker-Node-Konfigurationen (kubelet, Proxy) sowie clusterweite Sicherheitsrichtlinien (RBAC, Pod-Sicherheit, Netzwerkrichtlinien). Jede Prüfung wird mit PASS, FAIL, WARN oder INFO bewertet und mit einer konkreten Abhilfeempfehlung aus dem CIS Guidance bereitgestellt. Es kann als Binary, Container oder als Kubernetes-Job ausgeführt werden, wobei es die Host-Dateisysteme verwendet, um Konfigurationsdateien zu lesen. Die Ergebnisse lassen sich in verschiedenen Formaten wie JSON, JUnit oder AWS Security Finding Format (ASFF) ausgeben und in PostgreSQL speichern, um Trends zu verfolgen. Durch die Anwendung der CIS-Benchmark-Härtung reduziert kube-bench die Angriffsfläche für Bedrohungen wie T1610 (Deploy Container), bei denen Angreifer privilegierte Container, Host-Namespaces oder anonymer API-Zugriff ausnutzen.

Funktioniert mit~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/mukul975/Anthropic-Cybersecurity-Skills/tree/main/skills/benchmarking-kubernetes-with-kube-bench

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

Was macht Benchmarking von Kubernetes mit kube-bench?

Übersicht

kube-bench (von Aqua Security) ist ein Open-Source-Tool, das überprüft, ob ein Kubernetes-Cluster sicher bereitgestellt wurde, indem es die im CIS Kubernetes Benchmark dokumentierten Prüfungen durchführt. Es inspiziert die Control-Plane-Komponenten (API-Server, Controller-Manager, Scheduler, etcd), die kubelet- und Worker-Node-Konfiguration sowie clusterweite Richtlinieneinstellungen und meldet jede Prüfung als PASS, FAIL, WARN oder INFO mit einer Abhilfeempfehlung, die direkt aus dem CIS-Leitfaden stammt. Die Tests sind konfigurationsgesteuerte YAML-Dateien, sodass kube-bench neue Kubernetes-Versionen und Benchmark-Revisionen verfolgt und verwaltete Distributionen (EKS, GKE, AKS, ACK, OpenShift, RKE, k3s) unterstützt.

Die Härtung eines Clusters gemäß dem CIS Benchmark reduziert direkt die Angriffsfläche für T1610 (Deploy Container), bei dem ein Angreifer einen Container bereitstellt, um Code auszuführen oder Verteidigungsmaßnahmen zu umgehen – beispielsweise durch den Missbrauch privilegierter Container, Host-Namespaces, anonymem API-Zugriff oder unsicherer kubelet-Einstellungen, die ein ungehärteter Cluster offenlegt.

kube-bench kann als eigenständiges Binary auf einem Knoten, in einem Container oder – am häufigsten – als Kubernetes-Job ausgeführt werden, dessen Pod das Host-Dateisystem eingehängt hat, um die relevanten Konfigurationsdateien lesen zu können. Die Ausgabe erfolgt als menschenlesbarer Text, JSON, JUnit oder AWS Security Finding Format (ASFF) und kann zur Trendverfolgung an eine PostgreSQL-Datenbank gesendet werden.

Verwendungszweck

  • Bei der Erstellung einer Sicherheitsbaseline für einen neuen Kubernetes-Cluster gemäß dem CIS Kubernetes Benchmark.
  • Bei der Durchführung regelmäßiger Compliance-Audits der Control-Plane- und Node-Härtung.
  • Bei der Validierung der Abhilfe nach Anwendung von Härtungsänderungen (erneute Ausführung, um zu bestätigen, dass die Prüfungen jetzt PASS lauten).
  • Bei der Integration des Cluster-Compliance-Scans in CI/CD oder eine kontinuierliche Überwachungspipeline.
  • Bei der Vorbereitung von Nachweisen für SOC 2, PCI DSS oder interne Härtungs-Compliance.

Voraussetzungen

  • Zugriff auf den Cluster: entweder SSH-Zugriff auf einen Control-Plane-/Worker-Knoten (Binary-Modus) oder kubectl mit Berechtigung zum Erstellen von Jobs (In-Cluster-Modus).
  • Kenntnis der Kubernetes-Version des Clusters (kube-bench erkennt automatisch oder kann mit --version / --benchmark angegeben werden).
  • Installation von kube-bench (offizielle Methoden von Aqua Security):
# Binary-Release (Linux)
KB_VERSION=0.10.7
curl -L -o kube-bench.tgz \
  "https://github.com/aquasecurity/kube-bench/releases/download/v${KB_VERSION}/kube-bench_${KB_VERSION}_linux_amd64.tar.gz"
tar -xzf kube-bench.tgz
sudo mv kube-bench /usr/local/bin/
sudo cp -R cfg /etc/kube-bench/cfg

# Über Go installieren
install github.com/aquasecurity/kube-bench@latest

# Als einmaligen Container direkt auf einem Knoten ausführen (Host-Konfiguration einhängen)
docker run --rm --pid=host \
  -v /etc:/etc:ro -v /var:/var:ro \
  -t docker.io/aquasec/kube-bench:latest run --targets node

# Überprüfen
kube-bench version

Ziele

  • Ausführung von kube-bench gegen den entsprechenden Benchmark für die Kubernetes-Version des Clusters.
  • Scannen der Control-Plane (Master), Node, etcd, Control-Plane-Richtlinien und Managed-Service-Ziele.
  • Erzeugung von maschinenlesbarer JSON-/JUnit-Ausgabe für Pipelines und Dashboards.
  • Triage von FAIL- und WARN-Ergebnissen und Anwendung der CIS-Abhilfeanleitung.
  • Erneute Ausführung, um zu validieren, dass Abhilfemaßnahmen jetzt PASS lauten.

MITRE ATT&CK Mapping

Technik-IDNameTaktikRelevanz
T1610Container bereitstellenAusführung / VerteidigungsumgehungDie durch kube-bench erzwungene CIS-Benchmark-Härtung schränkt privilegierte/Host-Namespace-Bereitstellungen, anonymen API-Zugriff und unsichere kubelet-Einstellungen ein, die Angreifer beim Bereitstellen bösartiger Container missbrauchen.

Arbeitsablauf

1. Standard-Scan ausführen (automatische Erkennung)

Alle zutreffenden Ziele ausführen und kube-bench die Kubernetes-Version und den Benchmark erkennen lassen:

sudo kube-bench

2. Als Kubernetes-Job ausführen (In-Cluster)

Das bereitgestellte Job-Manifest aus dem kube-bench-Repository anwenden und die Ergebnisse aus den Pod-Protokollen lesen:

# Allgemeiner Job
kubectl apply -f https://raw.githubusercontent.com/aquasecurity/kube-bench/main/job.yaml

# Warten, dann Ergebnisse abrufen
kubectl get pods -l app=kube-bench
kubectl logs -l app=kube-bench

# Plattformspezifische Jobs sind verfügbar, z. B. EKS:
kubectl apply -f https://raw.githubusercontent.com/aquasecurity/kube-bench/main/job-eks.yaml

3. Bestimmte Komponenten gezielt scannen

Mit run --targets den Scan auf bestimmte Komponentengruppen beschränken:

# Control-Plane (API-Server, Scheduler, Controller-Manager)
sudo kube-bench run --targets master

# Worker-Node (kubelet, Proxy)
sudo kube-bench run --targets node

# etcd-Datenspeicher
sudo kube-bench run --targets etcd

# Clusterweite Richtlinien (RBAC, Pod-Sicherheit, Netzwerkrichtlinien)
sudo kube-bench run --targets policies

# Mehrere Ziele kombinieren
sudo kube-bench run --targets master,node,etcd,policies

4. Einen bestimmten Benchmark oder eine bestimmte Kubernetes-Version festlegen

Wenn die automatische Erkennung falsch ist oder Sie gegen eine bestimmte Revision auditieren müssen, legen Sie den Benchmark explizit fest:

# Auf eine bestimmte CIS-Benchmark-Revision festlegen
sudo kube-bench run --benchmark cis-1.8

# Oder nach Kubernetes-Version zuordnen
sudo kube-bench --version 1.27

# Managed-/Distributionsspezifische Benchmarks
sudo kube-bench run --benchmark eks-1.5.0
sudo kube-bench run --benchmark gke-1.6.0
sudo kube-bench run --benchmark rke2-cis-1.7

5. Einzelne Prüfungen ausführen oder überspringen

Während Abhilfezyklen auf bestimmte Prüf-IDs konzentrieren oder diese ausschließen:

# Nur bestimmte Prüfungen ausführen
sudo kube-bench run --targets master --check 1.2.1,1.2.2

# Laute/akzeptierte Prüfungen überspringen
sudo kube-bench run --targets node --skip 4.2.6

6. Maschinenlesbare Ausgabe erzeugen

JSON oder JUnit zur Aufnahme in Pipelines, SIEM oder Dashboards ausgeben und in eine Datei schreiben:

# JSON in eine Datei
sudo kube-bench run --targets master,node --json --outputfile kube-bench-report.json

# JUnit (für CI-Testberichte)
sudo kube-bench --junit --outputfile kube-bench-junit.xml

# AWS Security Finding Format (für Security Hub)
sudo kube-bench run --targets node --asff

7. Triage und Abhilfe von FAIL-/WARN-Ergebnissen

Jede fehlgeschlagene Prüfung gibt eine Abhilfeempfehlung aus. Wenden Sie die CIS-empfohlenen Korrekturen auf dem Knoten/Manifest an, z. B. API-Server-Flags im statischen Pod-Manifest verschärfen:

# Beispiel-Abhilfe für einen häufigen Control-Plane-Fehler:
# CIS 1.2.x – sicherstellen, dass anonymous-auth auf dem API-Server deaktiviert ist.
# Das statische Pod-Manifest bearbeiten und das Flag setzen:
sudo vi /etc/kubernetes/manifests/kube-apiserver.yaml
#   - --anonymous-auth=false
# Der kubelet startet den statischen Pod automatisch neu.

# Beispiel-Knotenabhilfe – kubelet-Konfigurationsdateiberechtigungen (CIS 4.1.x):
sudo chmod 600 /etc/kubernetes/kubelet/kubelet-config.json
sudo chown root:root /etc/kubernetes/kubelet/kubelet-config.json

8. Nach der Abhilfe erneut validieren

Führen Sie das relevante Ziel erneut aus und bestätigen Sie, dass die zuvor fehlgeschlagenen Prüfungen jetzt PASS lauten, und verfolgen Sie die Punktzahl im Laufe der Zeit:

sudo kube-bench run --targets master --check 1.2.1 --json --outputfile recheck.json

# Optional: Ergebnisse zur Trendverfolgung in PostgreSQL persistieren
sudo kube-bench run --targets master,node --pgsql

Werkzeuge und Ressourcen

Werkzeug / RessourceZweckLink
kube-benchCIS Kubernetes Benchmark-Prüferhttps://github.com/aquasecurity/kube-bench
kube-bench-DokumentationAusführung / Plattformen / Flagshttps://aquasecurity.github.io/kube-bench/
CIS Kubernetes BenchmarkQuell-Härtungsstandardhttps://www.cisecurity.org/benchmark/kubernetes
Trivy OperatorKontinuierliche In-Cluster-Compliance + Schwachstellenscanhttps://github.com/aquasecurity/trivy-operator
kube-hunterErgänzendes Penetrationstestwerkzeughttps://github.com/aquasecurity/kube-hunter

Validierungskriterien

  • kube-bench installiert (kube-bench version) oder als Job ausgeführt.
  • Scan gegen den richtigen Benchmark für die Kubernetes-Version des Clusters ausgeführt.
  • Ziele master, node, etcd und policies jeweils gescannt.
  • JSON-/JUnit-Ausgabe für die Pipeline-/Dashboard-Aufnahme erstellt.
  • FAIL- und WARN-Ergebnisse triagiert und priorisiert.
  • CIS-Abhilfe auf Control-Plane-Manifeste und Knotenkonfigurationen angewendet.
  • Erneute Ausführung bestätigt, dass zuvor fehlgeschlagene Prüfungen jetzt PASS lauten.
  • Ergebnisse im Laufe der Zeit verfolgt (Dateiarchiv oder PostgreSQL).

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

abusing-dpapi-for-credential-access

Extract and decrypt Windows DPAPI-protected secrets (Credential Manager, browser logins/cookies, Wi-Fi credentials, KeePass keys) online or offline using SharpDPAPI, SharpChrome, Mimikatz, or Impacket

abusing-shadow-credentials-for-privesc

Take over Active Directory accounts by writing attacker-controlled public keys to msDS-KeyCredentialLink (Shadow Credentials) with pyWhisker, Whisker, or Certipy, then authenticate via PKINIT to recover the target

achieving-cmmc-level-2-compliance

>-

acquiring-disk-image-with-dd-and-dcfldd

Create forensically sound bit-for-bit disk images with dd or dcfldd on a Linux forensic workstation, preserving evidence integrity through hash verification (MD5/SHA) during acquisition. Use when imaging a suspect drive, USB device, or memory card for investigation, preserving volatile disk evidence during incident response, or producing a verified copy for legal or law-enforcement proceedings before any destructive analysis.

analyzing-active-directory-acl-abuse

Detect dangerous ACL misconfigurations in Active Directory using ldap3

analyzing-android-malware-with-apktool

Perform static analysis of Android APK malware using apktool for resource decompilation, jadx for Java source recovery, and androguard for manifest inspection, dangerous permission-combination detection, and identification of obfuscated code, dynamic code loading, and reflection-based API calls. Use to statically triage a suspicious APK without executing it or to build mobile malware detection rules.

analyzing-api-gateway-access-logs

Parses API Gateway access logs (AWS API Gateway, Kong, Nginx) to detect

analyzing-apt-group-with-mitre-navigator

Query ATT&CK data with attackcti, mitreattack-python, and stix2, then build MITRE ATT&CK Navigator layers and multi-layer heatmap overlays mapping one or more APT groups

analyzing-azure-activity-logs-for-threats

Queries Azure Monitor activity logs and sign-in logs via azure-monitor-query

analyzing-bootkit-and-rootkit-samples

Analyzes bootkit and advanced rootkit malware infecting the Master

analyzing-browser-forensics-with-hindsight

Parse Chromium-based browser databases with Hindsight to extract and correlate browsing history, downloads, cookies, cached content, autofill data, saved passwords, and extensions from Chrome, Edge, Brave, Opera, and Vivaldi into a unified timeline (XLSX, JSON, or SQLite output). Use during incident response, insider-threat investigations, or criminal cases when you need to reconstruct a user

analyzing-campaign-attribution-evidence

Systematically evaluate cyber-campaign evidence to attribute an operation to a threat actor, using the Diamond Model and Analysis of Competing Hypotheses (ACH) to weigh infrastructure overlaps, TTP consistency, malware code similarity, and timing/language artifacts into confidence-weighted attribution assessments. Use when an incident investigation needs a defensible attribution confidence level.

analyzing-certificate-transparency-for-phishing

Monitor Certificate Transparency logs using crt.sh and Certstream to

analyzing-cloud-storage-access-patterns

Detect abnormal access in AWS S3, GCS, and Azure Blob Storage by analyzing CloudTrail Data Events, GCS audit logs, and Azure Storage Analytics for after-hours bulk downloads, new-IP access, and API-call spikes (e.g. GetObject) via statistical baselines and time-series anomaly detection. Use when investigating suspected cloud data exfiltration or building related detection rules.

analyzing-cobalt-strike-beacon-configuration

Extract and analyze Cobalt Strike beacon configuration from PE files

analyzing-cobaltstrike-malleable-c2-profiles

Parse and analyze Cobalt Strike Malleable C2 profiles with dissect.cobaltstrike (profiles and beacon-payload configs) and pyMalleableC2 (AST parsing) to extract HTTP/DNS transforms, URIs, headers, sleep/jitter, and injection behavior, then generate network detection signatures. Use when reverse-engineering a captured malleable profile or building detections against Cobalt Strike Beacon traffic.

analyzing-command-and-control-communication

Analyzes malware C2 communication over HTTP, HTTPS, DNS, and custom

analyzing-cyber-kill-chain

Analyzes intrusion activity against the Lockheed Martin Cyber Kill Chain

analyzing-disk-image-with-autopsy

Perform comprehensive forensic analysis of raw (dd), E01, or AFF disk images with Autopsy and The Sleuth Kit, recovering deleted files, examining metadata and embedded artifacts, keyword searching, and building investigation timelines with visual reports. Use for structured analysis of a forensic disk image or when stakeholders need visual reports from evidence.

analyzing-dns-logs-for-exfiltration

Analyzes DNS query logs to detect data exfiltration via DNS tunneling,

Verwandte Skills