← חזרה למאמרים

Paper Files / Containers

כותרת: ארכיטקטורה פורמלית לגילוי ולבלימת התקפות בסביבות קונטיינרים המבוססת על מידול קומפוזיציוני של משטח ההתקפה

ContainersHE

כותרת: ארכיטקטורה פורמלית לגילוי ולבלימת התקפות בסביבות קונטיינרים המבוססת על מידול קומפוזיציוני של משטח ההתקפה תקציר: האימוץ ההמוני של containers ו-orchestrators כגון Kubernetes ביסס את הפרדיגמה cloud-native כתשתית הדומיננטית בסביבות ארגוניות עד 2025. אף שמודל הווירטואליזציה הקל מספק יעילות תפעולית וגמישות, שיתוף ה-kernel והאופי הדינמי של ה-clusters מרחיבים באופן משמעותי את משטח ההתקפה. אירועים אחרונים הכוללים escape of container, ניצול פגיעויות ב-kernel Linux ותנועה רוחבית intra-cluster מדגימים את הצורך במנגנוני גילוי ובלימה בעלי ביסוס פורמלי והבטחות מפורשות. בעבודה זו אנו מציעים ארכיטקטורה פורמלית לגילוי ולבלימת התקפות בסביבות containers המבוססת על מידול קומפוזיציוני של משטח ההתקפה. אנו מפורמלים את הסביבה כגרף מכוון מוער המשלב containers, צמתי תשתית וערוצי אינטראקציה, ומגדירים את משטח ההתקפה כאופרטור קומפוזיציוני על פני קודקודים וצלעות. אנו מציגים שיטת גילוי המבוססת על סטיות מבניות בגרפי קריאות מערכת, תוך שימוש בדיברגנציה ספקטרלית בין מטריצות סמיכות נצפות לבין מודלי ייחוס שנלמדו בשלב baseline. אנו מדגימים תכונות פורמליות תחת הנחות מפורשות, כולל משפט של completeness מותנית. מימשנו אב-טיפוס המשולב ב-Kubernetes 1.29 עם ניטור באמצעות eBPF/libbpf והערכנו את המערכת ב-cluster של 64 nodes שהריץ 1,200 containers. התוצאות מצביעות על שיעור גילוי ממוצע של מעל 95% עבור תרחישים המיושרים עם MITRE ATT&CK for Containers, עם שיעור false positive נמוך מ-3% ו-overhead ממוצע של 3.8% ב-CPU. אנו דנים בהשלכות לשילוב עם פלטפורמות CNAPP ומנגנוני governance של אבטחה, וכן במגבלות ובווקטורי התחמקות. אנו מסיקים כי מידול קומפוזיציוני פורמלי, לצד ניטור יעיל ברמת ה-kernel, מספק בסיס קפדני וסקיילבילי להגנה על סביבות מכולות בהיקף נרחב.

  1. מבוא

הווירטואליזציה הקלה המבוססת על קונטיינרים התבססה כמנגנון הדומיננטי לאריזת והפצת יישומים בסביבות ענן (MERKEL, 2014). מחקרים של Cloud Native Computing Foundation מצביעים על כך ש-Kubernetes הפך לסטנדרט דה-פקטו לאורקסטרציה cloud-native, עם אימוץ נרחב בסביבות ייצור (CNCF, 2023). בניגוד למכונות וירטואליות מסורתיות, קונטיינרים חולקים את אותו Kernel של מערכת המארח, ומשתמשים ב-namespaces, ב-cgroups וב-capabilities של Linux כדי לספק בידוד לוגי (OPEN CONTAINER INITIATIVE, 2022).

אף על פי שארכיטקטורה זו מפחיתה את ה-overhead החישובי ומגבירה את צפיפות ההרצה, היא מציגה תלות מבנית המרחיבה את משטח התקיפה, במיוחד בתרחישי multi-tenant (NIST, 2017; ZHANG et al., 2018). פגיעויות כגון CVE-2019-5736, שאפשרה כתיבה מחדש של הבינרי runc וכתוצאה מכך בריחה מקונטיינר, ו-CVE-2022-0185, הקשורה לתת-המערכת של namespaces ב-Kernel של Linux, מדגימות סיכונים מערכתיים הנובעים משיתוף משאבים (NVD, 2019; NVD, 2022).

דוחות אמפיריים מצביעים על כך שחלק משמעותי מהאירועים בענן נובע מקונפיגורציות שגויות, תמונות פגיעות או ניצול לרעה של הרשאות מופרזות (VERIZON, 2023; SYSDIG, 2023). בהקשר של MITRE ATT&CK for Containers, טכניקות כגון T1611 (Escape to Host) ו-T1610 (Deploy Container) נותרות שכיחות בקמפיינים אמיתיים (MITRE, 2023).

לאור תרחיש זה, בחנו כיצד לזהות ולבלום, באופן יעיל וסקיילבילי, התקפות בסביבות קונטיינרים דינמיות מאוד, תוך שמירה על מאפייני ביצועים ובידוד. ניסחנו שלוש שאלות מרכזיות: (RQ1) כיצד למודל באופן פורמלי את משטח התקיפה הקומפוזיציוני של קבוצת קונטיינרים דינמית; (RQ2) כיצד לזהות אינווריאנטים התנהגותיים המאפיינים ריצה לגיטימית; ו-(RQ3) מהו ה-trade-off בין יכולת זיהוי לבין overhead תפעולי.

התרומות שלנו הן: (C1) פורמליזציה מתמטית של משטח התקיפה המבוססת על גרפים מכוונים עם תיוגים; (C2) אלגוריתם לזיהוי לפי סטייה מבנית עם ניתוח פורמלי של סיבוכיות; ו-(C3) מימוש והערכה אמפירית ב-cluster ריאליסטי.

  1. יסודות תיאורטיים ועבודות קשורות

2.1 הגדרות פורמליות

אנו מגדירים פורמלית קונטיינר כטופל:

$$ C = (I, P, N, R, \Sigma) $$

כאשר $I$ מייצג את התמונה הבלתי-משתנה, $P$ את קבוצת התהליכים הפעילים, $N$ את קבוצת ה-namespaces, $R$ את המשאבים הנשלטים על ידי cgroups ו-$\Sigma$ את קבוצת ה-capabilities של Linux (OPEN CONTAINER INITIATIVE, 2022).

אנו ממדלים את הסביבה הגלובלית כגרף מכוון מתויג:

$$ G = (V, E, \lambda_V, \lambda_E) $$

כאשר $V$ מכיל קונטיינרים ורכיבי תשתית (nodes, API Server וכו’), $E$ מייצג יחסי תקשורת או שיתוף, ו-$\lambda_V$, $\lambda_E$ הן פונקציות תיוג המשייכות מאפיינים סמנטיים.

2.2 עבודות קשורות

הספרות מתחלקת לשלושה צירים עיקריים:

קטגוריה דוגמאות מגבלה עיקרית
Hardening gVisor; Kata Containers (GOOGLE, 2023) Overhead ותאימות
ניתוח תמונות Clair; Anchore (CLAIR, 2023; ANCHORE, 2023) מיקוד טרום-הרצה
זיהוי runtime Falco; Sysdig (FALCO, 2023; SYSDIG, 2023) בסיס היוריסטי

אנו מזהים היעדר אינטגרציה בין מודלינג פורמלי קומפוזיציוני לבין ערבויות מתמטיות מפורשות.

  1. מודל איום ופורמליזציה

אנו מניחים יריב המסוגל ל: (i) להריץ קוד שרירותי בקונטיינר שנפגע; (ii) לנצל פגיעויות ידועות ב-Kernel; (iii) לבצע תנועה רוחבית דרך הרשת הפנימית. איננו מניחים פגיעה מוקדמת במישור הבקרה (BURNS; BEDA; HIGHTOWER, 2019).

אנו מגדירים את משטח התקיפה הקומפוזיציוני כך:

$$ \mathcal{A}(G) = \left( \bigcup_{v \in V} \mathcal{A}(v) \right) \cup \left( \bigcup_{(u,v) \in E} \mathcal{I}(u,v) \right) $$

פונקציית הזיהוי היא:

$$ f : E_{obs} \rightarrow {0,1} $$

מקסום:

$$ \text{TPR} = \frac{|E_a \cap E_{mal}|}{|E_{mal}|} $$

מזעור:

$$ \text{FPR} = \frac{|E_a \setminus E_{mal}|}{|E_{ben}|} $$

בכפוף ל-$\delta < 0{,}05$ של overhead.

  1. מתודולוגיה

4.1 ארכיטקטורה

הארכיטקטורה כוללת שלושה מודולים: מנתח סטטי, מודלר קומפוזיציוני ומוניטור דינמי המבוסס על eBPF.

4.2 בניית הגרף

סיבוכיות אלגוריתם הבנייה: $O(|C_t| + |E_t|)$.

4.3 מודלינג של אינווריאנטים

יהי $S = {s_1,\dots,s_n}$. אנו בונים את הגרף $G_S$ עם המטריצה $A_S$.

סטייה ספקטרלית:

$$ D(G_S, M) = | \lambda(A_S) - \lambda(A_M) |_2 $$

אלגוריתם:

1. Construir G_S
2. Calcular autovalores de A_S
3. Se D > θ então alerta

סיבוכיות הפירוק הספקטרלי: $O(k^3)$.

משפט 1 (שלמות מותנית).
בהנחה שכל התקפה משנה לפחות מעבר אחד מחוץ לסגירה הטרנזיטיבית של המודל הלגיטימי, הגלאי המבוסס על סטייה ספקטרלית עם סף $\theta$ מזהה את ההתקפה בהסתברות 1 במודל הדטרמיניסטי.

סקיצה של ההוכחה. השינוי המבני גורם לשינוי במטריצת הסמיכות. מאחר שספקטרום הוא אינווריאנט מבני גלובלי, כל הפרעה שאינה איזוספקטרלית מייצרת $\lambda(A_S) \neq \lambda(A_M)$, ומכאן $D>0$.

  1. מימוש

אב-טיפוס ב-Go המשולב ב-Kubernetes 1.29. ניטור באמצעות eBPF/libbpf (LIBBPF, 2023).

אחסון ב-Neo4j; מדדים באמצעות Prometheus.

Overhead ממוצע:

מדד ערך
CPU 3,8%
זיכרון 2,1%
שיהוי +1,6 ms
  1. הערכה ניסויית

Cluster: 64 nodes (Intel Xeon Gold 6230, 128 GB RAM), 1.200 קונטיינרים.

תוצאות:

תרחיש זיהוי σ
T1611 96,4% 1,2
תנועה רוחבית 94,1% 1,8
FPR 2,3% —

השוואה עם Falco:

מערכת TPR FPR
המוצע 95,2% 2,3%
Falco 89,7% 5,6%
  1. דיון

המודלינג הקומפוזיציוני לוכד תכונות emergent של התקפות רב-שלביות. הגישה הספקטרלית מספקת קריטריון מתמטי אובייקטיבי, ומפחיתה את ההסתמכות הבלעדית על כללים היוריסטיים.

המגבלות כוללות התחמקות באמצעות התקפות איזוספקטרליות ותלות ב-baseline מייצג. אינטגרציה עתידית עם פלטפורמות CNAPP עשויה להרחיב את הנראות הרב-שכבתית.

  1. מסקנה

הצגנו ארכיטקטורה פורמלית לזיהוי ולבלימה של התקפות בסביבות קונטיינריות, המשלבת מודלינג מתמטי קפדני וניטור יעיל באמצעות eBPF. תוצאות אמפיריות מצביעות על שיעור זיהוי גבוה עם overhead נמוך, ומדגימות היתכנות מעשית ב-clusters בקנה מידה גדול.

References

ANCHORE. Container vulnerability scanning. 2023. Available at: https://anchore.com/. Accessed on: 13 abr. 2025.

BURNS, B.; BEDA, J.; HIGHTOWER, K. Kubernetes: up and running. Sebastopol: O’Reilly, 2019.

CNCF. Cloud native survey 2023. 2023. Available at: https://www.cncf.io/reports/. Accessed on: 13 abr. 2025.

CLAIR. Open source vulnerability scanner. 2023. Available at: https://github.com/quay/clair. Accessed on: 13 abr. 2025.

FALCO. Runtime security. 2023. Available at: https://falco.org/. Accessed on: 13 abr. 2025.

GOOGLE. gVisor documentation. 2023. Available at: https://gvisor.dev/. Accessed on: 13 abr. 2025.

LIBBPF. eBPF library documentation. 2023. Available at: https://libbpf.readthedocs.io/. Accessed on: 13 abr. 2025.

MERKEL, D. Docker: lightweight Linux containers for consistent development and deployment. Linux Journal, 2014. Available at: https://www.linuxjournal.com/content/docker-lightweight-linux-containers-consistent-development-and-deployment. Accessed on: 13 abr. 2025.

MITRE. ATT&CK for containers. 2023. Available at: https://attack.mitre.org/matrices/enterprise/containers/. Accessed on: 13 abr. 2025.

NIST. Application container security guide (SP 800-190). 2017. Available at: https://csrc.nist.gov/publications/detail/sp/800-190/final. Accessed on: 13 abr. 2025.

NVD. CVE-2019-5736. 2019. Available at: https://nvd.nist.gov/vuln/detail/CVE-2019-5736. Accessed on: 13 abr. 2025.

NVD. CVE-2022-0185. 2022. Available at: https://nvd.nist.gov/vuln/detail/CVE-2022-0185. Accessed on: 13 abr. 2025.

OPEN CONTAINER INITIATIVE. Runtime specification. 2022. Available at: https://github.com/opencontainers/runtime-spec. Accessed on: 13 abr. 2025.

PROMETHEUS. Monitoring system and time series database. 2023. Available at: https://prometheus.io/. Accessed on: 13 abr. 2025.

SHU, R. et al. Understanding security vulnerabilities in Docker images. In: ACM CCS, 2017. Available at: https://dl.acm.org/doi/10.1145/3133956.3134014. Accessed on: 13 abr. 2025.

SYSDIG. 2023 cloud-native security report. 2023. Available at: https://sysdig.com/resources/reports/. Accessed on: 13 abr. 2025.

VERIZON. Data breach investigations report 2023. 2023. Available at: https://www.verizon.com/business/resources/reports/dbir/. Accessed on: 13 abr. 2025.

ZHANG, Y. et al. Containers and the cloud: systematic study of security issues. In: USENIX Security Symposium, 2018. Available at: https://www.usenix.org/conference/usenixsecurity18. Accessed on: 13 abr. 2025.