תוכנה זדונית VOID#GEIST
חוקרי אבטחת סייבר חשפו קמפיין תוכנה זדונית מתוחכם רב-שלבי המסתמך על סקריפטים של אצווה כדי לספק מטענים מוצפנים של סוס טרויאני לגישה מרחוק (RAT). הקמפיין, שזוהה כ-VOID#GEIST, פורס מספר משפחות של תוכנות זדוניות, כולל XWorm, AsyncRAT ו-Xeno RAT.
שרשרת ההתקפה מנצלת סקריפט אצווה מעורפל אשר יוזם רצף פעולות שנועדו להתחמק מגילוי. פעולות אלו כוללות הפעלת סקריפט אצווה נוסף, יצירת סביבת ריצה לגיטימית של Python, ופענוח של מטענים מוצפנים של קוד מעטפת. קוד המעטפת מבוצע ישירות בזיכרון לאחר הזרקה למופעים נפרדים של תהליך Windows explorer.exe באמצעות טכניקה המכונה הזרקת Early Bird Asynchronous Procedure Call (APC).
תוכן העניינים
העברת תוכנות זדוניות מונעות על ידי סקריפטים: מודל איום מודרני
גורמי איום מודרניים נוטשים יותר ויותר תוכנות זדוניות מסורתיות הניתנות להרצה עצמאית לטובת מסגרות אספקה מרובדות, מבוססות סקריפטים, המחקות התנהגות משתמש לגיטימית. במקום לפרוס קבצים בינאריים ניידים (PE) קונבנציונליים, התוקפים מתזמרים צינורות מרובי רכיבים המשלבים מספר טכנולוגיות וסביבות סקריפטים לגיטימיות.
רכיבים אופייניים המשמשים במסגרות אלה כוללים:
- סקריפטים של אצווה המשמשים לתזמור רצף ההדבקה.
- פקודות PowerShell המאפשרות הפעלה חשאית של מטען.
- זמני ריצה לגיטימיים מוטמעים המבטיחים ניידות בין מערכות.
- קוד מעטפת גולמי מבוצע ישירות בזיכרון כדי לשמור על שמירה על שליטה ותקינות.
גישת ביצוע ללא קבצים זו מפחיתה משמעותית את ההזדמנויות לגילוי מבוסס דיסק. כל שלב נראה יחסית לא מזיק כאשר נבחן באופן עצמאי ולעתים קרובות דומה לפעילות אדמיניסטרטיבית שגרתית, מה שמאפשר לגורמי איום לפעול בתוך סביבות פגועות מבלי להפעיל התראות אבטחה מיידיות.
גישה ראשונית דרך תשתית פישינג וקלאודפליר
נקודת הכניסה של ההתקפה מתחילה בסקריפט אצווה זדוני המועבר באמצעות הודעות דוא"ל פישינג. הסקריפט נלקח מתשתית המאוחסנת בדומיין של TryCloudflare. לאחר ההפעלה, הסקריפט נמנע במכוון מניסיונות הסלמת הרשאות ובמקום זאת פועל אך ורק במסגרת גבולות ההרשאות של המשתמש המחובר כעת.
אסטרטגיה זו מאפשרת לתוכנה הזדונית לבסס את אחיזתה הראשונית תוך כדי השתלבות בפעולות שגרתיות ברמת המשתמש. על ידי הימנעות מפעולות הדורשות הרשאות מוגברות, ההתקפה מפחיתה את הסבירות להפעלת אזהרות אבטחה או הנחיות ניהול.
טכניקות הסחת דעת חזותית וביצוע חשאי
לאחר הביצוע, השלב הראשון של הנוזקה משגר מסמך מטעה כדי להסיח את דעתו של הקורבן. גוגל כרום נפתח במצב מסך מלא כדי להציג מסמך פיננסי או חשבונית המוצגים כקובץ PDF. בזמן שהמשתמש מתמקד במסמך, הפעילות הזדונית נמשכת ברקע.
בו זמנית, פקודה של PowerShell מבוצעת כדי להפעיל מחדש את סקריפט האצווה המקורי עם פרמטרי ביצוע מוסתרים. השימוש בפרמטר -WindowStyle Hidden מונע הופעה של חלון קונסולה גלוי, ומבטיח שהפעילות הזדונית תישאר מוסתרת מהמשתמש.
התמדה באמצעות ביצוע אתחול ברמת המשתמש
כדי לשמור על עמידות לאחר אתחול המערכת, התוכנה הזדונית פורסת סקריפט אצווה עזר בספריית ההפעלה של משתמש Windows. מיקום זה מבטיח שהסקריפט יבוצע אוטומטית בכל פעם שהקורבן מתחבר למערכת.
מנגנון ההתמדה הזה הוא עדין במכוון. במקום להשתמש בטכניקות פולשניות יותר כמו שינוי מפתחות רישום של המערכת, יצירת משימות מתוזמנות או התקנת שירותים, התוכנה הזדונית מסתמכת אך ורק על התנהגות הפעלה סטנדרטית ברמת המשתמש. מכיוון שהגישה פועלת כולה בהקשר של הרשאות המשתמש הנוכחי, היא נמנעת מהפעלת בקשות להסלמת הרשאות ומפחיתה את הסבירות לגילוי על ידי כלי ניטור רישום.
מסגרת אחזור ופענוח של מטען
בשלב הבא של שרשרת ההדבקה, הנוזקה יוצרת קשר עם דומיין של TryCloudflare כדי לאחזר רכיבי מטען נוספים הארוזים בארכיוני ZIP. ארכיונים אלה מכילים את המודולים הנדרשים לפענוח וביצוע של המטענים הסופיים של הנוזקה.
הארכיון שהורדת מכיל בדרך כלל את הרכיבים הבאים:
- runn.py – טוען מבוסס פייתון האחראי על פענוח והזרקת מודולי shellcode מוצפנים לזיכרון
- new.bin – מטען shellcode מוצפן המשויך ל-XWorm
- xn.bin – מטען shellcode מוצפן המתאים ל-Xeno RAT
- pul.bin – מטען קוד מעטפת מוצפן המתאים ל-AsyncRAT
- a.json, n.json ו-p.json – קבצי מפתח המשמשים את טוען הפייתון לפענוח מטענים של קוד ה-shellcode באופן דינמי במהלך זמן ריצה
עיצוב מודולרי זה מאפשר לתוקפים להציג מטענים שונים באופן עצמאי ולהפעיל אותם רק בעת הצורך.
זמן ריצה של פייתון מוטמע לניידות וחמקנות
לאחר חילוץ הארכיון, הנוזקה פורסת זמן ריצה לגיטימי של Python, שהושג ישירות מ-python.org. הטמעת מפרש לגיטימי מבטלת את ההסתמכות על כל התקנת Python שכבר קיימת במערכת הפגועה.
מנקודת מבטו של תוקף, שלב זה מספק מספר יתרונות אסטרטגיים. התוכנה הזדונית הופכת לסביבת ביצוע עצמאית המסוגלת לפענח ולהזריק מטענים ללא צורך בתלות חיצוניות. זה משפר את הניידות בין מערכות שונות, משפר את האמינות ותורם לחשאיות תפעולית באמצעות שימוש ברכיבי תוכנה לגיטימיים.
ביצוע בזיכרון של מספר מטענים של RAT
זמן הריצה המוטמע של Python משמש לאחר מכן להפעלת סקריפט הטעינה runn.py. הטעינה מפענח את קוד המעטפת המשויך ל-XWorm ומזריק אותו למופע פעיל של explorer.exe באמצעות הזרקת Early Bird APC.
כדי לפרוס את Xeno RAT, התוכנה הזדונית מנצלת קובץ בינארי לגיטימי של מיקרוסופט בשם AppInstallerPythonRedirector.exe, המשמש להפעלת Python ולהפעלת הרכיבים הנדרשים. אותה טכניקת הזרקה משמשת לאחר מכן שוב לפריסת AsyncRAT, מה שמבטיח שכל המטענים מבוצעים במלואם בזיכרון מבלי להשאיר ארטיפקטים מסורתיים של הפעלה בדיסק.
משואות פיקוד ובקרה וארכיטקטורה מודולרית
השלב הסופי של ההתקפה כרוך בשליחת משואת HTTP מינימלית לתשתית פיקוד ובקרה (C2) הנשלטת על ידי התוקף, המאוחסנת ב-TryCloudflare. משואת זו מאשרת שהמערכת נפגעה בהצלחה והיא מוכנה לקבל הוראות נוספות.
למרות שהמטרות הספציפיות של הקמפיין נותרות לא ידועות, שרשרת ההדבקה מדגימה ארכיטקטורה מודולרית ביותר. במקום לפרוס מטען גדול יחיד של תוכנות זדוניות, התוקפים מציגים רכיבים בהדרגה על פני מספר שלבים. עיצוב זה משפר את הגמישות והחוסן התפעוליים.
מנקודת מבט של גילוי, מדד התנהגותי בולט אחד עולה לאורך הקמפיין: הזרקה חוזרת ונשנית של תהליכים לתוך explorer.exe במרווחי זמן קצרים. דפוס זה יכול לשמש כאיתות חזק עבור מגינים המנסים לקשר פעילות חשודה בין שלבים שונים של מחזור חיי ההתקפה.