הכותרת בבקשת ההעלאה אומרת aisessions: כך אוספת Aokigahara את פרטי האימות של Claude, Copilot ו-Gemini CLI
בבקשת ה-HTTP שיוצאת מהמחשב הנגוע אל שרת התוקף יש שדה כותרת אחד שמסביר את כל הסיפור. הוא נקרא X-Chunk, ותפקידו להגיד לשרת איזה סוג מידע נמצא בחבילה שעלתה כרגע. בדוגמאות שפרסמו החוקרים רואים בו sysinfo, אחר כך screenshot, אחר כך browsers. בדוגמה אחת עלו 19 חבילות כאלה בסשן אחד, ואחת מהן נושאת את התווית aisessions.
חוקרי Check Point Research פרסמו ב-23 באוקטובר ניתוח של Aokigahara, נוזקת גניבת מידע שנצפתה בשטח ושלפי הניתוח ייתכן שגרסה מוקדמת שלה הייתה מוכרת בשם Kamidere או Stygian. רוב מה שהיא עושה מוכר: סיסמאות מדפדפנים, cookies, ארנקי קריפטו, מנהלי סיסמאות. מה שחדש הוא מודול אחד שמחפש סוג מסוים מאוד של קבצים, אלה שבהם כלי ה-AI של מפתחים שומרים את ההתחברות שלהם. בהמשך נעבור על מה שיש בקבצים האלה, על האופן שבו הנוזקה מחליטה אם בכלל להמשיך לרוץ על המכונה, ועל ההפרש של שמונה ימים בין שני דיווחי המחקר שתיארו אותה.
מה בעצם יש בקבצים שהמודול מחפש
כשאתם מתחברים פעם אחת ל-Claude Code או ל-Codex מהטרמינל, אתם לא מקלידים סיסמה שוב בכל הרצה. הכלי שומר על הדיסק קובץ קטן שמחזיק את ההרשאה להמשיך לדבר עם השירות בשמכם, בדרך כלל בתיקיית הבית של המשתמש ובפורמט טקסט קריא. זה מה שהופך את העבודה לנוחה, וזה גם מה שהמודול aisessions מחפש.
הרשימה שפרסמה Check Point ארוכה ומאוד ספציפית. עבור Claude: הקבצים .claude\credentials.json ו-.claude.json, וגם תיקיות האפליקציה של Claude Desktop. עבור Codex: .codex\auth.json, .codex\config.toml ו-.codex\.env. עבור Cursor, Windsurf ו-Visual Studio Code: מסד הנתונים state.vscdb וקובץ storage.json שיושבים תחת globalStorage, כולל גרסאות ה-Insiders וה-Next. עבור GitHub Copilot: .copilot\config.json ו-.copilot\hosts.json. עבור Gemini CLI של גוגל: קובץ ה-token של סביבת העבודה, קובץ מפתח ראשי, .gemini\.env ו-.gemini\config.json. ברשימה נמצאים גם Amazon Q (הקובץ data.sqlite3), עורך Kiro (הקובץ kiro-auth-token.json), JetBrains AI Assistant, תיקיית האפליקציה של ChatGPT Desktop, ושלושת הקבצים של ה-AWS CLI: .aws\credentials, .aws\config והמחסן של ה-SSO תחת .aws\sso\cache. בנוסף הנוזקה פונה גם ל-Windows Credential Manager, המקום שבו Windows עצמו שומר פרטי אימות של משתמש.
החוקרים מדגישים שלא כל קובץ ברשימה מכיל בהכרח סוד. חלקם הגדרות בלבד. אבל מי שעובד עם הכלים האלה יודע שחלק גדול מהם כן.
אז מה עושים עם token של Claude שנגנב
כאן שתי החברות שבדקו את הנוזקה נזהרות, ובצדק. Check Point כותבת במפורש שהניתוח שלה לא מאמת איך המפעילים מרוויחים מהמידע, רק שהיכולות שנמצאו בקוד מאפשרות כמה מסלולים. סימנטק, שתיארה את אותה משפחה שמונה ימים קודם, מציגה את ההיגיון: מפתח ש-token שלו נגנב מאפשר לתוקף לפעול בזהות שלו ועל חשבון מכסת ה-API שלו, ובהתאם להרשאות של אותו חשבון גם להגיע למאגרי הקוד, לשירותי הענן ולצינורות ה-CI/CD שמחוברים אליו. סימנטק משווה את זה לפרטי כרטיס אשראי, בהבדל אחד: כרטיס גנוב לא פותח דלת לסביבת הפיתוח של הקורבן.
שהשוק הזה קיים אפשר לראות ממחקר אחר של אותה חברה. ב-21 באוקטובר פרסמה סימנטק ניתוח של סוכן תקיפה אוטונומי שסורק את האינטרנט בחיפוש אחר מודלים חשופים ומשתמש בהם כמנוע ההיגיון של עצמו. ה-honeypot שלהם, מכונה שמעמידה פנים שהיא שירות AI פתוח כדי להקליט מי מנסה להשתמש בו, רשם יותר מ-127 אלף בקשות חיצוניות, ורובן היו סריקות של שירותי מודלים והרצה של מפתחות API גנובים מול אותם שירותים. לטכניקה הזאת, שימוש בחשבון AI של מישהו אחר כדי שהוא ישלם על החישוב, קוראים LLMjacking.
Check Point מוסיפה מסלול שלישי, פחות מדובר: סחיטה. אנשים מדביקים לשיחות עם כלי AI קוד פרטי, מסמכים פנימיים ולפעמים מידע על לקוחות. מי שמחזיק token תקף מגיע גם להיסטוריית השיחות וגם לקבצים שהועלו.
הצד הפחות מרגש, וגם הוא שם
עד כאן החלק החדש. שאר הנוזקה הוא קטלוג מסודר של כל מה שנוזקות מהסוג הזה אוספות כבר שנים, והוא מסודר במודולים עם שמות פונקציה פשוטים. המודול browsers מכסה כשלושים דפדפנים מבוססי Chromium, מ-Chrome ו-Edge ועד Yandex, 360Chrome, CocCoc ו-Naver Whale, ואוסף מהם נתוני פרופיל, סיסמאות שמורות ו-cookies. המודול firefox מחלץ את הסיסמאות מ-logins.json דרך ספריית NSS של מוזילה. המודול websessions לוקח את ה-local storage וה-session storage של הדפדפנים, שם יושבים לא מעט סשנים של אפליקציות ווב.
בצד הכספי יש כ-21 ארנקי קריפטו שולחניים, מ-Exodus ו-Electrum ועד Ledger Live, וסריקה של פרופילי Chromium אחרי תוספי ארנק כמו MetaMask, Phantom, TronLink, Coinbase ו-Trust. המודול clipper שותל רכיב נפרד תחת C:\Microsoft\Vault שמטפל בהחלפת תוכן הלוח. משם זה ממשיך ל-token-ים של Discord מתוך קובצי ה-LevelDB שלו, לתיקיית tdata של Telegram Desktop, לקובצי ההתחברות של Steam, לפרופילי Outlook (כולל כתובות, הגדרות IMAP, POP3 ו-SMTP וסיסמאות), ל-Thunderbird, לקובצי הגדרות של שישה שירותי VPN, לחמישה לקוחות FTP, ולמנהלי סיסמאות ובהם KeePass, Bitwarden, 1Password ו-Dashlane. מודול בשם filegraber סורק את שולחן העבודה, את Documents ואת Downloads לפי קריטריונים שנקבעים בהגדרות.
איך היא מחליטה אם להמשיך לרוץ
לפני שהנוזקה עושה משהו היא בודקת איפה היא נמצאת, ושתי הבדיקות המרכזיות מופעלות דרך דגלים בקובץ ההגדרות שלה. הראשונה קוראת את פריסת המקלדת ואת שפת הממשק של Windows ומשווה אותן למסכה בודדת בהגדרות, 0x6C0400C8601. אם אחת מהן מתאימה לאחת מ-11 ההגדרות שמיוצגות שם, בין היתר רוסית, אוקראינית, בלארוסית, ארמנית, גיאורגית, קזחית וטג'יקית, ההרצה נעצרת. זהו הדפוס המוכר של נוזקות שהמפעילים שלהן מעדיפים לא לרוץ באזור מסוים.
הבדיקה השנייה מחפשת סביבת ניתוח. היא כוללת קריאה של דגלי ניפוי בתוך ה-PEB של התהליך, תשאול של debug port ושל debug object, בדיקת אוגרי נקודות העצירה DR0 עד DR3, זיהוי hypervisor דרך הפקודה CPUID, מפתחות רישום ותהליכים של כלי אורח של מכונות וירטואליות, חתימות SMBIOS, מספר תהליכים נמוך מדי, ובדיקת שמות משתמש ומחשב מול רשימת מילים שכוללת sandbox, malware, test, John Doe ו-WDAGUtilityAccount. יש גם מעקב אחרי תנועת העכבר.
פרט אחד בהגדרות שווה תשומת לב מיוחדת לכל מי שמנתח דגימות. ההגדרות מוצפנות ויושבות במקטע בשם .stgcfg בקובץ עצמו, עם מזהה STGC בהתחלה, אורך, IV באורך 16 בתים והצפנת AES-256-CBC שהמפתח שלה נגזר מ-seed לפי שגרה ש-Check Point פרסמה. בתוך ההגדרות יש מסכת מודולים, וההחלטה אם מודול ירוץ נעשית דרך השוואה בינארית בין המסכה הזאת לבין המסכה של אותו מודול. הקוד של כל המודולים נשאר בקובץ גם כשהם מכובים. כלומר מה שדגימה מסוימת אוספת בפועל הוא החלטת הגדרות, לא תכונה של הקובץ.
שתי חברות, שמונה ימים, שתי תמונות של אותה נוזקה
את התיעוד הראשון המקיף של המשפחה פרסם צוות Threat Hunter של סימנטק ב-15 באוקטובר. לפי הדיווח שלהם השם מגיע ממחרוזת שהנוזקה משתמשת בה בתהליך הפענוח, הדגימות הראשונות נצפו מוקדם יותר ב-2026, והדגימות הישנות שלחו את המידע לכתובת IP בפורט 8080 מעל HTTP לא מוצפן. סימנטק פרסמה 17 חתימות קובץ ושלושה מזהי רשת.
הניתוח של Check Point, שמונה ימים אחר כך, מתאר דגימות מתקדמות יותר: החלפת מפתחות X25519 מול מפתח ציבורי שמוטבע בהגדרות, הצפנת AES-256-GCM לכל חבילה שעולה, הצמדת תעודת TLS לפי טביעת SHA-256, עד שלוש כתובות גיבוי, ו-User-Agent שמתחזה לרכיב של מיקרוסופט, Microsoft-CryptoAPI/10.0. היא פרסמה 151 חתימות SHA1 לנוזקה עצמה ואחת נוספת לרכיב ה-clipper. ששתי החברות מסתכלות על אותה משפחה אפשר לראות מרשימות המזהים: הדומיינים dobeqnesmot[.]cc, hjazfioe[.]surf ו-neihite[.]cc מופיעים בשתיהן, והכתובת 2[.]26[.]252[.]48:8080 שנמצאת ברשימה של Check Point היא בדיוק אותו דפוס של פורט 8080 שסימנטק מתארת בגרסאות המוקדמות.
מי מפעיל את הנוזקה לא ידוע לאף אחת מהן. "אנחנו לא יודעים איזו קבוצת איום עומדת מאחורי הנוזקה הזאת", כתבו חוקרי סימנטק, והוסיפו שיכולת איסוף ה-AI חדשה ונראה שהיא מתרחבת. Check Point מצידה כותבת שהנוזקה נראית בפיתוח פעיל, ומצביעה על שינויים ב-User-Agent בין גרסאות כעדות לכך. אף אחת מהן גם לא תיארה איך הנוזקה מגיעה למחשב מלכתחילה, ושתיהן מתחילות את הסיפור מהרגע שבה היא כבר רצה.
מה זה אומר בפועל
ההמלצה שבה Check Point סוגרת את הדיווח היא לא תיקון אלא שינוי בסיווג: קובצי ההתחברות של כלי ה-AI צריכים להיחשב נכס רגיש באותה מידה שבה נחשבים מפתחות ענן, מפתחות SSH וסשנים של דפדפן. בפועל זה אומר שאם יש חשד שעמדת פיתוח נדבקה, מחיקה של הקובץ המקומי לא פותרת כלום, כי ה-token שעלה לשרת ממשיך לעבוד עד שמבטלים אותו בממשק של השירות עצמו. שם צריך להתחיל: ביטול והנפקה מחדש של כל מה שאותו משתמש היה מחובר אליו, כולל מפתחות ה-API, חיבורי ה-SSO ומפתחות הענן.
ושווה לשים לב למקום שבו כל הקבצים האלה יושבים. תיקיית הבית של המשתמש, בהרשאות משתמש רגילות. אין כאן שלב של הסלמת הרשאות ואין צורך בחשבון מנהל, מה שאומר שהדבקה של עמדה אחת בארגון מספיקה. לצוותי הגנה: Check Point פרסמה חוק YARA בשם aokigahara, ושני דיווחי המחקר כוללים את דומייני השליטה והבקרה לחסימה ולחיפוש בלוגים.
תגובות