Table of Contents
מכולות Docker פיתחו את פריסת היישום המודרנית על ידי מתן משקל, נייד ויעיל סביבות עבור תוכנה ריצה. כמו ארגונים מאמצים יותר ויותר מכולות כדי לייעל את התפתחותם וזרימות העבודה הפריסה שלהם, האבטחה של מיכלים אלה הפכה לדאגה קריטית.מכלי מיסקנים ותמונות חשופים הם בין הגורמים המובילים של הפרת נתונים בענן, ובעוד Dockerfiplies פיתוח ופריסה, היא גם מרחיבה את פני השטח המקיפים זה, לבחון אסטרטגיות אבטחה חיוניות כדי ליישם את שיטות ניהוליות.
הבנה של Docker Container Security Fundamentals
דוקר יש מערכת משלה של אתגרים ביטחוניים, ולהבטיח את האבטחה של מכולות דוקר אינו רק עניין של כוונון היישום אלא כרוך בגישה מקיפה הכוללת את המערכת האקולוגית כולה.לפני יישום אמצעי אבטחה ספציפיים, חיוני להבין את מודל האבטחה של דוקר וכיצד הוא שונה מגישות וירטואליות מסורתיות.
אדריכלות אבטחה של Docker
הגישה של דוקר לאבטחה נבדלת משיטות וירטואליזציה מסורתיות, בעיקר בשל ההסתמכות שלה על הקרנל של מערכת ההפעלה המארחת. Docker ממינוף של שם הקרנל עבור בידוד תהליכים. שםspaces לספק את הצורה הראשונה והפשוטה ביותר של תהליכי בידוד.
עם זאת, מיכלי דוקר הם קלים וניידים.עם זאת, הם חולקים את מערכת ההפעלה המארחת הקרנל.אדריכלות זו יוצרת אתגרים ביטחוניים ייחודיים.הבנת מודל הקרנל המשותף הזה היא חיונית כי פרצות בגרעין המארח יכולות להשפיע על כל המכולות המתחוללות במערכת זו.
כל מיכל מקבל גם את ערימה הרשת שלו, כלומר מיכל לא מקבל גישה מועדפת לשקעים או ממשקים של מיכל אחר.כמובן, אם המערכת המארחת היא בהתאם, מיכלים יכולים אינטראקציה אחד עם השני באמצעות ממשקי הרשת שלהם - בדיוק כמו שהם יכולים אינטראקציה עם מארחים חיצוניים.
מודל האחריות המשותף
אבטחת Docker כוללת תכונות כמו Docker Compose, שםspaces, ו-Docker Content Trust (DCT) כדי לשפר את האבטחה, באמצעות תצורה בטוחה עבור הפעלת כלי, רשתות, אחסון, סריקה קבועה תמונות מכולה ולטפל פרצות ידועות, ולעקוב אחר פעילויות ריצה וליישם בקרת גישה מבוססת תפקידים (RBAC) כדי להגביל גישה בלתי מורשית.
כשל מצד אחד של מודל אחריות משותף זה יכול להשאיר עומסי עבודה מאוכלים חשופים. משתמשים שאינם מצליחים לקשה על הסביבה שלהם או לשמור על הרכיבים שלהם עד היום הם בעיקר בסיכון של ניצול. ארגונים חייבים להבין כי דוקר מספק את הכלים והפלטפורמה, אבל יישום אמצעי אבטחה הוא באחריות של צוותי הפיתוח והמבצע.
שיטות חיוניות עבור Securing Docker Containers
אבטחה המכילה אינה כלי בודד או ביקורת חד פעמית.זה קבוצה של פרקטיקות השכבות על פני כל הצינור שלך - מהדוקרפטה שאתה כותב, ל- CI אשר בונה אותו, לשעות הריצה המבצעת אותו.
השתמש ב-Minimal ו- Trusted Base Images
תמיד לבנות מכולות מתמונות בסיס אומתיות, מינימליות. תמונות רשמיות ומקשות יותר הן נקודות התחלה בטוחות יותר.בחירה של תמונת בסיס משפיעה באופן משמעותי על היציבה הביטחונית של מיכל.תמונות גדולות יותר מכילות יותר חבילות, ספריות ופגיעות פוטנציאליות שתוקפים יכולים לנצל.
אלפיני מכיל פחות חבילות, אשר מפחיתות את CVEs ומשפרת את תוצאות סריקה. שקול באמצעות תמונות ללא רתיעה או לינוקס כתמונות בסיס כדי למזער את פני השטח של ההתקפה. תמונות ללא חתומות מכילות רק את היישום שלך ואת התלויות שלה, למעט מנהלי חבילות, פגזים, וכלי רכב אחרים שאינם נחוצים לייצור.
שימוש בתמונות הרשמיות של Docker הוא קריטי לשמירה על האבטחה, שכן תמונות אלה מעודכנים באופן קבוע וקודמים על ידי ישויות אמינות. גישה זו מורידה באופן משמעותי את הסיכון לפרוס מכולות עם פרצות קיימות או קוד זדוני.תמיד לאמת את מקור התמונות הבסיס שלך ומעדיפים תמונות רשמיות מ-Docker Hub או רשם מהימן אחר.
גרסאות Pin Image והימנעות מהתעלים האחרונים
שימוש בערכים האחרונים בונה בלתי צפויים.זה עשוי למשוך גרסה מעודכנת המציגה שינויים או פרצות ללא אזהרה.במקום להשתמש ב-FLT:0latesttureFLT:1 תג, תמיד למקם גרסאות ספציפיות של תמונות בסיס באמצעות לעיכול או תגים שלהם.
גרסאות תמונה Pinning מבטיחות חידוש ומונעות תוקפנות אבטחה בלתי צפויה.כאשר אתה מציין גרסה או לעיכול מדויק, אתה מבטיח כי הבנייה שלך תשתמש באותה תמונת בסיס בכל פעם, מה שהופך את זה קל יותר לעקוב אחר פרצות ולנהל עדכונים באופן שיטתי.
# Bad practice
FROM node:latest
# Good practice - pin specific version
FROM node:18.16.0-alpine
# Best practice - use digest for immutability
FROM node:18.16.0-alpine@sha256:a1e4e58...
משתמשים ב- Non-Root
זהו תרגול טוב ביותר להימנע מריצה כשורש (UID 0) ישנם מעט מאוד מקרים שבהם המכל צריך לבצע כשורש, כך לא לשכוח לכלול את ההוראה USER לשנות את מיכלי ברירת המחדל יעילים UID. הפעלת צינורות שורש מציב סיכונים ביטחוניים משמעותיים כי אם תוקף פוגע במיכל, הם מקבלים גישה ברמת שורש.
ריצה כ- non-root עשויה לדרוש כמה שלבים נוספים ב-Dockerfile שלך, כפי שאתה צריך עכשיו לוודא שהמשתמש שצוין בהוראת USER קיים בתוך מיכל ולספק הרשאות מערכת קבצים מתאימות במקומות שבהם התהליך יהיה קריאה או כתיבה.
FROM alpine:3.18
# Create a non-root user
RUN addgroup -g 1000 appgroup &&
adduser -D -u 1000 -G appgroup appuser
# Set ownership of application directories
RUN chown -R appuser:appgroup /app
# Switch to non-root user
USER appuser
WORKDIR /app
COPY --chown=appuser:appgroup . .
CMD ["./myapp"]
יתר על כן, סביבת ההוצאה להורג שלך עשויה לחסום מכולות הפועלות כשורשים כברירת מחדל (כלומר, Openshift דורש מגבלות נוספות של הקשרים הביטחוניים) התפלגות Kubernetes ופלטפורמות מכולות רבות לאכוף מדיניות לא-בסיסית, מה שהופך את התרגול הזה חיוני להתאמה.
המונחים: only file Systems
לרוץ עם מערכת הקבצים שורש לקריאה בלבד שבו - קורא-רק עושה את כל מערכת הקבצים של המכולה לקריאה בלבד ו--tmpfs מספק ספריות עצבניות עבור צרכים רצופים.מדד אבטחה זה מונע מתוקפים לשנות קבצים בתוך המכולה, גם אם הם מקבלים גישה.
ביטוי זה מאחסן את חוק מערכת הקבצים לקריאה בלבד.זכור כאשר אתה עושה מכולה לקריאה בלבד, האפליקציה כבר לא יכולה לכתוב לדיסק.אם האפליקציה שלך צריכה לכתוב קבצים זמניים (כמו יומני או שפי), עליך להרים נפח זמני.
docker run -d
--read-only
--tmpfs /tmp:rw,noexec,nosuid,size=64m
--tmpfs /var/run:rw,noexec,nosuid,size=32m
nginx:alpine
עבור יישומים הדורשים אחסון מתמשך, השתמש ב כרכים עבור ספריות ספציפיות תוך שמירה על מערכת הקבצים שורש לקריאה בלבד. גישה זו מספקת את הגישה הדרושה לכתיבה תוך שמירה על גבולות הביטחון.
הורידו את ה-Linux Capabilities
ההסתברות הופכת את הדיכוטומיה "בסיסית / לא-בסיסית" לתוך מערכת בקרת גישה יפה-מרוצה (כמו שרתי אינטרנט) כי רק צריך לקשור בנמל מתחת 1024 לא צריך לרוץ כשורש: הם יכולים פשוט לקבל את יכולת השירות נטו bind service במקום.
התרגול הטוב ביותר עבור משתמשים יהיה להסיר את כל היכולות למעט אלה הנדרשים במפורש לתהליכים שלהם.יכולות לינוקס הן הרשאות טמאירות כי להחליף שורש / לא-בסיס בינארי. דוקר נותן מיכלים ברירת מחדל שרוב היישומים אינם צריכים.
docker run -d
--cap-drop=ALL
--cap-add=NET_BIND_SERVICE
--security-opt=no-new-privileges:true
myapp:latest
דגל ה-FLT:0 [החדש] החדש-פרטילג'ר 1 [הדגל] מונע מתהליכים להשיג זכויות נוספות באמצעות בינאריות מאוישות או מכווצות, והוספת שכבת הגנה נוספת מפני התקפות הסלמה פריבילגיות.
אסטרטגיות תכנון אבטחה מתקדמות
ניתן למנוע הרבה מהראש הזה על ידי שינוי ביטחון שמאל, בעיות פוטנציאליות בהקדם האפשרי בזרימת העבודה של הפיתוח שלך. יישום אבטחה מוקדם במחזור החיים הפיתוח מפחית סיכונים וסימולציות.
צילום: Container Image Scanning
סריקה רגילה של פגיעות מכולות היא חיונית.בצנרת בטוחה, סריקה דוקר צריכה להיות צעד חובה של תהליך CI /CD שלך וכל תמונה צריכה להיות מרוקנת ואושר לפני כניסתה של המדינה "ריצה" במקבץ הייצור.
כמה כלים חזקים זמינים עבור סריקת תמונות Docker:
- (FLT:0)TrivyveFLT:1: סורק פגיעות לכל-אין-אחד עבור תמונות מכולות, מערכות קבצים, ו- Git repositories.It's פופולרי עבור הפשטות, המהירות והלחם של הכיסוי, כולל תמיכה בסורקת תשתיות כמוקוד (IaC) ותוספים.
- [ה]: [ה] [ה] [ה]], [ה]], [ה], [ה], [ה]], [ה'], [ה'], [ה']], [ה']'[ה']'[ה']'[ה']'[ה']'[ה']'']'[ה']']'[ה'[ה']']'[ה']']']'[ה'[ה']'[ה'[ה'[ה'[ה'[ה'[ה'[ה']']'[ה']'[ה'[ה']']']']']']'[ה'[ה'[ה'[ה']']']']']'[ה'[ה'[ה']'[ה'[ה'[ה'[ה']'[ה'[ה']']'[ה'[ה']'[ה']']'[ה']']'[ה'[ה'[ה'[ה'[
- (FLT:0) Anchore EngineFLT:1: כלי סריקה פתוח של תמונות Docker אשר בוחן תמונות מכולות עבור פרצות, בעיות תצורה והפרות מדיניות.זה מאפשר יצירת מדיניות אבטחה אישית.
- (ב) ,0) ,Snykawer ContainerFLT:1: סורק פגיעויות המשלב עם צינורות CI /CD כדי לזהות באופן אוטומטי ולתקן פרצות.
- (FLT:0)ClairveFLT:1: סקנדל תמונות מכולות עבור פרצות ידועות המופיעות במאגרי מידע כמו הפגיעות הנפוצות ומסד הנתונים של אקספוחיות (CVE).
לפני שאתם דוחפים תמונות, עליכם תמיד לסרוק אותן לפגיעות. כלים כמו טריבי עושים את זה פשוט. טריבי מדווחת על פרצות, חומרתם, ומוסמכת על תיקונים.
# Scan an image with Trivy
trivy image myapp:latest
# Scan and fail on high/critical vulnerabilities
trivy image --severity HIGH,CRITICAL --exit-code 1 myapp:latest
יצירת ותחזוקה של חוקי תוכנה של חומרים (SBOM)
SBOM נותן לך מלאי שלם של כל דבר בתוך מיכל שלך.כאשר טיפות אפס הימים הבאים, אתה יכול לבדוק מיד אם אתה מושפע.חוק החוסן של סייבר האיחוד האירופי ( 20 בספטמבר26) יחייב את הדור SBOM עבור כל התוכנה שנמכרה בשוק האיחוד האירופי - זה כבר לא נחמד ל- יש.
מקורו והיסטוריה של תמונות מכולות כדי להבטיח מעקב ושלמות.SBOM Generation יוצר חוק תוכנה של חומרים (SBOM) עבור כל תמונה, המפרטת את כל הרכיבים, הספריות והתלויות עבור שקיפות וניהול פגיעות.
Grype תומך בחשבונות תוכנה של חומרים (SBOMs) An SBOM מספק מסד נתונים של כל metadata, רכיבים, ספריות וחבילות המרכיבים מיכל. כלים כמו Syft יכול ליצור SBOMs באופן אוטומטי, אשר ניתן לסרוק לאחר מכן עבור פרצות.
פרופיל תוכן אמין ודימויים
ניתן להגדיר את Docker Engine רק כדי להפעיל תמונות חתום.תכונה אימות תוכן Docker נבנים ישירות לתוך בינארית דוקר.זה מבטיח כי תמונות לא ננעלו עם ולהגיע ממקורות אמינים.
חתימה V3 (כיום: V3.0.5) חדלות פירעון על אימות ללא מפתח באמצעות רשות האישורים של Sighouse ו- שקיפות יומן זה פשוט יותר ובטוח יותר מאשר ניהול מפתחות בעצמך.
# Enable Docker Content Trust
export DOCKER_CONTENT_TRUST=1
# Sign an image with Cosign
cosign sign myregistry.io/myapp:v1.0.0
# Verify a signed image
cosign verify myregistry.io/myapp:v1.0.0
חתימה תמונה מספקת הוכחה קריפטוגרפית לאותנטיות ולשלמות, הגנה מפני התקפות שרשרת האספקה שבו שחקנים זדוניים עלולים להזריק תמונות פגום לתוך הרישום שלך.
יישום רשת Segmentation and Isolation
פלח רשת הוא אסטרטגיה הגנתית קריטית שמגבילה את רדיוס הפיצוץ של פרצות אבטחה פוטנציאליות.על ידי בידוד מכולות לרשתות נפרדות בהתבסס על תפקודן ועל רמת האמון שלהן, תוכל למנוע תנועה מאוחרת יותר על ידי תוקפים.
צור רשתות Docker מותאם אישית עבור טיעונים יישומים שונים:
# Create isolated networks
docker network create --driver bridge frontend-net
docker network create --driver bridge backend-net
docker network create --driver bridge database-net
# Run containers on specific networks
docker run -d --name web --network frontend-net nginx:alpine
docker run -d --name api --network backend-net myapi:latest
docker run -d --name db --network database-net postgres:14
# Connect API to both frontend and backend networks
docker network connect frontend-net api
דוקר Engine 28 התייחס לסוגיה קשורה: נמלי מכולה לא מפורסמים חסומים כעת מגישה ל-LAN כברירת מחדל.זה מונע חשיפה מקרית של שירותים שלא צריכים להיות נגישים מהרשת.
השתמש במדיניות רשת בסביבות Kubernetes כדי להגביל את התנועה בין pods. Define ingress ו- egress כללים המאפשרים במפורש רק נתיבי תקשורת נחוצים.
החל פרופיל אבטחה Runtime
פרופילי אבטחה במשרה מלאה מספקים שכבות נוספות של הגנה על ידי הגבלת מה מכולות יכולות לעשות במהלך ביצוע.שלוש מנגנונים עיקריים זמינים:
פרופילים אבטחה
Seccomp (מצב מחשוב אבטחה) מסננים מערכת מתקשרת כי מכולות יכולות לעשות לגרעין.על ידי הגבלת שיחות מערכת זמינות, אתה להפחית את פני השטח התקפה באופן משמעותי.
# Run container with custom seccomp profile
docker run --security-opt seccomp=/path/to/seccomp-profile.json myapp:latest
פרופילים מועדפים
לטעון את פרופיל AppArmor ולהפעיל מכולה עם פרופיל AppArmor. AppArmor מספק בקרת גישה חובה על ידי הגבלת יכולות של תוכניות עם פרופילים ל-program.
# Load AppArmor profile
sudo apparmor_parser -r /etc/apparmor.d/docker-webapp
# Run container with AppArmor
docker run --security-opt apparmor=docker-webapp myapp:latest
אינטגרציה SEלינוקס
אינטגרציה SEלינוקס מספקת שכבת אבטחה נוספת על ידי אכיפת בקרת גישה חובה על מכולות והאינטראקציות שלהם עם מערכת המארחת. SEלינוקס תוויות לספק בקרת גישה מוטבעת היטב עבור תהליכי מכולה ומשאבים.
ניהול סודות והגנה על נתונים רגישים
סודות קשים בתמונות או במשתנה סביבה הם אחד מפתחי השגיאות הנפוצים ביותר לעשות.אנחנו חייבים לאחסן ולהזריק סודות בבטחה.ניהול סודות נכון הוא חיוני לשמירה על האבטחה של יישומים מקוטבים.
לעולם אל תזרקו סודות בתמונות
סיסמאות, מפתחות API, אסימוניות לא צריך להיות מאוחסן בתוך התמונה, בתוך הסביבה משתנים חשופים יומני או ב- Git repositories. במקום, לאבטח אותם כמו סודות דוקר, סודות Kubernetes, או קמרונות חיצוניים (מנהל סודות של AWS, HashiCorp Vault) יש להשתמש.
שגיאות נפוצות להימנע:
- אישורים קשיחים בDockerfiles
- התחייבות לקבצים של .env עם סודות לשליטה בגירסה
- העברת סודות כמו בניית טיעונים (הם נשארים בהיסטוריה של תמונות)
- סודות מעוררים במשתנים סביבתיים גלויים בגלנים
השתמש בסודות Docker למצב סוומבר
Docker מספק תכונה של סודות מובנה לאחסון מוצפן.Docker Swarm כולל ניהול סודות ילידים המצפין סודות במנוחה ובמעבר.
# Create a secret
echo "my-db-password" | docker secret create db_password -
# Use secret in service
docker service create
--name myapp
--secret db_password
myapp:latest
בתוך מיכל, סודות רכובים כקבצים ב-FLT:0 / סודיות / סודיות / סודיות / כפל 1: , מה שהופך אותם נגישים רק לתהליך המכולה מבלי לחשוף אותם במשתנים סביבתיים או יומנים.
פתרונות ניהול סודות חיצוניים
Hashicorp Vault: כלי ניהול סודות מרכזי שניתן להשתמש בו כדי לאחסן בבטחה ולנהל סודות בסביבות מכולה.
אפשרויות פופולריות כוללות:
- [01:0] הושי קורנפ VaultFLT:1: מספק סודות דינמיים, הצפנה כשירות, ו יומני ביקורת מפורטים
- (ב) ,0)AWS Secrets ManagersFLT:1: שילוב Native עם שירותי AWS וסיבוב אוטומטי
- (ב) כרך ראשון (ב[[1924]]: [[1924]]]]]]]]]]]]
- (FLT:0) Google Secret ManagerveFLT:1: אחסון מאובטח עבור מפתחי API, סיסמאות ותעודות ב- GCP
בעוד Docker Secrets בדרך כלל לספק דרך בטוחה לנהל נתונים רגישים בסביבות דוקר, גישה זו אינה מומלצת עבור Kubernetes, שבו סודות מאוחסנים בטקסט פשוט באמצעות ברירת מחדל. in Kubernetes, לשקול שימוש באמצעי אבטחה נוספים כגון הצפנה וכו ', או כלי צד שלישי.
מערכת תמיכה ותחזוקה
כדי להגן מפני זיהומים ידועים להימלט פרצות כמו ליקי Vessels, אשר בדרך כלל לגרום התוקף מקבל גישה שורש למארח, חיוני לשמור הן המארחת והן דוקר עד היום.זה כולל באופן קבוע לעדכן את הקרנל המארח כמו גם את מנוע Docker.
לשמור על מערכות מעודכנים ומטומט
זאת בשל העובדה כי מכולות חולקות את הקרנל של המארח.אם הקרנל של המארח פגיע, המכולות הן גם פגיעות.לדוגמה, הסלמה פריבילגיית הלבנומית, COW מלוכלך, שהוצא להורג בתוך מיכל מבודד היטב עדיין יביא לחיוב על גישה לשורה על מארח פגיע.
מנועי ריצה המכילים, כגון Docker לעתים קרובות לעדכן את התוכנה שלהם עם תיקונים ותכונות.You יכול להפחית את פרצות על ידי יישום עדכונים האחרונים.
הפעלת docker למשוך פעם אחת ושכחה על זה פירושה משלוח תמונות עם פרצות בנות חודשים. עדכונים אוטומטיים עם Renovate Bot של Image Source נתונים של נתונים של נתונים - זה יוצר יחסי ציבור כאשר תמונות בסיס יש עדכונים, זוגות עם צינור סריקה CI שלך עבור החלמה אוטומטית.
גישה בטוחה ואותנטיות
כל האימות ישירות למערכת ההפעלה צריך להיות ביקורת ו מחובר.אתה צריך רק לתת גישה למשתמשים המתאימים ולהשתמש מפתחות עבור כניסה מרחוק. ואתה צריך ליישם חומות אש ולאפשר גישה רק על רשתות מהימן.
שיטות העבודה הטובות ביותר לאבטחת המארח כוללות:
- אימות סיסמה דיסיף עבור SSH, השתמש באימות מבוסס מפתח רק
- יישום אימות רב-ספקי לגישה מועדפת
- השתמש במארחי ביסוס או קפיצה שרתים עבור גישה במערכות ייצור
- אפשרות לביקורת על כל הפעולות המנהליות
- הגבלת Docker daemon socket גישה למשתמשים מורשים בלבד
לעולם אל תחשוף את דוקר דמון סורקט
זהו תרגול גרוע שאתה צריך להימנע כי התוקף יוכל לבצע כל פקודה כי שירות Docker יכול לרוץ ופוטנציאל להשיג גישה למערכת המארחת כולה, כי שירות Docker פועל כשורש.
הרהר של דוקר socket (ראה FLT:0 /var / Run / docker.sockveFLT:1) בתוך מיכל נותן את מיכל שליטה מלאה על דוקר daemon, למעשה נותן גישה שורש המארח.
- שימוש ב- Docker-in-Docker (DinD) עם בידוד הולם
- המונחים: rootless docker
- שימוש ב- APIs Runtime עם הרשאות מוגבלות
- מינוף Kubernetes CRI במקום גישה ישירה של Docker
לרוץ דוקר במצב חסר שורשים
דוקר שורש מאפשר הפעלת daemon Docker ומכלים כמשתמש לא-בסיס, להפחית באופן משמעותי את ההשפעה של פרצות אפשריות של מיכל שוברת כלים.מצב זה מבטל את הצורך בפריבילגיות שורש על המערכת המארחת.
# Install rootless Docker
dockerd-rootless-setuptool.sh install
# Run Docker commands as non-root user
docker run -d nginx:alpine
בעוד מצב ללא שורש מספק אבטחה מוגברת, יש לו כמה מגבלות, כגון יכולות רשת מוגבלות ושיקולי ביצועים. להעריך אם אלה חילופי הסחר מקובלים על מקרה השימוש שלך.
מעקב אחר אבטחה וגילוי
אבטחה סטטית תופסת בעיות לפני פריסה.אבטחת זמן תופס מה קורה לאחר.גם אם תמונות מאובטחות, ניתן עדיין לתקוף מכולות בזמן ריצה.יישום ניטור אבטחה במשרה רציפה חיוני לזיהוי ולהגיב לאיומים בסביבות הייצור.
כלי אבטחה מהירים
Falco 0.43.0 (ינואר 2026) - Detects aomalous syscalls, גישה קבצים וחיבורי רשת.היוזמה החדשה של ירידה נכנס סינקל באירועים מהצנרת, שיפור משמעותי בביצועים.הבדיקה של eBPF מורשת היא deprecated בעד הנהג המודרני EBPF.
Falco הוא כלי אבטחה פתוח להפעלה של קוד פתוח המשתמש ב- EBPF כדי לפקח על התנהגות מכולה ולזהות פעילויות חשודות.
- תהליך בלתי צפוי
- שינויים בקובץ בלתי מורשים
- חיבורי רשת חשודים
- ניסיונות ההסלמה
- Shell מייצרת במיכלים
# Example Falco rule for detecting shell in container
- rule: Shell Spawned in Container
desc: Detect shell process started in container
condition: >
spawned_process and
container and
proc.name in (bash, sh, zsh)
output: >
Shell spawned in container (user=%user.name container=%container.name
shell=%proc.name parent=%proc.pname cmdline=%proc.cmdline)
priority: WARNING
יישום כולל קידוד ועיבוד
אירועים דוקרים מספקים זרם ביקורתי Native למעגל חיי המכל, Prometheus + cAdvisor לעקוב אחר השימוש במשאבי כלכל.לא צפוי תהליך ביצוע, חיבורי רשת, או שינויים בקובץ מעוררים התראות מיידיות.
הקמת אסטרטגיה מקיפה של כניסה שלוכדת:
- (ב) ויקרא י"ד: ויקרא י"ד): ויקרא י"א: ויקרא י"ד:
- (ב) ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇
- (ב) ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇
- (ב) ⁇ (ב) ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇
מרכזיג יומני באמצעות כלים כמו ערימה של אלק (Elasticsearch, Logstash, Kibana), Loki עם Grafana, או פתרונות ענן כגון AWS CloudWatch או Azure Monitor. , מאפשר מתאם של אירועים על פני מיכלים מרובים ומארחים, מה שהופך אותו קל יותר לזהות התקפות מבוזרות.
# Configure Docker to use JSON file logging driver with rotation
{
"log-driver": "json-file",
"log-opts": {
"max-size": "10m",
"max-file": "3",
"labels": "production_status",
"env": "os,customer"
}
}
הגבלות על מניעת התקפות DoS
מגבלות משאבים מונעות הכחשה של התקפות שירות ומיצוי משאבים.ללא מגבלות משאבים הולמות, מכולה שנפגעה או לא ראויה עלולה לצרוך את כל משאבי המערכת הזמינים, המשפיעים על מיכלים אחרים והמארח.
# Docker Compose with resource limits
version: "3.9"
services:
app:
image: myapp:latest
deploy:
resources:
limits:
cpus: "2.0"
memory: 512M
pids: 100
reservations:
cpus: "0.5"
memory: 256M
ulimits:
nofile:
soft: 65536
hard: 65536
nproc:
soft: 100
hard: 200
יש להגדיר מגבלות משאבים על דרישות יישום ותכנון יכולת. Monitor השימוש במשאבי בפועל כדי לכוון את הגבולות האלה כראוי, להבטיח כי מכולות יש מספיק משאבים תוך מניעת התקפות של תשישות משאבים.
שילוב אבטחה של CI /CD
צינורות CI /CD הם חלק חיוני של מחזור חיי פיתוח התוכנה צריך לכלול בדיקות אבטחה שונות כגון בדיקות lint, ניתוח קוד סטטי, סריקה מכולות רבות ניתן למנוע על ידי ביצוע כמה שיטות הטובות ביותר בעת כתיבת Dockerfile. עם זאת, הוספת מנוף אבטחה כצעד צינור הבנייה יכול ללכת דרך ארוכה תוך הימנעות כאבי ראש נוספים.
המונחים: dockerfile Linting
דוקרפטן linters לנתח את Dockerfiles שלך עבור טעויות נפוצות, בעיות אבטחה, ואת הטוב ביותר בפועל הפרות לפני תמונות נבנות. כלים כמו Hadolint יכול לתפוס בעיות מוקדם בתהליך הפיתוח.
# Run Hadolint on Dockerfile
docker run --rm -i hadolint/hadolint < Dockerfile
# Example output showing issues
DL3008: Pin versions in apt get install
DL3009: Delete the apt-get lists after installing
DL3015: Avoid additional packages by specifying --no-install-recommends
סורק אבטחה אוטומטי ב- CI/CD
כלי סריקה המכילים חשובים במיוחד כחלק מאסטרטגיה אבטחה מוצלחת.הם יכולים לזהות פרצות ידועות, סודות ועיוותים בדימויים של מיכל ולספק דיווח על הממצאים עם המלצות כיצד לתקן אותם.
הגדלת תצפיות Docker לתוך צינור CI /CD שלך מאפשר לך לאמת באופן אוטומטי כי תמונות שנבנו מתמונות דוקררדרד נשאר חופשי פרצות ידועות במהלך תהליך הבנייה. גישה זו מבטיחה את השלמות הביטחונית המתמשכת של התמונות שלך לאורך מחזור חיי הפיתוח.
# GitHub Actions workflow example
name: Container Security Scan
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
jobs:
security-scan:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Build image
run: docker build -t myapp:${{ github.sha }} .
- name: Run Trivy vulnerability scanner
uses: aquasecurity/trivy-action@master
with:
image-ref: myapp:${{ github.sha }}
format: 'sarif'
output: 'trivy-results.sarif'
severity: 'CRITICAL,HIGH'
exit-code: '1'
- name: Upload Trivy results to GitHub Security
uses: github/codeql-action/upload-sarif@v2
if: always()
with:
sarif_file: 'trivy-results.sarif'
- name: Push image if scan passes
if: success()
run: |
docker tag myapp:${{ github.sha }} myregistry.io/myapp:latest
docker push myregistry.io/myapp:latest
מדיניות מדיניות אכיפת
רשויות מדיניות מבטיחות שרק תמונות מקבילות מופצות לייצור כלים כמו סוכן מדיניות פתוח (OPA) ו- Kyverno יכולים לאכוף מדיניות ארגונית באופן אוטומטי.
מדיניות משותפת לאכיפת כוללים:
- תמונות צריכות להיות מרוקנות ואין להן פרצות קריטיות
- יש לחתום על תמונות של רשויות אמינות
- משתמשים צריכים לרוץ כמשתמשים שאינם שורש
- אסור להשתמש ב-Presative Mode
- גבולות משאבים חייבים להיות מוגדרים
- תמונות חייבות לבוא מרישוםים מאושרים
Kubernetes-Specific Security Considerations
אבטחת Kubernetes הופכת חיונית כאשר מנהלים אשכולות.Weak בסיס בקרת גישה (RBAC) או מחוונים חשופים להגדיל את הסיכון.כאשר הפעלת מכולות Docker ב Kubernetes, אמצעי אבטחה נוספים הם הכרחיים.
יישום פוד אבטחה תקני
תקני האבטחה של Kubernetes Pod מגדירים שלוש רמות של מדיניות אבטחה: Privileged, Baseline, ו-Restricted.מדיניות המוגבלת לאכוף את דרישות האבטחה המחמירות ביותר ויש להשתמש בהם לייצור עומסים בכל הזדמנות.
apiVersion: v1
kind: Pod
metadata:
name: secure-app
labels:
app: myapp
spec:
securityContext:
runAsNonRoot: true
runAsUser: 1000
fsGroup: 1000
seccompProfile:
type: RuntimeDefault
containers:
- name: app
image: myapp:latest
securityContext:
allowPrivilegeEscalation: false
readOnlyRootFilesystem: true
capabilities:
drop:
- ALL
runAsNonRoot: true
runAsUser: 1000
resources:
limits:
cpu: "1"
memory: "512Mi"
requests:
cpu: "100m"
memory: "128Mi"
volumeMounts:
- name: tmp
mountPath: /tmp
volumes:
- name: tmp
emptyDir: {}
מדיניות רשת
מדיניות רשת Kubernetes מספקת שליטה על תקשורת פוד-to-pod. כברירת מחדל, כל הפודונים יכולים לתקשר אחד עם השני, אשר מפר את העיקרון של לפחות פריבילגיה.
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: api-network-policy
namespace: production
spec:
podSelector:
matchLabels:
app: api
policyTypes:
- Ingress
- Egress
ingress:
- from:
- podSelector:
matchLabels:
app: frontend
ports:
- protocol: TCP
port: 8080
egress:
- to:
- podSelector:
matchLabels:
app: database
ports:
- protocol: TCP
port: 5432
השתמש במפקחי קבלה
בקרי הקבלה מיירטים בקשות לשרת API Kubernetes לפני אובייקטים נמשכים, ומאפשרים לך לאכוף מדיניות ואמת הגדרות. כלים כמו שומר שער OPA ו Kyverno לספק יכולות מדיניות-כקוד.
דוגמה למדיניות ליישום:
- נדרש את כל התמונות כדי להגיע מרישוםים שאושרו
- הגבלת משאבים לכל מיכלים
- למנוע מכולות מועדות להיווצר
- נדרש תוויות ספציפיות בכל המשאבים
- הקשרים הביטחוניים התקפים לדרישות מינימום
שיקולים ושיקולים
ארגונים הפועלים בתעשיות מוסדרות חייבים להבטיח כי פריסת המכולות שלהם לעמוד בדרישות תאימות ספציפיות.מסגרות וסטנדרטים נפוצים כוללים:
- (ב) ⁇ :0CIS Docker BenchmarkFLT: 1) מספק הדרכה מפורשת להקמת יציבה תצורה בטוחה עבור Docker
- (FLT:0CIS Kubernetes BenchmarkigrLT:1) : המלצות אבטחה עבור פריסות Kubernetes
- (ב) .0.PCI DasFLT:1: דרישות לארגונים המטפלים בנתונים של כרטיסי תשלום
- (הופנה מהדף HIPAAIRFLT:1) : סטנדרטים להגנה על מידע רגיש לבריאות המטופל
- (FLT:0SOC 2IRFLT:1) : מסגרת לניהול נתוני לקוחות על בסיס חמישה עקרונות שירות אמון
- (ב) [17].[17] דרישות הגנת מידע ופרטיות לתושבי האיחוד האירופי
כלים כמו Docker Bench for Security ו-kube-bench יכולים להעריך באופן אוטומטי את הסביבה שלך נגד ה- קריטריונים אלה ולספק הדרכה להפעלה מחדש.
# Run Docker Bench for Security
docker run --rm --net host --pid host --userns host --cap-add audit_control
-e DOCKER_CONTENT_TRUST=$DOCKER_CONTENT_TRUST
-v /var/lib:/var/lib
-v /var/run/docker.sock:/var/run/docker.sock
-v /usr/lib/systemd:/usr/lib/systemd
-v /etc:/etc --label docker_bench_security
docker/docker-bench-security
# Run kube-bench for Kubernetes
kubectl apply -f https://raw.githubusercontent.com/aquasecurity/kube-bench/main/job.yaml
kubectl logs job/kube-bench
רישום רישום אבטחה
רשם המכיל הם מרכיבים קריטיים של שרשרת האספקה של מכולה.סילוק הרשומות שלך מונע גישה בלתי מורשית לתמונות ולהגן מפני התקפות שרשרת אספקה.
שימוש ב-Instaistries
בעוד רשם פומבי כמו Docker Hub נוח, עומסי ייצור צריכים להשתמש ברשומות פרטיות עם בקרת גישה נאותה.
- (ב) [15] ,[[1924]]]]]]: ]]
- (ב) ,0)AWS ECRIRFLT:1: עריכת רישום משולבת עם שירותי AWS
- (ב) ,0üver Container RegistryFLT:1: ניהול הרישום עבור Azure Workloads
- (ב) ,0) Google Container RegistryFLT:1: ניהול הרישום עבור GCP
- (ב) [15] ,(א)ב"ג'ויג'וארט'ר קיד: "הממצאים האוניברסליים מהדהדים עם תכונות אבטחה מתקדמות"
ניהול Access Controls
אימות והרשאה לרישום גישה:
- השתמש בחשבונות שירות עם הרשאות מינימליות עבור צינורות CI /CD
- ניהול גישה מבוסס תפקידים (RBAC) עבור קבוצות שונות
- אפשרות לביקורת עבור כל פעולות הרישום
- השתמש ב אסימוני זמן קצרים במקום אישורים לטווח ארוך
- יישום IP Whitelisting for Registry Access
אפשרות אוטומטית ל-Vulnerability Scanning
Docker Hub מאפשר לך לבצע או להצביע על פגיעת הראייה סטטית בשלב מוקדם או תמיד ניתוח תמונה עדכני באמצעות Docker Scout.לאחר הפעלת ניתוח תמונה של Docker, Docker הצופים מנתח באופן אוטומטי תמונות ב- Docker Hub repository.ניתוח תמונות מפיץ את התוכנה של חומר (SBOM) ומטאנתונים אחרים, ומעריך אותו נגד נתונים פגיעת נתונים מיועצים אבטחה.
רוב הרשומות המודרניות מציעות סריקה של פגיעות משולבת אשר באופן אוטומטי לסרוק תמונות כאשר הן דוחפות.
- לסרוק את כל התמונות באופן אוטומטי על דחיפה
- תמונות חוזרות ונשנות של פרצות חדשות
- חסימת תמונות עם פרצות קריטיות
- שלח הודעות כאשר פרצות מזוהה
- מתן הדרכה להודעות עבור בעיות מזוהות
תגובה ושיקום
למרות יישום אמצעי אבטחה מקיפים, אירועים עשויים עדיין להתרחש.יש תוכנית תגובה אירוע מוגדרת היטב חיונית לצמצום הנזק ולהחלמה במהירות.
פיתוח תוכנית תגובה
תוכנית התגובה לאירוע צריכה לכלול:
- [ה]ה': [ה]: [ה]], [ה]], [ה], [ה], [ה]], [ה], [ה], [ה]]]], [הההההתירה] בזיהוי אירועי ביטחון באמצעות מעקב ואזהרה.
- (ב) ,0) ,ContainmentFLT:1: נוהלים להורדת מכולות מושפעות ולמנוע התפשטות
- (ב) [15] ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇
- (ב) [15] , ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇
- (ב) ,0) ,RecoveryofLT:1: נוהלים לשיקום שירותים ואימות אבטחה
- (ב) עיין ב"הסברי" (ב"ד:ב) "הסבר על מה שקרה וכיצד למנוע הישנות"
המונחים: Container Forensics Capabilities
חומרים המכילים יכולים להיות מאתגרים בשל האופי הספירי של מכולות. ליישם את התרגילים האלה כדי לתמוך בחקירה:
- שמור על מצב מכולה על ידי יצירת תמונות לפני סיום
- לשמור על יומנים מקיפים עם תקופות שמירה מספיקות
- השתמש בתשתיות בלתי פתורות למניעת ראיות
- יישום ביקורת עבור כל פעולות מכולה
- לשמור על הוכחת תמונה ולבנות היסטוריה
אסון התאוששות
בדוק באופן קבוע את תהליכי ההתאוששות של אסון:
- תרגילי שולחן אימון סימולטור אירועי אבטחה
- בדיקת גיבוי ושיקום הליכים עבור נתוני מכולה
- אימות כי אתה יכול לבנות סביבות מאפס
- ודא שתיעוד הוא זמין וזמין
- צוות הרכבות בהליכים תגובה לאירוע
בדיקה אחרונה ב-Fristation Deployments
התחל עם פריטים ברזולוציה גבוהה: תמונות מינימליות, משתמשים שאינם שורש, סי סריקה ועוכל pinning. Layer in Runtime ניטור, קטע רשת וניהול סודות. השתמש ב- Checklist מקיף זה כדי להבטיח את מיכלי Docker שלך לעמוד בדרישות אבטחה לפני פריסה:
צילום: Security
- השתמש בתמונות בסיס מינימליות (Alpine, distroless)
- גירסאות ספציפיות של Pin באמצעות לעיכול
- תמונות סורקות עבור פרצות בצנרת CI /CD
- תמונות עם Docker Content Trust או Cosign
- ליצור ולשמור SBOMs עבור כל התמונות
- להסיר חבילות וקבצים מיותרים
- שימוש ב- Multi-שלב בונה כדי למזער את גודל התמונה הסופי
- לעולם אל תכיל סודות בתמונות
מכיל Runtime Security
- הפעל מכולות כמשתמשים שאינם פופולריים
- השתמש בקובץ שורש בלבד
- זרוק את כל היכולות ולהוסיף רק את אלה הדרושים
- דגל ללא חידוש
- החל את ה-Partcomp, AppArmor, או SELinux פרופילים
- הגדר מגבלות משאבים (CPU, זיכרון, PIDs)
- יישום רשת
- השתמש ברשתות פרטיות לתקשורת המכילה
מארחת וביטוח תשתיות
- שמור על מערכת ההפעלה והגרעין מעודכן
- עדכון Docker Engine באופן קבוע
- לעולם אל תחשוף את דוקר דמון סורקט
- השתמש ב-Docker חסר שורש כאשר ניתן
- הגדרות של חומות אש מבוססות מארח
- המונחים: logging
- גישה מוגבלת SSH עם אימות מבוסס מפתח
- השתמש ב-Bittion מארחת עבור גישה לייצור
סודות וניהול קונפדרציה
- השתמש בסודות דוקרים או בכספות חיצוניות
- לעולם לא קודר
- סודות רוטטים באופן קבוע
- השתמש ב אסימוניות קצרות מועדות ותעודות
- סודות הצפנה במנוחה ובמעבר
- גישה סודית
עקבו אחרי and Logging
- ניטור אבטחה בזמן ריצה (Falco)
- מרכזיזציה של כל מיכלים
- המונחים: docker daemon logging
- שימוש במשאב
- חשפו התראות על פעילות חשודה
- לשמור על מספיק
- יישום מסלולי ביקורת עבור
אבטחה: SD Pipeline
- לינטה דוקרפטים עם האדוולט
- תמונות סורקות ב-S CIצנרת
- כישלון בונה על פרצות קריטיות
- מדיניות אכיפת מדיניות
- השתמש ברישום נפרד עבור dev / staging / Prod
- בדיקות אבטחה אוטומטיות
- נדרש סקירה קוד עבור שינויים Dockerfile
Kubernetes-Specific (אם רלוונטי)
- יישום פוד אבטחה תקני
- מדיניות רשת
- השתמש בקרי קבלה עבור רשויות מדיניות
- RBAC עם פחות זכויות
- Secure the Kubernetes API Server
- מידע מוצפן וכו' במנוחה
- Run CIS Kubernetes Benchmark
מגמות מתפתחות ושיקולים עתידיים
אבטחה המכילה ממשיכה להתפתח עם טכנולוגיות חדשות וגישות.ישארו מודעים למגמות מתעוררות:
שרשרת אבטחה
האירועים של 2025 - תמונות בסיס אחוריות משלוח במשך חודשים, אלפי אישורי ייצור הדליפו באמצעות Dockerfiles - להוכיח כי היסודות עדיין משנה.התקפות שרשרת האספקה מיקוד מערכות אקולוגיות קונטייסה גדלות.
Zero Trust
החל אפס עקרונות אמון על סביבות מכולות על ידי הנחת הפרה ואמת כל בקשה. יישום שירות טכנולוגיות mesh כמו Istio או Linkerd לספק אימות TLS הדדי, אישורים חד-פעמיים, וכדאיות לתקשורת המכילה מכולה.
אבטחה מבוססת PF
Extended ברקלי Packet Filter (eBPF) טכנולוגיה מאפשרת ניטור אבטחה רב עוצמה עם ביצועים מינימליים מעל פני הראש.כליםמינוף eBPF יכולים לספק חשיפה עמוקה להתנהגות מכולה מבלי לדרוש מודולים לינל או שינויים במיכל.
מחשוב סודי
טכנולוגיות מחשוב חסויות מגנות על נתונים בשימוש על ידי ביצוע חישוב בסביבות הוצאה לאור מבוססות חומרה (TEEs) גישה זו מתפתחת יכולה להגן על עומסי עבודה רגישים אפילו ממשתמשים פריבילגיים ומערכות מארחות שנפגעו.
כלים ומשאבים מומלצים
בניית תוכנית אבטחה מקיפה של מכולות דורשת מינוף הכלים הנכונים.כאן מומלץ משאבים מאורגנים על ידי קטגוריה:
Vulnerability Scanning
- מקור:0 (מקור פתוח): מהיר, סורק פגיעויות מקיף
- (ב) ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇
- (מקור פתוח) ;0) Anchore EngineFLT:1 (מקור פתוח): סריקה מבוססת מדיניות וציות
- (ב) ,0) ,Snyk ContainerFLT:1: סריקה ממוקדת-מפתח עם המלצות תיקון
- (מקור פתוח:0) קלירפל 1 (מקור פתוח): ניתוח סטטי של פרצות
ניהול אבטחה
- (מקור פתוח): גילוי איומים ב- EBPF
- (ב) ,0) ,Aqua SecurityveFLT:1: פלטפורמה מקיפה של אבטחת מכולות
- (ב) ,0) ,Sysdig SecureFLT:1: Runtime Security and forensics
מדיניות והתאמה
- (מקור פתוח:0) סוכן מדיניות פתוח (מקור פתוח): מנוע מדיניות-קוד
- (מקור פתוח): ניהול מדיניות של Kubernetes-native Management
- (מקור פתוח): ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇
- (מקור פתוח): 0 (מקור פתוח): CIS Kubernetes Benchmark Check)
סודות ניהול
- [01:0] ↑ תלמוד בבלי: ⁇
- [01:0] מראיין: סודות עננים: סודות ל-AWS
- (ב) כרך ראשון (ב"א) ,"המפתח המרכזי" (אנ')
- (ב) Google Secret ManagersFLT:1: ניהול סודות עבור GCP
משאבים נוספים
- (ב) ,0) ,ב"התערות ביטחוניות" (בתרגום חופשי: 4).
- (ב) ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇
- (ב) ויקרא י"ד:
- (ב) ◄ ⁇ ⁇ ⁇
- (ב) ,0) ,7 ,7
מסקנה
אבטחה המכילה היא תהליך מתמשך המכסה מספר היבטים, כולל יצירת תמונות, טיפול חשאי, התנהגות בזמן ריצה, ו ניטור מתמשך.אבטחה היא תהליך מתמשך.ביקורת סדירה על התצורה שלך, עדכון תמונות בסיס, ולהישאר מעודכן לגבי פרצות חדשות.המאמץ שאתה משקיע היום אבטחת מכולות מגן על התשתית שלך מחר.
יישום מיכלי Docker מאובטח דורש גישה מקיפה, שכבתית שמתייחסת לאבטחה בכל שלב של מחזור חיי המיכל.מבחירה בתמונות בסיס מינימליות וריצה כמשתמשים שאינם-בסיסיים ליישום ניטור ושמירה על תאימות, כל אמצעי אבטחה תורם לאסטרטגיה בעלת הגנה עמוקה.
מיכלי Docker מספקים כלים חזקים לפיתוח מודרני, אך דורשים פיקוח זהיר על מנת להבטיח שהם יישארו בטוחים.על ידי התייחסות לסיכונים הקשורים לתמונות Docker, זכויות מכולות ומערכות מארחות, ארגונים יכולים למזער את הסבירות של פריצות ולהמקסים את האמינות של סביבות המקוטבות שלהם.
המפתח לאבטחת מכולות מוצלחת הוא לטפל בה לא כיישום חד פעמי, אלא כפרקטיקה מתמשכת המשולבת בתרבות הפיתוח שלך.בדיקות אבטחה אוטומטיות בצנרת CI /CD שלך, מעקב מתמיד אחר התנהגות בריצה, לעדכן באופן קבוע רכיבים, ולהישאר מעודכן לגבי איומים מתעוררים ושיטות הטובות ביותר.על ידי ביצוע האסטרטגיות וההמלצות המפורטות במדריך זה, אתה יכול לבנות ולשמור על יישומים ממוכלים מאובטחים שמגנים על נכסי הארגון שלך תוך כדי לאפשר את האפקטיביות של מיכליות ולספק יעילות וגמישות לספק.
זכור כי אבטחה היא אחריות משותפת.בעוד דוקר ופלטפורמות גידור מכולות לספק את הכלים והיכולות, זה תלוי בפיתוח וצוותי תפעול ליישום ולתחזק את אמצעי האבטחה באופן עקבי. להשקיע באימון הצוות שלך, להקים מדיניות אבטחה ברורה, לטפח תרבות שבה האבטחה היא האחריות של כולם.עם שילוב נכון של כלים, פרקטיקות, וערנות, אתה יכול לרתום את מלוא העוצמה של מיכל תוך שמירה על יציבה.