חבילת Bitwarden מזויפת הופצה ב-npm למשך שעה וחצי
ב-22 באפריל, חבילת CLI רשמית לכאורה בשם @bitwarden/[email protected] הופצה ב-npm. במשך 93 דקות, כל מי שהתקין את החבילה באמצעות npm קיבל גרסה זדונית במקום את הכלי המקורי. Bitwarden זיהתה את הפריצה, הסירה את החבילה והבהירה כי לא נמצאה עדות לגישה לאחסון המשתמשים או למערכות הייצור שלה.
התוקפים לא התעניינו באחסון Bitwarden
חברת האבטחה JFrog ניתחה את המטען הזדוני וגילתה כי הוא לא התמקד באחסון Bitwarden עצמו. במקום זאת, הוא כיוון לאישורי גישה קריטיים אחרים:
- אישורי GitHub – מאפשרים גישה למאגרי קוד, ניצול תהליכי CI/CD והזזת תנועה לרוחב באמצעות אוטומציה.
- אישורי npm – יכולים לשמש לפרסום חבילות זדוניות או לשינוי תהליכי שחרור.
- מפתחות SSH – פותחים גישה לשרתים, מאגרי קוד פנימיים ותשתיות.
- היסטוריית מעטפת – יכולה לחשוף סיסמאות שהודבקו, פקודות פנימיות ושמות מארחים.
- אישורי ענן (AWS, GCP, Azure) – חושפים עומסי עבודה בענן, אחסון ומערכות פריסה.
- סודות GitHub Actions – נותנים גישה לאוטומציה, פלטי בנייה, פריסות וסודות מורדים.
- קבצי תצורה של כלי AI – יכולים לחשוף מפתחות API, נקודות קצה פנימיות והגדרות מודלים.
מדוע אישורים אלה חשובים?
אישורים אלה מהווים את הבסיס לתשתיות המודרניות של ארגונים. הם מאפשרים:
- ניהול גישה למאגרי קוד ומערכות.
- הפעלת תהליכי CI/CD והפצה אוטומטית.
- ניהול עומסי עבודה בעננים שונים.
- הגנה על מידע רגיש במערכות פיתוח.
איך התבצעה המתקפה?
על פי ניתוח JFrog, החבילה הזדונית שינתה הן את הקוד המוקדם להתקנה (preinstall hook) והן את נקודת הכניסה הראשית של הכלי (bw binary entrypoint). השינוי הפעיל טעינה של זמן ריצה בשם Bun והפעלת מטען זדוני מוסווה. המתקפה הופעלה הן בזמן ההתקנה והן בזמן הריצה.
ארגון שהשתמש ב-CLI הזדוני לא היה צריך לגעת כלל בסיסמאות המאוחסנות, בעוד שהנוזקה אספה באופן שיטתי את האישורים השולטים בתשתיות CI/CD, חשבונות ענן ואוטומציה של פריסה.
הקשר לתקיפות שרשרת אספקה נרחבות
חברת האבטחה Socket העריכה כי המתקפה ניצלה פעולה מזויפת ב-GitHub Actions בתהליך ה-CI/CD של Bitwarden. ממצאים אלה עולים בקנה אחד עם דפוס תקיפות שנצפה על ידי חוקרי Checkmarx. Bitwarden אישרה כי האירוע קשור למתקפת שרשרת אספקה רחבה יותר שזוהתה על ידי החוקרים.
הסיכון שבמודל האמון של npm
נעשה שימוש ב-npm כדי להפיץ את החבילה הזדונית, תוך ניצול אמון רב שנים במערכת ההפצה של הרישומים. npm בנתה מודל פרסום מאובטח יותר באמצעות החלפת אסימוני פרסום ארוכי טווח באימות מבוסס OIDC ל-CI/CD. צעד זה נועד להפחית בדיוק סיכונים מסוג זה.
Bitwarden: לא נגרם נזק למשתמשים
Bitwarden הודיעה כי לא נמצאה עדות לגישה לאחסון המשתמשים או למערכות הייצור שלה בעקבות המתקפה. החברה הדגישה כי החבילה הזדונית הוסרה במהירות וכי היא עובדת בשיתוף פעולה עם גורמי אבטחה כדי למנוע אירועים דומים בעתיד.
מסקנות והמלצות
התקפה זו מדגישה את הסיכונים הטמונים בשימוש בכלי צד שלישי ובאוטומציה. מומחי אבטחה ממליצים:
- לבדוק בקפידה את מקורות ההתקנה – לוודא כי החבילות מופצות על ידי המפתחים הרשמיים.
- להגביל הרשאות – לא לאפשר הרשאות מוגזמות לכלי אוטומציה.
- לנטר פעילות חשודה – לזהות שינויים לא צפויים בתהליכי CI/CD או במערכות הענן.
- להשתמש באימות מבוסס OIDC – להפחית את הסיכון מפרסום חבילות מזויפות.