תוכנה זדונית של PhantomRaven
חוקרי אבטחת סייבר חשפו מתקפת שרשרת אספקה פעילה ביותר של תוכנה שכוונה למערכת האקולוגית של npm. זוהו למעלה מ-100 חבילות זדוניות, המסוגלות לגנוב אישורי מפתח רגישים, כולל אסימוני אימות, סודות CI/CD ופרטי GitHub, ישירות ממכונות שנפרצו.
הקמפיין, בשם הקוד PhantomRaven, הופיע לראשונה באוגוסט 2025. מאז, הוא התרחב ל-126 ספריות npm וצבר יותר מ-86,000 התקנות, מה שמדגים את ההתפשטות והאימוץ המהירות של חבילות זדוניות אלו.
תוכן העניינים
חבילות זדוניות שעפות מתחת לרדאר
כמה מהחבילות המסומנות כוללות:
- op-cli-installer - 486 הורדות
- ייבוא-לא-בשימוש – 1,350 הורדות
- badgekit-api-client – 483 הורדות
- polyfill-corejs3 – 475 הורדות
- eslint-comments – 936 הורדות
מה שהופך את PhantomRaven לחסרת תועלת במיוחד הוא השימוש שלה בתלות דינמית מרוחקת (RDD). במקום לאחזר קוד מהרישום הרשמי של npm, החבילות הזדוניות מצביעות על כתובת HTTP מותאמת אישית (packages.storeartifact.com). זה מאפשר ל-npm לאחזר תלויות ממקור חיצוני לא מהימן, ובכך לעקוף למעשה את ההגנות של npmjs.com.
סורקי אבטחה וכלי ניתוח תלויות מסורתיים אינם מצליחים לזהות את קבצי ה-RDD הללו, מכיוון שמערכות אוטומטיות רואות את החבילות כבעלות '0 תלויות'.
איך ההתקפה עובדת
שרשרת ההתקפה מתחילה ברגע שמפתח מתקין אחת מהחבילות שנראות שפירות. אלמנטים מרכזיים כוללים:
ביצוע Hook לפני התקנה : החבילה מכילה סקריפט מחזור חיים שלפני התקנה שמבצע אוטומטית את המטען הראשי.
אחזור מטען מרחוק : הסקריפט מאחזר את התלות הזדונית מהשרת הנשלט על ידי התוקף.
חילוץ נתונים : לאחר ההפעלה, הנוזקה סורקת את סביבת המפתח אחר כתובות דוא"ל, אוספת פרטי סביבת CI/CD, מבצעת טביעות אצבע מהמערכת (כולל כתובת IP ציבורית) ושולחת את הנתונים לשרת מרוחק.
התוקף יכול לשנות את המטען כרצונו, בתחילה להציג קוד לא מזיק כדי להתחמק מגילוי לפני שיפרסם עדכונים זדוניים לאחר שהחבילה מאומצת.
ניצול נקודות עיוורות של בני אדם ובינה מלאכותית
בחירת שמות החבילות היא מכוונת. גורם האיום ממנף טקטיקה המכונה slopsquatting, שבה מודלים של שפה גדולה (LLMs) מדמיינים שמות חבילות שאינם קיימים אך נשמעים סבירים. מפתחים עשויים לסמוך על חבילות אלו בשל שמם המציאותי, מבלי להיות מודעים לאיום הנסתר.
כפי שמציינים חוקרים, PhantomRaven מדגיש את התחכום הגובר של התוקפים:
- תלויות דינמיות מרוחקות חומקות מניתוח סטטי.
- שמות חבילות שנוצרו על ידי בינה מלאכותית מנצלים את אמון המפתחים.
- סקריפטים של מחזור חיים מבוצעים באופן אוטומטי ללא התערבות של המשתמש.
קמפיין זה מדגיש כיצד גורמים זדוניים מוצאים דרכים חדשות להסתיר קוד במערכות אקולוגיות של קוד פתוח, תוך ניצול פערים בכלי אבטחה מסורתיים.
מדוע npm הוא יעד מרכזי
החיכוך הנמוך של המערכת האקולוגית של npm לפרסום חבילות, בשילוב עם הביצוע האוטומטי של סקריפטים של קדם-התקנה, התקנה ואחרי-התקנה, הופך אותה למטרה מרכזית. תוקפים יכולים להסתיר התנהגות זדונית בתוך סקריפטים של מחזור החיים, לעתים קרובות ללא ידיעת המפתח, מה שממחיש את הצורך בערנות מוגברת ובנהלי אבטחה חזקים בסביבות פיתוח מודרניות.