הדפדפן על המכונה הוריד את הפקודות, ואף אחד לא ראה את החלון: כך פרצה APT28 למפעל ספינות במדינת נאט"ו
אחרי הצהריים של ה-24 ביולי נפתח מסמך Word על מכונה אחת במפעל לבניית ספינות באחת ממדינות נאט"ו. המסמך נפתח ישירות מתיקיית הקבצים המצורפים של Outlook, מה שאומר שהוא הגיע במייל. מיד אחר כך נפתח על אותה מכונה חלון של דפדפן Edge בגודל פיקסל אחד על פיקסל אחד, ממוקם בקואורדינטות 10000 על 10000, כלומר מחוץ לשטח המסך. אף אחד לא ראה אותו. הוא היה שם כדי להוריד פקודות משרת של התוקפים.
חוקרי Symantec Threat Hunter Team פרסמו היום את הניתוח של הפריצה הזאת, שנמשכה לפחות חודשיים. הקבוצה שמאחוריה, שסימנטק קוראת לה Swallowtail ושרוב התעשייה מכירה כ-APT28, פגעה בשלושה ארגונים בשתי מדינות נאט"ו: גוף אכיפת חוק, יצרן מנועים למטוסים צבאיים, והמפעל לבניית ספינות שבו התרחשה הפריצה המתועדת בפירוט. בהמשך נראה איך הדלת האחורית מקבלת פקודות בלי לפתוח חיבור רשת בעצמה, שתי הדרכים שבהן חולצו פרטי אימות, המנהרה אל הרשת הפנימית, וכלי אחד שסימנטק מצאה ולא הצליחה לפתוח.
מי עומדת מאחור, ומה כבר היה ידוע
Swallowtail היא קבוצת ריגול רוסית ותיקה. לפי התראת CISA בנושא, ממשלת ארצות הברית מזהה אותה כיחידה הצבאית 26165 של ה-GRU, המודיעין הצבאי הרוסי. היא נקשרה ב-2016 לפריצה למפלגה הדמוקרטית בארצות הברית, והיעדים שלה מאז הם בעיקר צבא, ביטחון וממשל באירופה ובצפון אמריקה.
הדלת האחורית שבה הקבוצה השתמשה כאן, Hookedge, אינה חדשה. חוקרי Insikt Group של Recorded Future תיעדו אותה לראשונה באוגוסט 2026, בדוח על קמפיין נגד ארגוני ממשל ודיפלומטיה ברומניה, בספרד ובטורקיה בין סוף ספטמבר 2025 לתחילת אפריל 2026. הם עוקבים אחרי הקבוצה בשם BlueDelta, ומייחסים אותה ל-APT28 ול-GRU ברמת ביטחון בינונית בלבד, על בסיס חפיפה בקוד ובשיטות העבודה עם דלת אחורית קודמת בשם HEADLACE. הדוח ההוא עסק בעיקר באופן ההפצה. מה שסימנטק מוסיפה עכשיו הוא מה שקרה אחרי ההדבקה.
דלת אחורית שלא פותחת חיבור רשת בעצמה
כל נוזקה צריכה דרך לדבר עם השרת של התוקף. הדרך המקובלת היא רכיב הורדה, קוד שפותח חיבור רשת בעצמו. זה גם מה שמוצרי ההגנה מחפשים: תהליך לא מזוהה שמתחיל לדבר עם כתובת זרה.
Hookedge לא עושה את זה. היא סקריפט batch, קובץ פקודות של ווינדוס, והיא לא פותחת חיבורים משל עצמה. במקום זה היא מפעילה את Edge, הדפדפן שמותקן על כל מכונת ווינדוס ממילא, ומעבירה לו בשורת הפקודה לא כתובת אתר אלא קוד JavaScript מקודד שמורה לו למשוך קובץ ולשמור אותו לדיסק. הדפדפן הוא לקוח ה-HTTP. מבחינת הרשת, מכונה בארגון גלשה לאתר, וזה בדיוק מה שהיא עושה כל היום.
הכתובת שאליה הדפדפן גלש היא webhook.site, שירות חינמי וחוקי לגמרי שמפתחים משתמשים בו כדי לבדוק בקשות HTTP. התוקפים השתמשו בו כלוח מודעות: הם העלו לשם פקודה, המכונה הנגועה משכה אותה, הריצה, והעלתה את הפלט חזרה. אין כאן שרת שליטה ובקרה (C2, השרת שדרכו התוקף שולח פקודות לנוזקה) שצריך לקנות, לרשום ולהחזיק. יש כתובת אצל ספק שאף מערכת סינון לא חוסמת. השרידות על המכונה הושגה דרך משימה מתוזמנת, שלפי Recorded Future תשאלה את השרת כל 30 דקות בשלב הראשון.
המסמך עצמו היה מעורפל היטב. המאקרו פיצל את קוד ה-VBA ואת המחרוזות שלו לקטעים קצרים שמתחברים רק בזמן הריצה, טכניקה שמיועדת להכשיל סריקה סטטית של אנטי-וירוס. כשהמסמך נפתח, שגרת AutoOpen שלו כתבה ארבעה קבצים לפרופיל המשתמש: משגר VBScript, צמד קבצי HTML שמשגר טופס מוסתר לכתובת ה-webhook, וסקריפט batch.
הפקודה הראשונה שהגיעה, כשתי דקות אחרי פתיחת המסמך, הייתה סקר היכרות. היא בדקה מול אילו שירותי ענן יש קישוריות יוצאת: Dropbox, החשבונות של גוגל, פורטל ההתחברות של מיקרוסופט ו-Mega, וגם כתובת IP חשופה ואת תצורת ה-proxy. סימנטק מעריכה שהתוקפים מיפו אילו ערוצים יוצאים פתוחים להם ברשת, כדי להחליט לאן להעלות מטענים או מידע בהמשך. אחר כך הגיעה סריקת גילוי רגילה של המשתמשים, הרשת, התהליכים והתיקיות.
אז למה בכלל לעבור לכתובת IP?
עד כאן הכול עבר דרך שירות ציבורי. ואז, אחרי שלושה ימים של שקט, השתנה משהו.
בבוקר ה-27 ביולי הופיע על המכונה עותק נוסף של אותו משגר VBS, בשם קובץ אחר אבל עם אותו hash. אחריו הגיע סקריפט batch שני, מתוחכם יותר, וזה כבר לא פנה ל-webhook.site: הוא הביא את הפקודות שלו מכתובת IP ייעודית של התוקפים, 185.82.218.119, מעל HTTPS בפורט 443. אותה כתובת שימשה גם להעלאת המידע שנגנב. סימנטק ראתה את המעבר הזה רק ביעד עם הפעילות הנרחבת ביותר, כלומר הוא נשמר ליעדים ששווים את הטרחה.
מכאן כל פקודה הגיעה עטופה באותה תבנית: אישור קבלה לשרת, הרצה, העלאת הפלט, ומחיקת הקבצים הזמניים. במשך 30 שניות הגיעו שבע פקודות, כל אחת תוך שתיים עד שמונה שניות מקודמתה. הקצב הזה לא נראה כמו תוכנה שבודקת שרת כל חצי שעה. הוא נראה כמו בן אדם שיושב מול מקלדת.
שתי דרכים לחלץ פרטי אימות, ומנהרה שנשארת פתוחה
הפקודה הראשונה הייתה בדיקת זהות פשוטה, מי אני. משם התוקפים עברו לפרטי אימות, ועשו את זה בשתי שיטות שונות לגמרי.
הראשונה הפוכה ממה שמצפים. במקום לגנוב מפתח מהמכונה, הם הורידו אליה מפתח SSH פרטי משלהם, שינו את שמו ל-id_rsa, שתלו אותו בתיקייה שנראית כמו תיקייה של Adobe תחת ProgramData, וסידרו עליו הרשאות. המפתח לא נועד לפתוח דלת בארגון. הוא נועד לפתוח דלת מהארגון אליהם.
עם המפתח במקום, הם פתחו חיבור SSH יוצא אל השרת שלהם, אל פורט 80, הפורט שמשויך בדרך כלל לתעבורת web. הם ביטלו את בדיקת זהות השרת וכפו אלגוריתמי RSA ותיקים, כדי שהחיבור יעבוד בלי תלות בתצורה המקומית. החיבור לא נועד לקבל shell. הוא נועד להיות צינור: הם ביקשו העברת פורט מרוחקת חזרה אל השרת שלהם, על פורט 48097, בצורה שמבקשת העברה דינמית בסגנון SOCKS, ושלחו את התהליך לרקע. התוצאה היא מנהרה שנותנת להם מסלול מהתשתית שלהם אל תוך הרשת הפנימית של המפעל. לא חיבור חד-פעמי.
מיד אחר כך הם ביצעו שאילתת DNS למכונה פנימית אחרת, מה שמרמז לפי סימנטק שהמנהרה הופעלה כמעט ברגע שעלתה.
השיטה השנייה לחילוץ פרטי אימות היא הטריק היפה יותר. ווינדוס מוכנה להזדהות בפני שרת שמבקש ממנה להזדהות, וההזדהות הזאת כוללת מעין לחיצת יד הצפנתית שאפשר לתקוף אחר כך במנותק מהרשת. התוקפים הריצו סקריפט PowerShell קצר שהקים שרת web מדומה על כתובת הלופבק של המכונה עצמה, על פורט 8080, ואז, בתהליך רקע, ביקש מהמכונה להתחבר לשיתוף קבצים בכתובת הזאת. המכונה הזדהתה בפני עצמה, והסקריפט אסף את לחיצות היד, עד ארבע ואז עצר. מה שנופל לידי התוקף הוא זוג אתגר-תשובה מסוג NTLMv2, וממנו אפשר לנסות לשבור במנותק את הסיסמה של המשתמש או של חשבון המכונה, או להעביר את ההזדהות לשרת אחר ברשת ולהתחבר אליו בזהות הזאת. סימנטק מציינת שזו אותה משפחה של טכניקות שכלים כמו Responder ו-ntlmrelayx מיישמים, רק שכאן זה סקריפט קצר שנכתב למקרה הזה ולא כלי מוכן.
למחרת, ב-28 ביולי, התוקפים חיפשו עוד שתי מכונות פנימיות, אחת מהן נראתה לפי השם כמו שרת דואר, ואספו מידע על תצורת המכונה, התהליכים שלה והעדכונים שמותקנים בה. כמה שעות אחר כך הם הרגו את תהליך ה-ssh וסגרו את המנהרה. הדוח אומר במפורש שאי אפשר לדעת אם זו הייתה היגיינה תפעולית, מעבר לחיבור חדש, או שהמנהרה לא נדרשה יותר.
ld.exe: הכלי שסימנטק לא הצליחה לפתוח
אחרי שלושה ימים של תקשורת בלי פקודות חדשות, ב-31 ביולי בבוקר ירדו למכונה שני קבצים, ld.exe ו-Events.dat. את ld.exe סימנטק מצאה שהוא loader רפלקטיבי: כלי שמקבל קובץ מוצפן ומפתח פענוח כפרמטרים בשורת הפקודה, מפענח את הקובץ בזיכרון בלבד, וקורא לפונקציה מיוצאת בשם ExecuteLoader. התוכן המפוענח מתחיל בסימן זיהוי של ארבעה בייטים, ADSA. הכלי לא תועד קודם.
והנה החלק המעניין בדוח: Events.dat לא שוחזר. סימנטק יודעת מה שם קובץ המטען ומה מפתח הפענוח ששימש באותה הרצה, כי שניהם הופיעו בשורת הפקודה, אבל המטען עצמו לא נמצא. מה שהוא מפענח ומריץ בפועל אינו ידוע, וכך הדוח אומר במפורש.
העיצוב הזה הוא הנקודה. מטען מוצפן בקובץ נפרד, ומפתח שמגיע רק בזמן ההרצה, אומר שמי שמצא את הקובץ על הדיסק אחרי המעשה לא יכול להפעיל אותו ולראות מה הוא עושה. הפקודה הנפרדת האחרונה בנתונים הייתה בדיקת משתמשים, ומשם הפעילות האינטראקטיבית נפסקה.
התשתית, לעומת זאת, לא נעלמה. אותו hash של ld.exe ואותו משגר VBS עדיין היו על המכונה כארבעה שבועות אחר כך, בסוף אוגוסט, והמשגר נראה שוב ב-24 בספטמבר. זו הפעילות האחרונה שהדוח מתעד. סימנטק כותבת שאי אפשר לקבוע אם זו המשימה המתוזמנת המקורית שממשיכה לפעול בלי למצוא פקודות חדשות, או התעניינות מחודשת של המפעילים. רוחב היעדים, שלושה מגזרים בשתי מדינות נאט"ו, מתאים לפי סימנטק למאמץ איסוף רחב נגד יעדי ממשל וביטחון באירופה, ולא למבצע ממוקד אחד.
מה זה אומר בפועל
ההמלצה המרכזית בדוח מופנית לארגונים שמזהים אצלם סימנים של Hookedge: להתייחס לפריצה כאל פעילה ולא כאל מקרה שנסגר, ולחפש במפורש את חילוץ פרטי האימות ואת המנהרה. מי שניקה את הדלת האחורית והפסיק שם עלול להשאיר מאחוריו מפתח SSH שתול ומנהרה שאפשר להקים מחדש.
ולמי שלא מפעיל מפעל ספינות: שני הסימנים המובהקים כאן לא דורשים יעד ביטחוני כדי להיות שימושיים. דפדפן שמופעל משורת פקודה עם מטען JavaScript מקודד במקום כתובת אתר אפשר לחפש בלוגים של הרצת תהליכים, וכך גם חיבור SSH יוצא ממכונת ווינדוס של משתמש מהשורה. אם אתם מתעדים הרצת תהליכים על ה-endpoint-ים, שתי השאילתות האלה שוות את הזמן.
תגובות