תוקפים מקושרים לצפון קוריאה מסתירים תוכנות זדוניות מיושרות OTTERCOOKIE בתוך קבצי דגל ארץ SVG המופצים באמצעות מבחני קידוד מזויפים של מפתחים. הקוד הזדוני מופעל כאשר יעד מתחיל את פרויקט המסחר האלקטרוני שסופק, לא כאשר מישהו רק צופה בתמונה.
מסע הפרסום, במעקב כ-REF9403, משתמש בהנדסה חברתית ולא בפגיעות תוכנה. תוקפים מתחזים למגייסים או לבעלי פרויקטים, פונים למפתחים עם הזדמנויות עבודה ומשכנעים אותם להוריד ולהפעיל הערכת קידוד פונקציונלית.
Elastic Security Labs גילה את REF9403לאחר שתוקף פרסם הזדמנות למפתחים בקהילת Slack Workspace של החברה. אלסטיק מקשרת את המבצע לראיון מדבק, קמפיין ארוך טווח המיוחס לשחקנים המקושרים עם צפון קוריאה.
כיצד מבחן הקידוד המזויף מגיע למפתחים
ב-26 במאי 2026, משתמש Slack בשם "Maxwell" פרסם בערוץ דרושים וטען שהוא זקוק לעזרה במודרניזציה של פלטפורמת מסחר אלקטרוני. מפתחים מעוניינים הועברו להודעות פרטיות והתבקשו להשלים הערכת קידוד.
הפרויקט שסופק נראה לגיטימי. הוא השתמש בטכנולוגיות פיתוח אינטרנט מוכרות ונשאר פונקציונלי לאחר ההתקנה, ועזר למאגר להיראות כמו בדיקה טכנית אמיתית.
גישה זו מנצלת את האמון שהמפתחים נותנים בתהליכי הגיוס. מועמד מצפה לשכפל מאגרים, להתקין תלות, לבדוק קוד ולהפעיל שרתים מקומיים במהלך הערכה, מה שנותן לתוקפים סיבה הגיונית לבקש פעולות שעלולות להיות מסוכנות.
הפרויקט הכיל תמונות SVG המציגות דגלי מדינה. קבצים כגוןAE.svgוAF.svgעיבוד רגיל, אבל המקור שלהם הכיל בלוקי הערות בסגנון HTML המחזיקים קטעי תוכנה זדונית מקודדים ב-Base64.
SVG הוא פורמט תמונה מבוסס XML שיכול להכיל טקסט, מטא נתונים והערות. במקרה זה, התוקפים לא הסתירו קוד באמצעות שינויים בפיקסלים של תמונה. הם הציבו טקסט מקודד ישירות בתוך הערות שצופה בתמונות יתעלם.
קובץ JavaScript בשםserverValidation.jsאסף את קבצי ה-SVG, מיינו אותם לפי סדר אלפביתי, חילץ את ההערות והצטרף לפרגמנטים. לאחר מכן הוא פיענח והוציא לפועל את מטען JavaScript המשוחזר.
| שלב ההתקפה | נצפתה פעילות |
|---|---|
| פיתוי גיוס | הזדמנות מזויפת למפתחים פורסמה דרך Slack |
| קשר פרטי | יעדים מעוניינים עברו להודעות ישירות |
| מסירת פרויקט | הערכת קידוד מסחר אלקטרוני פונקציונלית מסופקת |
| אחסון מטען | קטעי Base64 הוצבו בהערות בתוך קבצי דגל SVG |
| שִׁחזוּר | serverValidation.jsקורא ומצרף את השברים |
| הוֹצָאָה לְפוֹעַל | JavaScript משוחזר פועל בכל פעם ששרת הפרויקט מתחיל |
| גניבת נתונים | אישורים, ארנקים, קבצים ונתוני לוח שנאספו |
| גישה מרחוק | ערוץ Socket.IO מאפשר ביצוע פקודות אינטראקטיביות |
המטען פועל בעת הפעלת השרת
של הפרויקטserver/index.jsהקובץ קורא לשגרת האימות הזדונית לאחר הגדרת התווך הראשוני שלו. שְׁנֵיהֶםnpm run devוnpm startהפעל את קובץ השרת הזה.
כתוצאה מכך, התוכנה הזדונית פועלת בכל פעם ששרת הפיתוח המקומי מופעל. פקדים של מנהל החבילות המתמקדים רק בסקריפטים של התקנה עשויים שלא לעצור את נתיב הביצוע הזה.
זה גם אומר שתצוגה מקדימה של SVG לבדה לא מדביקה את המערכת. המתקפה שנצפתה מחייבת את המטרה להפעיל את הפרויקט ולהפעיל את JavaScript בצד השרת שמשחזר את המטען החבוי.
למה חוקרים קוראים לזה OTTERCOOKIE-Aligned
Elastic מצא קווי דמיון בין JavaScript המשוחזר ל-OTTERCOOKIE, כולל התאמה של מחרוזות, מבנה קוד, התנהגות ונקודות קצה של API. עם זאת, המדגם כלל שינויים ויכולות משולבות שחולקו בעבר בין משפחות תוכנות זדוניות קשורות.
הניתוח ראיון מדבק של מיקרוסופטמתאר את OTTERCOOKIE כדלת אחורית מודולרית של JavaScript שיכולה לבצע פקודות, לחפש מפתחות קריפטו, לטעון מודולים נוספים ולחלץ נתונים.
אלסטי אמר שהגבולות בין OTTERCOOKIE ל-BEAVERTAIL הפכו פחות ברורים. מטען REF9403 פועל כערכת כלים הכל-באחד ללא שלב Python שנראה בכמה זיהומים מוקדמים יותר של ראיונות מדבקים.
ארבעה מודולי תוכנה זדונית פועלים במכשיר
JavaScript המשוחזר משיק ארבעה רכיבים עיקריים. יחד, הם מספקים גניבת אישורים, איסוף קבצים, ניטור לוח וגישה מרחוק.
הרכיב הראשון מכוון לאישורי דפדפן, מסדי נתונים למילוי אוטומטי ותוספי ארנק קריפטוגרפיים ב-Windows, macOS ו-Linux. זה משנה את כותרת התהליך שלו לnpm-cacheלהופיע כמו תהליך Node.js רגיל.
שאר הרכיבים מחפשים במערכת הקבצים, יוצרים ערוץ פקודה Socket.IO ואוספים תוכן מהלוח. ב-Windows, התוכנה הזדונית יכולה גם לנסות להוריד קבצי הפעלה נוספים מתשתית הנשלטת על ידי תוקף.
| מודול | יכולת עיקרית | פלטפורמות נתמכות |
|---|---|---|
| גנב דפדפן וארנק | אוסף נתוני דפדפן שמורים ומסדי נתונים של הרחבות ארנק קריפטוגרפי | Windows, macOS ולינוקס |
| גנב קבצים | מחפש מסמכים, קוד מקור, אישורים וקובצי תצורה | Windows, macOS ולינוקס |
| Socket.IO RAT | מספק רישום מערכת וביצוע פקודות מעטפת אינטראקטיביות | Windows, macOS ולינוקס |
| גנב לוח | עוקב ומעלה תוכן משתנה בלוח | Windows ו-macOS |
| טפטפת מטען | ניסיונות להוריד ולהפעיל קבצים נוספים | חלונות |
אישורי דפדפן וארנקי מטבעות קריפטו ממוקדים
מודול האישורים מחפש פרופילים השייכים לדפדפנים כגון Chrome, Edge, Brave, Opera ו-LT Browser. נתיבי הדפדפן המדויקים משתנים בהתאם למערכת ההפעלה.
הוא מכוון למסדי נתונים שיכולים להכיל כניסות שמורות, מידע מילוי אוטומטי ונתוני הרחבות. הדוגמאות מכילות גם רשימה מקודדת של 25 הרחבות לדפדפן ארנק קריפטו, כולל MetaMask, Phantom, Rabby, Trust Wallet, TronLink, OKX Wallet וחלופות הקשורות ל-Coinbase.
ב-macOS, המודול מנסה גם לאסוף את מסד הנתונים של מחזיק מפתחות הכניסה של המשתמש. הפעלות דפדפן גנובות או נתוני תוספות ארנק עלולים להישאר שימושיים גם לאחר שהקורבן משנה סיסמת חשבון אחת.
גנב קבצים מחפש ספריות למפתחים
רכיב גניבת הקבצים מחפש קבצי סביבה, מפתחות פרטיים, היסטוריית מעטפת, מסמכים, קוד מקור, קבצי תצורה ותמונות. ב-Windows, הוא מונה כוננים מותקנים לפני סריקתם.
ב-macOS ו-Linux, החיפוש מתמקד בספריית הבית של המשתמש. שבילים המכילים.aws,.azure,.config,.ssh,.bash_historyאוֹ.zsh_historyלקבל תשומת לב מיוחדת.
מיקוד זה יוצר סיכון ארגוני רציני. מכונות מפתחים מכילות לרוב אישורי ענן, אסימוני מאגר, מפתחות SSH וגישה למערכות CI/CD שיכולות לתמוך בפשרה רחבה יותר.
- קבצי סביבה המכילים סודות יישומים
- אישורי AWS ו-Azure
- מפתחות SSH פרטיים ותצורה
- היסטוריית פקודות מעטפת
- קבצי קוד מקור ומסמכי פרויקט
- מסדי נתונים של כניסה לדפדפן
- נתוני סיומת ארנק קריפטופ
- נתוני מחזיק מפתחות לכניסה ל-macOS
Socket.IO Backdoor נותן לתוקפים מעטפת אינטראקטיבית
מודול הגישה מרחוק מתחבר לcontroller.rightwidth[.]devדרך Socket.IO דרך HTTPS. הוא רושם את המערכת הנגועה ושולח מידע מארח מזהה לבקר.
מפעיל יכול לשלוח פקודת מעטפת דרך הערוץ. התוכנה הזדונית מריץ אותו עם Node.jschild_process.exec()ומחזיר את הפלט, ומספק גישה אינטראקטיבית למכונה שנפרצה.
המודול בודק סימנים של VMware, VirtualBox, QEMU וסביבות וירטואליות אחרות. תוצאה חיובית מוסיפה תווית של מכונה וירטואלית לפרטי הרישום, אך התוכנה הזדונית ממשיכה לפעול.
ניטור הלוח פועל כל חצי שנייה
ב-Windows וב-macOS, רכיב הלוח בודק תוכן חדש כל 500 אלפיות השנייה. כל שינוי יכול להישלח לתשתית של התוקף.
מערכות Windows מרצות פקודות PowerShell נסתרות חוזרות ונשנות באמצעותGet-Clipboard. ב-macOS, התוכנה הזדונית משתמשת ב-pbpasteפְּקוּדָה. הטמעת לינוקס במדגם המנותח לא אסף את תוכן הלוח.
תכונה זו עלולה לחשוף סיסמאות, אסימוני API, כתובות ארנק, ביטויי שחזור או הודעות פרטיות שהמפתח מעתיק במהלך עבודה רגילה.
רכיב Windows מנסה הורדות נוספות
הטפטפת של Windows בלבד מנסה להוריד שלושה קבצים מחופשים.txtהרחבות. זה משנה את שמם כhostService.exe,printSvc.exeוdhcpSvc.exeלפני ההוצאה להורג.
Elastic לא הצליחה לאחזר קבצים אלה מכיוון שהשרת לא היה זמין במהלך הניתוח. לפיכך, הפונקציונליות המדויקת שלהם נותרה לא מאושרת ואין להסיק משמות הקבצים שלהם.
האחזור שנכשל אינו הופך מערכת נגועה לבטוחה. גניבת האישורים, איסוף הקבצים, ניטור הלוח והגישה מרחוק כבר יכולים לחשוף מידע רגיש ללא מטענים נוספים.
ראיון מדבק מכוון למפתחים במשך שנים
ראיון מדבק פעל לפחות מאז דצמבר 2022. תוקפים בדרך כלל מתחזים למגייסים מחברות קריפטוגרפיה, טכנולוגיה או בינה מלאכותית ומדריכים את הקורבנות בתהליך גיוס משכנע.
מחקר ראיונות מדבקים של יחידה 42תיעדו בעבר מגייסים מזויפים הקשורים לצפון קוריאה המספקים תוכנות זדוניות של BEAVERTAIL ו-InvisibleFerret למחפשי עבודה בטכנולוגיה.

מסע הפרסום REF9403 משנה את האריזה, אך המטרה החברתית-הנדסית נשארת עקבית. התוקף זקוק למטרה כדי לסמוך על ההקצאה ולבצע קוד בסביבה המכילה אישורים בעלי ערך.
מחוונים הקשורים ל-REF9403
צוותי אבטחה צריכים לשלב אינדיקטורים של קבצים, רשת והתנהגות. ניתן לשנות שמות ארכיונים בקלות, בעוד שפרויקטים לגיטימיים עשויים להשתמש במקרה בשמות גנריים כגוןecommerce-main.zip.
| סוּג | מַד | מטרה מדווחת |
|---|---|---|
| קוֹבֶץ | serverValidation.js | משחזר את המטען מהערות SVG |
| קוֹבֶץ | AE.svgוAF.svg | דוגמאות לקובצי דגל המכילים קטעים מקודדים |
| כותרת התהליך | npm-cache | תחפושת תהליך תוכנה זדונית |
| תְחוּם | rightwidth[.]dev | לוח ותשתית פיקוד |
| תְחוּם | ldb.rightwidth[.]dev | איסוף נתוני דפדפן וארנק |
| תְחוּם | upload.rightwidth[.]dev | העלאות קבצים גנובות |
| תְחוּם | controller.rightwidth[.]dev | בקר גישה מרחוק Socket.IO |
| תְחוּם | file.rightwidth[.]dev | הורדות מטען של Windows |
| IPv4 | 195.26.248[.]212 | תשתית פיקוד מדווחת |
| IPv4 | 188.40.64[.]61 | תשתית פיקוד מדווחת |
כיצד מפתחים יכולים לבדוק הערכות קידוד
מפתחים צריכים להתייחס לכל מבחן קידוד לא רצוי כקוד לא מהימן. ממשק מלוטש, תלות תקינה ותכונות עבודה לא קובעים שהמאגר בטוח.
לפני הביצוע, סוקרים צריכים לבדוקpackage.json, קבצי הפעלה של שרת, תצורות משימות וסקריפטים הקוראים ספריות נכסים. גם הערות מקודדות ארוכות בתוך SVG, HTML או קבצים סטטיים אחרים מצדיקים חקירה.
ההנחיות מיתוג של מיקרוסופטממליץ להשתמש במכונות וירטואליות מבודדות ולא קבועות לבדיקות קידוד ולהימנע מתחנות עבודה ראשיות שיש להן גישה למערכות ייצור, מאגרים או חשבונות ענן.
- אמת את המגייס והחברה בערוץ עצמאי.
- בדוק את הגיל וההיסטוריה של המאגר וחשבון השולח.
- סקור את כל קבצי האתחול והתצורה של המשימות.
- חפש
eval(), בניית פונקציות דינמיות וביצוע מעטפת. - בדוק הערות בתוך SVG, HTML ונכסים סטטיים אחרים.
- השתמש במכונה וירטואלית חד פעמית ללא אישורים אישיים או ארגוניים.
- הגבל גישה לרשת יוצאת בזמן בדיקת פרויקטים לא ידועים.
- אין להשבית כלי אבטחה לבקשת מגייס.
מה לעשות לאחר הפעלת מאגר חשודים
כל מי שהפעיל פרויקט התאמה צריך לנתק את המכשיר מהרשת וליצור קשר עם צוות האבטחה הרלוונטי. יש לשמור את המאגר, היסטוריית המסוף, מידע התהליך ויומני הרשת לפני הניקוי.
יש לסובב את האישורים ממכשיר מהימן נפרד. על הצוותים לבטל הפעלות דפדפן, אסימוני מאגר, אישורי npm, מפתחות ענן וסודות אחרים שהיו זמינים לחשבון המושפע.

מחווני REF9403 של Elasticיכולים לתמוך בציד, אך על המגיבים לחקור גם ראיות התנהגותיות כגון ספירת קבצים רחבה, גישה חוזרת ללוח, תהליכי Node.js חשודים וחיבורי Socket.IO בלתי צפויים.
- יש לבודד את מכשיר הפיתוח החשוד.
- שמרו על המאגר ותעדו את המקור והמידע שלו.
- אסוף תהליכים רצים, היסטוריית מסוף ויומני רשת.
- חפש את שמות הקבצים, הדומיינים, כתובות ה-IP ו-hash הארכיון הידועים.
- בטל הפעלות פעילות ממכשיר נקי.
- סובב את אישורי GitHub, GitLab, npm, SSH, ענן ו-CI/CD.
- סקור ארנקי מטבעות קריפטוגרפיים והעבר כספים אם חשיפה צפויה.
- בדוק אם יש גישה לא מורשית ביומני בקרת מקור וביקורת בענן.
- חקור מערכות אחרות שניתן להגיע אליהן באמצעות אישורים המאוחסנים במכשיר.
- בנה מחדש את נקודת הקצה כאשר המגיבים אינם יכולים לקבוע את ההיקף המלא.
נקודות קצה למפתחים זקוקות לבידוד חזק יותר
מפתחים דורשים כלים שיכולים להפעיל קוד, להתקין חבילות ולהגיע לשירותים חיצוניים. היכולות הללו הופכות את המערכות שלהן למטרות יקרות ערך ויכולות להחליש את הבקרות המיועדות למכשירים משרדיים רגילים.
מוקדם יותריחידה 42 ממצאי מיקוד למפתחיםהראה כיצד ראיונות מזויפים יכולים להציב תוכנות זדוניות חוצות פלטפורמות במערכות Windows ו-macOS. REF9403 מרחיב את הדפוס הזה לנכסים שמפתחים עשויים להניח שהם לא מזיקים.
ארגונים צריכים לספק סביבות ייעודיות להערכות מועמדים, בדיקות קוד פתוח ומאגרים לא מוכרים. אישורים קצרי מועד, כספות סודיות וגבולות גישה קפדניים יכולים להפחית את ההשפעה אם מפתח מריץ קוד זדוני.
שאלות נפוצות
מהו מסע הפרסום REF9403?
REF9403 הוא שם מעקב Elastic Security Labs למסע פרסום של ראיונות מדבקים המקושרים לצפון קוריאה, המפיץ הערכות קידוד זדוניות למפתחי תוכנה.
האם צפייה בתמונת SVG נגועה יכולה להפעיל תוכנה זדונית OTTERCOOKIE?
זיהום REF9403 שנצפה אינו מתחיל כאשר מישהו פשוט צופה בתמונת דגל. התוכנה הזדונית פועלת כאשר הקורבן מתחיל את הפרויקט שסופק וה-JavaScript בצד השרת שלו משחזר ומפעיל את קטעי Base64 המאוחסנים בהערות SVG.
איזה מידע התוכנה הזדונית יכולה לגנוב?
התוכנה הזדונית יכולה לאסוף אישורי דפדפן, נתוני מילוי אוטומטי, מסדי נתונים של הרחבות ארנק קריפטו, אישורי ענן, קבצי SSH, קבצי סביבה, מסמכים, קוד מקור, היסטוריית מעטפת ותוכן לוח.
אילו מערכות הפעלה מושפעות?
המודולים העיקריים של אישורים, גניבת קבצים וגישה מרחוק תומכים ב-Windows, macOS ו-Linux. אוסף הלוח עובד על Windows ו-macOS בדוגמה המנותחת, בעוד הורדות הפעלה נוספות מכוונות ל-Windows.
מה על מפתח לעשות לאחר הפעלת מבחן קידוד חשוד?
על היזם לבודד את המכשיר, לשמור ראיות ולהודיע לצוות האבטחה. ממכשיר נקי נפרד, יש לבטל או לסובב הפעלות חשופות ואישורים, כולל אסימוני בקרת מקור, מפתחות ענן, מפתחות SSH וסודות ארנק קריפטו.
