Kubernetes Hardening
Tip
Lernen & üben Sie AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Lernen & üben Sie Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Unterstützen Sie HackTricks
- Überprüfen Sie die Abonnementpläne!
- Treten Sie der 💬 Discord-Gruppe oder der Telegram-Gruppe bei oder folgen Sie uns auf Twitter 🐦 @hacktricks_live.
- Teilen Sie Hacking-Tricks, indem Sie PRs an die HackTricks und HackTricks Cloud GitHub-Repos senden.
Tools zur Analyse eines Clusters
Steampipe - Kubernetes Compliance
Es führt mehrere Compliance-Prüfungen am Kubernetes-Cluster durch. Es bietet Unterstützung für CIS sowie die Cybersecurity Technical Reports der National Security Agency (NSA) und der Cybersecurity and Infrastructure Security Agency (CISA) zur Härtung von Kubernetes.
# Install Steampipe
brew install turbot/tap/powerpipe
brew install turbot/tap/steampipe
steampipe plugin install kubernetes
# Start the service
steampipe service start
# Install the module
mkdir dashboards
cd dashboards
powerpipe mod init
powerpipe mod install github.com/turbot/steampipe-mod-kubernetes-compliance
# Run the module
powerpipe server
Kubescape
Kubescape ist ein Open-Source-Tool für K8s, das ein zentrales Dashboard für multi-cloud K8s bietet, einschließlich Risikoanalyse, Sicherheits-Compliance, RBAC visualizer und Scanning von Image-Schwachstellen. Kubescape scannt K8s-Cluster, YAML-Dateien und HELM charts, erkennt Fehlkonfigurationen gemäß mehreren Frameworks (wie dem NSA-CISA , MITRE ATT&CK®), Software-Schwachstellen und RBAC (rollenbasierte Zugriffskontrolle)-Verstöße bereits in frühen Phasen der CI/CD-Pipeline, berechnet sofort einen Risiko-Score und zeigt Risiko-Trends im Zeitverlauf.
curl -s https://raw.githubusercontent.com/kubescape/kubescape/master/install.sh | /bin/bash
kubescape scan --verbose
Popeye
Popeye ist ein Dienstprogramm, das live Kubernetes-Cluster scannt und meldet potenzielle Probleme mit bereitgestellten Ressourcen und Konfigurationen. Es säubert Ihr Cluster basierend auf dem, was tatsächlich bereitgestellt ist, und nicht auf dem, was auf der Festplatte liegt. Durch das Scannen Ihres Clusters erkennt es Fehlkonfigurationen und hilft Ihnen sicherzustellen, dass Best Practices eingehalten werden, und verhindert so zukünftige Kopfschmerzen. Es zielt darauf ab, die kognitive Überlastung zu reduzieren, die beim Betrieb eines Kubernetes-Clusters in der freien Wildbahn entsteht. Außerdem, wenn Ihr Cluster einen metric-server verwendet, meldet es mögliche Über-/Unter-Allokationen von Ressourcen und versucht, Sie zu warnen, falls Ihr Cluster die Kapazität erschöpft.
Kube-bench
Das Tool kube-bench ist ein Werkzeug, das überprüft, ob Kubernetes sicher bereitgestellt ist, indem es die im CIS Kubernetes Benchmark dokumentierten Prüfungen ausführt.
Sie können wählen:
- kube-bench aus einem Container heraus ausführen (PID-Namespace mit dem Host teilen)
- einen Container ausführen, der kube-bench auf dem Host installiert, und dann kube-bench direkt auf dem Host ausführen
- die neuesten Binaries von der Releases page installieren,
- es aus dem Quellcode kompilieren.
Kubeaudit
[VERALTET] Das Tool kubeaudit ist ein Kommandozeilen-Tool und ein Go-Paket, um Kubernetes-Cluster zu prüfen hinsichtlich verschiedener Sicherheitsaspekte.
Kubeaudit kann erkennen, ob es innerhalb eines Containers in einem Cluster läuft. Falls ja, versucht es, alle Kubernetes-Ressourcen in diesem Cluster zu prüfen:
kubeaudit all
Dieses Tool hat außerdem das Argument autofix, um erkannte Probleme automatisch zu beheben.
Kube-hunter
[VERALTET] Das Tool kube-hunter durchsucht Kubernetes-Cluster nach Sicherheitslücken. Es wurde entwickelt, um das Bewusstsein und die Sichtbarkeit für Sicherheitsprobleme in Kubernetes-Umgebungen zu erhöhen.
kube-hunter --remote some.node.com
Trivy
Trivy hat Scanner, die nach Sicherheitsproblemen suchen, und unterstützt die folgenden Ziele, auf denen diese Probleme gefunden werden können:
- Container Image
- Filesystem
- Git Repository (remote)
- Virtual Machine Image
- Kubernetes
Kubei
[Scheint nicht mehr gewartet zu werden]
Kubei ist ein Tool zum Scannen nach Sicherheitslücken und ein CIS Docker-Benchmark-Tool, das es Nutzern ermöglicht, eine genaue und unmittelbare Risikoabschätzung ihrer Kubernetes-Cluster zu erhalten. Kubei scannt alle Images, die in einem Kubernetes-Cluster verwendet werden, einschließlich Images von Anwendungs-Pods und System-Pods.
KubiScan
KubiScan ist ein Tool zum Scannen von Kubernetes-Clustern nach riskanten Berechtigungen im Role-based access control (RBAC)-Autorisierungsmodell von Kubernetes.
Managed Kubernetes Auditing Toolkit
Mkat ist ein Tool, das entwickelt wurde, um andere Arten von Hochrisiko-Checks zu testen im Vergleich zu den anderen Tools. Es bietet hauptsächlich 3 verschiedene Modi:
find-role-relationships: der ermittelt, welche AWS-Rollen in welchen Pods laufenfind-secrets: der versucht, Secrets in K8s-Ressourcen wie Pods, ConfigMaps und Secrets zu identifizieren.test-imds-access: der versucht, Pods zu starten und auf die metadata v1 und v2 zuzugreifen. WARNUNG: Dies wird einen Pod im Cluster starten — sei sehr vorsichtig, da du das möglicherweise nicht tun möchtest!
Audit IaC Code
KICS
KICS findet Sicherheitslücken, Compliance-Probleme und Infrastrukturfehlkonfigurationen in den folgenden Infrastructure-as-Code-Lösungen: Terraform, Kubernetes, Docker, AWS CloudFormation, Ansible, Helm, Microsoft ARM und OpenAPI 3.0-Spezifikationen
Checkov
Checkov ist ein statisches Code-Analyse-Tool für Infrastructure-as-Code.
Es scannt Cloud-Infrastruktur, die mit Terraform, Terraform plan, Cloudformation, AWS SAM, Kubernetes, Dockerfile, Serverless oder ARM Templates bereitgestellt wurde, und erkennt Sicherheits- und Compliance-Fehlkonfigurationen mittels graphbasiertem Scanning.
Kube-score
kube-score ist ein Tool, das statische Code-Analyse deiner Kubernetes-Objektdefinitionen durchführt.
Zur Installation:
| Distribution | Befehl / Link |
|---|---|
| Pre-built binaries for macOS, Linux, and Windows | GitHub releases |
| Docker | docker pull zegl/kube-score (Docker Hub) |
| Homebrew (macOS and Linux) | brew install kube-score |
| Krew (macOS and Linux) | kubectl krew install score |
Tools to analyze YAML files & Helm Charts
Kube-linter
# Install Kube-linter
brew install kube-linter
# Run Kube-linter
## lint ./path/to/yaml/or/chart
Checkov
# Install Checkov
pip install checkov
# Run Checkov
checkov -d ./path/to/yaml/or/chart
kube‑score
# Install kube-score
brew install kube-score
# Run kube-score
kube-score score ./path/to/yaml
# or
helm template chart /path/to/chart | kube-score score -
# or if the chart needs some values
helm template chart /path/to/chart \
--set 'config.urls[0]=https://dummy.backend.internal' \
| kube-score score -
Kubesec
# Install Kubesec
## Download from https://github.com/controlplaneio/kubesec/releases
# Run Kubesec in a yaml
kubesec scan ./path/to/yaml
# or
helm template chart /path/to/chart | kubesec scan -
# or if the chart needs some values
helm template chart /path/to/chart \
--set 'config.urls[0]=https://dummy.backend.internal' \
| kubesec scan -
Tipps
Kubernetes PodSecurityContext und SecurityContext
Sie können den Sicherheitskontext der Pods (mit PodSecurityContext) und der Container, die ausgeführt werden sollen (mit SecurityContext), konfigurieren. Für mehr Informationen lesen:
Kubernetes API-Härtung
Es ist sehr wichtig, den Zugriff auf den Kubernetes Api Server zu schützen, da ein böswilliger Akteur mit ausreichenden Privilegien diesen missbrauchen und die Umgebung auf vielfältige Weise schädigen könnte.\
Wichtig ist, sowohl den access (whitelist origins, die auf den API Server zugreifen dürfen, und alle anderen Verbindungen ablehnen) als auch die authentication (nach dem Prinzip der least privilege) abzusichern. Und auf keinen Fall never allow anonymous requests.
Common Request process:\
User or K8s ServiceAccount –> Authentication –> Authorization –> Admission Control.
Tipps:
- Schließen Sie Ports.
- Vermeiden Sie anonymen Zugriff.
- NodeRestriction; Kein Zugriff bestimmter Nodes auf die API.
- https://kubernetes.io/docs/reference/access-authn-authz/admission-controllers/#noderestriction
- Verhindert im Wesentlichen, dass kubelets Labels mit dem Präfix node-restriction.kubernetes.io/ hinzufügen/entfernen/aktualisieren. Dieses Label-Präfix ist für Administratoren reserviert, um ihre Node-Objekte zur Workload-Isolierung zu kennzeichnen, und kubelets dürfen diese Labels nicht ändern.
- Und erlaubt außerdem kubelets, diese Labels und Label-Präfixe hinzuzufügen/entfernen/zu aktualisieren.
- Stellen Sie mit Labels eine sichere Workload-Isolierung sicher.
- Verhindern Sie, dass bestimmte Pods Zugriff auf die API haben.
- Vermeiden Sie die Exponierung des ApiServer im Internet.
- Verhindern Sie unautorisierten Zugriff durch korrektes RBAC.
- ApiServer-Port mittels Firewall und IP-Whitelisting schützen.
SecurityContext-Härtung
Standardmäßig wird der root user verwendet, wenn ein Pod gestartet wird, falls kein anderer Benutzer angegeben ist. Sie können Ihre Anwendung in einem sichereren Kontext ausführen, indem Sie eine Vorlage ähnlich der folgenden verwenden:
apiVersion: v1
kind: Pod
metadata:
name: security-context-demo
spec:
securityContext:
runAsUser: 1000
runAsGroup: 3000
fsGroup: 2000
volumes:
- name: sec-ctx-vol
emptyDir: {}
containers:
- name: sec-ctx-demo
image: busybox
command: [ "sh", "-c", "sleep 1h" ]
securityContext:
runAsNonRoot: true
volumeMounts:
- name: sec-ctx-vol
mountPath: /data/demo
securityContext:
allowPrivilegeEscalation: true
- https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
- https://kubernetes.io/docs/concepts/policy/pod-security-policy/
General Hardening
Sie sollten Ihre Kubernetes-Umgebung so häufig wie nötig aktualisieren, um Folgendes sicherzustellen:
- Abhängigkeiten auf dem neuesten Stand.
- Fehler- und Sicherheits-Patches.
Release cycles: Alle 3 Monate erscheint ein neues Minor-Release – 1.20.3 = 1(Major).20(Minor).3(patch)
Die beste Methode, ein Kubernetes Cluster zu aktualisieren, ist (aus here):
- Aktualisieren Sie die Master-Node-Komponenten in folgender Reihenfolge:
- etcd (all instances).
- kube-apiserver (all control plane hosts).
- kube-controller-manager.
- kube-scheduler.
- cloud controller manager, if you use one.
- Aktualisieren Sie die Worker-Node-Komponenten wie kube-proxy, kubelet.
Kubernetes monitoring & security:
- Kyverno Policy Engine
- Cilium Tetragon - eBPF-basierte Security Observability und Runtime Enforcement
- Network Security Policies
- Falco - Runtime security monitoring & detection
Tip
Lernen & üben Sie AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Lernen & üben Sie Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Unterstützen Sie HackTricks
- Überprüfen Sie die Abonnementpläne!
- Treten Sie der 💬 Discord-Gruppe oder der Telegram-Gruppe bei oder folgen Sie uns auf Twitter 🐦 @hacktricks_live.
- Teilen Sie Hacking-Tricks, indem Sie PRs an die HackTricks und HackTricks Cloud GitHub-Repos senden.
HackTricks Cloud

