קוברנטיס 101: כך ניתן לתקוף את הקלאסטר

״המצב כיום הוא שאת הנתב החליפו טבלאות הניתוב של השרת המארח, את חומת האש החליף iptables ושימוש מגוון ב-eBPF, את המתג החליף רכיב רשת וירטואלי בשרת המארח ואת עמדת הקצה החליף ה-pod (או הcontainer)״, מסביר ניר צ'קו, ראש צוות מחקר במעבדות סייברארק

ניר צ'קו. צילום: סייברארק

מתי בפעם האחרונה שאלתם את עצמכם איך המים מגיעים לברז אצלכם בבית? זו לא באמת שאלה שתשאלו את עצמכם (אלא אם כן אתם שרברבים). הנטייה שלנו היא לקבל את הדברים שעובדים כפי שהם וכמו שנהוג להגיד בקרב הרבה מתכנתים – "אם זה עובד, אל תגע!". אבל מה קורה כשהצינורות מתחילים לדלוף?

בדיוק באותו אופן, יש הרבה שמתייחסים לרשת של קוברנטיס (Kubernetes) כדבר מובן מאליו. כל עוד מידע עובר מצד אחד לצד אחר – אנחנו לא נוגעים. בדיוק כמו צינורות של מים, צינורות המידע שמרכיבים את סביבת הקוברנטיס עלולים לדלוף ולייצר נזק לסביבה שלכם. 

כראש צוות אדום לשעבר וראש צוות מחקר חולשות כיום, יש לי נטייה טבעית לחשוב כמו תוקף. אחת השאיפות העיקריות של האקרים הינה לייצר מקסימום נזק במינימום רעש ולכן הדבר המסוכן באמת הוא שאין הרבה שמבינים את הסכנות הקיימות ברשת של קוברנטיס המנוהלת ע"י תוספי הרשת (Network Plugins) של הסביבה. זו בדיוק הסיבה שגרמה לי לקפוץ ישר לתוך הצנרת הזו בניסיון להבין איך האקרים עלולים לנצל אותה לטובתם ומה כדאי לנו לעשות כדי לעצור אותם בזמן.

המסר העיקרי הוא שחייבים לשנות את התפיסה שיש לגבי רשתות ולהבין שמודל האיום ברשת קוברנטיס הוא שונה. אנחנו רגילים לכך שהנתב, חומת האש, המתג ועמדות הקצה הם כולם מרכיבים נפרדים, זה כבר לא המצב. המצב כיום הוא שאת הנתב החליפו טבלאות הניתוב של השרת המארח, את חומת האש החליף iptables ושימוש מגוון ב-eBPF, את המתג החליף רכיב רשת וירטואלי בשרת המארח ואת עמדת הקצה החליף ה-pod (או הcontainer). 

המשמעות של זה עבורכם היא שתמונת המצב עבור התוקף היא הרבה יותר פשוטה. ברגע שהוא משיג אחיזה ראשונית ב-pod כלשהו, הוא למעשה משיג גישה כמעט ישירה לכלל מרכיבי הרשת שיושבים יחד איתו על אותו השרת.

במחקר שביצענו זיהינו מספר וקטורי תקיפה מעניינים אשר מנצלים את המאפיינים הללו. דוגמה אחת הינה סיטואציה בה האקר שהצליח להריץ קוד על pod מסוגל לזייף ולשנות headers של חבילות מידע (packets) אותן הוא שולח. בכך ליזום תקיפות ARP Spoofing ו-DNS Spoofing. היכולת הזו עלולה לאפשר להאקר גם לדלג מעל מחסומי אבטחה וחוקי iptables ובכך לייצר נזק משמעותי בתוך הקלאסטר (cluster). 

דוגמה נוספת הינה תוצר של שימוש בתוספי רשת מסויימים. בעת שימוש בפרוטוקולי ניתוב מוכרים, כגון BGP אשר מרכיב את הבסיס של הפצת הניתובים בין ספקיות אינטרנט שונות ולמעשה מרכיב את האינטרנט כמו שאנחנו מכירים אותו. 

במהלך המחקר זיהינו שניתן לתקוף את פרוטוקול הניתוב ובכך לבצע BGP Hijacking ולהזריק ניתובים כרצוננו בסביבה, מה שמאפשר לנו לבצע תקיפת "האדם שבתווך" (Man-In-The-Middle) כנגד כל הקלאסטר. המחקר שלנו בתחום הזה הוביל, בין השאר, לעדכון אבטחה של אחד התקנים של פרוטוקול BGP ולחולשה בתוסף רשת מוכר בשם Calico או CVE-2021-26928.

לקריאה מעמיקה יותר בנושא, כולל המלצות מפורטות על חסימת וקטורי התקיפה המדוברים, בקרו כאן וכאן.

מאת: ניר צ'קו, ראש צוות מחקר במעבדות סייברארק.

אולי יעניין אותך גם