תלות בקוד פתוח הפכה למקור הולך וגדל של סיכון עבור ארגונים מכל הצורות והגדלים. log4j, xz Utils וסיפורים בעלי פרופיל גבוה אחרים הדגישו חולשות שיטתיות במערכת האקולוגית, שגורמי האיום מסוגלים יותר ויותר לנצל. אבל מעטים חשדו שאפל אי פעם תושפע. אחרי הכל, זה הספק שבודק בכבדות את כל היישומים המותרים ב-App Store שלו. ובכן, זה היה עד 1 ביולי, אז חוקרי אבטחה נפלו פצצת קוד פתוח נוספת: נקודות תורפה חדשות קריטיות במנהל תלות פופולרי המשמש ביותר משלושה מיליון יישומי macOS ו-iOS.

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

מה קרה?

הפגיעויות נמצאו ב-CocoaPods, מאגר לפרויקטים של Swift ו-Objective-C בקוד פתוח שמיליוני אפליקציות אפל תלויות בהם. הוא כולל למעלה מ-100,000 ספריות חיצוניות (או 'פודים'), שכמה מהאפליקציות הפופולריות בעולם משתמשות בהן - כולל Airbnb, אינסטגרם ו-Uber. לפי EVA Information Security, הפגיעויות הן כדלקמן:

CVE-2024-38368: פגם עיצובי בשרת CocoaPods מאפשר לכל משתמש לתבוע פוד שאין לו בעלים מזוהה ללא צורך באימות. יש היום אלפי תרמילים חסרי בעלים אלה. לפי Endor Labs, זה אומר ששחקן איום יכול היה לרשום חשבון CocoaPods, לתבוע תרמיל ולהתחיל להפיץ תוכנות זדוניות כאילו היה מתחזק מהימן. יש לו ציון CVSS של 9.3.

CVE-2024-38367: שרת CocoaPods סומך על כותרת בקשה שהיא לא צריכה, מה שמאפשר לתוקף לשנות את זרימת העבודה של אימות הדוא"ל למניעת השתלטות על חשבון. זה יכול היה להוביל לגורמי איומים לחטוף חשבונות משתמש קיימים ולהחליף את הפודים המשויכים בגרסאות זדוניות או בסיכון. יש לו ציון CVSS של 8.2.

CVE-2024-38366: נובע מפגיעות באבן רובי המכונה "rfc-822", שהיא ספריית קוד פתוח שתוכנת שרת CocoaPods תלויה בה כדי לאמת כתובות דוא"ל. שחקני איום יכלו לנצל אותו כדי להשיג ביצוע קוד מרחוק בשרת Trunk. יש לו ציון CVSS של 10.0.

מה יקרה עכשיו?

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

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

זו הסיבה שהספק ממליץ לכל מפתחים מושפעים (אלה המשתמשים ב-CocoaPods לפני אוקטובר 2023) לאבטח את הקוד שלהם באמצעות השלבים הבאים:

  • שמור על קבצי "podfile.lock" מסונכרנים עם כל מפתחי CocoaPods כך שכולם יהיו באותה גרסה של החבילות. המשמעות היא שאם בוצע עדכון מזיק חדש, מפתחים לא יעדכנו אליו אוטומטית.
  • עבור פודים שפותחו באופן פנימי ומתארחים רק ב-CocoaPods להפצה, מפתחים צריכים לבצע אימות CRC (checksum) מול זה שהוורד משרת ה-Trunk של CocoaPods כדי לוודא שהוא זהה לזה שפותח באופן פנימי.
  • יישם סקירת אבטחה יסודית של כל קוד של צד שלישי המשמש ביישומים
  • .בדוק את התלות של CocoaPods וודא שאתה לא משתמש בפוד יתום.
  • השתמש רק בתלות של צד שלישי שמתוחזקות באופן אקטיבי ושהבעלות עליהן ברורה.
  • בצע סריקות קוד אבטחה תקופתיות כדי לזהות סודות וקוד זדוני בכל הספריות החיצוניות, במיוחד CocoaPods.

את התמונה הגדולה

מפתחים ממשיכים להסתמך על רכיבי קוד פתוח מכיוון שהם דרך מהירה, חסכונית וקלה לקצר את זמני הפיתוח. אבל הסיכונים הופכים גדולים מכדי להתעלם מהם. לפי ISMS.online's דוח מצב אבטחת מידע לשנת 2024, שלושה רבעים (75%) מהארגונים הושפעו מתקרית אבטחה שנגרמה על ידי ספק או ספק של צד שלישי. וכמעט מחצית (45%) סבלו מאירועים מרובים במהלך השנה האחרונה.

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

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

הילדיארד גם מזהירה מפני פרויקטים שעלולים להינטש על ידי המתחזקים שלהם.

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

בוריס סיפוט, מהנדס אבטחה בכיר ב-Synopsys Software Integrity Group, טוען כי המורכבות והנפח העצום של תלות ישירה ומעבר מאתגרת עבור CISOs לנהל ולעקוב אחר נקודות תורפה המשפיעות על מספר פרויקטים. גם אם הם יכולים, התיקון עשוי להתעכב עקב חששות תאימות ו/או דרישות בדיקה, הוא אומר ל-ISMS.online.

הפחתת סיכוני קוד פתוח עם ISO 27001

עם זאת, אפשר להפחית את הסיכון של Log4Shell או CocoaPods אחרים. לטענתו, ניטור רציף של רכיבי קוד פתוח, כולל על ידי כלי Software Composition Analysis (SCA), כדי לזהות ולנהל רכיבי קוד פתוח והתלות שלהם באופן אוטומטי יעזור. Cipot גם דוגלת בצוותי אבטחה לפי ISO 27001.

"ISO/IEC 27001 הוא תקן בינלאומי למערכות ניהול אבטחת מידע (ISMS) המספק גישה שיטתית לניהול מידע רגיש של החברה והבטחת אבטחתה", הוא מסביר. תקן זה יכול גם לעזור לארגונים להפחית סיכונים הקשורים לשימוש בתוכנת קוד פתוח על ידי יצירת מסגרת מובנית הנותנת מענה לסיכונים שונים, ובכך לשפר את אבטחת המידע הכוללת".

הוא מספק ערך מיוחד עם:

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

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

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