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