Golden Chickens חוזרת עם ארבע נוזקות חדשות, וארכיטקטורה מודולרית שמקשה על הזיהוי
העמוד נראה כמו בדיקת אבטחה שגרתית. "אשרו שאתם לא רובוט", וליד זה הוראה קטנה: העתיקו את הפקודה, הדביקו אותה בחלון ההרצה של Windows, ולחצו Enter. מי שעושה את זה לא מרגיש שהוא פתח דלת לאף אחד, אבל בפועל הוא בעצמו הוריד והריץ את הנוזקה הראשונה בשרשרת. הטכניקה הזאת, שבה משכנעים את הקורבן להריץ במו ידיו פקודה זדונית דרך עמוד מזויף, נקראת ClickFix.
ב-24 ביולי חוקרי Insikt Group של Recorded Future פרסמו דוח שמתאר בדיוק את השרשרת הזאת, ומאחוריה עומד שם ותיק בזירה: Golden Chickens, קבוצת פיתוח שהחוקרים מסמנים כ-TAG-195 (ומוכרת גם בשם Venom Spider). מה שמעניין בדוח הוא לא עוד קמפיין בודד, אלא שהקבוצה החליפה כמעט את כל הארסנל שלה בבת אחת: ארבע משפחות נוזקה חדשות, עם דלת כניסה קטנה, שתל מלא לגניבת סיסמאות, ורכיב מרכזי שבנוי אחרת מכל מה שהקבוצה שחררה עד היום. נעבור עליהן לפי הסדר, ונראה למה דווקא הגרסה האחרונה היא השינוי החשוב.
מי עומדת מאחורי Golden Chickens
הקבוצה לא תוקפת קורבנות בעצמה. היא כותבת נוזקות ומשכירה אותן לפושעים אחרים, מודל שנקרא בתעשייה malware-as-a-service (נוזקה כשירות, בדיוק כמו שאפשר לשכור שרת בענן, אפשר לשכור ערכת תקיפה מוכנה). לאורך השנים הכלים של Golden Chickens שירתו כמה מהשמות הגדולים בעולם הפשע הכלכלי: הקבוצה FIN6, קבוצת Cobalt, ו-Evilnum, וכולם השתמשו בתשתית שהיא בנתה. הלקוח שבלט בדוח החדש מסומן TAG-127, ו-Insikt Group תיעדה אותו ישירות כשהוא מפיץ את הנוזקה הראשונה בקמפיינים מבוססי ClickFix.
העובדה שכמה קבוצות שונות משתמשות באותם כלים היא בדיוק מה שמחזק את הזיהוי: כשאתה רואה את אותם דפוסי בנייה חוזרים על פני ארבע משפחות נוזקה נפרדות, סביר שכולן יצאו ממערכת פיתוח אחת. וזה בדיוק מה שהחוקרים מצאו.
איך ההדבקה מתחילה
כל השרשרת מתחילה באותו רגע קטן מול עמוד ה-ClickFix. הפקודה שהקורבן מדביק מורידה קובץ מסוג OCX (רכיב תוכנה של Windows, פורמט ותיק שנועד להרחבות) ומריצה אותו דרך regsvr32.exe, כלי לגיטימי של המערכת שנועד לרשום רכיבים כאלה. השימוש בכלי מערכת אמיתי כדי להריץ קוד זר הוא בחירה מכוונת: הרבה מנגנוני הגנה לא חוסמים את regsvr32.exe, כי הוא חלק מ-Windows.
לכל אחת מהנוזקות יש גם מנגנון קטן ששומר עליה מפני חוקרים: היא בודקת את שם הקובץ שממנו היא רצה, ואם הוא לא תואם לשם שהיא מצפה לו (למשל updater.ocx), היא פשוט מפסיקה לרוץ. בסביבת ניתוח אוטומטית, שבה חוקרים מריצים דגימות תחת שמות אקראיים, הנוזקה נשארת שקטה ולא חושפת את עצמה. הכל, כאמור, מגיע מאותה מערכת פיתוח, ולכן אותם טריקים חוזרים על פני כל המשפחות.
TinyEgg: הדלת הקטנה שנכנסת ראשונה
הנוזקה הראשונה בשרשרת, TinyEgg, מכוונת בכוונה להיות רזה. יש לה תשע פקודות בלבד, וכולן עוסקות בשלב הכניסה: לזהות את המכשיר (שם המחשב, שם המשתמש, כתובת ה-IP המקומית, האם המשתמש בעל הרשאות גבוהות), לפתוח מעטפת פקודה אינטראקטיבית שדרכה התוקף שולח הוראות, ולהבטיח שהנוזקה תשרוד אתחול של המחשב. זה הכל. TinyEgg לא גונבת סיסמאות ולא מרגלת, כי לא זה התפקיד שלה. היא רק מחזיקה דריסת רגל ראשונה, שקטה ככל האפשר, ומחכה להוראה להוריד את השלב הבא.
התקשורת שלה עם שרת השליטה והבקרה (C2, השרת שדרכו התוקף שולח פקודות לנוזקה) עוברת דרך WebSocket, ערוץ תקשורת דו-כיווני שדפדפנים משתמשים בו באופן לגיטימי. הבחירה הזאת לא מקרית: לפי תקן ה-WebSocket, כל הודעה מעורבבת ממילא בערפול קל, כך שמערכת שמנסה לזהות תוכן זדוני לפי חתימות לא רואה כלום בלי לפענח קודם את המבנה. TinyEgg מוסיפה על זה עוד שכבת ערבוב משלה.
ChonkyChicken: מכאן מתחילה העבודה האמיתית
ברגע שהתוקף מרוצה מהאחיזה, TinyEgg מורידה את השתל המלא, ChonkyChicken, וכאן קפיצת המדרגה. השתל הזה מתחזה לרכיב Windows אמיתי בשם mscomctl.ocx ונרשם במערכת כאילו הוא חלק לגיטימי ממנה, כדי שיישרוד אתחול בלי למשוך תשומת לב. במקום תשע פקודות יש כאן יותר מארבעים, והן מכסות כמעט כל מה שתוקף רוצה מתוך רשת: מיפוי הרשת הפנימית (סריקת פורטים, זיהוי שיתופי קבצים, מיפוי המכונות בסביבה), תנועה רוחבית עם פרטי אימות גנובים, וריגול מתמשך שכולל תיעוד הקשות מקלדת, צילומי מסך, האזנה למיקרופון וקריאת הלוח (clipboard).
החלק שראוי לתשומת לב הוא גניבת הסיסמאות מהדפדפן, כי כאן Golden Chickens סגרה פער שהיה לה בגרסה הקודמת. כרום שומר את הסיסמאות שלכם מוצפנות עם מפתח שקשור למכשיר עצמו, כך שתוכנה אחרת לא יכולה פשוט לקרוא אותן. שכבת ההגנה הזאת נקראת App-Bound Encryption. כדי לעקוף אותה, ChonkyChicken מורידה עוזר ייעודי בשם ChromEggscalator, גרסה מותאמת של כלי פומבי שנקרא ChromElevator, שיודע לחלץ את הסיסמאות המוצפנות ולהעביר אותן חזרה לשתל.
וגם אם אין סיסמה לגנוב, יש דרך אחרת. ChonkyChicken יודעת לפתוח את כרום במצב נסתר, מחוץ למסך, ולשלוט בו כאילו היא המשתמש עצמו, דרך ממשק השליטה המובנה של הדפדפן (Chrome DevTools Protocol). המשמעות מטרידה: התוקף לא צריך את הסיסמה בכלל אם הוא יכול פשוט לרכוב על ה-session הפתוח והמחובר שכבר קיים בדפדפן, ולגשת דרכו לחשבונות שהמשתמש כבר מחובר אליהם.
למה הגרסה המודולרית היא השינוי המשמעותי
עד כאן ראינו שדרוג של יכולות. הרכיב הרביעי, גרסה מודולרית של ChonkyChicken, הוא שינוי של המבנה עצמו, וזה מה שהחוקרים מסמנים כמעבר האמיתי.
במקום שתל אחד גדול שמכיל את כל היכולות, יש כאן רכיב מרכזי קטן שכמעט ריק. הוא יודע רק לדבר עם שרת השליטה, לרשום את המכשיר, ולנהל תוספים. כל יכולת אמיתית, סריקת רשת, תיעוד הקשות, גניבת סיסמאות, מגיעה כתוסף נפרד שהרכיב המרכזי מוריד מהשרת רק כשהתוקף צריך אותה, ומריץ אותה בזיכרון. Insikt Group זיהתה יותר מארבעה-עשר תוספים כאלה, כולל אחד בשם wtrack שהחוקרים עדיין לא הבינו את מטרתו, סימן שהפיתוח פעיל ונמשך.
למה זה משנה כל כך? כי רכיב שנמצא על המכשיר במנוחה כמעט לא מכיל קוד זדוני. אין בו את סורק הרשת ואין בו את גונב הסיסמאות, אלא רק שלד תקשורת. מערכת הגנה שסורקת את הקובץ מוצאת הרבה פחות ממה שהיתה מוצאת בשתל מלא, והיכולות המסוכנות מופיעות רק לרגעים, בזיכרון, כשהתוקף מזעיק אותן. "מדובר במעבר ארכיטקטוני מכוון, לא בעדכון הדרגתי של כלים קיימים", כתבו החוקרים, והוסיפו שהעיצוב המודולרי הזה הוא הריחוק המבני הגדול ביותר מכל מה ש-Golden Chickens בנתה עד היום. אחת מכתובות השרת שנצפו בזמן הניתוח היתה עדיין מקומית (localhost), כלומר חלק מהקוד נבדק אצל המפתחים ועוד לא יצא לשטח במלואו.
מה זה אומר בפועל
החוליה החלשה כאן היא הרגע הראשון, עמוד ה-ClickFix. אם קופץ לכם עמוד שמבקש להעתיק פקודה ולהדביק אותה בחלון ההרצה של Windows כדי "לאמת" משהו, זו כמעט תמיד מלכודת, ואין שום סיבה לגיטימית לעשות את זה. ברמת הארגון, כדאי לצמצם למי שבאמת צריך את היכולת להריץ regsvr32.exe על קבצים מתיקיות שמשתמש רגיל יכול לכתוב אליהן, ולעבור לאימות דו-שלבי עמיד לפישינג (מפתחות FIDO2) בחשבונות הרגישים, שכן שיטת השליטה על ה-session חיה בדיוק מהחשבונות שכבר מחוברים.
תגובות