באוקטובר 2025 נדלקה התראה אחת אצל גוף ממשלתי במרכז אסיה שעוסק בקבלת החלטות כלכליות. מכונה אחת, שתי נוזקות: SpiceRAT, שכבר היה מוכר מפרסום קודם, ולצידו משהו שאיש לא תיעד עד אז. החקירה שיצאה מההתראה הבודדת הזאת נמשכה חודשים, ובסופה חוקרי Bitdefender Labs פרסמו ב-19 באוגוסט תיאור של מבצע ריגול שרץ קרוב לשנה מול גופי ממשל באזור ומפעיל שבע משפחות נוזקה שונות. חמש מהן לא היו מתועדות עד הפרסום, והחוקרים הם שנתנו להן שמות: DriveSilkRAT, CookiETagRAT, NomadRAT, GoginRAT ו-NodeEdgeRAT. את אשכול הפעילות עצמו הם קוראים SilkParasite, והמחקר המלא נכתב בידי Marius Andrei Baciu, Gheorghe Adrian Schipor ו-Victor Vrabie.

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

למה דווקא מרכז אסיה, ומי עומד מאחורי זה

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

זו גם לא הפעם הראשונה ש-Bitdefender נתקלת בדפוס. בפברואר 2025 הם תיעדו את UAC-0063, קמפיין נגד גופי ממשל ודיפלומטיה במרכז אסיה ובאירופה, ובמאי 2026 את FamousSparrow שתקף תשתיות נפט וגז באזרבייג'ן. החוט שמחבר את הקמפיין הנוכחי לשם עובר דרך BloodAlchemy, אחת משתי המשפחות המוכרות כאן, שיושבת באותו שושלת קוד של ShadowPad ו-Deed RAT. Deed RAT היה הדלת האחורית המרכזית של FamousSparrow.

בשאלת הייחוס החוקרים זהירים, וכדאי לצטט אותם בזהירות הזאת. כמה סימנים מצביעים על גורם סיני: Cisco Talos קישרה בפומבי את SpiceRAT לקבוצת הריגול SneakyChef עוד ביוני 2024, ניתוח תשתיות איתר כתובות IP ברשת הליבה של China Unicom, ופרופיל הקורבנות מתאים לאינטרס סיני באזור. גם שעות העבודה מסתדרות: מתוך 37 חותמות זמן שהשרת של Google Drive רשם על פקודות המפעילים, החוקרים הסיקו יום עבודה שמתיישב עם אזור זמן UTC+8. ובכל זאת הם מסרבים לתלות את הקמפיין בקבוצה אחת בשם, כי שיתוף כלים בין קבוצות אינו אותו דבר כמו גורם אחד ששולט בהן, וניתוח ברמת כתובת IP הוא נסיבתי. ההשתייכות הסינית נשארת אצלם ברמת ביטחון בינונית.

איך נכנסים, ואיך הקוד מורץ בתוך תהליך חתום

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

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

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

מה שמעניין כאן הוא הרוטציה. כל משפחה קיבלה מארח חתום אחר: ebook-edit.exe של Calibre טוען calibre-launcher.dll עבור SpiceRAT, FineReader.exe של ABBYY טוען dsp_ippv2_x64.dll עבור BloodAlchemy, emlproui.exe של Quick Heal טוען scansts.dll עבור NomadRAT, ו-Mp3tag טוען tak_deco_lib.dll עבור CookiETagRAT. גרסת ה-C++ של DriveSilkRAT נטענת דרך MpDefenderCoreService.exe, שירות חתום של Windows Defender עצמו, שמושך mpclient.dll. חוקי זיהוי שכוונו לזוג אחד לא יתפסו את השאר.

עד כאן איך הקוד מגיע ומורץ. הצד השני, איך הוא מקבל פקודות, מעניין יותר.

תיקייה משותפת ב-Google Drive במקום שרת שליטה

DriveSilkRAT היא עמוד השדרה של המבצע, המשפחה עם הכי הרבה הדבקות מתועדות והערוץ שדרכו הותקנו שש האחרות. במקום לדבר עם שרת ייעודי, שאפשר לחסום או לסמן על פי מוניטין, המפעילים מניחים קבצי פקודה בתיקייה משותפת ב-Google Drive. המכונה הנגועה בודקת את התיקייה מדי פעם, מורידה את המשימות שלה, מריצה אותן דרך מנגנון תוספים בזיכרון ומעלה את התוצאות לאותה תיקייה. מי שמסתכל על התעבורה רואה גלישה רגילה ל-Google Drive, ובהרבה ארגונים שירותי Google נמצאים ברשימת ההיתר ומקבלים פחות בדיקה. ב-Bitdefender קוראים לזה living off trusted services.

בפועל מדובר ב-12 תוספי .NET בהתאמה אישית שמכסים ניהול מרחוק שגרתי: רשימת תהליכים, מיפוי מערכת ורשת, ניהול קבצים והרצת פקודות. גם פרט קטן שם מלמד על תשומת לב. תוסף הרצת הפקודות מפעיל תהליכים דרך WMI ולא דרך cmd.exe, וכך שובר את שרשרת האב-בן שמוצרי הגנת endpoint מחפשים.

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

פקודות שנוסעות בכותרת של זיכרון מטמון

CookiETagRAT לוקחת כיוון אחר. רוב תעבורת השליטה והבקרה נוסעת בגוף הבקשה; כאן הפקודות מגיעות בכותרות. השרת מחזיר אותן בתוך כותרות Cookie ו-ETag של התשובה, והתוצאות חוזרות בגוף. ETag היא המנגנון הרגיל שבו שרת אומר לדפדפן אם תוכן שנשמר במטמון השתנה או לא, ולכן מי שלא מחפש את זה רואה בדיוק מה שהוא מצפה לראות: אימות מטמון שגרתי.

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

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

איפה בדיוק נראים הסימנים של AI

הדיון הציבורי על AI ונוזקות עוסק בעיקר בכמות, וכאן הסיפור הפוך. במחקר שלהם על APT36 ממארס 2026 כתבו ב-Bitdefender שכלים שנוצרו במלואם על ידי מכונה הם "לא פריצת דרך בתחכום של נוזקות, אלא ייעול של הבינוניות". SilkParasite הוא המקרה ההפוך: קוד מהונדס היטב שבו נשארו סימנים לעזרה של AI, לא לייצור על ידי AI. "נוזקה ברמת APT כזאת נשארת בבירור עבודה של אנשי מקצוע אנושיים", כתבו החוקרים.

הסימנים עצמם קטנים ומדידים. ב-GoginRAT, המשפחה שנכתבה ב-Go, נשארו בתוך הקובץ שנפרס פונקציות בדיקה שבדרך כלל מוסרות לפני שחרור, ומפתח AES קשיח שערכו 0123456789abcdef, מחרוזת סדרתית שנראית כמו ערך זמני שמישהו התכוון להחליף. ב-NodeEdgeRAT יש שדה הגדרה למפתח הצפנה שערכו change_this_key. ומעבר לזה, NomadRAT שנכתבה ב-C++ ו-GoginRAT שנכתבה ב-Go חולקות ארכיטקטורה דומה מספיק כדי להיראות כמו תכנון אחד שמומש פעמיים בשתי שפות, בדיוק סוג הדבר שסביבת פיתוח בעזרת AI מקלה עליו. אף אחד מהסימנים אינו מכריע בפני עצמו, והחוקרים מחזיקים גם את ההערכה הזאת ברמת ביטחון בינונית.

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

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

משטח הזיהוי העקבי ביותר בקמפיין הזה הוא לא שם של קובץ אלא צירוף: תוכנה חתומה ומוכרת שרצה ממיקום חריג, כמו תיקיית temp או תיקיית העברה, וטוענת לידה ספרייה שלא אמורה להיות שם. הזוגות שנרשמו למעלה הם נקודת פתיחה טובה לציד, אבל הכלל הרחב שורד גם כשהתוקף מחליף מארח. במקביל, תעבורה יוצאת ל-Google Drive בלי פעילות משתמש שמסבירה אותה היא הסימן הישיר ביותר ל-DriveSilkRAT, ובסקירת משימות מתוזמנות שווה לחפש את SysEdgeUpdateTaskMachineCore, שמתחזה למשימת עדכון של Edge, ואת רשומת שימור האחיזה fl_bridge של BloodAlchemy.