← Zurück zu den Papers

Paper Files / Containers

Eine formale Architektur zur Erkennung und Minderung von Container-Escapes basierend auf probabilistischen Verhaltensprofilen und Richtlinienverifikation im Kernel

ContainersDE

TITLE: Eine formale Architektur zur Erkennung und Minderung von Container-Escapes basierend auf probabilistischen Verhaltensprofilen und Richtlinienverifikation im Kernel ABSTRACT: Containerbasierte Virtualisierung hat sich als Grundlage cloudnativer Infrastrukturen etabliert, doch ihre Abhängigkeit von einem gemeinsam genutzten Kernel bringt strukturelle Sicherheitsherausforderungen mit sich. Container-Escapes bleiben kritische Kompromittierungsvektoren, insbesondere in großskaligen Kubernetes-Umgebungen, in denen Schwachstellen in der Runtime, im cgroups-Subsystem oder im Kernel selbst zu einer Verletzung der Isolation führen können. In dieser Arbeit schlagen wir eine formale Architektur zur Erkennung und Minderung von Container-Escapes vor, die auf der probabilistischen Modellierung von Systemaufrufsequenzen und der automatischen Synthese von Sicherheitsrichtlinien auf Kernel-Ebene basiert. Wir modellieren das legitime Verhalten von Anwendungen als eine probabilistische Sprache über dem Alphabet der Syscalls, instanziiert durch Markov-Ketten variabler Ordnung mit bayesianischer Glättung. Wir leiten formale Grenzen der Korrektheit und Vollständigkeit unter Parametern $(\epsilon, \delta)$ her und führen ein Entscheidungs­kriterium ein, das auf akkumulierten Log-Likelihood-Werten basiert. Auf Grundlage der beobachteten empirischen Unterstützung synthetisieren wir automatisch minimale seccomp-Profile sowie mit modernen LSMs (AppArmor oder SELinux) kompatible Richtlinien und reduzieren dadurch quantifizierbar die Angriffsfläche. Wir implementierten die Architektur mit eBPF, gekoppelt an Tracepoints des Linux-Kernels 6.x, und integrierten sie in einen Kubernetes‑Cluster 1.28 mit containerd 1.7. In einer experimentellen Evaluation mit 120 Knoten und 1.800 Containern erzielten wir eine durchschnittliche Reduktion von 72,4 % der erlaubten Syscalls, eine Erkennungsrate von 96,1 % und eine durchschnittliche CPU-Überlast von 3,7 %. Darüber hinaus zeigen wir, dass der Ansatz Mechanismen übertrifft, die ausschließlich auf heuristischen Regeln basieren, während Skalierbarkeit und geringe Latenz erhalten bleiben. Wir schließen daraus, dass die Kombination aus formaler probabilistischer Modellierung, effizienter Verifikation im Kernel und automatischer Richtliniensynthese eine robuste Strategie zur dynamischen Härtung containerisierter Umgebungen im Jahr 2025 darstellt.

  1. Einführung

Die containerbasierte Virtualisierung hat die Ingenieurpraxis verteilter Systeme transformiert, indem sie eine leichtgewichtige Isolierung von Anwendungen mit höherer Effizienz als traditionelle virtuelle Maschinen ermöglicht (BARHAM et al., 2003; BURNS; BEDA; HIGHTOWER, 2022). Im Gegensatz zu hypervisorbasierten Architekturen, bei denen jede virtuelle Maschine ihren eigenen Kernel kapselt, teilen Container den Kernel des Host-Betriebssystems und stützen sich auf Mechanismen wie Namespaces, cgroups und Linux Security Modules (LSM), um logische Isolation bereitzustellen (NIST, 2017).

Formal hängt die Sicherheit von Containern von der Erhaltung von Isolationseigenschaften im gemeinsam genutzten Kernel $K$ ab. Jede ausnutzbare Schwachstelle in $K$ oder in Runtime-Komponenten wie runc oder containerd kann den gesamten Host kompromittieren. Weit dokumentierte Vorfälle wie CVE-2019-5736 (NVD, 2019), CVE-2022-0492 (NVD, 2022a) und CVE-2022-0185 (NVD, 2022b) belegen die Praktikabilität von Container-Escapes durch Speicherbeschädigung, missbräuchliche Manipulation von cgroups oder das Ersetzen von Runtime-Binärdateien.

Aktuelle Industrieberichte weisen auf eine hohe Exposition gegenüber Schwachstellen in öffentlichen Images sowie auf unsichere Konfigurationen in Kubernetes-Clustern hin (AQUA SECURITY, 2023; PALO ALTO NETWORKS, 2024). Auf taktischer Ebene dokumentiert das Framework MITRE ATT&CK for Containers Techniken wie Escape to Host (T1611) und Privileged Container (T1610) und modelliert wiederkehrende Angriffsvektoren (MITRE, 2023). Normative Leitfäden wie NIST SP 800-190 (NIST, 2017), das OWASP Docker Security Cheat Sheet (OWASP, 2023) und das CIS Kubernetes Benchmark (CIS, 2023) liefern präskriptive Empfehlungen, jedoch überwiegend statischer Natur.

Wir beobachten, dass seccomp-Profile und AppArmor-Richtlinien häufig generische Konfigurationen verwenden, um eine breite Kompatibilität aufrechtzuerhalten, was zu übermäßiger Permissivität führt (DOCKER, 2024). Daraus ergibt sich die Notwendigkeit formaler Mechanismen, die das legitime, anwendungsspezifische Verhalten erfassen, um sowohl Abweichungen zu erkennen als auch die Angriffsfläche systematisch zu reduzieren.

Wir formulieren die folgenden Forschungsfragen:

RQ1: Ist es möglich, das legitime Verhalten von Containern formal mit ausreichender Granularität zu modellieren, um Abweichungen im Zusammenhang mit Escapes zu erkennen?

RQ2: Können minimale Sicherheitsrichtlinien (seccomp und LSM) automatisch aus diesen Modellen synthetisiert werden, sodass die Angriffsfläche reduziert wird, ohne die Funktionalität zu beeinträchtigen?

RQ3: Welche Auswirkungen hat der Ansatz in Bezug auf Leistung, Skalierbarkeit und Fehlerraten in großskaligen Kubernetes-Umgebungen?

Unsere Beiträge sind: (C1) ein formales Modell auf Basis von Markov-Ketten variabler Ordnung zur Darstellung von Syscall-Sequenzen als probabilistische Sprache; (C2) ein Mechanismus zur automatischen Synthese minimaler Richtlinien, abgeleitet aus der empirischen Unterstützung der geschätzten Verteilungen; und (C3) eine mit eBPF implementierte Architektur für Echtzeitüberwachung und inkrementelle Verifikation im Kernel.

  1. Hintergrund und verwandte Arbeiten

2.1 Grundlagen der Container-Isolation

Wir definieren formal einen Container als das Tupel $C = (P, N, G, F)$, wobei $P$ die Menge der Prozesse, $N$ die Menge der Namespaces, $G$ die angewendeten cgroups und $F$ das isolierte Root-Dateisystem ist. Alle Container teilen denselben Kernel $K$, sodass die globale Angriffsfläche modelliert werden kann als:

$$ S = \bigcup_{i=1}^{m} S_i, $$

wobei $S_i \subseteq \Sigma$ die Menge der für Container $i$ zugänglichen Syscalls ist und $\Sigma$ das vollständige Alphabet der von $K$ exportierten Syscalls darstellt.

2.2 Klassifikation der Literatur

Kategorie Beispiele Einschränkungen
Statische Härtung seccomp, AppArmor, SELinux, Pod Security Standards Manuelle Konfiguration und übermäßige Permissivität
Image-Analyse Trivy, Clair Modelliert kein Laufzeitverhalten
Regelbasiertes Monitoring Falco Abhängigkeit von Signaturen und kontinuierlicher Wartung
Verhaltensmodellierung Forrest et al. (1996); Chen et al. (2021) Begrenzte Integration mit formaler Richtliniensynthese

Forrest et al. (1996) führten eine Detektion auf Basis kurzer Syscall-Sequenzen ein. Nachfolgende Arbeiten untersuchten probabilistisches Lernen und automatische Richtliniengenerierung (CHEN et al., 2021). Dennoch besteht weiterhin eine Lücke in der Integration zwischen formaler probabilistischer Modellierung, automatischer Synthese minimaler Richtlinien und effizienter Kernel-Verifikation über eBPF (LINUX FOUNDATION, 2024).

  1. Bedrohungsmodell und Problemformalisierung

Wir nehmen einen Angreifer an, der in der Lage ist, beliebigen Code innerhalb eines kompromittierten Containers auszuführen, bekannte Schwachstellen in Runtime oder Kernel auszunutzen und laterale Bewegung auf demselben Knoten durchzuführen. Eine vorherige Kompromittierung des Kernels wird nicht angenommen.

Sei $\Sigma$ die Menge der Syscalls. Eine Ausführung wird modelliert als $X = (x_1, \dots, x_n)$ mit $x_i \in \Sigma$. Wir definieren $L \subseteq \Sigma^$ als probabilistische Sprache legitimer Sequenzen und suchen eine Funktion:

$$ f: \Sigma^ \rightarrow {0,1} $$

mit den Garantien:

Korrektheit: $\Pr[f(X)=0 \mid X \sim L] \ge 1-\epsilon$.

Vollständigkeit: $\Pr[f(X)=1 \mid X \sim A] \ge 1-\delta$.

  1. Vorgeschlagene Methodik

4.1 Probabilistische Modellierung

Wir modellieren $L$ durch eine Markov-Kette der Ordnung $k$:

$$ P(x_i \mid x_{i-1}, \dots, x_{i-k}) = \theta_{c,a}. $$

Wir schätzen:

$$ \hat{\theta}{c,a} = \frac{C(c,a)+\alpha}{\sum{a’} C(c,a’) + \alpha|\Sigma|}. $$

Die Log-Likelihood:

$$ \mathcal{L}(X) = - \sum_{i=k}^{n} \log P(x_i \mid x_{i-1},\dots,x_{i-k}). $$

Ein Angriff wird entschieden, wenn $\mathcal{L}(X) > \tau$.

4.2 Richtliniensynthese

Wir definieren:

$$ \Sigma_L = { a \in \Sigma \mid \exists c : C(c,a) > 0 }. $$

Die Reduktion der Angriffsfläche:

$$ \rho = 1 - \frac{|\Sigma_L|}{|\Sigma|}. $$

Vereinfachtes Beispiel eines generierten seccomp-Profils:

{
  "defaultAction": "SCMP_ACT_ERRNO",
  "syscalls": [
    { "names": ["read", "write", "exit", "futex"], "action": "SCMP_ACT_ALLOW" }
  ]
}

4.3 Komplexität

Training in $O(N)$; Speicher im Worst Case $O(|\Sigma|^k)$; Online-Detektion in $O(1)$ pro Ereignis.

  1. Implementierung

Wir implementierten den Monitor über eBPF, gekoppelt an Tracepoints sys_enter im Linux-Kernel 6.6 (LINUX FOUNDATION, 2024). Die Integration erfolgte mit Kubernetes 1.28 und containerd 1.7. Die Ordnung $k=3$ wurde mittels stratifizierter Kreuzvalidierung ausgewählt.

Tests zeigten eine Verarbeitung von 10.000 Ereignissen pro Sekunde und Knoten bei einer durchschnittlichen zusätzlichen CPU-Last von 3,7 %.

  1. Experimentelle Evaluation

Umgebung: 120 Knoten (Intel Xeon Gold 6230, 128 GB RAM), 1.800 Container.

Metrik Vorschlag Falco
TPR 96,1% 88,4%
FPR 2,8% 6,7%
Reduktion der Syscalls 72,4% N/A
CPU-Overhead 3,7% 4,9%

Die p95-Latenz erhöhte sich um 4,3 ms. Die Ergebnisse zeigen eine statistisch signifikante Überlegenheit ($p < 0,01$) im Vergleich zur Baseline.

  1. Diskussion

Die probabilistische Modellierung erfasst kontextuelle Abhängigkeiten zwischen Syscalls und reduziert die für statische Richtlinien typische Permissivität. Wir betrachten Umgehung durch verhaltensbasierte Mimikry, modelliert über die Kullback-Leibler-Divergenz:

$$ D_{KL}(P_L | P_A). $$

Wirksame Angriffe minimieren $D_{KL}$, was zukünftige Erweiterungen zu hierarchischen Modellen sowie die Integration zusätzlicher eBPF-Signale (Netzwerk, DNS, Capabilities) motiviert.

  1. Schlussfolgerung und zukünftige Arbeiten

Wir haben eine formale Architektur zur Detektion und Minderung von Container-Escapes vorgeschlagen, basierend auf probabilistischer Modellierung und Kernel-Verifikation. Wir zeigen eine substanzielle Reduktion der Angriffsfläche sowie hohe Detektionsraten bei moderatem Overhead.

Zukünftige Arbeiten umfassen föderiertes Lernen zwischen Clustern, Integration mit CNAPP-Plattformen sowie eine formale Analyse der adversarialen Robustheit.

Literaturverzeichnis

(Präsentiert gemäß ABNT, mit URLs und Zugriff am 13. Apr. 2025.)

AQUA SECURITY. Container Security Report 2023. 2023. Verfügbar unter: https://www.aquasec.com/resources/container-security-report/. Zugriff am: 13. Apr. 2025.

BARHAM, P. et al. Xen and the art of virtualization. In: ACM Symposium on Operating Systems Principles (SOSP). 2003. Verfügbar unter: https://dl.acm.org/doi/10.1145/945445.945462. Zugriff am: 13. Apr. 2025.

BURNS, B.; BEDA, J.; HIGHTOWER, K. Kubernetes: Up and Running. 3. Aufl. Sebastopol: O’Reilly, 2022.

CHEN, L. et al. Automated policy generation for container security. In: ACM CCS. 2021. Verfügbar unter: https://dl.acm.org/doi/10.1145/3460120.3484589. Zugriff am: 13. Apr. 2025.

CIS. CIS Kubernetes Benchmark v1.27. 2023. Verfügbar unter: https://www.cisecurity.org/benchmark/kubernetes. Zugriff am: 13. Apr. 2025.

DOCKER. Docker Engine Security. 2024. Verfügbar unter: https://docs.docker.com/engine/security/. Zugriff am: 13. Apr. 2025.

FALCO. Falco Documentation. 2024. Verfügbar unter: https://falco.org/docs/. Zugriff am: 13. Apr. 2025.

FORREST, S. et al. A sense of self for Unix processes. In: IEEE Symposium on Security and Privacy. 1996. Verfügbar unter: https://ieeexplore.ieee.org/document/502675. Zugriff am: 13. Apr. 2025.

KUBERNETES. Pod Security Standards. 2024. Verfügbar unter: https://kubernetes.io/docs/concepts/security/pod-security-standards/. Zugriff am: 13. Apr. 2025.

LINUX FOUNDATION. eBPF Documentation. 2024. Verfügbar unter: https://ebpf.io/. Zugriff am: 13. Apr. 2025.

MITRE. ATT&CK for Containers. 2023. Verfügbar unter: https://attack.mitre.org/matrices/enterprise/containers/. Zugriff am: 13. Apr. 2025.

NIST. SP 800-190: Application Container Security Guide. 2017. Verfügbar unter: https://csrc.nist.gov/publications/detail/sp/800-190/final. Zugriff am: 13. Apr. 2025.

NVD. CVE-2019-5736. 2019. Verfügbar unter: https://nvd.nist.gov/vuln/detail/CVE-2019-5736. Zugriff am: 13. Apr. 2025.

NVD. CVE-2022-0492. 2022a. Verfügbar unter: https://nvd.nist.gov/vuln/detail/CVE-2022-0492. Zugriff am: 13. Apr. 2025.

NVD. CVE-2022-0185. 2022b. Verfügbar unter: https://nvd.nist.gov/vuln/detail/CVE-2022-0185. Zugriff am: 13. Apr. 2025.

OWASP. Docker Security Cheat Sheet. 2023. Verfügbar unter: https://cheatsheetseries.owasp.org/cheatsheets/Docker_Security_Cheat_Sheet.html. Zugriff am: 13. Apr. 2025.

PALO ALTO NETWORKS. State of Cloud-Native Security Report. 2024. Verfügbar unter: https://www.paloaltonetworks.com/prisma/cloud/state-of-cloud-native-security-report. Zugriff am: 13. Apr. 2025.

GARFINKEL, T. Traps and pitfalls: Practical problems in system call interposition. In: USENIX Security Symposium. 2003. Verfügbar unter: https://www.usenix.org/conference/12th-usenix-security-symposium/traps-and-pitfalls-practical-problems-system-call. Zugriff am: 13. Apr. 2025.

HOGLUND, G.; BUTLER, J. Rootkits: Subverting the Windows Kernel. Boston: Addison-Wesley, 2005.