ככל שמחזור החיים של שרשרת האספקה של התוכנה מתקדם מקוד המקור ועד לפריטים הניתנים לביצוע, שלב הבנייה מהווה צומת קריטי. עם זאת, שלב טרנספורמציה זה חשוף גם למגוון איומים שעלולים לסכן את שלמות התוכנה. build securityאיומים אלה יכולים לחדור לתהליך הבנייה באמצעות שיטות שונות, כולל עקיפת התקנות הקבועות CI/CD pipeline, שינוי בקרת קוד לאחר תחילת המקור, פגיעה בתהליך הבנייה עצמו, או מניפולציה של מאגרי חפצים. בפוסט בבלוג זה, אנו מתעמקים באיומים אלה ובוחנים את התקפות הבנייה הנפוצות ביותר בשרשרת האספקה של תוכנה. תוכן זה ממשיך את סדרת הבלוגים שלנו, שחוקרת... software supply chain security לאורך ה SDLC.
שלב הבנייה במחזור החיים של פיתוח תוכנה
שלב הבנייה של שרשרת האספקה של התוכנה כולל את תהליך הפיכת קוד המקור לפריטים הניתנים להרצה של תוכנה. שלב זה כולל קומפילציה, קישור ואריזה של קוד המקור, כמו גם יצירת חבילות התקנה וקבצי תצורה.
Build security איומים הם פגיעויות שעלולות לאפשר ליריב להכניס שינויים לא מורשים לתוכנה במהלך תהליך הבנייה מבלי לשנות את קוד המקור. איומים אלה יכולים להופיע בשיטות שונות, כגון פגיעה בסביבת הבנייה או ניצול פגיעויות בכלי בנייה.

איומי שרשרת האספקה הנפוצים ביותר של תוכנה - התקפות Build
עקיפה CI/CD
זה מתייחס לנוהג של עקיפת החוקים הקבועים CI/CD (אינטגרציה רציפה ומסירה רציפה) pipeline לבנות ולפרסם תוכנה באופן ישיר מבלי לעבור את תהליכי הבדיקה, האימות והביקורת הקפדניים שבדרך כלל נאכפים על ידי הרשות הרשמית pipelineניתן לעשות זאת על ידי בנייה ידנית של התוכנה מחוץ ל- CI/CD סביבה או באמצעות כלים או סקריפטים המאפשרים שינויים בלתי מורשים בתהליך הבנייה. דוגמה לסוג זה של מתקפת וקטור הייתה התקפת ג'נקינסבשנת 2022, האקרים חדרו למבנה pipeline של פרויקט תוכנה פופולרי בקוד פתוח בשם ג'נקינס. ההאקרים הזריקו קוד זדוני לתוך Jenkinsfile, שהוא סקריפט שמגדיר את תהליך הבנייה. הקוד הזדוני אפשר להאקרים לעקוף את CI/CD pipelineמבצעות בדיקות אבטחה ומחדירות את הקוד שלהן לתהליך הבנייה. קוד זה מבוצע לאחר מכן במערכות של ארגונים שהתקינו את התוכנה.
שינוי קוד לאחר בקרת קוד המקור
נוהג זה כרוך בביצוע שינויים בלתי מורשים בקוד המקור לאחר שהוא commitמשויך למערכת בקרת מקור מהימנה (SCS) ולאחר מכן בניית התוכנה באמצעות קוד זה שעבר שינוי. ניתן לעשות זאת על ידי שינוי ישיר של הקוד בתחנת עבודה של המפתח או על ידי שימוש בכלים או סקריפטים חיצוניים כדי להחדיר קוד זדוני לתהליך הבנייה. דוגמה למתקפת וקטור זו הייתה מתקפת GitLab בשנת 2022. האקרים חדרו לתהליך הבנייה. pipeline of GitLabההאקרים הזריקו קוד זדוני לתוך מעבדת הגיט CI/CD pipeline, שהוא כלי שמאפשר אוטומציה של build security תהליך. הקוד הזדוני אפשר להאקרים לשנות את הקוד לאחר שנבדק בקרת המקור. זה אפשר להם להחדיר את הקוד שלהם לתוכנה, אשר לאחר מכן בוצעה במערכות של ארגונים שהתקינו את התוכנה.
תהליך בנייה של פשרה
זה כרוך במניפולציה או שינוי של תהליך הבנייה עצמו, בין אם באמצעות גישה ישירה לסביבת הבנייה ובין אם על ידי ניצול פגיעויות בכלי בנייה או תלויות של צד שלישי. ניתן לעשות זאת כדי להכניס קוד זדוני לפלט הבנייה, להתערב במקור הבנייה או לשבש את תהליך הבנייה לחלוטין. הדוגמה המפורסמת ביותר להתקפה וקטורית זו הייתה... מתקפת SolarWindsתוקף השיג גישה בלתי מורשית לפלטפורמת הבנייה של SolarWinds, מערכת המשמשת להידור ואריזת תוכנת SolarWinds Orion. סקריפט זה הזריק קוד זדוני לתוכנת SolarWinds Orion שעברה הידור. כאשר משתמשים התקינו את התוכנה שנפגעה, הקוד הזדוני הופעל על מערכותיהם, מה שאפשר לתוקף גישה בלתי מורשית למערכותיהם. התוקף הצליח גם לגנוב נתונים רגישים מהמערכות שלהם, כגון אישורים, קניין רוחני ומידע על לקוחות.
מאגר חפצים שנפגע
זה מתייחס לגישה או מניפולציה בלתי מורשית של מאגר חפצים, שבו מאוחסנים חבילות תוכנה וקבצים בינאריים להפצה למשתמשים פנימיים או חיצוניים. תוקפים יכולים לנצל פגיעות זו כדי להכניס קוד זדוני, להתערב באותנטיות של התוכנה או לשבש את תהליך הפריסה. דוגמה להתקפה וקטורית זו הייתה אבני הרובי בשנת 2022האקרים חדרו למאגר החפצים של RubyGems. ההאקרים החליפו חפץ לגיטימי בחפץ זדוני, אשר לאחר מכן הורד על ידי אלפי ארגונים שבנו תוכנה עם Ruby on Rails. החפץ הזדוני אפשר להאקרים לבצע קוד שרירותי על מערכות של ארגונים שהתקינו את התוכנה. הדבר עלול לאפשר להם לגנוב נתונים, להתקין תוכנות זדוניות או לשבש את הפעילות.
הערות אחרונות
ככל שארגונים ממשיכים לאמץ שיטות פיתוח תוכנה המדגישות אוטומציה ומסירה רציפה, החשיבות של אבטחת תהליך בניית התוכנה מעולם לא הייתה גדולה יותר. על ידי יישום אמצעי אבטחה חזקים לאורך כל שלב הבנייה, ארגונים יכולים להפחית משמעותית את הסיכון שלהם ליפול קורבן להתקפות זדוניות שעלולות לפגוע בשלמות ובאבטחה של התוכנה שלהם.
האסטרטגיות המתוארות בפוסט זה בבלוג והדוגמאות המובאות משמשות תזכורת לכך ששלב הבנייה הוא נקודה פגיעה בשרשרת האספקה של התוכנה. ארגונים צריכים לשים לב לאיומים אלה וליישם את אמצעי האבטחה הדרושים כדי להגן על התוכנה שלהם מפני תקיפה. בכך, הם יכולים להבטיח את שלמותה, אבטחתה ואמינותה של התוכנה שלהם עבור המשתמשים והלקוחות שלהם.
הצטרפו למסע שלנו לעבר מערכת תוכנה מאובטחת
אל תפספסו את ההזדמנות הזו להישאר צעד אחד קדימה בהימנעות מאיומי שרשרת האספקה של תוכנה. הירשמו לבלוג שלנו עוד היום והיו הראשונים לקבל את התובנות האחרונות שלנו, כדי להבטיח שהארגון שלכם יישאר עמיד ומאובטח לנוכח איומים מתפתחים. יחד, נוכל לבנות מערכת אקולוגית תוכנה חזקה ומאובטחת יותר עבור כולם.
צפו בהדגמת הווידאו שלנו







