CISA: תולעת Shai-Hulud פגעה במעל 500 חבילות npm וגנבה מפתחות של מפתחים
ב-23 בספטמבר 2025 פרסמה CISA התראה על תולעת Shai-Hulud ב-npm. היא גונבת טוקנים ומפתחות ענן ומפיצה את עצמה, ו-CISA מפרטת מה לעשות.
TL;DR בקצרה
- לפי CISA, תולעת Shai-Hulud פגעה במעל 500 חבילות npm.
- הנוזקה גונבת טוקנים של GitHub ומפתחות API של AWS, GCP ו-Azure, ומעלה אותם למאגר ציבורי.
- CISA ממליצה לנעול גרסאות מלפני 16 בספטמבר 2025, לסובב סודות ולהפעיל אימות עמיד לפישינג.
- GitHub הכריזה ב-22 בספטמבר על חיזוק פרסום החבילות: 2FA, טוקנים קצרי חיים ו-Trusted Publishing.
ב-23 בספטמבר 2025 פרסמה CISA התראה על תולעת Shai-Hulud, שפגעה במעל 500 חבילות ב-npm. התולעת גונבת מפתחות ממחשבים של מפתחים, ומפיצה את עצמה לחבילות נוספות. CISA ממליצה לסובב את כל פרטי הגישה של מפתחים, ולנעול גרסאות שפורסמו לפני 16 בספטמבר.
איך תולעת Shai-Hulud ב-npm עובדת
npm הוא המאגר הגדול של חבילות JavaScript. מפתחים מושכים ממנו קוד בכל פרויקט. לפי CISA, אחרי שהתוקף נכנס, הנוזקה סורקת את הסביבה ומחפשת סודות. היא מחפשת בעיקר טוקנים אישיים של GitHub. היא מחפשת גם מפתחות API של AWS, של Google Cloud ושל Azure.
היא שולחת את הסודות לכתובת של התוקף. היא גם מעלה אותם למאגר ציבורי בשם Shai-Hulud ב-GitHub. כך כל אחד יכול לראות אותם ולהשתמש בהם. זה מסביר למה התראה על תולעת Shai-Hulud מדגישה החלפת פרטי גישה.
סקריפט שרץ אחרי ההתקנה פועל אוטומטית כשמתקינים את החבילה. לכן מפתח שהתקין גרסה מזוהמת מסכן את הסודות שעל המחשב שלו, ושל מערכת הבנייה. זו הסיבה שהסודות הם היעד העיקרי.
ההפצה אוטומטית. הנוזקה מזדהה ב-npm בשם המפתח שנפרץ, ומזריקה קוד לחבילות אחרות שלו. אחר כך היא מפרסמת גרסאות מזוהמות. לפי GitHub, התולעת השתמשה בסקריפטים זדוניים שרצים אחרי ההתקנה. GitHub קיבלה דיווח עליה ב-14 בספטמבר, והסירה מעל 500 חבילות.
מה ממליצה CISA לעשות מול תולעת Shai-Hulud
CISA מונה כמה צעדים. הראשון הוא לבדוק תלויות. עוברים על package-lock.json ועל yarn.lock, כולל תלויות פנימיות, וגם על עותקים שמורים במאגרי הארטיפקטים. הבדיקה חשובה גם לתלויות מקוננות, כי חבילה לגיטימית יכולה למשוך גרסה מזוהמת בעקיפין. אחר כך נועלים את התלויות לגרסאות שפורסמו לפני 16 בספטמבר 2025.
הצעד השני הוא להחליף מיד פרטי גישה של מפתחים. CISA דורשת גם אימות רב-שלבי עמיד לפישינג בחשבונות GitHub ו-npm. בנוסף היא ממליצה לחסום חיבורים יוצאים לדומיינים של webhook.site, ולעקוב ביומני חומת האש.
הצעד השלישי הוא לחזק את GitHub. מסירים אפליקציות ו-OAuth שאין בהם צורך, ובודקים webhooks וסודות במאגרים. CISA ממליצה להפעיל הגנת ענפים, התראות Secret Scanning ועדכוני אבטחה של Dependabot.
מה משנה GitHub בפרסום חבילות npm
ב-22 בספטמבר פרסמה GitHub תוכנית לחיזוק npm. פרסום חבילות יתאפשר בשלוש דרכים בלבד. הראשונה היא פרסום מקומי עם 2FA. השנייה היא טוקנים מוגבלים בתוקף של שבעה ימים. השלישית היא Trusted Publishing, שבו אין צורך לשמור טוקן במערכת הבנייה.
GitHub מתכננת להפסיק לתמוך בטוקנים קלאסיים ובקודי TOTP, ולעבור ל-2FA מבוסס FIDO. גם אפשרות לעקוף 2FA בפרסום מקומי תוסר. השינויים ייכנסו בהדרגה, עם לוחות זמנים ומדריכי מעבר.
מה קרה מאז
ב-24 בנובמבר 2025 דיווחה Wiz על גל שני, Shai-Hulud 2.0, עם כ-700 חבילות לפחות. Wiz מצאה גם מעל 25 אלף מאגרים זדוניים. הגל הזה פועל כבר בשלב ה-preinstall.
מה זה אומר עבורכם
- בדקו תלויות: חפשו ב-lockfile חבילות שהושפעו. נעלו גרסאות שפורסמו לפני 16 בספטמבר.
- החליפו סודות: החליפו טוקנים של GitHub ו-npm ומפתחות של AWS, של GCP ושל Azure.
- חפשו עקבות: בדקו אם נוצר אצלכם מאגר בשם Shai-Hulud ב-GitHub.
- חזקו חשבונות: אכפו אימות רב-שלבי עמיד לפישינג, ובדקו אפליקציות OAuth.
- צמצמו התקנות: שקלו להריץ התקנות ב-CI בלי סקריפטים, ועם טוקנים קצרי חיים.
מקורות והרחבה
- Widespread Supply Chain Compromise Impacting npm EcosystemCISA
- Our plan for a more secure npm supply chainGitHub
- Sha1-Hulud 2.0Wiz
הכתבה נכתבה במקור בעברית על ידי מערכת GEEKLIK, על בסיס המקורות שלמעלה ובדיקת העובדות מולם.
מצאתם טעות? דווחו לנו