ב-Spring Cloud Gateway, רכיב נפוץ בעולם הג'אווה שמנתב תעבורה בין שירותים, תוקנה חולשה שמאפשרת הרצת קוד מרחוק. הציון שלה הוא 10.0, והיא נמצאת ברשימת החולשות המנוצלות בפועל מאז 2022. העובדה שהיא עדיין רלוונטית היא עצמה הסיפור כאן.
מה החולשה?
Spring Cloud Gateway יושב בכניסה למערכת ומנתב בקשות לשירותים שמאחוריו. לרכיבים כאלה יש בדרך כלל ממשק ניהול, ובעולם של ספרינג הוא נקרא Actuator ומשמש לניטור ולשינוי הגדרות בזמן ריצה.
החולשה מתקיימת כשממשק ה-Actuator מופעל, חשוף ולא מאובטח. בתנאים האלה תוקף יכול לשלוח בקשה בנויה במיוחד שגורמת להרצת קוד על המכונה. שלושת התנאים האלה חשובים: ממשק שאינו מופעל, או מופעל אך אינו נגיש מבחוץ, אינו חשוף.
זאת דוגמה מייצגת למשפחה שלמה של חולשות. הרכיב שנפרץ אינו האפליקציה עצמה אלא כלי הניהול שלה, שנועד לשימוש פנימי ובטעות נשאר פתוח החוצה.
מי מושפע?
מערכות שמריצות Spring Cloud Gateway בגרסאות שלפני 3.0.7 ו-3.1.1. הרשומה כוללת גם מוצרי אורקל שמשלבים את הרכיב בתוכם.
הנקודה המעשית החשובה יותר היא לא רשימת הגרסאות אלא היכן הרכיב מסתתר. הוא לרוב אינו משהו שמישהו התקין במודע אלא תלות בתוך יישום ג'אווה גדול יותר, ולכן ארגונים לא תמיד יודעים שהוא רץ אצלם בכלל.
האם מנוצלת בפועל?
כן. החולשה נכנסה ב-16 במאי 2022 לקטלוג ה-KEV של סוכנות הסייבר האמריקאית CISA, הרשימה שמרכזת חולשות שידוע שתוקפים מנצלים בשטח.
חולשה בת ארבע שנים שעדיין מופיעה בתקיפות אומרת דבר אחד: מספיק שרתים לא עודכנו כדי שסריקה אחריה תמשיך להשתלם. כלים אוטומטיים סורקים את האינטרנט אחרי חולשות ותיקות בדיוק כמו אחרי חדשות, ולעתים קרובות ביתר הצלחה.
מה עושים?
עדכנו את Spring Cloud Gateway לגרסה 3.0.7 או 3.1.1 ומעלה. פרטי החולשה נמצאים בהודעת האבטחה.
בדקו אם ממשק ה-Actuator מופעל אצלכם, ואם הוא נגיש מחוץ לרשת הפנימית. במרבית המערכות אין סיבה שהוא יהיה פתוח לאינטרנט, וסגירה שלו מבטלת את התנאי שהחולשה תלויה בו.
מכיוון שמדובר בתלות פנימית, בדקו את רשימת הספריות של היישומים שלכם ולא רק את מה שהתקנתם ידנית. כלי לניתוח תלויות מוצא רכיבים כאלה מהר יותר מחיפוש ידני.
אם רץ אצלכם שרת חשוף לאורך זמן, הניחו שייתכן שנבדק. חפשו קבצים ותהליכים שנוספו בלי הסבר, ובדקו מפתחות גישה שהיו זמינים לאותה מכונה.