← Zurück zu den Papers

Paper Files / Containers

Sicherheit von Containern in Cloud-Native-Umgebungen: Bedrohungsmodellierung, Ausnutzungstechniken und Verteidigungsstrategien in Docker- und Kubernetes-Ökosystemen (2023)

ContainersDE

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.

  1. 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:

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.

  1. 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:

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.

  1. Bedrohungsmodell und Problemformalisierung

Das Bedrohungsmodell berücksichtigt vier Hauptdomänen:

  1. Image
  2. Runtime
  3. Host
  4. Orchestrator

Die gesamte Angriffsfläche kann modelliert werden als:

$$ A = A_i + A_r + A_h + A_k $$

wobei:

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
  1. Vorgeschlagene Methodik

Die vorgeschlagene Methodik integriert drei Verteidigungsebenen:

  1. Imagesicherheit
  2. Hardening der Runtime
  3. 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:

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:

  1. 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.

  1. Experimentelle Auswertung

Während der Experimente analysierten wir drei Szenarien:

  1. Cluster ohne Hardening
  2. Teilweise geschützter Cluster
  3. 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
  1. 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:

Falco erkannte die Ausführung einer interaktiven Shell innerhalb des Containers und erzeugte sofort einen Alarm.

  1. 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.

  1. 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:

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