חבילות npm זדוניות

חבילות npm זדוניות: הרשימה החיה שאף אחד לא צופה בה מספיק מקרוב

TL; DR

חבילות npm זדוניות אינן אירוע מזדמן. הן פעולת פרסום מתמשכת, ורשימת המקרים המאושרים מתעדכנת מדי שבוע. בשבע מהדורות רצופות של תקציר הקוד הזדוני שלנו, שכבר עבר את גיליון ה-87 שלו, Xygeni אישרה 635 חבילות זדוניות, מ-13 בשבוע שקט ל-206 בשבוע עמוס. הטווח השבועי הוא העניין: זהו קצב, לא אירוע.

  • הקאדנס הוא הבעיה. חבילה אחת עברה מאפס ליותר מ-55 גרסאות בשבוע. אשכול אחר פרסם כמעט 30 שמות חבילות בפחות משלוש שעות. ביקורת שבועית היא יחידת זמן שגויה.
  • הם לא מגיעים כ-CVEs. חבילה זדונית אינה פגם בקוד לגיטימי, ולכן אין ייעוץ, אין ניקוד ובדרך כלל אין מזהה כלל. תוכנית המונעת על ידי פגיעויות עיוורת מבחינה מבנית לכך.
  • הסרה אינה הגנה. חבילות בדרך כלל זמינות למשך דקות עד שעות. ההתקנה שלך התרחשה בחלון זה או שלא.
  • הזיהוי צריך להתרחש בעת הפרסום, והאכיפה בעת ההתקנה. כל דבר שמחכה לחתימה, CVE או סריקה שבועית מגיע אחרי ה-Build שמשך אותו.

הרשימה קיימת. זה לא אותו דבר כמו להיות נצפים

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

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

כך נראו שבעה שבועות, שנלקחו מממצאים שאושרו שלנו ולא מסקר ספקים.

תקצירחבילות מאושרותמה בלט
תקציר 8713אשכול מלחין ראשון. @umschool/platform פורסם ב 999.0.0 לעקוף חבילה פנימית
תקציר 8635קמפיין בייליס משתמש בשמות בדויים בסבב. ארבעה @stellarshift חבילות שפורסמו בגרסה זהה
תקציר 8553[לאשר את הבולטות]
תקציר 8434התחזות של בייליס על פני ארבעה שמות ושישה ימים. cloud-baileys פורסם מחדש ארבע פעמים
תקציר 83114wormgpt-cliתשע גרסאות ביום אחד, על שם כלי LLM אמיתי של אפל
תקציר 82206[לאשר את הבולטות]
תקציר 8118017 חבילות המתחזות לשמות פנימיים של PayPal ב 28.0.0. zevairouter 55 גרסאות קודמות

הדפוס שחשוב הוא לא הסכומים הכוללים. זוהי המהירות שבתוכו בכל שבוע.

מהירות היא כל ההתקפה

שלושה ממצאים מאותם שבועות, כל אחד מהם דרך שונה לעקוף את הסקירה.

  • הצפת גרסה. חבילת npm אחת, zevairouter, הגיע ליותר מ-55 גרסאות מאושרות בשבוע אחד, אליה הצטרפו עשר גרסאות נוספות מחבילת עזר. ב-PyPI, bingo-ai ייצר כמעט 80 גרסאות בכ-30 דקות. שום תהליך סקירה ידני לא פועל במהירות כזו, וגם לא עבודה לילית.
  • אשכולות מסונכרנים. שבע עשרה חבילות המתחזות לשמות שירות פנימיים של PayPal פורסמו בתוך אותן דקות ספורות, כולן בגרסה 28.0.0. זה לא נפח, זה מרוץ: קיים מספר גרסה מנופח כדי לדרג את החבילה הפנימית שצוותיכם כתבו. אותו טריק הופיע שוב שבועות לאחר מכן עם @umschool/platform פורסם ב- 999.0.0.
  • התמדה באמצעות הסרה. קמפיין החיקוי של בייליס מתנהל כבר שבועות. שמות מתחלפים, גרסאות מטפסות, פרסום מחדש נמשך לאחר גילוי. מפעיל שמתייחס להסרות כאל עלות של עשיית עסקים ולא כסיבה להפסקה, הוא מפעיל שביקורת רבעונית שלכם לעולם לא תצליח להשיג.

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

חֲבִילָהפורסם (UTC)נותר עומד
moidev2026-08-16 16:315h 58m
moidevx2026-08-17 03:2413h 23m
moidevz2026-08-26 03:3812h 56m
moideva2026-08-26 18:581h 33m
amicat2026-08-28 20:4817m
bmcat2026-08-28 21:1747m
eyevox2026-08-28 21:4421m
moidevh2026-08-31 03:2247m

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

מדוע תוכנית הפגיעות שלך לא רואה זאת

זוהי הנקודה המבנית, וזו שרוב צוותי האבטחה לא הפנימו.

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

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

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

מה המטענים עושים בפועל עכשיו

התמונה הנאיבית של חבילות npm זדוניות היא כורה קריפטוגרפי. המציאות הנוכחית היא גניבת אישורים המכוונת למפתחים, ויותר ויותר כלפי אישורי הבינה המלאכותית במכונות שלהם.

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

בקנה מידה גדול יותר, גל ה-CHAINDROP של תולעת שי-חולוד הגיע ליותר מ-400 חבילות ו-1,700 גרסאות בתחילת אוגוסט 2026, עם סך של 1.3 מיליארד הורדות חודשיות. האספן שלו סרק יותר מ-300 דפוסי אישורים, כולל OpenAI, Anthropic ומפתחות Cursor. מכונות מפתחים הפכו לבעלי ערך רב לפניcisאלי בגלל אישורי המודל שיושבים עליהם.

מוסכמות מתן שמות עקבו אחר הכסף. אשכולות אחרונים מתחזים ל-SDK של קריפטו ו-DeFi, מודולי תשלום, ספריות API של WhatsApp, כלי עזר של AWS, ובמקרה אחד, חבילה הממותגת בגלוי על שם כלי תוקף מסוג dark-LLM.

מה באמת עוצר חבילות npm זדוניות

ארבע בקרות, לפי הסדר שבו הן משתלמות.

1. גילוי בעת הפרסום, לא בעת הגילוי. אזהרה מוקדמת של Xygeni מפני תוכנות זדוניות מנתח חבילות שפורסמו לאחרונה ב-npm, PyPI, Maven ורישומים אחרים ברגע הופעתן, תוך שימוש בניתוח התנהגותי ואנומליות במקום להמתין לחתימה או לדוח. זוהי הנקודה היחידה בציר הזמן שקדמה לבנייה שלך.

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

3. נעילת קבצים ויצירת גיבוב (hash pinning). השתמש npm ci ב-CI ולא npm install, כך שנבנה עץ התלות המדויק בקובץ הנעילה. הוא סוגר את נתיב ההחלפה עליו מסתמכים typosquats וגרסאות מנופחות.

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

צפה ברשימה, או אוטומציה

לאף אחד אין את הקשב לקרוא פיד רישום כל שבוע. זו המטרה של אוטומציה.

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

התחל בחינם, או לקרוא סיכום קוד זדוני השבוע ראשון.

שאלות נפוצות

מהן חבילות npm זדוניות?

חבילות שפורסמו ברישום npm שנבנו במכוון כדי לגרום נזק: גנבי אישורים וארנקים, דלתות אחוריות, גנבי חיוג (droppers) וארטיפקטים של בלבול תלויות המתחזים לשמות חבילות פנימיים או פופולריים.

כמה נפוצות חבילות npm זדוניות?

ברציפות. בשבע מהדורות אחרונות של תקציר הקוד הזדוני שלנו, Xygeni אישר 635 חבילות זדוניות, החל מתריסר בשבוע שקט ועד ליותר מ-200 במהלך קמפיינים פעילים. npm מהווה את הרוב המכריע.

כמה זמן חבילות npm זדוניות נשארות זמינות?

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

האם חבילות npm זדוניות מקבלות CVE?

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

איך אני בודק אם חבילה זדונית לפני ההתקנה?

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

מהי בלבול תלות?

פרסום חבילה ציבורית עם שם זהה לחבילה פנימית, בדרך כלל בגרסה מוגדלת, כך שהפותר יעדיף את העותק של התוקף. אשכול PayPal-name בגרסה 28.0.0 הוא דוגמה לספר לימוד.

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

אבטחו את פיתוח ואספקת התוכנה שלכם

עם חבילת המוצרים Xygeni