בתיקייה AppData\Local\Programs מופיעה תיקייה חדשה בשם SM Software Provisioning Service. ליד הקובץ SiemensSoftwareCenter.exe שבתוכה יושבים שני קבצים שאין להם מה לחפש שם, activate.bak ו-statinfosta.DB, ובאפליקציות שעולות עם ההדלקה נרשמה "Siemens Software Center". המחשב הזה לא התקין מעולם תוכנה של סימנס.

את סימני הזיהוי האלה פרסם Siemens ProductCERT ב-19 באוקטובר, כשאישר שחולשה במוצר שלו, CVE-2026-110936, מנוצלת בפועל. סימנס מדגישה שלמיטב ידיעתה אף מערכת, מוצר או ערוץ עדכונים שלה לא נפרץ. לפי התיאור שלה עצמה התוקפים גם לא היו צריכים לפרוץ לשם: הם לקחו עותק אמיתי וחתום של גרסה פגיעה של התוכנה, הניחו לידו קבצי DLL משלהם, והפיצו את החבילה הזאת למחשבים שמעולם לא היו לקוחות של סימנס. בהמשך נראה למה דווקא התוכנה הזאת נבחרה כנשאית, איך קובץ אחד שמונח ליד קובץ חתום מספיק כדי להריץ קוד, ולמה ציון החולשה הרשמי מתאר תרחיש אחר לגמרי מזה שקורה בשטח.

מה זה Siemens Software Center, ולמה דווקא הוא

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

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

למה DLL אחד שמונח ליד קובץ חתום מספיק

כשתוכנת ווינדוס עולה היא צריכה ספריות קוד חיצוניות כדי לעבוד, והיא מבקשת אותן לפי שם. ווינדוס מחפש את השם הזה לפי סדר קבוע, ובראש הסדר הזה נמצאת התיקייה שממנה התוכנה הורצה. תוכנה שמבקשת ספרייה לפי שם מהתיקייה שלה, ולא בודקת מי חתום על מה שהיא מקבלת, תריץ כל קוד שמישהו הניח שם בשם הנכון. לטכניקה הזאת קוראים DLL sideloading, ו-MITRE ממספרת אותה T1574.002.

וזה בדיוק מה שקרה כאן. הקובץ של סימנס עצמו לא שונה כלל והחתימה הדיגיטלית שלו תקינה לחלוטין; הקוד הזדוני יושב בקבצי ה-DLL שהתוקפים צירפו לחבילה, והגרסה הפגיעה טענה אותם כשעלתה. הייעוץ הרשמי SSA-580366 מסווג את הכשל כ-CWE-427, נתיב חיפוש לא מבוקר, ומתאר הרצת קוד שרירותי בהרשאות של האפליקציה. סימנס פרסמה שני hash-ים של SHA-256: אחד של חבילת ההתקנה AllMyBasic.msi, ואחד של קובץ בשם archive.dll, שהוא החלק הזדוני עצמו.

אז מי מפעיל את השרשרת? הקורבן, בעצמו

חולשה כזאת לא נפתחת מעצמה. מישהו צריך להתקין את החבילה על המכונה, וכאן נכנסת לתמונה שיטת ההפעלה שמככבת בשנה האחרונה: אתר מציג לגולש משהו שנראה כמו בדיקה שגרתית, הודעת שגיאה או אימות "אני לא רובוט", ומבקש ממנו להעתיק שורה אחת ולהדביק אותה בחלון ההרצה של ווינדוס או ב-PowerShell. הגולש מריץ את הפקודה במו ידיו, ולכן אין כאן חולשה בדפדפן שצריך לנצל ואין קובץ שהוא הוריד במפורש. לשיטה הזאת קוראים ClickFix.

ההמלצה שסימנס מפנה לציבור ישירה: אל תדביקו אף פעם פקודה מדף אינטרנט לחלון ההרצה או ל-PowerShell, כי בדיקת "אני לא רובוט" אמיתית לעולם לא מבקשת את זה. משם הדרך קצרה. חבילת ההתקנה AllMyBasic.msi הופצה מכתובת 2.27.248[.]127, שכבר אינה פעילה, והתקשורת עם התוקף עברה לכתובת 96.62.218[.]59 ולדומיין wizardexpensive[.]com, ששניהם היו עוד פעילים ביום פרסום ההודעה. את שם משפחת הנוזקה סימנס לא פרסמה.

הציון אומר 6.7, והקמפיין לא צריך אף אחד מהתנאים שלו

כאן מתחיל החלק המעניין. רשומת ה-CVE נותנת לחולשה ציון CVSS 3.1 של 6.7, בינוני, עם הווקטור AV:L/AC:L/PR:H/UI:N: תוקף מקומי, שכבר יש בידיו הרשאות גבוהות על המכונה. בגרסה 4.0 של אותה מתודולוגיה הציון עולה ל-8.4. שני הציונים מתארים אותו תרחיש קלאסי, שבו מי שכבר הגיע לעמדה שהתוכנה מותקנת עליה מנצל את החולשה כדי להסלים הרשאות.

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

להפרש הזה יש השלכה מעשית אחת, וסימנס אומרת אותה במפורש: אל תזהו לפי טביעת האצבע של הקובץ של סימנס, כי הקובץ אמיתי. זהו לפי התיקייה ולפי ההתנהגות, למשל SiemensSoftwareCenter.exe שרץ מתוך AppData\Local\Programs ושההורה שלו בעץ התהליכים הוא msiexec.

הפלטפורמה שמאחורי זה נקראת ROMULUS

בשורת הייחוס שלה סימנס מפנה לקמפיין ClickFix שהיא מכנה Romulus. את הפלטפורמה הזאת פירקו חוקרי Forescout Vedere Labs בדוח שפרסמו ב-15 באוקטובר, אותו יום שבו יצא הייעוץ של סימנס. לפי הדוח, שעליו חתומים Sai Molige וצוות המחקר, מדובר בפאנל שהתגלה על שרת שנבדק בחקירת תקרית אחרת לגמרי, ובו שני endpoint-ים שעושים את כל העבודה: אחד מחזיר סקריפט PowerShell שמכין את הקורבן ומחליט מה יירד בשלב הבא, והשני מחזיר חבילת MSI נגועה. שניהם מזוהים באותו token הקסדצימלי באורך 12 תווים, וה-token-ים האלה הם כנראה הדרך של המפעילים להפריד בין קורבנות או בין קמפיינים.

Forescout מצאה שש כתובות IP שמריצות את אותו ממשק התחברות, ובאחת מהן גם עמוד סטטיסטיקות עם מונה חי של "התקנות ייחודיות" ושל "הרצות", ציר זמן של 14 יום ופילוח לפי מדינות. אחת משש הכתובות האלה היא 2.27.248[.]127, אותה כתובת בדיוק שמופיעה בטבלת סימני הזיהוי של סימנס כערוץ ההפצה של AllMyBasic.msi.

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

עד כאן מי מפעיל את הפאנל. התרומה האמיתית של הדוח היא ההוכחה שהתשתית הזאת לא קשורה לנוזקה אחת. אותו פאנל שירת שני מסלולי הפצה שונים לגמרי. הראשון התקין חבילת MSI שמתחזה לכלי של Stardock, שמריצה קובץ חתום לגיטימי שטוען DLL מתוקן, בדיוק אותו רעיון שמופעל כאן על התוכנה של סימנס. השני לא נגע ב-MSI בכלל, אלא הוריד שרשרת ארכיונים מוצפנים שבסופה LegionLoader, מטעין נוזקות שפעיל מ-2019 ומוכר גם בשמות CurlyGate, RobotDropper ו-Satacom.

בתוך המסלול השני מסתדר פרט אחד שמסביר טוב מכל השאר איך נראית התחרות הזאת היום. הקובץ שבסוף השרשרת הוא קובץ הרצה תקין במשקל 882,716,672 בייט, כשכ-881.7 מגהבייט ממנו הוא מקטע .reloc שמכיל ערך של 16 בייט שחוזר על עצמו שוב ושוב, בזמן שספריית ההעתקות האמיתית מתארת 108 בייט בלבד. ריפוד שחוזר על עצמו נדחס מצוין, ולכן התוקף מפיץ ארכיון של פחות ממגהבייט שמתפרס לקובץ גדול מדי בשביל מגבלות העלאה, תקציבי sandbox וסף הגודל של סורקים סטטיים. הקוד שעושה את העבודה יושב בשני המגהבייט הראשונים.

(וסימנס, אגב, לא השחקנית הראשונה בסיפור הזה: את החולשה עצמה דיווח Jose Oregon מ-Huntress Labs, ואותה חברה היא גם זו שתיעדה בסוף ספטמבר את מסלול ההפצה שבו Custom GPT-ים הפנו גולשים לעמודי ClickFix.)

מה זה אומר בפועל

מי שמשתמש ב-Siemens Software Center צריך לוודא שהוא בגרסה 4.0.9.8 ואילך, וההפעלה הבאה של התוכנה אמורה להתקין את העדכון לבד. זה החלק הקל. מה שדורש עבודה אמיתית הוא לזנוח את ההנחה שהחולשה נוגעת רק ללקוחות סימנס, כי כל עמדת ווינדוס בארגון יכולה לקבל את החבילה הזאת. שווה לחפש בלוגים חיבורים ל-96.62.218[.]59, ל-wizardexpensive[.]com וגם לכתובת ההפצה שכבר נכבתה, ולסרוק את העמדות אחרי תיקיות של Siemens Software Center שיושבות מחוץ לנתיב ההתקנה הרגיל. אם משהו נמצא, סימנס ממליצה לבודד את המכונה, לעצור קודם את התהליך ורק אחר כך להסיר את רישום ההפעלה ואת המשימה המתוזמנת, ולאפס סיסמאות.

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