נקודות השוואה של CIS
במאמר הזה נסביר על CIS Kubernetes Benchmark. במאמר מוסבר גם:
- איך מבצעים ביקורת כדי לוודא שהעסק עומד בדרישות של נקודת ההשוואה
- מה GKE on Azure מגדיר במקומות שבהם אי אפשר ליישם המלצה לבד.
שימוש בהשוואות ביצועים של CIS
המרכז לאבטחת אינטרנט (CIS) מפרסם מדדים להשוואה של שיטות מומלצות והמלצות לאבטחה. המדד של CIS Kubernetes מספק קבוצה של המלצות להגדרת Kubernetes כדי לתמוך בתשתית חזקה לאבטחה. ההשוואה לשוק קשורה לגרסה ספציפית של Kubernetes. המדד של CIS Kubernetes נכתב עבור הפצת Kubernetes בקוד פתוח, והוא נועד להיות רלוונטי ככל האפשר להפצות שונות.
גרסאות
שימו לב: מספרי הגרסאות של מדדים שונים עשויים להיות שונים.
המסמך הזה מתייחס לגרסאות הבאות:
| גרסת Anthos | גרסת Kubernetes | גרסת ה-CIS Kubernetes Benchmark |
|---|---|---|
| 1.14.0 | 1.25.3 | 1.23 |
CIS Kubernetes Benchmark
גישה להשוואה לשוק
ההשוואה לשוק של CIS Kubernetes זמינה באתר CIS.
רמות ההמלצות
ב-CIS Kubernetes Benchmark יש שתי רמות של המלצות.
| רמה | תיאור |
|---|---|
| רמה 1 | ההמלצות נועדו: |
| רמה 2 | הרחבה של פרופיל רמה 1. ההמלצות הן לגבי אחד או יותר מהמאפיינים הבאים: |
סטטוס ההערכה
סטטוס ההערכה מופיע לצד כל המלצה. סטטוס ההערכה מציין אם אפשר להפוך את ההמלצה האוטומטית לזמינה או אם צריך לבצע שלבים ידניים כדי להטמיע אותה. שני הסטטוסים חשובים באותה מידה, והם נקבעים ונתמכים כמו שמוגדר בהמשך:
| ציון | תיאור |
|---|---|
| אוטומטי | המלצות שניתן לבצע לגביהן הערכה של אמצעי בקרה טכניים באופן אוטומטי לחלוטין, ולאמת אותן למצב של עמידה בדרישות או אי-עמידה בדרישות. ההמלצות יכללו את המידע הדרוש להטמעת אוטומציה. |
| גלילה ידנית | ההמלצות האלה מייצגות הערכה של אמצעי בקרה טכניים שלא ניתן לבצע באופן אוטומטי מלא, ונדרשים בהן שלבים ידניים כדי לוודא שהמצב שהוגדר הוא כמו שציפיתם. המצב הצפוי יכול להשתנות בהתאם לסביבה. |
הערכה ב-GKE ב-Azure
אנחנו משתמשים בערכים הבאים כדי לציין את הסטטוס של המלצות Kubernetes ב-GKE ב-Azure:
| סטטוס | תיאור |
|---|---|
| האימות הצליח | עומד בהמלצה להשוואה לשוק. |
| האימות נכשל | לא עומד בדרישות של המלצה להשוואה לשוק. |
| בקרות מקבילות | לא עומדת בתנאים המדויקים בהמלצה של Benchmark, אבל קיימים מנגנונים אחרים ב-GKE ב-Azure שמספקים אמצעי בקרה מקבילים לאבטחה. |
| תלוי בסביבה | GKE ב-Azure לא מגדיר פריטים שקשורים להמלצה הזו. ההגדרה של המשתמש קובעת אם הסביבה שלו עומדת בהמלצה של מדד השוואה. |
סטטוס ב-GKE ב-Azure
כשיוצרים אשכול חדש עם הגרסה שצוינה, כך הוא יפעל בהשוואה ל-CIS Kubernetes Benchmark.
סטטוס של אשכולות GKE ב-Azure:
| # | המלצה | רמה | סטטוס |
|---|---|---|---|
| 1 | הגדרת אבטחה של מישור הבקרה | ||
| 1.1 | קובצי הגדרה של צומת מישור הבקרה | ||
| 1.1.1 | מוודאים שההרשאות של קובץ המפרט של ה-API server pod מוגדרות ל-644 או להגדרה מגבילה יותר (אוטומטית) |
L1 | האימות הצליח |
| 1.1.2 | מוודאים שהבעלות על קובץ המפרט של ה-pod של שרת ה-API מוגדרת ל-root:root (אוטומטי) |
L1 | האימות הצליח |
| 1.1.3 | מוודאים שהרשאות הגישה לקובץ המפרט של ה-pod של מנהל הבקר מוגדרות ל-644 או להרשאות מוגבלות יותר (אוטומטי) |
L1 | האימות הצליח |
| 1.1.4 | מוודאים שהבעלות על קובץ המפרט של ה-pod של מנהל בקרים מוגדרת כ-root:root (אוטומטי) |
L1 | האימות הצליח |
| 1.1.5 | מוודאים שההרשאות של קובץ המפרט של ה-pod של מתזמן המשימות מוגדרות ל-644 או להרשאות מגבילות יותר (אוטומטי) |
L1 | האימות הצליח |
| 1.1.6 | מוודאים שהבעלות על קובץ המפרט של ה-pod של מתזמן המשימות מוגדרת ל-root:root (אוטומטי) |
L1 | האימות הצליח |
| 1.1.7 | מוודאים שההרשאות של קובץ המפרט של ה-pod של etcd מוגדרות ל-644 או להרשאות מגבילות יותר (אוטומטי) |
L1 | האימות הצליח |
| 1.1.8 | מוודאים שהבעלות על קובץ המפרט של ה-pod של etcd מוגדרת ל-root:root (אוטומטי) |
L1 | האימות הצליח |
| 1.1.9 | מוודאים שהרשאות הקובץ של Container Network Interface מוגדרות ל-644 או להרשאות מגבילות יותר (ידני) |
L1 | בקרות מקבילות |
| 1.1.10 | מוודאים שהבעלות על קובץ Container Network Interface מוגדרת ל-root:root (ידני) |
L1 | בקרות מקבילות |
| 1.1.11 | מוודאים שההרשאות של ספריית הנתונים של etcd מוגדרות ל-700 או להגדרה מגבילה יותר (אוטומטי) |
L1 | בקרות מקבילות |
| 1.1.12 | מוודאים שהבעלות על ספריית הנתונים של etcd מוגדרת ל-etcd:etcd (אוטומטי) |
L1 | בקרות מקבילות |
| 1.1.13 | מוודאים שהרשאות הקובץ admin.conf מוגדרות ל-600 או להרשאות מגבילות יותר (אוטומטי) |
L1 | בקרות מקבילות |
| 1.1.14 | מוודאים שהבעלות על קובץ ההגדרות של האדמין. מוגדרת ל-root:root (אוטומטי) |
L1 | בקרות מקבילות |
| 1.1.15 | מוודאים שההרשאות של קובץ ההגדרות של מתזמן המשימות.מוגדרות ל-644 או להרשאות מוגבלות יותר (אוטומטי) |
L1 | האימות הצליח |
| 1.1.16 | מוודאים שהבעלות על קובץ ההגדרות של מתזמן המשימות.מוגדרת לroot:root (אוטומטי) |
L1 | האימות הצליח |
| 1.1.17 | מוודאים שההרשאות של קובץ ההגדרות controller-manager. מוגדרות ל-644 או להגבלות מחמירות יותר (אוטומטי). |
L1 | האימות הצליח |
| 1.1.18 | מוודאים שהבעלות על קובץ ההגדרות של controller-manager. מוגדרת ל-root:root (אוטומטי) |
L1 | האימות הצליח |
| 1.1.19 | מוודאים שהבעלות על הקובץ והספרייה של Kubernetes PKI מוגדרת ל-root:root (אוטומטי) |
L1 | האימות הצליח |
| 1.1.20 | מוודאים שההרשאות של קובץ אישור ה-PKI של Kubernetes מוגדרות ל-644 או להרשאות מגבילות יותר (ידני) |
L1 | האימות הצליח |
| 1.1.21 | מוודאים שההרשאות של קובץ המפתח של Kubernetes PKI מוגדרות ל-600 (ידני) |
L1 | האימות הצליח |
| 1.2 | API Server | ||
| 1.2.1 | מוודאים שהארגומנט --anonymous-auth מוגדר כ-false (ידני) |
L1 | האימות הצליח |
| 1.2.2 | מוודאים שהפרמטר --token-auth-file לא מוגדר (אוטומטי) |
L1 | האימות הצליח |
| 1.2.3 | מוודאים שההגדרה --DenyServiceExternalIPs לא מוגדרת (אוטומטית) |
L1 | האימות הצליח |
| 1.2.4 | מוודאים שהארגומנט --kubelet-https מוגדר כ-true (אוטומטי). |
L1 | האימות הצליח |
| 1.2.5 | מוודאים שהארגומנטים --kubelet-client-certificate ו---kubelet-client-key מוגדרים בצורה המתאימה (אוטומטית) |
L1 | האימות הצליח |
| 1.2.6 | מוודאים שהארגומנט --kubelet-certificate-authority מוגדר בצורה המתאימה (אוטומטי) |
L1 | האימות הצליח |
| 1.2.7 | מוודאים שהארגומנט --authorization-mode לא מוגדר כ-AlwaysAllow (אוטומטי) |
L1 | האימות הצליח |
| 1.2.8 | מוודאים שהארגומנט --authorization-mode כולל את Node (אוטומטי) |
L1 | האימות הצליח |
| 1.2.9 | מוודאים שהארגומנט --authorization-mode כולל RBAC (אוטומטי) |
L1 | האימות הצליח |
| 1.2.10 | מוודאים שהפלאגין EventRateLimit של בקרת הכניסה מוגדר (ידני) | L1 | אזהרה |
| 1.2.11 | מוודאים שפלאגין בקרת הכניסה AlwaysAdmit לא מוגדר (אוטומטי) | L1 | האימות הצליח |
| 1.2.12 | מוודאים שהפלאגין לבקרת כניסה AlwaysPullImages מוגדר (ידני) | L1 | אזהרה |
| 1.2.13 | מוודאים שהפלאגין SecurityContextDeny של בקרת הכניסה מוגדר אם לא נעשה שימוש ב-PodSecurityPolicy (ידני) | L1 | בקרות מקבילות |
| 1.2.14 | מוודאים שחשבון השירות של הפלאגין לבקרת כניסה מוגדר (אוטומטית) | L1 | האימות הצליח |
| 1.2.15 | מוודאים שמרחב השמות NamespaceLifecycle של הפלאגין לבקרת כניסה מוגדר (אוטומטי) | L1 | האימות הצליח |
| 1.2.16 | מוודאים שהפלאגין NodeRestriction של בקרת הגישה מוגדר (אוטומטי) | L1 | האימות הצליח |
| 1.2.17 | מוודאים שהארגומנט --secure-port לא מוגדר ל-0 (אוטומטי) |
L1 | האימות הצליח |
| 1.2.18 | מוודאים שהארגומנט --profiling מוגדר כ-false (אוטומטי) |
L1 | האימות הצליח |
| 1.2.19 | מוודאים שהארגומנט --audit-log-path מוגדר (אוטומטי) |
L1 | בקרות מקבילות |
| 1.2.20 | מוודאים שהארגומנט --audit-log-maxage מוגדר לערך 30 או לערך המתאים (אוטומטי) |
L1 | בקרות מקבילות |
| 1.2.21 | מוודאים שהארגומנט --audit-log-maxbackup מוגדר לערך 10 או לערך המתאים (אוטומטי) |
L1 | בקרות מקבילות |
| 1.2.22 | מוודאים שהארגומנט --audit-log-maxsize מוגדר לערך 100 או לערך המתאים (אוטומטי) |
L1 | בקרות מקבילות |
| 1.2.23 | מוודאים שהארגומנט --request-timeout מוגדר בצורה המתאימה (ידנית) |
L1 | האימות הצליח |
| 1.2.24 | מוודאים שהארגומנט --service-account-lookup מוגדר כ-true (אוטומטי). |
L1 | האימות הצליח |
| 1.2.25 | מוודאים שהארגומנט --service-account-key-file מוגדר בצורה המתאימה (אוטומטי) |
L1 | האימות הצליח |
| 1.2.26 | מוודאים שהארגומנטים --etcd-certfile ו---etcd-keyfile מוגדרים בצורה המתאימה (אוטומטית) |
L1 | האימות הצליח |
| 1.2.27 | מוודאים שהארגומנטים --tls-cert-file ו---tls-private-key-file מוגדרים בצורה המתאימה (אוטומטית) |
L1 | האימות הצליח |
| 1.2.28 | מוודאים שהארגומנט --client-ca-file מוגדר בצורה המתאימה (אוטומטי) |
L1 | האימות הצליח |
| 1.2.29 | מוודאים שהארגומנט --etcd-cafile מוגדר בצורה המתאימה (אוטומטי) |
L1 | האימות הצליח |
| 1.2.30 | מוודאים שהארגומנט --encryption-provider-config מוגדר בצורה המתאימה (ידנית) |
L1 | האימות הצליח |
| 1.2.31 | מוודאים שספקי ההצפנה מוגדרים בצורה מתאימה (ידנית) | L1 | האימות הצליח |
| 1.2.32 | מוודאים ששרת ה-API משתמש רק בצפנים קריפטוגרפיים חזקים (ידני) | L1 | האימות הצליח |
| 1.3 | Controller Manager | ||
| 1.3.1 | מוודאים שהארגומנט --terminated-pod-gc-threshold מוגדר בצורה המתאימה (ידנית) |
L1 | האימות הצליח |
| 1.3.2 | מוודאים שהארגומנט --profiling מוגדר כ-false (אוטומטי) |
L1 | האימות הצליח |
| 1.3.3 | מוודאים שהארגומנט --use-service-account-credentials מוגדר כ-true (אוטומטי). |
L1 | האימות הצליח |
| 1.3.4 | מוודאים שהארגומנט --service-account-private-key-file מוגדר בצורה המתאימה (אוטומטי) |
L1 | האימות הצליח |
| 1.3.5 | מוודאים שהארגומנט --root-ca-file מוגדר בצורה המתאימה (אוטומטי) |
L1 | האימות הצליח |
| 1.3.6 | מוודאים שהארגומנט RotateKubeletServerCertificate מוגדר כ-true (אוטומטי) | L2 | האימות הצליח |
| 1.3.7 | מוודאים שהארגומנט --bind-address מוגדר ל-127.0.0.1 (אוטומטי) |
L1 | האימות הצליח |
| 1.4 | Scheduler | ||
| 1.4.1 | מוודאים שהארגומנט --profiling מוגדר כ-false (אוטומטי) |
L1 | האימות הצליח |
| 1.4.2 | מוודאים שהארגומנט --bind-address מוגדר ל-127.0.0.1 (אוטומטי) |
L1 | האימות הצליח |
| 2 | הגדרה של צומת etcd | ||
| 2 | הגדרה של צומת etcd | ||
| 2.1 | מוודאים שהארגומנטים --cert-file ו---key-file מוגדרים בצורה המתאימה (אוטומטית) |
L1 | האימות הצליח |
| 2.2 | מוודאים שהארגומנט --client-cert-auth מוגדר כ-true (אוטומטי). |
L1 | האימות הצליח |
| 2.3 | מוודאים שהארגומנט --auto-tls לא מוגדר כ-true (אוטומטי) |
L1 | האימות הצליח |
| 2.4 | מוודאים שהארגומנטים --peer-cert-file ו---peer-key-file מוגדרים בצורה המתאימה (אוטומטית) |
L1 | האימות הצליח |
| 2.5 | מוודאים שהארגומנט --peer-client-cert-auth מוגדר כ-true (אוטומטי). |
L1 | האימות הצליח |
| 2.6 | מוודאים שהארגומנט --peer-auto-tls לא מוגדר כ-true (אוטומטי) |
L1 | האימות הצליח |
| 2.7 | מוודאים שנעשה שימוש ברשות אישורים ייחודית עבור etcd (ידני) | L2 | האימות הצליח |
| 3 | הגדרה של Control Plane | ||
| 3.1 | אימות והרשאה | ||
| 3.1.1 | אין להשתמש באימות באמצעות אישור לקוח עבור משתמשים (ידני) | L2 | בקרות מקבילות |
| 3.2 | Logging | ||
| 3.2.1 | מוודאים שנוצרה מדיניות ביקורת מינימלית (ידנית) | L1 | האימות הצליח |
| 3.2.2 | מוודאים שמדיניות הביקורת כוללת את בעיות האבטחה העיקריות (ידני) | L2 | בקרות מקבילות |
| 4 | הגדרת אבטחה של Worker Node | ||
| 4.1 | קובצי הגדרה של צומתי Worker | ||
| 4.1.1 | מוודאים שההרשאות של קובץ השירות kubelet מוגדרות ל-644 או להרשאות מגבילות יותר (אוטומטי) |
L1 | האימות הצליח |
| 4.1.2 | מוודאים שהבעלות על קובץ השירות kubelet מוגדרת ל-root:root (אוטומטי) |
L1 | האימות הצליח |
| 4.1.3 | אם קיים קובץ kubeconfig של proxy, צריך לוודא שההרשאות מוגדרות ל-644 או להרשאות מוגבלות יותר (ידני) |
L1 | האימות הצליח |
| 4.1.4 | אם קיים קובץ kubeconfig של שרת proxy, צריך לוודא שהבעלות מוגדרת ל-root:root (ידני) |
L1 | האימות הצליח |
| 4.1.5 | מוודאים שההרשאות של קובץ --kubeconfig kubelet.conf מוגדרות ל-644 או להגדרה מגבילה יותר (אוטומטית) |
L1 | האימות הצליח |
| 4.1.6 | מוודאים שהבעלות על קובץ ההגדרות --kubeconfig kubelet. מוגדרת ל-root:root (אוטומטי) |
L1 | האימות הצליח |
| 4.1.7 | מוודאים שהרשאות הקובץ של רשויות האישורים מוגדרות ל-644 או להרשאות מגבילות יותר (ידני) |
L1 | האימות הצליח |
| 4.1.8 | מוודאים שהבעלות על קובץ רשויות האישורים של הלקוח מוגדרת ל-root:root (ידני) |
L1 | האימות הצליח |
| 4.1.9 | מוודאים שקובץ התצורה של kubelet --config כולל הרשאות שמוגדרות ל-644 או להרשאות מגבילות יותר (אוטומטי) |
L1 | האימות הצליח |
| 4.1.10 | מוודאים שהבעלות על קובץ התצורה של kubelet --config מוגדרת ל-root:root (אוטומטי) |
L1 | האימות הצליח |
| 4.2 | Kubelet | ||
| 4.2.1 | מוודאים שהארגומנט --anonymous-auth מוגדר כ-false (אוטומטי) |
L1 | האימות הצליח |
| 4.2.2 | מוודאים שהארגומנט --authorization-mode לא מוגדר כ-AlwaysAllow (אוטומטי) |
L1 | האימות הצליח |
| 4.2.3 | מוודאים שהארגומנט --client-ca-file מוגדר בצורה המתאימה (אוטומטי) |
L1 | האימות הצליח |
| 4.2.4 | מוודאים שהארגומנט --read-only-port מוגדר לערך 0 (ידני) |
L1 | האימות נכשל |
| 4.2.5 | מוודאים שהארגומנט --streaming-connection-idle-timeout לא מוגדר כ-0 (ידני) |
L1 | האימות הצליח |
| 4.2.6 | מוודאים שהארגומנט --protect-kernel-defaults מוגדר כ-true (אוטומטי). |
L1 | האימות נכשל |
| 4.2.7 | מוודאים שהארגומנט --make-iptables-util-chains מוגדר כ-true (אוטומטי). |
L1 | האימות הצליח |
| 4.2.8 | מוודאים שהארגומנט --hostname-override לא מוגדר (ידני) |
L1 | האימות הצליח |
| 4.2.9 | מוודאים שהארגומנט --event-qps מוגדר לערך 0 או לרמה שמבטיחה תיעוד מתאים של האירוע (ידני) |
L2 | אזהרה |
| 4.2.10 | מוודאים שהארגומנטים --tls-cert-file ו---tls-private-key-file מוגדרים בצורה מתאימה (ידנית) |
L1 | בקרות מקבילות |
| 4.2.11 | מוודאים שהארגומנט --rotate-certificates לא מוגדר כ-false (אוטומטי) |
L1 | האימות הצליח |
| 4.2.12 | מוודאים שהארגומנט RotateKubeletServerCertificate מוגדר כ-true (ידני) | L1 | האימות הצליח |
| 4.2.13 | מוודאים ש-Kubelet משתמש רק בצפנים קריפטוגרפיים חזקים (ידני) | L1 | האימות הצליח |
תיאורים של כשלים ואמצעי בקרה מקבילים באשכול אדמין של GKE ב-Azure:
| # | המלצה | רמה | סטטוס | ערך | נימוק |
|---|---|---|---|---|---|
| 1.1.9 | מוודאים שהרשאות הקובץ של Container Network Interface מוגדרות ל-644 או להרשאות מגבילות יותר (ידני) |
L1 | בקרות מקבילות | 755 |
הנתיב של ממשק רשת המכולות של אשכולות Anthos ב-Azure הוא /opt/cni/bin, וההרשאה שלו מוגדרת ל-755 לצורך פעולה רגילה של האשכול. |
| 1.1.10 | מוודאים שהבעלות על קובץ Container Network Interface מוגדרת ל-root:root (ידני) |
L1 | בקרות מקבילות | root:root |
הנתיב של ממשק רשת המכולות של אשכולות Anthos ב-Azure הוא /opt/cni/bin, והבעלות שלו מוגדרת כ-root:root. |
| 1.1.11 | מוודאים שההרשאות של ספריית הנתונים של etcd מוגדרות ל-700 או להגדרה מגבילה יותר (אוטומטי) |
L1 | בקרות מקבילות | 755 |
לספריית הנתונים של etcd /opt/data/var/lib/etcd יש הרשאות ברירת מחדל 755, אבל לספריות המשנה שלה יש הרשאות 700. |
| 1.1.12 | מוודאים שהבעלות על ספריית הנתונים של etcd מוגדרת ל-etcd:etcd (אוטומטי) |
L1 | בקרות מקבילות | root:root |
קונטיינר etcd פועל כ-root וספריית הנתונים של etcd נמצאת בבעלות של root:root. |
| 1.1.13 | מוודאים שהרשאות הקובץ admin.conf מוגדרות ל-600 או להרשאות מגבילות יותר (אוטומטי) |
L1 | בקרות מקבילות | not set | אשכולות Anthos ב-Azure לא תומכים ב-kubeadm. |
| 1.1.14 | מוודאים שהבעלות על קובץ ההגדרות של האדמין. מוגדרת ל-root:root (אוטומטי) |
L1 | בקרות מקבילות | not set | אשכולות Anthos ב-Azure לא תומכים ב-kubeadm. |
| 1.2.10 | מוודאים שהפלאגין EventRateLimit של בקרת הכניסה מוגדר (ידני) | L1 | אזהרה | not set | אשכולות Anthos ב-Azure אינם תומכים בבקרת הכניסה Event Rate Limit כי זו תכונת אלפא של Kubernetes. |
| 1.2.12 | מוודאים שהפלאגין לבקרת כניסה AlwaysPullImages מוגדר (ידני) | L1 | אזהרה | not set | בקרת הכניסה AlwaysPullImages מספקת הגנה מסוימת לתמונות של רישום פרטי באשכולות מרובי דיירים לא שיתופיים, אבל היא הופכת את רישומי הקונטיינרים לנקודת כשל יחידה ליצירת Pod חדשים בכל האשכול. ב-GKE on Azure לא מופעל בקר הכניסה AlwaysPullImages, ולכן אדמינים של אשכולות צריכים להטמיע מדיניות כניסה כדי להחליט בעצמם מה חשוב יותר. |
| 1.2.13 | מוודאים שהפלאגין SecurityContextDeny של בקרת הכניסה מוגדר אם לא נעשה שימוש ב-PodSecurityPolicy (ידני) | L1 | בקרות מקבילות | not set | באשכולות Anthos ב-Azure מוגדרים כללי מדיניות אבטחה שמוגדרים כברירת מחדל. לקוחות יכולים להגדיר אפשרויות שקשורות לאבטחה באמצעות הקשר אבטחה. מידע נוסף על סקירה כללית על אבטחה |
| 1.2.19 | מוודאים שהארגומנט --audit-log-path מוגדר (אוטומטי) |
L1 | בקרות מקבילות | not set | אשכולות Anthos ב-Azure מספקים אפשרות לרישום ביומן ביקורת בענן. מידע נוסף על יומני ביקורת של Cloud |
| 1.2.20 | מוודאים שהארגומנט --audit-log-maxage מוגדר לערך 30 או לערך המתאים (אוטומטי) |
L1 | בקרות מקבילות | not set | אשכולות Anthos ב-Azure מספקים אפשרות לרישום ביומן ביקורת בענן. מידע נוסף על יומני ביקורת של Cloud |
| 1.2.21 | מוודאים שהארגומנט --audit-log-maxbackup מוגדר לערך 10 או לערך המתאים (אוטומטי) |
L1 | בקרות מקבילות | not set | אשכולות Anthos ב-Azure מספקים אפשרות לרישום ביומן ביקורת בענן. מידע נוסף על יומני ביקורת של Cloud |
| 1.2.22 | מוודאים שהארגומנט --audit-log-maxsize מוגדר לערך 100 או לערך המתאים (אוטומטי) |
L1 | בקרות מקבילות | not set | אשכולות Anthos ב-Azure מספקים אפשרות לרישום ביומן ביקורת בענן. מידע נוסף על יומני ביקורת של Cloud |
| 3.1.1 | אין להשתמש באימות באמצעות אישור לקוח עבור משתמשים (ידני) | L2 | בקרות מקבילות | אחד ממנגנוני האימות שנתמכים בחיבור לאשכולות Anthos ב-Azure הוא OIDC. מידע נוסף על חיבור לאשכול ואימות | |
| 3.2.2 | מוודאים שמדיניות הביקורת כוללת את בעיות האבטחה העיקריות (ידני) | L2 | בקרות מקבילות | not set | אשכולות Anthos ב-Azure מספקים אפשרות לרישום ביומן ביקורת בענן. מידע נוסף על יומני ביקורת של Cloud |
| 4.2.4 | מוודאים שהארגומנט --read-only-port מוגדר לערך 0 (ידני) |
L1 | האימות נכשל | 10255 | בשלב הזה, אשכולות Anthos ב-Azure מגדירים את הארגומנט --read-only-port ל-10255 כדי לאסוף מדדים מ-kubelet. |
| 4.2.6 | מוודאים שהארגומנט --protect-kernel-defaults מוגדר כ-true (אוטומטי). |
L1 | האימות נכשל | false |
אשכולות Anthos ב-Azure מאפשרים ל-kubelet להגדיר את הגדרות הליבה הנדרשות. |
| 4.2.9 | מוודאים שהארגומנט --event-qps מוגדר לערך 0 או לרמה שמבטיחה תיעוד מתאים של האירוע (ידני) |
L2 | אזהרה | not set | אירועים הם אובייקטים של Kubernetes שמאוחסנים ב-etcd. כדי למנוע עומס על etcd, הם נשמרים רק למשך שעה אחת, והם לא מנגנון מתאים לביקורת אבטחה. אם מאפשרים אירועים ללא הגבלה כמו שמוצע באמצעי הבקרה הזה, האשכול נחשף לסיכון מיותר של מתקפת DoS, וזה סותר את ההמלצה להשתמש ב-EventRateLimits של בקרת הכניסה. אירועים שקשורים לאבטחה וצריך לאחסן אותם באופן קבוע צריכים להישלח ליומנים. |
| 4.2.10 | מוודאים שהארגומנטים --tls-cert-file ו---tls-private-key-file מוגדרים בצורה מתאימה (ידנית) |
L1 | בקרות מקבילות | not set | אשכולות Anthos ב-Azure מנהלים את TLS של שרת kubelet באמצעות הדגל serverTLSBootstrap. |
איך מבצעים ביקורת על מדדי השוואה
הוראות ספציפיות לביקורת של כל המלצה זמינות כחלק מההשוואה הרלוונטית של CIS. עם זאת, יכול להיות שתרצו להפוך חלק מהבדיקות האלה לאוטומטיות כדי לפשט את האימות של אמצעי הבקרה האלה בסביבה שלכם. הכלים שמופיעים ברשימה הבאה יכולים לעזור לכם.
ביקורת אוטומטית של CIS Kubernetes Benchmark
אפשר להשתמש בכלי קוד פתוח kube-bench כדי לבדוק את הגדרת האשכול בהשוואה ל-CIS Kubernetes Benchmark.
חשוב לציין את הגרסה המתאימה, לדוגמה,
kube-bench node --benchmark cis-1.23