- בלוג
- באג ב-Kubernetes Image Builder חושף VMs לגישה בלתי מורשית
באג ב-Kubernetes Image Builder חושף VMs לגישה בלתי מורשית
באג ב-Kubernetes Image Builder חושף VMs לגישה בלתי מורשית
פורסם ב 23-10-2024
שתי פרצות נמצאו ב-Kubernetes Image Builder, כלי שנועד לבניית תמונות מערכת (images, או אימג’ים) ב-Kubernetes, בעזרת מגוון מנהלי מכונות וירטואליות וקונטיינרים. הפרצות, הקיימות בגירסאות 0.1.37 ומטה של הכלי, מאפשרות גישה לא מורשית למכונות וירטאליות (VMs – Virtual Machines) שנבנו באמצעותו.
הפרצות מתקיימות בשל אישורי ברירת המחדל שנוצרים על ידי Image Builder בזמן יצירת תמונות המערכת. באמצעות שימוש באישורים אלה, תוקף פוטנציאלי יכול לקבל גישת SSH למכונה הוירטולית.
הסבר קצת יותר טכני:
מערכת האימות של Image Builder למעשה מייצרת אישורים בקידוד-נוקשה (Hard-Coded Credentials). כלומר, אישורי האימות (credentials) – סיסמאות, מפתחות SSH, זהויות סודיות וכדומה – מוטמעות בקוד-המקור של Image Builder. הן מוטמעות בקוד-המקור כטקסט פשוט, משמע, הן אינן מוצפנות.
כל פעם ש-Image Builder בונה תמונת-מערכת, היא מקבלת אישור אימות מאלה המובנים בקוד-המקור.
הוצאת הסיסמאות האלה איננה עניין מסובך גם לתוקפים פחות מיומנים.
הפרצות התגלו ודווחו על ידי ניקולאי ריבניקאר (Nicolai Rybnikar) מחברת Rybnikar Enterprises GmbH. הן תוייגו כ-CVE-2024-9486, אשר קיבלה דירוג של 9.8 מתוך 10 בסולם CVSSv3 (קריטית); וכ-CVE-2024-9594, שקיבלה דירוג של 6.3 מתוך 10 בסולם CVSSv3 (בינונית).
הפרצות:
CVE-2024-9486 – פרצה זו משפיעה בעיקר על תמונות מערכת שנבנו עם הספקית Proxmox.
מכונות ויטואליות המבוססות על תמונות מערכת שנוצרו באמצעות שימוש בפלטפורמה של Proxmox אינן מבטלות את אישורי ברירת המחדל לאחר היווצרן של המכונות הוירטואליות. כפועל יוצא מזה, כל מי ששם ידיו על האישורים הללו, מקבל גישה למכונות הוירטואליות.
CVE-2024-9594 – הפרצה השניה מתייחסת לתמונות מערכת שנבנו באמצעות הספקיות Nutanix, Qemu ו-OVA. במקרה זה, אישורי ברירת המחדל כן מתבטלים לאחר שהמכונה הוירטואלית נוצרת. הפרצה מתקיימת רק במידה שלתוקף הייתה גישה למכונות הוירטואליות בהן נבנות תמונות המערכת, בזמן בנייתן. אם הייתה לו גישה, ואם הוא הספיק לנצל את הגישה הזאת (ואת החולשה של אישורי הגישה בקידוד נוקשה) כדי לבצע שינויים בתמונת המערכת בזמן הבנייה, אז ישנה פרצה.
הערה: תמונות מערכת שנבנו באמצעות ספקים אחרים מאלו שצויינו אינן תחת סיכון.
איך לדעת אם המכונות הוירטואליות שלכם בסכנה?
בדיווח, צוות התגובה והביטחון של Kuberenetes ממליצים לבדוק קודם באיזו גירסה של Image Builer אתם משתמשים.
ניתן לבצע את הבדיקה לפי האופן בו התקנתם את Image Builder על המערכת שלכם.
להתקנות שבוצעו באמצעות שכפול מהמצבור (repository) של git:<cd <local path to image builder repo
make version
אם מדובר בהתקנה שבוצעה מקובץ tarball שהורד מהאינטרנט:<cd <local path to install location
grep -o v0\.[0-9.]* RELEASE.md | head -1
התקנות לקונטיינרים:docker run --rm version
או:podman run --rm version
או לפי התג של תמונת המערכת, שנראה כך (בתמונה מובא התג של תמונת מערכת רשמית):registry.k8s.io/scl-image-builder/cluster-node-image-builder-amd64:v0.1.37
הערה: אמנם הדיווח מתייחס באופן ספציפי לפרצה הראשונה והקריטית יותר (CVE-2024-9486), אך הצעדים נכונים גם לפרצה השניה (CVE-2024-9594), כפי שניתן לראות בדיווח עליה.
אם אתם חושדים שהפרצה נוצלה על המכונות הוירטואליות שלכם, אתם יכולים לבדוק אם בוצעו כניסות דרך “חשבון” הבונה (builder) באמצעות הפקודה הבאה:last builder
כדי להגן על המכונות הוירטואליות שלכם:
1. עדכנו את Kubernetes Image Builder ל-גירסה 0.1.38 לפחות. החל מגירסה זו, לכל תמונת מערכת שנבנית מוקצית סיסמה אקראית, ולאחר סיום הבניה ה”חשבון”, יחד עם הסיסמה, מתבטלים.
2. יש להחליף תמונות מערכת פגיעות על מכונות ויטואליות בכאלה שנוצרו באמצעות גירסה 0.1.38 (לפחות).
3. אם איו ביכולתכם לבצע את שני הצעדים האלה, ניתן לבטל את “חשבון” הבונה (builder) ב-Kuberenetes Image Builder על מכונות וירטואליות בהן קיימת הפרצה:usermod -L builder
זכרו שמדובר בצעד זמני בלבד.
אנו ממליצים לכם לנקוט בצעדי המניעה הללו בדחיפות כדי להגן על המכונות הוירטואליות שלכם מתוקפים.
לסיוע נוסף ולכל בקשה אחרת, אנחנו מזמינים אתכם לפנות אלינו. צור קשר