נוזקה שמדברת ב-QUIC: איך Operation QUICSILVER מסתירה את ערוץ השליטה בתוך תעבורת גלישה רגילה
קובץ בשם TrainingAnnouncement.jpg נראה כמו תמונה לכל דבר, והדבר היחיד שהסגיר אותו היה הגודל: הוא היה גדול בהרבה ממה שמצופה מקובץ JPEG. חוקרי Seqrite שנתקלו בו במהלך ציד איומים בדקו את סוג הקובץ עצמו במקום לסמוך על הסיומת, וקיבלו תשובה אחרת לגמרי. מדובר בדיסק קשיח וירטואלי (VHD, קובץ בודד שווינדוס יודע לחבר ולהציג כמו כונן נוסף במחשב). כשחיברו אותו הופיע בכונן מסמך אחד ויחיד, הזמנה בבורמזית לטקס סיום של שני קורסים, שמתחזה למחלקת טכנולוגיית המידע והסייבר של משרד התחבורה והתקשורת של מיאנמר. כל השאר הוסתר.
הדוח פורסם ב-17 באוגוסט על ידי Priya Patel ו-Kartik Jivani מצוות ה-APT של החברה, וזכה לתשומת לב רחבה יותר השבוע אחרי שThe Hacker News סיקר אותו. הוא מתאר קמפיין שהחוקרים קוראים לו Operation QUICSILVER, ושבסופו יושב בקדור (backdoor, תוכנה שמשאירה לתוקף דלת פתוחה למחשב) שנכתב ב-Go ושהם מכנים QUICAgent. השם מצביע על מה שמעניין כאן באמת: ערוץ השליטה של הנוזקה לא מתחזה לתעבורת גלישה, אלא משתמש בדיוק באותו פרוטוקול ובאותו פורט שבהם הדפדפן שלכם מדבר עם אתרים גדולים. נעבור על הדרך שבה הקובץ מגיע להרצה בלי שיירד קובץ הרצה מהרשת, על האופן שבו הנוזקה מוצאת בכל הפעלה מחדש את כתובת השרת שלה, ועל הסיבה שבחירת הפרוטוקול היא לא פרט שולי.
מה באמת רץ כשלוחצים על ההזמנה
המסמך היחיד שנראה בכונן נקרא TrainingAnnouncement.pdf ונושא אייקון של PDF, אבל הוא לא מסמך. זהו קובץ קיצור דרך של ווינדוס ששמו המלא TrainingAnnouncement.pdf.lnk, וההסוואה עובדת בזכות הגדרה שקיימת בווינדוס כברירת מחדל: המערכת מסתירה סיומות של סוגי קבצים מוכרים, ולכן המשתמש רואה רק את החלק שלפני הסיומת האמיתית.
הלחיצה מפעילה את ftp.exe. זה לא רכיב שהתוקף הביא איתו, אלא כלי לגיטימי של מיקרוסופט שמגיע מותקן עם ווינדוס וחתום דיגיטלית על ידה. לשיטה הזאת, שבה התוקף מריץ את הקוד שלו דרך כלי מערכת קיים במקום להביא כלי משלו שייבדק ויימצא חשוד, קוראים LOLBAS. ל-ftp.exe יש אפשרות "-s:" שמקבלת קובץ סקריפט ומריצה את הפקודות שכתובות בתוכו, ובדיוק בה משתמשים כאן. הסקריפט יושב על אותו כונן וירטואלי ונקרא "_", קו תחתון בודד בלי סיומת בכלל.
מה שהסקריפט עושה מסודר היטב. קודם כול הוא פותח את מסמך הפיתיון, כדי שהקורבן יראה על המסך את ההזמנה שציפה לראות. במקביל, בלי שנראה דבר, הוא ניגש לתיקייה מוסתרת בשם _rels ומחפש בה שני קבצים בשמות header.doc ו-body.doc. את שניהם הוא משרשר לקובץ אחד בעזרת פקודת copy הרגילה של ווינדוס במצב בינארי, והתוצאה נשמרת כקובץ הרצה בשם Windowsupdate.exe בתיקיית %LOCALAPPDATA%. משם הוא מופעל מיד. החוקרים קוראים לשלב הזה שחזור מטען מפוצל, ושני חצאי המטען נושאים סיומת של מסמך עד השנייה שבה הם הופכים לתוכנית.
עד כאן הכניסה. מכאן מתחיל החלק שבגללו הקמפיין קיבל את שמו.
איך הנוזקה מוצאת את הכתובת של השרת
לכל נוזקה שמנוהלת מרחוק יש בעיה מובנית. היא חייבת לדעת לאן לפנות, ואם כתובת שרת השליטה והבקרה (C2, השרת שממנו התוקף שולח פקודות ואליו חוזר המידע) כתובה בתוך הקובץ, מספיק שחוקר אחד יחלץ אותה כדי שהיא תיחסם אצל כולם. QUICAgent עוקף את זה בעזרת שכבת ביניים. בבינארי אין כתובת של שרת תקיפה, אלא שתי כתובות של Cloudflare Workers, שירות שבו כל אחד יכול להריץ קטע קוד קצר על התשתית של Cloudflare ולקבל בשבילו כתובת בדומיין workers.dev. בכל הפעלה הנוזקה שולחת בקשת GET רגילה לאחת מהן, והתשובה שחוזרת היא שם השרת האמיתי, בטקסט גלוי. לטכניקה הזאת קוראים dead drop resolver, והיא ממופה ב-MITRE ATT&CK כטכניקת שליטה ובקרה.
בניתוח דינמי ראו החוקרים איך זה נראה בפועל: הנוזקה פנתה ל-Worker, קיבלה בחזרה את השם register.mediumser.com, ומשם התחברה לשרת בכתובת 104.64.211.22. הדומיין נרשם ב-20 במרץ 2026 דרך NameSilo, וה-DNS שלו מנוהל אצל Cloudflare. לפי רשומות DNS היסטוריות שהחוקרים בדקו בשירות Validin, הוא הצביע על כתובת אחרת, 38.60.244.141, בין ה-1 ל-6 ביולי, ומה-7 ביולי ואילך עבר לכתובת הנוכחית ונשאר בה.
היתרון של המבנה הזה למפעיל ברור. ברגע שכתובת נשרפת ונחסמת, מספיק לשנות את מה שה-Worker מחזיר, וכל הנוזקות שכבר יושבות אצל הקורבנות ימשיכו למצוא את הדרך הביתה בלי שיצטרכו לעדכן אותן.
אז למה דווקא QUIC?
QUIC הוא פרוטוקול תעבורה שגוגל פיתחה, ועליו רץ HTTP/3, הגרסה הנוכחית של הפרוטוקול שמניע את הרשת. בניגוד ל-HTTP/1.1 ול-HTTP/2 שרצים מעל TCP, הוא רץ מעל UDP, וכמעט תמיד על פורט 443. כלומר, כשאתם נכנסים היום לאתר גדול, חלק ניכר מהתעבורה שיוצאת מהמחשב שלכם הוא UDP/443 מוצפן.
זה בדיוק מה ש-QUICAgent עושה. החוקרים תיעדו ב-Wireshark תעבורת QUIC רציפה בין המכונה הנגועה לשרת, על UDP בפורט 443. הביקון (beacon, הפנייה התקופתית של הנוזקה לשרת כדי לשאול אם ממתינה לה פקודה) יוצא כברירת מחדל כל חמש שניות, ובכל פנייה נשלחת בקשת POST ב-HTTP/3 שגופה הוא JSON מוצפן ב-RC4. המפתח לא נוצר דינמית לכל קורבן, אלא מוטמע קשיח בתוך הקוד.
יש עוד פרט שמראה על מי הקמפיין חושב. בדרך כלל תוכנה שמתחברת ב-TLS סומכת על רשימת רשויות התעודה שמערכת ההפעלה מכירה, וזאת בדיוק הנקודה שמאפשרת לארגון להעמיד באמצע שרת proxy שמפענח את התעבורה ובוחן אותה. QUICAgent לא נשען על הרשימה הזאת. בתוך הבינארי מוטמעת תעודת CA שנחתמה בעצמה, והנוזקה מפעילה שגרת בדיקה משלה בשם VerifyPeerCertificate שמאשרת רק תעודה שנחתמה על ידי אותה CA. השם שנבחר לתעודה הוא "RAT CA", תחת ארגון בשם "RAT System". מי שבנה את הכלי לא השקיע מאמץ רב בשלב הזה.
חמש פקודות, וקיצור דרך אחד בתיקיית ההפעלה
לפני שהוא פונה לשרת בכלל, הבקדור מנסה להתחמק מבדיקה אוטומטית. הוא משהה את עצמו בהשהיה אקראית של 100 עד 600 מילישניות, ואז מריץ 1,000 סבבים של גיבוב SHA-256. לחישוב הזה אין שום תכלית פונקציונלית. המטרה שלו היא לשרוף את חלון הזמן שסביבת ניתוח אוטומטית (sandbox) מקצה לדגימה, כדי שהבדיקה תסתיים לפני שיקרה משהו שראוי לתעד.
בפנייה הראשונה הוא שולח פרטים בסיסיים על המכונה: שם ה-host כפי שהוא מתקבל מקריאת GetComputerNameEx, ושם המשתמש המחובר. השרת מחזיר לכל מכונה מזהה משלה בשם X-Agent-ID, ומכאן ואילך המפעיל יודע מול איזה קורבן הוא מדבר.
הפקודות שאפשר לשלוח הן חמש בסך הכול: הרצת פקודות מעטפת, שינוי קצב הביקון, העלאת קובץ, הורדת קובץ ורשימת תוכן של תיקייה. רשימה צנועה, אבל מספיקה בהחלט לריגול. פרט אחד בקוד מסגיר תשומת לב לניתוח סטטי, כלומר לחוקר שפותח את הקובץ בלי להריץ אותו: שמות הפקודות אינם שמורים בבינארי כמחרוזות טקסט, אלא מושווים כמספרים שלמים באורך 64 ביט, כך שחיפוש מחרוזות פשוט בקובץ לא יעלה אותם.
כדי לשרוד אתחול הנוזקה יוצרת קובץ PowerShell זמני ומריצה אותו, והוא יוצר קיצור דרך בשם SystemIn.lnk בתיקיית ה-Startup של המשתמש. הקיצור מצביע על Windowsupdate.exe, כך שהבקדור עולה מחדש בכל פעם שאותו משתמש מתחבר. לא registry, לא service ולא משימה מתוזמנת. תיקייה שהמשתמש יכול לכתוב אליה בלי הרשאות מנהל.
מה קושר את הקמפיין לסין
כאן כדאי לדייק, כי החוקרים עצמם מדייקים: ההערכה ש-QUICSILVER הוא מבצע ממוצא סיני מוגדרת אצלם ברמת ביטחון בינונית, לא גבוהה. מה שיש בידיהם הוא חוט מקשר טכני, לא ראיה חותכת.
החוט הזה נמצא בקובץ ה-LNK. קבצי קיצור דרך של ווינדוס שומרים בתוכם בין היתר את שם המחשב שעליו הקובץ נוצר, וכאן נשאר השם desktop-stv6gg. אותו שם בדיוק הופיע ב-Operation GriefLure, קמפיין ש-Seqrite פרסמה עליו במאי 2026. גם שרשרת ההדבקה כמעט זהה: קובץ LNK שמפעיל את ftp.exe, סקריפט מקומי, ושני קבצים שמחופשים למסמכים ומורכבים יחד לקובץ הרצה. מה שהשתנה הוא הבקדור, שהוא גרסה חדשה, והתשתית, שהיא אחרת לגמרי.
הקמפיין הנוכחי גם לא עומד לבד. הצוות עוקב אחרי שלושה גלים קרובים באותה שנה. באפריל 2026 הופיעה דגימה בשם HolidayNotice.pdf.exe שהשתמשה בלוח חגים בלגי-מיאנמרי כפיתיון, מה שמצביע לדעת החוקרים על עובדים של גופים בלגיים במיאנמר, שגרירויות או ארגונים לא ממשלתיים. ביוני הופיע ה-VHD עם הזמנת הטקס, וביולי דגימה נוספת בשם ACMECS_Pillar_1.vhd עם פיתיון דיפלומטי אחר. שתי דגימות ה-VHD חולקות שרשרת הדבקה, מטען ותשתית.
בתוך הדיסק הווירטואלי מצאו החוקרים גם משהו שהתוקף כנראה לא התכוון להשאיר מאחור: סל מיחזור ובו מסמכים מחוקים. ביניהם הערכה דיפלומטית על עמדתה של מלזיה כלפי המצב הפוליטי במיאנמר, ומסמך המסומן לשימוש רשמי בלבד שמתחזה למסמך של משרד החוץ המיאנמרי. Seqrite מסייגת ואומרת שהמסמכים האלה אינם נראים קשורים ישירות לקמפיין שנותח, אבל הם מלמדים על סוג היעדים שמעניין את התוקף.
מה זה אומר בפועל
הקמפיין הזה לא מכוון לישראל, אבל שלוש מהטכניקות שבו גנריות לגמרי ומופיעות היום גם אצל שחקנים אחרים. קובצי VHD ו-ISO שמגיעים בדואר ונראים תמימים הם ערוץ הפצה שכדאי לחסום בשער הדואר או לפחות להתריע עליו, מפני שמה שמוצג למשתמש בסוף הוא קובץ בודד עם אייקון של מסמך. הרצה של ftp.exe עם האפשרות "-s:" על תחנת עבודה רגילה היא כמעט תמיד סימן רע, וזו חוקיות פשוטה להוסיף למערכת ה-EDR. והחלק שהכי קל לפספס הוא היציאה החוצה: אם בקרת התעבורה המוצפנת שלכם בנויה סביב TCP/443 בלבד, ערוץ שרץ ב-QUIC על UDP/443 לא עובר דרכה. שווה לבדוק מה קורה אצלכם ל-UDP/443 שיוצא מהרשת, ומי כותב קיצורי דרך לתיקיית ה-Startup של המשתמשים.
תגובות