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

וזה בדיוק מה שהתוקפים רצו. הנוזקה הזאת, MATCHBOIL, מריצה את הקוד הזדוני שלה רק כשהיא מופעלת עם ארגומנט שורת פקודה מסוים, ולחיצה כפולה של אדם סקרן היא לא זה. פרננדו טוולה מ-ESET פרסם ב-8 באוקטובר מעקב אחרי כל גרסאות ה-downloader הזה שהחברה הצליחה לאסוף, מאפריל 2024 ועד אפריל 2026. הקבוצה שמפעילה אותו, UAC-0099, תוקפת מטרות באוקראינה, ו-ESET מעריכה בביטחון בינוני שהיא מזוהה עם אינטרסים רוסיים. בהמשך נראה מה ה-downloader עושה בפועל, אילו בדיקות הוא מריץ לפני שהוא מתחיל לעבוד, ומה השתנה בו בשנתיים האלה.

מה ה-downloader הזה עושה בכלל

התפקיד של MATCHBOIL צנוע: להוריד מהשרת של התוקפים תוכנה נוספת, להתקין אותה על המחשב ולדאוג שהיא תרוץ גם אחרי אתחול. הוא לא הכלי שגונב את המידע, הוא זה שמכניס אותו. המטען שהוא מוריד הוא בדרך כלל MATCHWOK, דלת אחורית כתובה ב-C# שלפי ESET משמשת את UAC-0099 בלעדית, ושתועדה לראשונה בידי CERT-UA האוקראיני. את MATCHBOIL עצמו תיעד CERT-UA לראשונה באוגוסט 2025, אבל חותמות הזמן שאספה ESET מצביעות על פיתוח שהתחיל עוד באפריל 2024.

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

השרת עונה בדף HTML, והמטען בתוכו

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

בפועל מדובר בשלוש בקשות HTTPS, אחת אחרי השנייה. הראשונה מחזירה מספר, שהנוזקה שותלת בכותרת HTTP בבקשה השנייה; ESET משערת שהמספר אומר לשרת איזה מטען להגיש, או מאמת שהבקשה באמת הגיעה מ-MATCHBOIL ולא משירות אחר. השנייה מחזירה את אותו דף HTML מדומה עם המטען בתוכו. השלישית מחזירה מחרוזת שנשמרת כקובץ הגדרות לצד המטען. את זהות המחשב הנוזקה שולחת בכותרת בשם SN: בגרסאות 2024 היא אספה את ה-CPUID ואת המספר הסידורי של ה-BIOS, ובגרסת יולי 2025 נוספו כתובת ה-MAC של כרטיס הרשת, דגם המחשב והיצרן שלו.

אז למה הנוזקה סופרת כמה זמן המחשב דלוק?

בגרסאות מנובמבר ודצמבר 2025 נוספה בדיקה שמסבירה טוב מאוד נגד מי הנוזקה מתגוננת. Windows רושם ביומן האירועים רשומה שמדווחת כמה זמן המערכת פועלת מאז האתחול האחרון. MATCHBOIL קוראת את היומן, מסננת את הרשומות האלה (אירוע מספר 6013), ושולפת מהן את מספר השניות. אם היא מוצאת לפחות שלוש רשומות שבכל אחת מהן זמן פעולה של 7,200 שניות ומעלה, כלומר שעתיים, היא מסיקה שהיא לא רצה בסביבת ניתוח ומתחילה לעבוד.

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

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

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

עד כאן מה שהנוזקה בודקת לפני שהיא מתחילה לעבוד. הצד שפונה למשתמש מעניין לא פחות.

המתכנן שלא באמת מתכנן

הארגומנט שבלעדיו שום דבר לא קורה הוא auto, עם מקף לפניו כמו כל דגל שורת פקודה. בלעדיו מוצג ממשק היומן, ואיתו הנוזקה יוצרת mutex בשם PlannerAssistant (תחת המרחב Global) וממשיכה לבדיקות. גם מקום ההתקנה של המטען הולך עם התחפושת, או לפחות עם מצב הרוח של מי שכתב אותה: בגרסאות סוף 2025 הוא נשמר תחת %LOCALAPPDATA% בתיקייה MeowCheck ובשם MeowMeowProgramm.exe. בדרך נשמר גם קובץ ביניים בשם WallpappersSet.jpg בתיקיית התמונות של המשתמש, וקובץ ההגדרות עבר לתיקיית הספריות הציבורית תחת השם config.library-ms, במקום config.ini שבגרסאות הקודמות.

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

בפברואר 2026 נראו שתי גרסאות נוספות. באחת נוסף ארגומנט שני, plans, לצד הראשון. בשנייה הארגומנט הוא renew, ומי שמריץ אותה בלעדיו מקבל ממשק אחר לגמרי: כלי לחיפוש טקסט בקבצים לפי ביטוי רגולרי. התחפושת עברה ממתכנן יומן לכלי עזר טכני, וזה מתאים הרבה יותר למחשב בעבודה. גם שם המטען התבגר באותו כיוון, ובגרסה מאפריל 2026 הוא נשמר תחת %LOCALAPPDATA% בתיקייה SMTPClient ובשם SMTPClientApplication.exe, שם שנבלע ברשימת התהליכים טוב בהרבה מ-MeowMeowProgramm.exe. אותה גרסה היא גם הראשונה שבה MATCHBOIL עצמו הוא קובץ DLL שמורץ בידי loader חיצוני ולא קובץ הרצה עומד בפני עצמו; CERT-UA תיעד אותה בשם MATCHBOIL.V2.

שימור האחיזה של המטען התחלף לאורך הדרך בין מנגנונים: ב-2024 גם ערך ברישום וגם מטלה מתוזמנת, ביולי 2025 רק ערך ברישום תחת מפתח ההפעלה האוטומטית, בסוף 2025 מטלה מתוזמנת שרצה כל שבע דקות, ובאפריל 2026 מטלה בשם Checker תחת תיקייה בשם MailClient. גם העירפול הוחלף: מהחלפת שמות של מחלקות ופונקציות בתווי יוניקוד שאינם ניתנים להצגה, ומהצפנת מחרוזות בשילוב של XOR והזזות סיביות, אל המערפל המסחרי .NET Reactor.

מי נמצא בצד המקבל

כל הנפגעים ש-ESET ראתה בטלמטריה שלה היו באוקראינה, ולא באותו מגזר. בין יולי לאוגוסט 2025 נראו דגימות של ה-downloader בכמה חברות תחבורה. בדצמבר אותה שנה בחברת ייצור. ביוני 2026 בחברה מתחום האנרגיה. שתי הדגימות שהגיעו ל-VirusTotal בפברואר 2026, ושמהן התחיל המעקב הזה, הועלו גם הן מאוקראינה.

הקבוצה עצמה לא חדשה. UAC-0099 פעילה לפי ESET לפחות מ-2022, CERT-UA דיווח עליה לראשונה ביוני 2023, והיא עוסקת בריגול נגד גופי ממשל, מוסדות פיננסיים וגופי תקשורת באוקראינה. לצד MATCHBOIL היא מפעילה גם את LONEPAGE, downloader כתוב ב-PowerShell. ESET מוסיפה הערכה שמסבירה למה שווה לעקוב אחרי כלי כזה: הקבוצה עשויה לשמש מתווכת גישה ראשונית עבור Sandworm, קבוצה רוסית שמוכרת בעיקר ממתקפות הרסניות באוקראינה. כלומר ה-downloader הצנוע הזה הוא לפעמים הצעד הראשון בשרשרת ארוכה בהרבה.

ארבעה ימים לפני הדוח של ESET פרסמה TrendAI מחקר על אותה פעילות, שאותה היא עוקבת בשם Earth Sirrush ומצליבה עם UAC-0099. שם מתואר כלי נוסף של הקבוצה שלא תועד עד כה, ASHVEIN, שמפתחיו קראו לו TelemetryBrowser: נוזקת גניבת מידע וגישה מרחוק ב-.NET שמחלצת פרטי אימות מ-Chrome ומ-Firefox דרך DPAPI, מצלמת מסך, מאתרת ושולפת קבצים, ומריצה פקודות PowerShell. לפי החוקרים הירויוקי קקרה ופייקה הקבורד היא גם מחפשת כלי ניתוח פעילים על המכונה, ביניהם Wireshark, IDA ו-Process Monitor. אחד הדרופרים שהם מתארים מציג לקורבן מסמך שמתחזה לתשובה של המשטרה הלאומית של אוקראינה, בזמן שהנוזקה נפרשת ברקע.

שני הדוחות נפגשים גם בתשתית. ESET כותבת ש-UAC-0099 מאחסנת את שרתי ה-C2 שלה על שרתים וירטואליים פרטיים, בעיקר של BitLaunch, ומסתירה אותם מאחורי Cloudflare, עם תעודות Let's Encrypt שלא ממוחזרות בין דומיינים. TrendAI מתארת תבנית מקבילה: רוב הדומיינים המאומתים נרשמו דרך Regery, מוסתרים מאחורי Cloudflare, וכתובות ה-IP שמאחוריהם מתרכזות ב-AS399629 שרשום לשם BL Networks.

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

מי שמנסה לתפוס כלי כזה לפי חתימה או hash רודף אחרי יעד שהוחלף ארבע פעמים בשנתיים. מה שכן נשאר יציב יחסית הוא ההתנהגות: מטלה מתוזמנת שרצה כל כמה דקות ונקראת כמו רכיב עדכון, קובץ הגדרות שנכתב לתיקיית הספריות הציבורית, קובץ עם סיומת של תמונה שנשמר בתיקיית התמונות ואינו תמונה, ותהליך שיושב ב-%LOCALAPPDATA% עם שם שנשמע כמו service לגיטימי. אלה הפרטים שכדאי להזין למערכות הניטור.

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