שליחת יומנים, התראות ונתוני טלמטריה באמצעות דיודה נתונים

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

מתקפת Axios npm: כיצד חבילה מהימנה הפכה למערכת העברת תוכנות זדוניות

עַל יְדֵי OPSWAT
שתף את הפוסט הזה

חטיפת חבילות Npm היא מתקפת שרשרת אספקה ​​של תוכנה שהופכת אמון בחבילה לנתיב תקיפה. תוקפים אינם צריכים לשנות קוד מאגר אם הם יכולים לשלוט בחשבון שמפרסם את החבילה.

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

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

מה קרה במתקפת ה-npm על Axios

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

הפעולה הייתה מתוכננת ומכוונת. כ-18 שעות לפני הפעלת המטען, פורסמה חבילה כפיתוי, שיצרה היסטוריית פרסומים מבלי לעורר חשד מיידי. לאחר מכן, בתוך כ-39 דקות, התוקף העלה שתי גרסאות זדוניות: axios 1.14.1 לענף המהדורות המודרניות ו-axios 0.30.4 לענף המהדורות הישנות.

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

איך שורה אחת בקובץ package.json הפכה לנקודת תורפה

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

תלות זו הופעלה באמצעות וו postinstall של npm. ברגע שתחנת עבודה של מפתח, צינור CI/CD או מערכת בנייה ביצעו את הפקודה npm install, החבילה הזדונית יכלה ליצור קשר עם שרת שבשליטת התוקף, לאחזר מטען ספציפי למערכת ההפעלה ולהתחיל בהפעלה. 

המטענים הוכנו עבור מערכות ההפעלה macOS, Windows ו-Linux. התקיפה תוכננה מראש להיות רב-פלטפורמית. לאחר ההפעלה, תוכנת ההחדרה מחקה את עקבותיה והחליפה את הקובץ package.json האמיתי בגרסה מזויפת, מה שהקשה מאוד על ביצוע בדיקה פורנזית מאוחרת יותר. 

מדוע בדיקת הקוד המסורתית לא זיהתה את המתקפה על Axios

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

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

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

מדוע רדיוס הפיצוץ הוא כל מה שהחבילה נוגעת בו

ההשפעה של חבילת npm שנפרצה אינה החבילה עצמה. ההשפעה היא כל מה שהחבילה נוגעת בו. 

ברוב הארגונים, הדבר כולל צינורות CI/CD בעלי הרשאות מורחבות, נקודות קצה של מפתחים עם מפתחות SSH ואסימוני ענן, שרתים לבניית תוכנה בעלי גישה לכתיבה למאגרי ארטפקטים, וכלי פריסה המחוברים למערכות ייצור. חבילה זדונית אינה צריכה להישאר בתוך עץ התלות כדי לגרום נזק. היא זקוקה רק לנקודת ביצוע אחת מהימנה. 

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

חולשות מבניות שנחשפו בעקבות מתקפת Axios

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

אמון בזהויות של אחראי החבילות

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

גרסאות תלות צפות

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

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

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

צינורות CI/CD עם נראות מוגבלת בזמן ריצה

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

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

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

מאגרי אישורים ללא מפעילים של החלפה מהירה

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

אילו אמצעי אבטחה היו משנים את התוצאה

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

1. סריקת תוכנות זדוניות ברמת החבילה לפני ההתקנה

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

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

MetaDefender Software Supply Chain היא פתרון אבטחת שרשרת האספקה של תוכנה OPSWATלאימות רכיבי תוכנה, ספקים ותהליכי בנייה. הפתרון משתמש בזיהוי איומים רב-מנועי, כולל סריקה רב-מנועית של Metascan המשתמשת ביותר מ-30 מנועי אנטי-וירוס, כדי לבדוק חבילות תוכנה לאיתור תוכנות זדוניות, פגיעויות וסודות קשיחים לפני כניסתן למחזור החיים של הפיתוח.

2. ניהול סודות יזום באמצעות מפעילים לסיבוב

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

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

3. Supply Chain וניטור תלות

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

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

למידע נוסף עלSupply Chain Software

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

צפו בסמינר המקוון לפי דרישה:Supply Chain Software — החוליות החלשות שתוקפים מנצלים

שאלות נפוצות

מהי מתקפת שרשרת אספקה ב-npm?

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

כיצד הצליחו התוקפים לפרוץ לחבילת ה-npm של Axios?

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

מה עשתה תוכנת הזדון בהתקפה על Axios?

התוכנה הזדונית ששימשה בהתקפה על Axios השתמשה ב-hook לאחר ההתקנה, שהופעל במהלך תהליך ה-npm install. ה-hook יצר קשר עם שרת שנשלט על ידי התוקף, הוריד סוס טרויאני לגישה מרחוק עבור macOS, Windows או Linux, הפעיל אותו, ולאחר מכן ניסה למחוק את עקבותיו על ידי החלפת מטא-נתוני החבילה בתוכן מזויף.

מדוע בדיקת הקוד לא זיהתה את המתקפה על שרשרת האספקה של Axios?

בדיקת הקוד לא זיהתה את המתקפה באמצעות Axios מכיוון שהלוגיקה הזדונית לא הוכנסה לקוד המקור של Axios. השינוי הגלוי ברמת המאגר היה רשומת תלות בקובץ package.json, בעוד שהתוכנה הזדונית עצמה הועברה באמצעות חבילה חיצונית, מחוץ להיקף הרגיל של בדיקת קוד המקור.

כיצד יכולים ארגונים לזהות חבילות npm זדוניות לפני ההתקנה?

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

האם קיבוע גרסאות מונע מתקפות על שרשרת האספקה של npm?

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

הישאר מעודכן עם OPSWAT !

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