סוכן של IBM Turbonomic שרץ בתוך אשכול Kubernetes קיבל הרשאות רחבות הרבה יותר ממה שדרוש לעבודתו, ובהן הרשאת קריאה בלי הגבלה לכל ה-secrets באשכול. מי שמשתלט על הסוכן מקבל איתו את כל ההרשאות האלה. הציון הוא 8.8 מתוך 10, ואין ידיעה על ניצול בשטח.
מה החולשה?
באשכול Kubernetes כל רכיב שרץ בפנים מקבל זהות משלו ורשימת הרשאות שקובעת מה מותר לו. הכלל המקובל הוא לתת לכל רכיב בדיוק את מה שהוא צריך כדי לעשות את עבודתו, ולא טיפה יותר, כי כל הרשאה עודפת היא הרשאה שתעבור לידיים של מי שיפרוץ לרכיב. כאן זה לא מה שקרה.
הסוכן prometurbo הוגדר עם הרשאות שחלות על כל האשכול, ולפי הרשומה כוללות קריאה בלי הגבלה לכל ה-secrets. secret ב-Kubernetes הוא המקום שבו נשמרים פרטי האימות של השירותים: סיסמאות למסדי נתונים, מפתחות ל-API, וה-token-ים שרכיבים משתמשים בהם כדי לדבר זה עם זה.
מכאן השרשרת מסתדרת לבד. חולשה בסוכן עצמו, או השתלטות על חשבון השירות שלו, לא נעצרת בסוכן: היא מוסרת לתוקף את פרטי האימות שהאשכול מחזיק, ומשם הדרך פתוחה להסלמת הרשאות ולהשתלטות על האשכול כולו. הרשומה מסמנת את החריגה הזאת במפורש, כלומר הנזק עובר את גבולות הרכיב שבו הבעיה נמצאת.
שווה לשים לב למה שהחולשה הזאת אינה. לפי הווקטור, היא אינה ניתנת לניצול מרחוק בידי אדם אקראי מהאינטרנט, והיא דורשת דריסת רגל מקומית והרשאה כלשהי מראש. היא לא הדלת, היא מה שקורה אחרי שנכנסו דרכה.
מי מושפע?
הגרסאות החשופות של הסוכן prometurbo הן 8.16.0 עד 8.17.6, כלומר כל מה שלפני 8.18.0.
זה רכיב תשתית ארגוני ולא תוכנה שמישהו מתקין על המחשב האישי. הוא מופיע בארגונים שמנהלים אשכולות Kubernetes בעצמם, ובישראל זה בעיקר חברות טכנולוגיה, ספקי שירותי ענן וגופים פיננסיים עם תשתית פנימית משלהם. לגולש הפרטי אין כאן דבר לעשות.
האם מנוצלת בפועל?
נכון להיום אין ידיעה כזאת. החולשה אינה מופיעה בקטלוג ה-KEV של CISA, סוכנות הסייבר האמריקאית, שמרכזת בו את החולשות שתועד שימוש בהן בידי תוקפים.
צריך לקרוא את זה בזהירות. המשמעות היא שלא דווח על ניצול, לא שלא היה. חולשה מהסוג הזה נכנסת לפעולה בשלב השני של פריצה, אחרי שהתוקף כבר בפנים, וזה בדיוק השלב שמתועד פחות בדיווחים פומביים מאשר הכניסה הראשונית.
מה עושים?
שדרגו את הסוכן prometurbo לגרסה 8.18.0 ומעלה. זאת הגרסה הראשונה שמחוץ לטווח החשוף, והודעת היצרן של IBM מפרטת את נתיב השדרוג. הודעת היצרן של IBM
אחרי זה בדקו מה עוד מוגדר אצלכם באותה צורה. השדרוג מתקן את ההגדרה של הרכיב הזה ולא את התבנית שמאחוריה, ובאשכול ממוצע יש עוד לא מעט חשבונות שירות שקיבלו הרשאות רחבות מדי כשהוקמו. הפקודה kubectl get clusterrolebindings מציגה אילו הרשאות ברמת האשכול קשורות לאילו חשבונות, וזאת נקודת הפתיחה לסריקה.
ואם הסוכן רץ אצלכם בגרסה חשופה לאורך זמן, התייחסו לפרטי האימות שהיו בהישג ידו ככאלה שייתכן שנחשפו, והחליפו אותם. שדרוג אינו מחליף סיסמה שכבר דלפה.