כדי לנצל את החולשה הזאת לא צריך להגיע לממשק הניהול ולא צריך סיסמה. לפי הרשומה, מספיק לשלוח ל-FortiSIEM בקשת TCP בנויה כך שהטקסט שבתוכה יחרוג מהמקום שיועד לו ויתפרש כפקודה למערכת ההפעלה. הציון 9.8 מתוך 10, והטווחים המושפעים משתרעים מקו 6.7 ועד 7.4.
מה החולשה?
תוכנה שצריכה לבצע פעולה במערכת ההפעלה יכולה לבנות שורת פקודה כמחרוזת ולהעביר אותה ל-shell. אם חלק מהמחרוזת מגיע מקלט חיצוני, והתוכנה אינה מנטרלת את התווים שה-shell מייחס להם משמעות מיוחדת, אפשר לסגור את הפקודה המקורית בתוך הקלט ולהוסיף אחריה פקודה שנייה. ל-shell אין דרך לדעת שהחלק השני לא היה אמור להיות שם, והוא מריץ את שתיהן. לזה קוראים OS command injection, הזרקת פקודות מערכת, וברשומה הוא מסומן CWE-78.
הפרט שמבדיל את הרשומה הזאת הוא מה שמפעיל אותה. לא פנייה לממשק הניהול ולא בקשת API, אלא בקשות TCP מעוצבות. כלומר המסלול עובר דרך שירות שמקשיב על הרשת ומקבל נתונים, לא דרך המסך שמנהל המערכת מכיר.
הווקטור מסמן פגיעה מלאה בסודיות, בשלמות ובזמינות, בלי דרישת הרשאות ובלי מעורבות של משתמש. ושווה לעצור על המשמעות של זה דווקא במוצר הזה: מי שמשתלט על מערכת שמרכזת את היומנים של כל הארגון מקבל גם את התיעוד שאמור לתעד אותו.
מי מושפע?
הרשומה מונה בתיאור את הגרסאות 6.7.0 עד 6.7.10, 7.0.0 עד 7.0.4, 7.1.0 עד 7.1.8, 7.3.0 עד 7.3.4, וכן 7.4.0.
רשימת הגרסאות המובנית באותה רשומה רחבה מזה בנקודה אחת, והיא מוסיפה גם את הקו של 7.2, מ-7.2.0 ועד 7.2.6. אם אתם נמצאים שם, אל תסיקו מהיעדרו מהתיאור שאתם מחוץ לתמונה.
כמו מוצרים אחרים מהמשפחה הזאת, מדובר בכלי של צוותי אבטחה ולא בתוכנה של משתמש פרטי. מי שלא מריץ אותה בעצמו אך מקבל שירות ניטור מנוהל נמצא במצב שבו השאלה רלוונטית אצל הספק: על איזו גרסה המערכת שמנטרת אותנו עומדת, ומתי היא עודכנה.
האם מנוצלת בפועל?
בקטלוג ה-KEV, שבו מרכזת CISA האמריקאית את החולשות שידוע כי הן מנוצלות בשטח, החולשה הזאת אינה מופיעה. כלומר אין ניצול מתועד שהגיע לרשימה הזאת.
מה שכן מופיע ברשימת המקורות של הרשומה הוא שני מאגרי GitHub ציבוריים שנושאים את מספר החולשה, ואחד מהם נקרא בשם שמעיד על כלי שמחפש מערכות חשופות ולא רק מדגים את הכשל. ההבדל בין השניים מעשי: כלי סריקה מקצר את הדרך בין הידיעה שקיימת חולשה ובין רשימת היעדים שבהם היא קיימת.
מה עושים?
הטווחים ברשומה נגמרים בגרסאות שהתיקון נכנס בהן, וזה המספר שאתם צריכים. מי שנמצא על הקווים שבין 6.7 ל-7.1 צריך להגיע ל-7.1.9. מי שעל 7.2 צריך את 7.2.7. מי שעל 7.3 צריך את 7.3.5.
7.4.0 היא המקרה החריג כאן: הרשומה מסמנת אותה כמושפעת ואינה מצביעה על גרסה שמתקנת את הקו הזה. מי שנמצא שם צריך לקחת את המספר מהיצרן, בהודעת האבטחה FG-IR-25-772.
לפני העדכון ואחריו, בדקו מי בכלל יכול לפתוח חיבור למערכת. החולשה מופעלת דרך בקשת רשת בלי אימות, ולכן רשימת הכתובות שמורשות להתחבר אליה היא ההגנה שעומדת בפני עצמה.
ואחרי שעדכנתם, עברו על היומנים של המערכת עצמה לתקופה שלפני העדכון. אם מישהו ניצל את החולשה לפני שנסגרה, העדכון סוגר את הדלת ואינו מספר מה קרה דרכה קודם.