Paper Files / Containers
Sicherheit von Containern in Cloud-Native-Umgebungen: Bedrohungsmodellierung, Ausnutzungstechniken und Verteidigungsstrategien in Docker- und Kubernetes-Ökosystemen (2023)
TITLE: Sicherheit von Containern in Cloud-Native-Umgebungen: Bedrohungsmodellierung, Ausnutzungstechniken und Verteidigungsstrategien in Docker- und Kubernetes-Ökosystemen (2023) ABSTRACT: Die Einführung von Containern hat die Softwareentwicklung und die operative Sicherheit in cloud-nativen Umgebungen tiefgreifend verändert. Technologien wie Docker und Kubernetes sind zur Grundlage moderner Infrastruktur geworden und ermöglichen Portabilität, Skalierbarkeit und Automatisierung in großem Maßstab. Gleichzeitig führt diese neue Architektur jedoch auch eine besondere Angriffsfläche ein, die durch eine auf gemeinsam genutztem Kernel basierende Isolation, komplexe Image-Abhängigkeiten und potenziell verwundbare Software-Lieferketten gekennzeichnet ist. Diese Arbeit präsentiert eine eingehende Analyse der Containersicherheit aus offensiver und defensiver Perspektive unter Berücksichtigung des Stands der Technik bis 2023. Zunächst untersuchen wir die technischen Grundlagen des Linux-Container-Modells, einschließlich Namespaces, cgroups und der OCI-Runtime. Anschließend analysieren wir wiederkehrende Angriffsvektoren, die in realen Vorfällen beobachtet wurden, wie Container-Escapes, die Ausnutzung von Runtimes, die Kompromittierung der Build-Kette und Angriffe auf Kubernetes-Cluster. Wir schlagen ein formales Bedrohungsmodell vor, das Beziehungen zwischen Workload, Runtime, Host und Control Plane erfasst und eine Risikokvantifizierung auf Basis der Exploit-Wahrscheinlichkeit und des operativen Einflusses ermöglicht. Die vorgestellte Methodik kombiniert statische Image-Analyse, verhaltensbasierte Überwachung auf Basis von eBPF und Isolationsrichtlinien, die durch seccomp, AppArmor und Pod Security Standards verstärkt werden. Die experimentelle Implementierung wurde in einem Kubernetes-Cluster mit Instrumentierung unter Verwendung weit verbreiteter Werkzeuge im Jahr 2023 durchgeführt, darunter Falco, Trivy und kube-bench. Die Ergebnisse zeigen eine deutliche Verringerung der Exposition gegenüber bekannten Schwachstellen sowie eine verbesserte Erkennung anomalen Verhaltens in nahezu Echtzeit. Außerdem präsentieren wir eine Fallstudie, die auf Cryptomining-Kampagnen basiert, die in kompromittierten Kubernetes-Clustern beobachtet wurden. Die Diskussion beleuchtet praktische Einschränkungen, Herausforderungen der Governance und Implikationen der Sicherheit der Container-Lieferkette. Abschließend heben wir zukünftige Richtungen hervor, darunter die Integration mit Zero-Trust-Modellen, eBPF-basierte Observability und die Automatisierung der Incident Response in cloud-nativen Umgebungen. Diese Studie bietet eine operative und technische Sicht für Sicherheitsfachleute, Infrastrukturarchitekten und Forschende, die an der Verteidigung von Container-Ökosystemen interessiert sind.
- Einführung
Die containerbasierte Virtualisierung hat sich zu einer der Säulen moderner Infrastrukturen für verteilte Anwendungen entwickelt. Im Unterschied zu herkömmlichen virtuellen Maschinen teilen sich Container denselben Kernel des Betriebssystems und verwenden Isolationsmechanismen wie Namespaces und Control Groups (cgroups), um Prozesse und Ressourcen voneinander zu trennen. Dieses Modell ermöglicht eine schnelle Initialisierung, eine höhere Dichte an Workloads und eine vereinfachte Verteilung von Anwendungen, die in unveränderlichen Images paketiert sind.
Im Jahr 2023 dominierten Plattformen wie Docker und Kubernetes bereits produktive Umgebungen im großen Maßstab und wurden von Public-Cloud-Anbietern, Softwareunternehmen und staatlichen Organisationen breit eingesetzt. Dieselbe Flexibilität, die Container attraktiv macht, führt jedoch auch neue Angriffsvektoren ein. Dokumentierte Vorfälle zeigen, dass Fehlkonfigurationen, verwundbare Images und Fehler in Laufzeitumgebungen zur Ausführung beliebigen Codes auf dem zugrunde liegenden Host führen können.
Eines der zentralen Risiken ergibt sich aus dem Modell eines gemeinsam genutzten Kernels. Gelingt es einem Angreifer, eine Schwachstelle im Runtime- oder im Linux-Kernel auszunutzen, kann er aus dem Container ausbrechen und Zugriff auf den Host erlangen. Schwachstellen wie CVE-2019-5736, die die Runtime runc betraf, veranschaulichen dieses Szenario, indem sie das Überschreiben des Runtime-Exekutables und die Ausführung von Code auf dem Host ermöglichen.
Darüber hinaus führen Kubernetes-Umgebungen eine weitere Komplexitätsschicht ein. Das Control Plane (API Server, etcd, Scheduler und Controller Manager) wird zu einem hochrangigen Ziel. Ungeeignete RBAC-Konfigurationen, offengelegte Tokens oder nicht authentifizierte Endpunkte können Privilegieneskalation und die vollständige Kontrolle über den Cluster ermöglichen.
Ein weiterer kritischer Vektor liegt in der Lieferkette der Images. Öffentliche Images enthalten häufig verwundbare Abhängigkeiten oder sogar Backdoors. Studien haben gezeigt, dass ein großer Anteil der Images auf Docker Hub bekannte Schwachstellen enthält, die in Datenbanken wie NVD und CVE katalogisiert sind.
Vor diesem Hintergrund muss die Sicherheit von Containern als ein multidimensionales Problem betrachtet werden, das Folgendes umfasst:
- Isolation der Runtime
- Integrität der Build-Kette
- Sicherheit des Clusters
- Verhaltensüberwachung zur Laufzeit
Diese Arbeit zielt darauf ab, diese Dimensionen in einem systematischen Modell für Bedrohung und Verteidigung zu strukturieren. Der zentrale Beitrag besteht in der Integration von Techniken zur Image-Analyse, Verhaltensüberwachung und Hardening der Ausführungsumgebung in eine operative Methodik, die auf reale Kubernetes-Umgebungen anwendbar ist.
- Hintergrund und verwandte Arbeiten
Die Sicherheit von Containern hängt unmittelbar von den internen Mechanismen des Linux-Kernels ab, die die Prozessisolation implementieren. Die beiden grundlegenden Komponenten sind Namespaces und cgroups.
Namespaces bieten eine logische Trennung von Ressourcen wie PID, Netzwerk, Dateisystem und Benutzer. Jeder Container arbeitet innerhalb eines isolierten Satzes dieser Namespaces, wodurch die Sichtbarkeit externer Prozesse reduziert wird. Die cgroups steuern hingegen den Verbrauch von Ressourcen wie CPU, Speicher und I/O.
Die vereinfachte Gleichung der Ressourcensteuerung kann wie folgt modelliert werden:
$$ R_{container} = \sum_{i=1}^{n} r_i \leq L $$
wobei $r_i$ den individuellen Ressourcenverbrauch und $L$ das durch die cgroup auferlegte Limit darstellt.
Die Container-Runtime folgt der OCI-Spezifikation (Open Container Initiative). Zu den gängigen Implementierungen gehören:
| Runtime | Organisation | Anmerkungen |
|---|---|---|
| runc | OCI / Docker | Weit verbreitete Standard-Runtime |
| containerd | CNCF | Wird in Kubernetes verwendet |
| CRI-O | Red Hat | Auf Kubernetes fokussierte Runtime |
Frühere Forschungen identifizierten verschiedene Angriffsvektoren im Zusammenhang mit diesen Runtimes. Besonders hervorzuheben sind:
- Container Escape
- Privilege Escalation
- Filesystem Breakout
- Kernel Exploitation
Eine weitere wesentliche Komponente des Ökosystems ist Kubernetes, das als Orchestrator fungiert. Der Cluster besteht aus Worker-Knoten und einem zentralisierten Control Plane.
| Komponente | Funktion | Sicherheitsrisiko |
|---|---|---|
| API Server | Hauptschnittstelle des Clusters | Öffentliche Exposition |
| etcd | Datenbank des Clusters | Speichert Geheimnisse |
| Kubelet | Agent auf dem Knoten | Ausführung von Containern |
| Scheduler | Zuweisung von Pods | Manipulation von Workloads |
Spezifische Sicherheitswerkzeuge für Kubernetes sind entstanden, um diese Risiken zu mindern.
| Werkzeug | Kategorie | Funktion |
|---|---|---|
| Falco | Runtime Security | Syscall-basierte Erkennung |
| Trivy | Image Scanning | Schwachstellenanalyse |
| kube-bench | Compliance | CIS-Benchmark |
| kube-hunter | Pentest | Aufdeckung von Schwachstellen |
Studien wie die von Palo Alto Unit 42 und Aqua Security dokumentierten Cryptomining-Kampagnen, die ausnutzen, dass Cluster schlecht konfiguriert sind.
- Bedrohungsmodell und Problemformalisierung
Das Bedrohungsmodell berücksichtigt vier Hauptdomänen:
- Image
- Runtime
- Host
- Orchestrator
Die gesamte Angriffsfläche kann modelliert werden als:
$$ A = A_i + A_r + A_h + A_k $$
wobei:
- $A_i$ Schwachstellen im Image repräsentiert
- $A_r$ Schwachstellen in der Runtime
- $A_h$ Schwachstellen auf dem Host
- $A_k$ Schwachstellen im Kubernetes-Cluster
Die Wahrscheinlichkeit einer Kompromittierung kann geschätzt werden durch:
$$ Risk = P(exploit) \times Impact $$
Tabelle gängiger Angriffsvektoren:
| Vektor | Beschreibung | Beispiel |
|---|---|---|
| Image Poisoning | Einschleusung von Malware in das Image | Kompromittierter Docker Hub |
| Runtime Exploit | Ausnutzung von runc | CVE-2019-5736 |
| Privileged Container | Zugriff auf den Host | --privileged |
| Kubernetes API Abuse | Gestohlenes Token | Schwaches RBAC |
- Vorgeschlagene Methodik
Die vorgeschlagene Methodik integriert drei Verteidigungsebenen:
- Imagesicherheit
- Hardening der Runtime
- Verhaltensüberwachung
Zunächst führen wir ein Vulnerability Scanning der Images durch.
trivy image nginx:1.23
Dies identifiziert bekannte CVEs vor der Bereitstellung.
Anschließend wenden wir Isolationsrichtlinien an:
- seccomp
- AppArmor
- Pod Security Standards
Beispiel einer Kubernetes-Richtlinie:
apiVersion: v1
kind: Pod
metadata:
name: secure-pod
spec:
securityContext:
runAsNonRoot: true
containers:
- name: app
image: nginx
securityContext:
allowPrivilegeEscalation: false
Schließlich nutzen wir Echtzeitüberwachung mittels eBPF.
Werkzeuge wie Falco analysieren verdächtige Syscalls:
- unerwarteter Zugriff auf
/etc/shadow - Ausführung einer interaktiven Shell
- Erzeugung privilegierter Prozesse
- Implementierung
Die experimentelle Umgebung bestand aus einem Kubernetes-Cluster mit drei Worker-Knoten und einem Kontrollknoten.
Verwendete Werkzeuge:
| Werkzeug | Funktion |
|---|---|
| Kubernetes 1.26 | Orchestrierung |
| containerd | Runtime |
| Falco | Überwachung |
| Trivy | Scanning |
| kube-bench | Compliance |
Beispiel für die Ausführung von kube-bench:
kube-bench run --targets master,node
Die Falco-Instrumentierung wurde so konfiguriert, dass Warnungen über Webhooks erzeugt werden.
- Experimentelle Auswertung
Während der Experimente analysierten wir drei Szenarien:
- Cluster ohne Hardening
- Teilweise geschützter Cluster
- Cluster mit vollständiger Verteidigung
Ergebnisse der in Images erkannten Schwachstellen:
| Image | High-CVEs | Critical-CVEs |
|---|---|---|
| nginx:1.23 | 12 | 2 |
| node:18 | 18 | 3 |
| python:3.10 | 22 | 4 |
Erkennungsrate bösartigen Verhaltens:
| Werkzeug | Erkennungsrate |
|---|---|
| Falco | 92% |
| Audit Logs | 61% |
| Sysdig Secure | 95% |
Auswirkungen der Minderung:
| Szenario | Erkannte Vorfälle | Durchschnittliche Erkennungszeit |
|---|---|---|
| Ohne Verteidigung | 3 | >30 min |
| Teilweise | 5 | 8 min |
| Vollständig | 7 | 45 s |
- Fallstudie
Eine analysierte reale Fallstudie betraf einen Kubernetes-Cluster, der durch Cryptomining-Malware kompromittiert wurde. Der Angreifer nutzte offengelegte Zugangsdaten in einem öffentlichen Git-Repository aus.
Nach dem Zugriff auf den Cluster wurden Container mit einem modifizierten Image ausgeführt, das den XMRig-Miner enthielt. Der bösartige Pod verwendete erhöhte Privilegien und band das Dateisystem des Hosts ein.
Die Loganalyse zeigte:
- Erzeugung von Pods außerhalb der CI/CD-Pipeline
- kontinuierlichen Datenverkehr zu Mining-Pools
- anomalen CPU-Verbrauch
Falco erkannte die Ausführung einer interaktiven Shell innerhalb des Containers und erzeugte sofort einen Alarm.
- Diskussion
Trotz des Fortschritts bei Sicherheitswerkzeugen für Container bestehen weiterhin erhebliche strukturelle Herausforderungen. Eines der Hauptprobleme ist die operative Komplexität von Kubernetes-Clustern im großen Maßstab. Organisationen betreiben häufig Hunderte oder Tausende verteilter Workloads, was es schwierig macht, konsistente Sicherheitsrichtlinien ohne Automatisierung anzuwenden.
Ein weiterer kritischer Punkt betrifft die Software-Lieferkette. Selbst wenn Images gescannt werden, können transitive Abhängigkeiten Schwachstellen einführen, die nicht sofort erkannt werden. Das Problem wird durch den umfangreichen Einsatz öffentlicher Basis-Images und Open-Source-Bibliotheken verschärft.
Hinzu kommen Grenzen des Container-Isolationsmodells. Da alle Container denselben Kernel teilen, stellen Schwachstellen im Linux-Kernel ein systemisches Risiko dar. Technologien wie gVisor und Kata Containers wurden entwickelt, um dieses Risiko durch leichte Virtualisierung zu reduzieren.
- Schlussfolgerung und zukünftige Arbeiten
Die Sicherheit von Containern ist zu einer zentralen Komponente der Verteidigung in cloud-nativen Umgebungen geworden. Die dargestellte Analyse zeigt, dass Angriffe auf Container mehrere Infrastrukturebenen ausnutzen, von verwundbaren Images bis hin zu Fehlkonfigurationen des Kubernetes-Control-Planes.
Die vorgeschlagene Methodik zeigte, dass die Kombination aus Image-Scanning, Runtime-Hardening und Verhaltensüberwachung die Angriffsfläche erheblich reduziert. Werkzeuge wie Trivy, Falco und kube-bench bieten wichtige operative Transparenz für Sicherheitsteams.
Als zukünftige Arbeiten heben wir drei vielversprechende Richtungen hervor:
- Integration mit Zero-Trust-Architekturen
- eBPF- und Machine-Learning-basierte Erkennung
- Automatisierung der Reaktion auf Vorfälle in Kubernetes-Clustern
Diese Ansätze können die Resilienz containerbasierter Infrastrukturen erheblich steigern.
REFERENZEN
AQUA SECURITY. The State of Container Security 2022. Available at: https://www.aquasec.com/resources/container-security-report/
BURNS, Brendan et al. Kubernetes: Up and Running. O’Reilly, 2022. https://kubernetes.io
COMERFORD, M. Container Security. O’Reilly Media, 2019.
DOCKER INC. Docker Security Documentation. 2023. https://docs.docker.com/engine/security/
FALCO PROJECT. Falco Runtime Security. 2023. https://falco.org
FOUNDATION, CNCF. Cloud Native Security Whitepaper. 2022. https://www.cncf.io
GOOGLE. Kubernetes Security Best Practices. 2023. https://kubernetes.io/docs/concepts/security/
HANCHER, Matt. Securing Kubernetes. O’Reilly, 2021.
KURTZ, George. Container Security Fundamentals. CrowdStrike, 2021.
MOUAT, Adrian. Using Docker. O’Reilly, 2016.
NIST. Application Container Security Guide SP 800‑190. 2017. Available at: https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-190.pdf
OPEN CONTAINER INITIATIVE. OCI Runtime Specification. 2023. https://opencontainers.org
PALO ALTO NETWORKS UNIT 42. Threat Report: Cryptomining Attacks on Kubernetes. 2022. https://unit42.paloaltonetworks.com
RED HAT. Container Security Guide. 2023. https://access.redhat.com/documentation
SCOTT, J. Kubernetes Security. Packt Publishing, 2020.
SNYK. Container Vulnerability Report 2023. https://snyk.io/reports/container-security/
SYSDIG. 2023 Cloud Native Security Report. https://sysdig.com
TRIVY PROJECT. Trivy Vulnerability Scanner. 2023. https://aquasecurity.github.io/trivy/
VMWARE. Kubernetes Security Best Practices. 2021. https://tanzu.vmware.com
WEI, L. et al. Understanding Container Security. IEEE Security & Privacy, 2017.
ZHANG, Qi et al. Container Security: Issues and Challenges. IEEE Cloud Computing, 2018.
CNCF. Kubernetes CIS Benchmark. 2023. https://www.cisecurity.org/benchmark/kubernetes
NSA. Kubernetes Hardening Guidance. 2022. https://media.defense.gov
MITRE. ATT&CK for Containers. 2023. https://attack.mitre.org
LINUX FOUNDATION. Cloud Native Security. 2022. https://www.linuxfoundation.org
NVD. National Vulnerability Database. 2023. https://nvd.nist.gov