הסבר על מתקפת Shai-Hulud על NPM
|
Getting your Trinity Audio player ready...
|
עדכון נובמבר 2025: בהמשך המאמר הסבר על המתקפה השניה ("Shai‑Hulud 2.0")
מתקפת סייבר נרחבת המכוונת ל-NPM ecosystem החלה ב-16 בספטמבר 2025.
המתקפה זכתה לכינוי "Shai-Hulud".
המתקפה, המהווה התפתחות של אירוע קודם מלפני כשבוע,
מתפשטת כתולעת (worm) בעלת יכולת שכפול עצמי,
ומדביקה חבילות פופולריות, כולל אלו של Nx ו-CrowdStrike.

הסיכונים המרכזיים כוללים גניבת cloud credentials ומפתחות מפלטפורמות מרכזיות,
הפצה עצמית באמצעות חשבונות NPM developer accounts שנפרצו,
ודליפה של יותר מ-700 מאגרי GitHub repositories ציבוריים.
מה המשמעויות? ומה הפעולות לביצוע?
שימו לב כי מכונות נגועות נחשבות כפרוצות לחלוטין (fully compromised)!
מומלץ על נקיטת פעולה מיידית כגון סריקת חבילות קוד פתוח באמצעות כלי SCA tools,
הסרה או נעילה (pinning) של חבילות לגרסאות בטוחות,
ריענון הרשאות גישה למאגרים חיצוניים,
וכן לשקול התקנה מחדש של מערכות שנפגעו.
לטווח הרחוק יותר מומלץ לנקוט צעדי מנע נוספים כגון שימוש בכלים להגנת סודות (Secrets management),
הפעלת התרעות על חבילות נגועות, הקשחת images ועוד.
התראה זו מדגישה כי אבטחת שרשרת האספקה (supply chain security) חורגת כעת מעבר ל-CVEs מסורתיים וכוללת גם פרטי גישה,
הרשאות ופגיעויות CI/CD, ומחייבת התייעצות דחופה עם צוותי האבטחה.
במידה ואתם צריכים סיוע במיידי בפתרון הנושא עם ידע מעשי שלנו המשלב DevSecOps / DevOps
והגנה על קוד ואפליקציות, צרו איתנו קשר:
appsec@almtoolbox.com או טלפונית: 072-240-5222
ניתן להאזין כאן להסבר קצר על הנושא (2 דקות):
הסבר מעמיק יותר על הנושא (19 דקות):
ההסברים המוקלטים לעיל מתייחסים לגל התקיפה הראשון (ספטמבר 2025)
עדכון חשוב: Shai‑Hulud 2.0 – גל מתקפה נוסף מ‑ 24/11/2025
בסוף נובמבר 2025 זוהה גל נוסף ומשודרג של המתקפה, המכונה בקהילה Shai‑Hulud 2.0 או
“Sha1‑Hulud: The Second Coming”, שבמהלכו הושתלו גרסאות זדוניות חדשות במאות חבילות NPM נוספות, עם מאות גרסאות חדשות שנמשכו על ידי עשרות אלפי פרויקטים.
גל זה נתפס כהמשך ישיר לקמפיין מספטמבר – אך עם יכולות התפשטות, אוטומציה והרס מתקדמות יותר, והוא עדיין נחשב כאירוע פעיל ומתמשך.
מה חדש בגל השני?
בגרסת 2.0 המתקפה משתמשת בסקריפטים בזמן התקנה (install / preinstall lifecycle scripts) ובקבצי payload חדשים כמו setup_bun.js ו‑ bun_environment.js, שמאפשרים להריץ קוד זדוני כבר בשלב ההתקנה וללא אינטראקציה נוספת מצד המפתח. ה‑payload מעמיק הרבה יותר בסביבת ה‑CI/CD: הוא יוצר קבצים כגון cloud.json, environment.json, truffleSecrets.json ואף מנסה להחדיר קובץ workflow כדי לקבל דריסת רגל מתמשכת ב‑GitHub Actions.
בנוסף, המתקפה החדשה רושמת מכונות נגועות כ‑self‑hosted GitHub runners בשם SHA1HULUD, מה שמאפשר לתוקף להריץ קוד כרצונו בתוך תשתית ה‑CI/CD הארגונית לאורך זמן ובאופן סמוי יחסית. בחלק מהמקרים תועדה גם יכולת מחיקה ושיבוש מאגרים ו‑pipelines, כך שניסיון “לכבות” את המתקפה עלול להסתיים בפגיעה קשה בקוד ובתשתית.
היקף הפגיעה המעודכן
בהשוואה לגל הראשון, הגל השני הרחיב בצורה משמעותית את היקף ההדבקה, כאשר מאות חבילות NPM ייחודיות הודבקו (למעשה כמעט 800), עם למעלה מ‑20 מיליון הורדות שבועיות בסך הכל,
ומעל 25,000 – 28,000 מאגרי GitHub שנחשפו לסודות שנדלפו.
מספר ארגונים מוכרים, כולל חברות SaaS גדולות ופרויקטי קוד פתוח פופולריים,
דיווחו בדיעבד על פגיעה ונאלצו לבצע רוטציה מסיבית של סודות ושחזור סביבת CI/CD מלאה.
ה‑worm החדש אינו מוגבל עוד רק ל‑NPM: ישנם דיווחים על ניסיון התפשטות לאקוסיסטמות נוספות כמו Maven, תוך שימוש באותן טכניקות של גניבת סודות, רישום ראנרים זדוניים ופרסום מאגרים ייעודיים ב‑GitHub לצורך איסוף המידע. כל אלו מחזקים את ההבנה שמדובר בקמפיין שרשרת אספקה רחב ומתמשך, ולא באירוע בודד או נקודתי.
עדכון רשימת הסיכונים
בנוסף לסיכונים שכבר תוארו במאמר המקורי (גניבת cloud credentials, דליפת מאגרי GitHub ועוד), הגל הנוכחי מוסיף כמה דגשים חשובים:
- הפיכת סביבת ה‑CI/CD עצמה לנקודת שליטה מתמשכת של התוקף, כולל runners זדוניים ו‑workflows אחוריים.
- אוטומציה רחבה של “worming” – ניסיון שיטתי להדביק עוד חבילות, עוד מאגרים ועוד ארגונים באמצעות credentials שנגנבו קודם לכן.
- יכולות Privilege Escalation בסביבות Docker והפעלה בסביבות Linux, Windows ו‑macOS, תוך ניסיון לפרוץ מתוך קונטיינרים אל מערכת ההפעלה המארחת.
מכאן שמכונה או pipeline שנחשפו ל‑Shai‑Hulud 2.0 נחשבים לא רק “פרוצים לחלוטין” אלא גם כבסיס אפשרי להמשך התפשטות בתוך הארגון ומחוצה לו!
המלצות מעודכנות לפעולה:
לצד ההמלצות הקיימות לעיל (סריקת SCA, pinning לגרסאות בטוחות, ריענון הרשאות, התקנות מחדש וכו’), מומלץ להוסיף את הפעולות הבאות:
- ביצוע רוטציה אגרסיבית של כל הסודות שנשמרו בסביבות CI/CD, GitHub/GitLab, ענני AWS/Azure/GCP ו‑package registries – גם אם אין אינדיקציה ודאית לפגיעה.
- ביצוע Review מלא ל‑GitHub Actions / GitLab CI pipelines, כולל איתור workflows לא מוכרים (למשל כאלה שקשורים ל‑discussion events או runners חדשים), והסרתם המיידית.
- הקשחת ניהול runners: הגבלת self‑hosted runners, ניטור שמות/תוויות חשודות (למשל SHA1HULUD) ואכיפת הרשאות מינימליות על כל runner.
- שימוש בכלי SCA ו‑Secrets Scanning ייעודיים שמסוגלים לזהות גם דפוסי worm והתנהגות חשודה (install‑time scripts, טריגרים חריגים ב‑pipelines ועוד), ולא רק CVEs סטנדרטיים.
- בחינה רצינית של שימוש ב‑private registries / internal proxies עם allowlist (מעין firewall),
כדי לצמצם תלות ישירה ב‑NPM ציבורי ולמנוע משיכת גרסאות נגועות בזמן אמת.
קישורים רלוונטים:
- הקלטת וובינר הדרכתי: סקירה על SonarQube ומה חדש במוצר (בפרט SCA ו- SBOM)
- היצע הפתרונות שלנו סביב הגנה על קוד ואפליקציות, פיתוח מאובטח ו- DevSecOps
- כדאי לבדוק: שינויים ב- Bitnami Catalog עלולים להשפיע על ה- CI/CD שלכם
- הסבר על מתקפת שרשרת האספקה של NPM מתאריך 8/9/82025
- הקלטת וובינר הדרכתי על הקשחת קונטיינרים עם Docker
המאמר פורסם לראשונה בספטמבר 2025. עדכון אחרון: דצמבר 2025.
The image above was originally uploaded on YouTube under a CC BY license.