TL;DR
אבטחת מכולות היא התהליך של הגנה על יישומים במכולות (הרצים על Docker או Kubernetes) לאורך כל מחזור החיים שלהם, מהבנייה ועד זמן הריצה.
היא מתמקדת באבטחת תמונות מכולות, רישומים, סביבות זמן ריצה ושכבות תזמור מפני פגיעויות, תצורות שגויות וגישה לא מורשית.
מהי מכולה
מכולה היא חבילת תוכנה עצמאית הכוללת תלות, ספריות, קוד ותצורה הנדרשים על ידי היישום כדי לפעול. היא מבודדת את היישום מהמערכת הבסיסית, כך שהוא פועל באופן עקבי בסביבות שונות, ממחשב נייד של מפתח לשרת בדיקה ועד לענן לייצור.
מכולות יעילות מכיוון שהן חולקות את ליבת מערכת ההפעלה של המארח ואינן דורשות מערכת הפעלה אורחת מלאה, מה שהופך אותן למהירות ויעילות יותר במשאבים מאשר מכונות וירטואליות.
דוגמאות לפלטפורמות מכולות:
- Docker
- Kubernetes
- Containerd
- Podman
מכיוון שמכולות חולקות את אותה מערכת הפעלה של המארח, תצורה שגויה אחת יכולה להשפיע על מספר מכולות, מה שהופך את אבטחת המכולות לחשובה.
מהי אבטחת מכולות
אבטחת מכולות היא תהליך, כלים ומדיניות המשמשים להגנה על מכולות תוכנה והמערכות עליהן הן פועלות.
מכיוון שמכולות מבודדות יישום ותלותיו יחד, חשוב להגן עליהן מפני פגיעויות, תצורות שגויות וגישה לא מורשית.
אבטחת מיכלים כוללת הגנה על תמונות מיכלים, סביבת הריצה, כלי תזמור והתשתית הבסיסית כדי לשמור על שלמות, סודיות וזמינות של יישומים ממוכנים.
המטרה היא למנוע סיכוני אבטחה כגון:
- תמונות מיכלים פגיעות או שנפגעו
- הגדרות Docker או Kubernetes שגויות
- הסלמת הרשאות בתוך מיכלים
- התקפות בזמן ריצה וגישה לא מורשית
- רישומי מיכלים שנפגעו
- בעיות שרשרת אספקה מתמונות בסיס
דוגמה :
אם תמונת Docker כוללת ספריית Apache Struts פגיעה עם פגיעויות ידועות, תוקפים יכולים לנצל אותה (לדוגמה, פרצת Equifax 2017). אבטחת מיכלים מבטיחה כי פגיעויות כאלה מזוהות לפני פריסה.
למה אבטחת מיכלים חשובה
מיכלים משמשים בכל מקום: אפליקציות ענן, מיקרו-שירותים, CI/CD ופלטפורמות SaaS כי הם מאפשרים שחרור מהיר יותר. עם זאת, הם גם מגדילים את שטח התקיפה עבור תוקפים.
-
אירוח משותף = סיכון משותף
מיכל אחד שנפרץ יכול לחשוף את כל הצומת.
-
תמונות ציבוריות עשויות להיות מסוכנות.
לתמונות Docker Hub יש אפשרות לכלול ספריות מיושנות או זדוניות.
-
הגדרת שגויה של Kubernetes
RBAC חלש או לוח מחוונים פתוח הובילו למספר פריצות בענן.
-
תוקפים מכוונים ישירות למיכלים.
דוגמה: בפריצת Kubernetes של טסלה (2018), תוקפים ניצלו מיכל מוגדר בצורה שגויה כדי להריץ עומסי עבודה של כריית מטבעות קריפטוגרפיים.
-
ציות דורש בקרות חזקות.
אבטח מיכלים כדי לעמוד בתקנות אבטחה כגון SOC 2, PCI DSS, HIPAA, וכו’.
איך אבטחת מיכלים עובדת
אבטחת מיכלים מגנה על כל שלב במחזור החיים של המיכל, מהבניית התמונה ועד להרצתה בייצור. כך התהליך עובד
1. אבטח את שלב הבנייה
שלב זה הוא המקום שבו נוצרות תמונות המיכלים.
- סרוק תמונות בסיס לאיתור פגיעויות (למשל, ספריות מיושנות)
- בדוק Dockerfiles להוראות לא בטוחות (למשל, הרצה כחשבון root, חשיפת פורטים מיותרים)
- גלה סודות בתוך קוד המקור או קבצי סביבה לפני שהם נכללים בתמונה.
- השתמש ברשימות מהימנות כדי להימנע משימוש בתמונות שנפרצו.
מטרה: מנע מרכיבים לא בטוחים להיכנס לתמונת המיכל שלך
2. סרוק והגן על רשימות מיכלים
לאחר שהתמונות נבנות, הן מאוחסנות ברשימות כמו Docker Hub, ECR, GCR, וכו’.
- לסרוק מחדש באופן רציף תמונות כאשר מופיעים CVEs חדשים.
- לחסום תמונות מסוכנות מלהיות משוכות לתוך ייצור.
- לאכוף חתימת תמונה כך שרק תמונות מאומתות ישמשו לייצור.
מטרה : להבטיח שרק תמונות בטוחות ייפרסו
3. יישום בקרות אבטחה במהלך הפריסה
במהלך הפריסה, מכולות מתוזמנות על ידי פלטפורמה כמו Kubernetes.
- לאכוף הרשאות מינימליות, להימנע מהרצת מכולות כ-root.
- ליישם מדיניות רשת כדי לשלוט בתקשורת בין שירותים.
- להשתמש בבקרי קבלה כדי לדחות פריסות לא בטוחות באופן אוטומטי.
- להפעיל ניהול סודות כמו Kubernetes Secrets, Vault, וכו’.
מטרה : לוודא שמכולות מתחילות עם מדיניות אבטחה נכונה
4. ניטור מכולות בזמן ריצה
לאחר הפריסה, מכולות פעילות בייצור, ותוקפים יכולים לנצל אותן אם הם מוצאים פגיעויות.
- לזהות התנהגות לא רגילה, למשל כריית קריפטו, הסלמת הרשאות.
- לנטר קריאות מערכת כדי לתפוס פעולות חשודות.
- למנוע סטייה, לוודא שמכולות רצות תואמות לתמונה המקורית מהצוות שלך.
- להגן על תצורת זמן ריצה כמו הגדרות רשת, כרכים מותקנים, או דגלי הרשאות.
מטרה: לתפוס התקפות לפני שהן מתפשטות
5. אבטחת Kubernetes (אם משתמשים)
Kubernetes הוא חזק לתזמון מכולות בקנה מידה. אבל הם יכולים גם להכניס סיכונים.
- לאבטח את שרת ה-API עם RBAC.
- להקשיח את etcd (להצפין במנוחה, להגביל גישה).
- להפעיל רישום ביקורת כדי לעקוב אחרי כל פעולות משתמש ואירועים.
- ליישם את תקני CIS Kubernetes עבור פרקטיקה מיטבית.
מטרה : להבטיח שהשכבה האורקסטרטיבית תהיה מאובטחת
6. לבצע ביקורת מתמשכת ואוטומציה
סביבות קונטיינרים נעות במהירות, ואוטומציה היא המפתח לאבטחת קונטיינרים.
- לאוטומט סריקות פגיעות בצינורות CI/CD
- לבדוק באופן רציף תצורות מול בסיס האבטחה.
- ליצור דוחות תאימות עבור SOC 2, ISO 27001, PCI DSS וכו’.
- להתריע לצוותים כאשר פגיעויות חדשות משפיעות על תמונות שהופעלו.
מטרה: לשמור על אבטחה לטווח ארוך באמצעות אוטומציה וראות.
יכולות מפתח של אבטחת קונטיינרים
1. סריקת תמונות
לזהות פגיעויות, תוכנות זדוניות, סודות וספריות לא בטוחות לפני הפעלה.
דוגמה: זיהוי Log4j בתוך תמונת בסיס במהלך CI/CD
2. אבטחת רישום
להגן על רישומים פרטיים (למשל, ECR, GCR, Harbor) עם אימות וסריקה מתמשכת.
3. הגנה בזמן ריצה
לנטר קונטיינרים להתנהגות לא רגילה כגון:
- הפעלת מעטפת לא צפויה
- ניסיונות כריית מטבעות
- הסלמת הרשאות
4. אבטחת Kubernetes + אורקסטרציה
לחזק את אבטחת הקלאסטר:
- RBAC
- מדיניות רשת
- סטנדרטים אבטחת פודים
- הצפנת סודות
- ביטול קונטיינרים עם הרשאות
5. אבטחת מארח
לחזק את מערכת ההפעלה הבסיסית כדי למנוע מהתוקפים לברוח מהקונטיינרים.
6. תאימות ואכיפת מדיניות
ליישם אמות מידה של CIS עבור Docker ו-Kubernetes.
דוגמה בפועל
חברת SaaS מפעילה מאות מיקרו-שירותים ב-Kubernetes. במהלך סקירת אבטחת הקונטיינרים, הצוות מצא
- כמה מכולות פועלות כמשתמשי root.
- המרחב השמות מאפשר גישה לרשת ללא הגבלה.
- תמונה מכילה מפתחות API קשיחים.
כדי לתקן זאת, הצוות:
- מוסיף אינטגרציה של סריקת תמונות ב-CI/CD.
- אוכף RBAC ומדיניות רשת ב-Kubernetes.
- מפרס ניטור בזמן ריצה.
- מסיר סודות ומשתמש ב-Vault/KMS.
תוצאה:
הפחתת שטח התקפה, מניעת פגיעויות מהגעה לייצור, ושיפור מוכנות לביקורת אבטחה.
כלי אבטחת מכולות פופולריים
- Plexicus Container Security – סריקה מאוחדת, תובנות מכולות, בדיקות IaC
- Aqua Security
- Prisma Cloud (Palo Alto Networks)
- Sysdig Secure
- Falco
- Anchore
- Trivy
שיטות עבודה מומלצות לאבטחת מכולות
- השתמש בתמונות בסיס מינימליות (למשל, distroless, Alpine)
- סרוק תמונות לפני דחיפה לרגיסטרי.
- השתמש במכולות לא-root
- הגבל יכולות מכולות (ללא מצב מורשה)
- אכוף RBAC ב-Kubernetes
- יישם סגמנטציה רשתית
- אחסן סודות בצורה מאובטחת (Vault, KMS, Kubernetes Secrets)
- עקוב אחר התנהגות בזמן ריצה באופן רציף.
מונחים קשורים
- אבטחת Kubernetes
- ניהול מצב אבטחת ענן (CSPM)
- פלטפורמת הגנת עומסי עבודה בענן (CWPP)
- RBAC
- DevSecOps
שאלות נפוצות: אבטחת מכולות
1. מהי אבטחת מכולות?
הגנה על תמונות מכולה, זמני ריצה, רישומים ופלטפורמות אורקסטרציה מפני פגיעויות, תצורות שגויות והתקפות.
2. האם מכולות בטוחות יותר ממכונות וירטואליות?
לא בהכרח, מכולות הן קלות יותר אך חולקות את מערכת ההפעלה של המארח, מה שמגדיל את הסיכון.
3. מה גורם לרוב הפריצות למכולות?
תצורות שגויות (הרצה כ-root), תמונות פגיעות, סודות חשופים או מדיניות Kubernetes חלשה.
4. כיצד תוקפים מנצלים מכולות?
דרך פגיעויות תמונה, התקפות בריחה ממכולה, לוחות מחוונים חשופים ובקרות גישה חלשות.
5. מה ההבדל בין אבטחת Docker לאבטחת Kubernetes?
אבטחת Docker מתמקדת בתמונות ומכולות, בעוד אבטחת Kubernetes כוללת אורקסטרציה, RBAC, רשתות ובידוד עומסי עבודה.