חיפוש

LiteLLM נפרצה שוב, ולפי החברה עוזר קוד של AI השאיר את המפתחות בלוגים

ב-21 באוקטובר עלתה ל-PyPI, המאגר הציבורי של חבילות Python, גרסה זדונית של LiteLLM – ספרייה שמורדת כ-23 מיליון פעמים בשבוע ושדרכה אפליקציות פונות למודלי AI. במשך כשעתיים אפשר היה ל…

צוות דיגיטוקס ·

נכתב בסיוע AI

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

ב-21 באוקטובר עלתה ל-PyPI, המאגר הציבורי של חבילות Python, גרסה זדונית של LiteLLM – ספרייה שמורדת כ-23 מיליון פעמים בשבוע ושדרכה אפליקציות פונות למודלי AI. במשך כשעתיים אפשר היה להוריד אותה, והיא גנבה אישורי גישה מכל מחשב שהותקנה בו. אלא שהפרט המטריד באמת הוא הדרך פנימה: לפי החברה, היא עברה דרך הלוגים של LiteLLM עצמה, שבהם עוזר קוד של AI השאיר אסימוני גישה.

השער שמחזיק את כל המפתחות

LiteLLM, של חברת BerriAI מבוגרות Y Combinator, היא מעין מרכזייה: האפליקציה מדברת איתה, והיא מעבירה את הבקשה לספק המודל המתאים, מתוך יותר ממאה ממשקים לפי החברה. כדי לעשות זאת היא מחזיקה את מפתחות הגישה של הלקוח לכל ספק. לפי Datadog, הספרייה מורדת כ-23 מיליון פעמים בשבוע, ובין הלקוחות שהחברה עצמה מונה נמצאות Adobe, Samsara ו-Lemonade. במילים פשוטות: מי שפורץ לשער, מגיע למפתחות.

שעתיים בחלון הראווה

לפי LiteLLM, גרסה 1.107.0 היתה זמינה ב-PyPI כשעתיים, ותמונות ה-Docker שלה (גם תחת התגית latest) כשלוש שעות; לפי Datadog, שתיהן הוסרו מעט מוקדם יותר. החברה מציינת שלקוחות הגרסה הארגונית מהמאגר הפרטי לא נפגעו, ושגרסאות קודמות בטוחות.

הנוזקה הוסתרה בקבצים שרצים בכל הפעלה של Python בסביבה, ולפי Datadog גם אם LiteLLM עצמה לא נטענה כלל. מה היא אספה, לפי Datadog: מפתחות ענן, מפתחות SSH ואסימונים של מפתחים, מפתחות של ספקי מודלים ושל כלי AI כמו Claude, Codex, Gemini, Cursor ו-Copilot, סיסמאות ועוגיות מהדפדפן, ובשרת LiteLLM גם את הטבלאות שבהן שמורים מפתחות הלקוחות לספקים. הכול הוצפן ונשלח לדומיין מתחזה, litellm[.]dev, שנרשם לפי StepSecurity ב-13 באוקטובר, כשמונה ימים לפני התקיפה. בנוסף הותקנה דלת אחורית שבודקת כל שעה אם יש קוד חדש להריץ; Datadog לא ראתה שלב שני כזה בשטח.

מקף אחד של הבדל

איך זה קרה? לפי LiteLLM, התוקף החזיק שלושה אסימוני GitHub של מהנדסים בחברה. באחד מהם, של אחד משני הבעלים של הארגון, הוא כיבה את הגנות הענף אחרי שאלה חסמו את השינוי. אז הריץ את צינור השחרור האמיתי של החברה על עותק מזויף בשם Berri-AI/litellm, במקום BerriAI/litellm – מקף אחד של הבדל – ופרסם ממנו חבילות חתומות; באסימון השלישי מחק את רישומי ההרצה. Datadog העריכה שהשם נבחר כדי לחמוק מעינו של בודק אנושי שמעיף מבט. עוד לפי החברה, ביום שני של אותו שבוע היא הרחיבה זמנית הרשאות שחרור לשני מהנדסים.

מה Claude Code השאיר בלוגים

כאן הסיפור מקבל תפנית. LiteLLM כתבה שהיא "צפתה במצבים מסוימים שבהם Claude Code מטמיע את אסימון ה-OAuth של GitHub CLI של המשתמש בגוף התשובה" (LiteLLM). כשגופי התשובות נרשמים ביומן, האסימונים עלולים להגיע ללוגים של LiteLLM. החברה מצאה משתמש לא צפוי בפריסה פנימית שלה שהיתה חשופה לאינטרנט, והיא מאמינה שמשם שלף התוקף את האסימונים. איך נכנס לפריסה הזו לא ידוע; החברה חושדת בפגיעות שתוקנה לאחרונה, ולא מסרה את שמה.

זו גרסת החברה, ואיש לא אימת אותה: Wiz ו-StepSecurity מביאות אותה כטענה של LiteLLM בלבד, ו-Anthropic לא הגיבה עליה בפומבי, נכון לחיפוש שלנו ב-22 באוקטובר. וחשוב להבחין: אין כאן עדות שה-AI תקף, או שהתוקף השתמש ב-AI. הטענה היא רק שכלי AI דיבר יותר מדי, ושמישהו הקשיב.

פעם שנייה השנה

זו הפריצה השנייה ל-LiteLLM השנה. ב-24 במרץ פורסמו ב-PyPI הגרסאות 1.82.7 ו-1.82.8 הזדוניות, אחרי שסורק האבטחה Trivy, שרץ בצינור של החברה, נפרץ בעצמו וחשף את אסימון הפרסום שלה (Trend Micro). Datadog קשרה את אירוע מרץ לקבוצה בשם TeamPCP, אבל לדבריה ולדברי JFrog אין ראיה שקושרת אליה את אירוע אוקטובר.

אחרי מרץ, לפי LiteLLM, היא חיזקה את הצינור במידה משמעותית: מאגר פרטי, פרסום מאומת (Trusted Publishers), תגיות Docker שאי אפשר לשנות, חתימה על תמונות, ופרסום מחשבון שנעול למחשב נייד מסוים במשרד. והיא מדגישה ש"התוקף נאלץ לפרוץ כמה בקרות אבטחה עצמאיות כדי להצליח". האם זה מנחם? זה נכון, אבל StepSecurity מוסיפה שהבקרות שכשלו הן דווקא אלה ששמרו על הגדרת תהליך העבודה, ושחתימה תקפה אינה הוכחה לבטיחות. ואגב, זה לא תקדים: באוגוסט 2025 גרסאות זדוניות של כלי הבנייה Nx אף הפעילו את כלי ה-AI שעל מחשבי המפתחים כדי שיחפשו עבורן סודות (Wiz).

מה עושים, ומה לא ידוע

מי שהתקין את גרסה 1.107.0, או משך את תמונות ה-Docker בחלון הזמן, צריך להניח שהמפתחות שלו נגנבו ולהחליף כל מפתח וסוד שהמחשב או השרת הגיעו אליהם. לפי LiteLLM עדיף לבנות מחדש את התמונות והסביבות, ולהצמיד את הספרייה לגרסה 1.106.2 (גם Datadog ממליצה לחזור אליה).

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

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

הקשר

לא כתבנו בעבר על LiteLLM, אבל זה הצד השני של מגמה שאנחנו עוקבים אחריה בתזת יום הדין. כפי שדיווחנו, סוכני AI פרצו לאתרים של יותר מ-100 חברות בכ-50 דולר לפריצה: שם ה-AI תקף, וכאן, לפי החברה, רק השאיר מפתח ביומן. בסיפור של Grok Bot שאלנו מי אחראי כשסוכן מקבל את המפתחות להודעות, למייל ולחשבון המסחר, ובנוהל החירום הוולונטרי של NSA, ‏NIST ו-CISA ראינו איך הרגולטורים מתכוננים לסוכן שיוצא משליטה.

הניתוח שלנו

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

מקורות

מקורות

  1. docs.litellm.ai (docs.litellm.ai)

עוד בנושא עליית הסוכנים החכמים