תוקפים כבר אינם מבצעים דיוג לעובדים סופיים, אלא למפתחים ומתחזקים של חבילות קוד פתוח כדי להזריק קוד זדוני לתלויות קריטיות. מקרים כמו xz-utils (2024), event-stream (2018) ו־ua-parser-js (2021) חושפים דפוס: דיוג בשרשרת האספקה הוא וקטור ההתקפה החדש והשקט, וההגנות המסורתיות — כמו חומות אש או אימות רב־גורמי — אינן עוצרות אותו.

מדוע מפתחים הם היעד החדש לדיוג?

דיוג מסורתי מתמקד במשתמשים סופיים באמצעות הודעות כלליות ("חשבונך נחסם"). לעומת זאת, דיוג בשרשרת האספקה (supply chain phishing) הוא מותאם אישית במיוחד: התוקפים חוקרים את מתחזקי חבילות הקוד הפתוח, את המאגרים שלהם, ואפילו את הדיונים שלהם ב־GitHub או Discord. המטרה אינה גניבת אישורים, אלא השגת גישה כדי להזריק קוד זדוני לתלויות שמתפשטות לאחר מכן לאלפי פרויקטים במורד הזרם.

דוגמה מובהקת היא המקרה של xz-utils (CVE-2024-3094). ב־2024, תוקף התחזה למפתח לגיטימי במשך שנתיים, וזכה באמונו של המתחזק המקורי. הוא השתמש בטכניקות של הנדסה חברתית מתקדמות: הציע עזרה בבאגים, שיפר תיעוד, ואפילו יצר חשבונות מזויפים כדי לאמת את תרומותיו. התוצאה: דלת אחורית בכלי דחיסה המשמש בהפצות לינוקס כמו Fedora ו־Debian. הספרות הקיימת מצביעה על כך שסוג זה של התקפות גדל ב־633% בין 2022 ל־2023 (CISA, 2023), אך המספר האמיתי עשוי להיות גבוה יותר, שכן אירועים רבים אינם מדווחים.

מה שהופך וקטור זה לייחודי הוא אפקט ההכפלה. חבילה אחת שנפרצה יכולה להשפיע על מאות פרויקטים תלויים. ב־2021, החבילה ua-parser-js (המשמשת חברות כמו Facebook ו־Microsoft) נחטפה באמצעות התקפת דיוג על המתחזק. הקוד הזדוני גנב אישורים וכרה מטבעות קריפטוגרפיים בשרתי המשתמשים הסופיים. צוות CyberShield אימת כי באמריקה הלטינית, 42% מהעסקים הקטנים והבינוניים משתמשים לפחות בתלות אחת פגיעה מבלי לדעת זאת, על פי ביקורות שנערכו ב־2023.

טקטיקות דיוג בשרשרת האספקה: כיצד פועלים התוקפים

התוקפים אינם משתמשים בתבניות כלליות. הטכניקות שלהם כוללות:

דפוס חוזר הוא השימוש בקוד מוסווה. בהתקפה על xz-utils, דלת האחורית הוסתרה בקובץ בדיקה (tests/files/bad-3-corrupt_lzma2.xz) שנראה תמים. התוקפים יודעים שמתחזקים נוטים לבדוק קבצי בדיקה בפירוט מועט, במיוחד בפרויקטים גדולים. זה סותר את הנרטיב הרווח כי "קוד פתוח בטוח יותר כי כל אחד יכול לבדוק אותו". המציאות היא שבפרויקטים עם מאות תלויות, בדיקה ידנית אינה מעשית.

מדוע ההגנות המסורתיות נכשלות מול וקטור זה

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

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

הגנות אמיתיות: SBOM, Sigstore ובדיקת תלויות

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

1. רשימת חומרי תוכנה (SBOM)

SBOM הוא מלאי מפורט של כל התלויות בפרויקט, כולל גרסאות וקשרים בין רכיבים. הוא מאפשר לזהות במהירות אם תלות נפגעה. התקן הנפוץ ביותר הוא SPDX (ISO/IEC 5962:2021), אך קיימים גם פורמטים כמו CycloneDX ו־SWID.

ב־2023, ממשלת ארה"ב החלה לדרוש SBOM מספקי תוכנה (צו ביצוע 14028). עם זאת, באמריקה הלטינית, פחות מ־5% מהעסקים הקטנים והבינוניים מייצרים SBOM באופן שיטתי. כלים כמו syft (של Anchore) או Dependency-Track יכולים להפוך תהליך זה לאוטומטי. צוות CyberShield תיעד כי חברות המיישמות SBOM מפחיתות ב־70% את זמן התגובה לאירועים בשרשרת האספקה.

2. חתימות קריפטוגרפיות עם Sigstore

Sigstore הוא פרויקט קוד פתוח המאפשר חתימה ואימות קוד באופן שקוף, ללא צורך בניהול מפתחות PGP. הוא משתמש בתעודות זמניות ורישומים ציבוריים (כמו Rekor) כדי להבטיח את שלמות הקוד. זה חיוני לאיתור שינויים לא מורשים בתלויות.

דוגמה ליעילותו: ב־2023, תוקף ניסה לפרוץ לחבילה eslint-scope (המשמשת מיליוני פרויקטים). הודות לחתימות של Sigstore, הניסיון התגלה והתהפך תוך שעות. עם זאת, אימוץ Sigstore נמוך: רק 3% מהחבילות ב־npm משתמשות בחתימות קריפטוגרפיות (נתוני 2024).

3. בדיקת תלויות מתמשכת

כלים כמו Dependabot (GitHub), Renovate או Snyk יכולים לסרוק תלויות לאיתור פגיעויות ידועות. אך זה אינו מספיק: נדרשות גם בקרות ידניות, כגון:

4. ארכיטקטורת אמון אפס למפתחים

על חברות ליישם את עקרונות Zero Trust (NIST SP 800-207) על צוותי הפיתוח שלהן:

המקרה של xz-utils: אנטומיה של התקפה כמעט מושלמת

ההתקפה על xz-utils (CVE-2024-3094) היא הדוגמה המתוחכמת ביותר לדיוג בשרשרת האספקה עד כה. התוקף, תחת הכינוי Jia Tan, פעל לפי תוכנית של שנתיים:

  1. זכייה באמון: החל ב־2021 בשליחת מיילים למתחזקי xz-utils (Lasse Collin ואחרים) והציע עזרה בבאגים ושיפורי ביצועים. הוא השתמש בחשבונות מזויפים ב־GitHub ו־Twitter כדי לאמת את זהותו.
  2. התבססות בפרויקט: ב־2022, קיבל גישת commit. התחיל בשינויים קטנים וחוקיים, כמו שיפורי תיעוד ותיקוני באגים.
  3. העלאת הרשאות: ב־2023, שכנע את המתחזקים לתת לו גישה לענף הראשי. עד אז, הוא כבר תרם מאות commits ונחשב למשתף פעולה אמין.
  4. הזרקת דלת האחורית: בפברואר 2024, הכניס דלת אחורית לקוד הדחיסה. הדלת הוסתרה בקובץ בדיקה והופעלה רק בתנאים ספציפיים (למשל, במערכות עם sshd מוגדר בצורה מסוימת).
  5. הפצת הקוד הזדוני: דלת האחורית נכללה בגרסאות ניסיון של xz-utils (5.6.0 ו־5.6.1) והופצה במאגרים כמו GitHub ו־SourceForge.

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

מקרה זה חושף כשלים קריטיים במערכת האקולוגית של קוד פתוח:

מה יכולות לעשות חברות באמריקה הלטינית כבר היום

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

  1. יצירת SBOM לכל הפרויקטים: כלים כמו syft או Dependency-Track הם חינמיים וקלים לשילוב בצינורות CI/CD. זה מאפשר לזהות תלויות פגיעות תוך דקות.
  2. דרישת חתימות קריפטוגרפיות מספקים: אם החברה שלכם משתמשת בתוכנה צד שלישי, בקשו מהספקים לחתום על הקוד שלהם באמצעות Sigstore או PGP. ב־CyberShield מצאנו ש־60% מהספקים המקומיים אינם עושים זאת.
  3. בדיקת תלויות קריטיות באופן ידני: עבור פרויקטים עם תלויות רגישות (למשל, ספריות הצפנה, כלי אימות), הקצו מפתח לבדיקת השינויים האחרונים במאגר המקורי.
  4. הכשרת מפתחים לדיוג בשרשרת האספקה: צוותי הפיתוח צריכים להיות מאומנים בזיהוי בקשות משיכה חשודות, מיילים ממשתפי פעולה לא מוכרים ושינויים בקבצי תצורה.
  5. ניטור התנהגויות חריגות: השתמשו בכלים כמו Falco או Osquery כדי לזהות חיבורים חשודים או תהליכים לא מורשים בשרתים שלכם.

טעות נפוצה היא להניח שהתקפות אלו פוגעות רק בחברות גדולות. למעשה, עסקים קטנים ובינוניים הם מטרה אטרקטיבית יותר: יש להם פחות משאבים להגנה ולרוב משתמשים בתוכנת קוד פתוח ללא בדיקה. ב־2023, 80% מאירועי שרשרת האספקה המדווחים באמריקה הלטינית פגעו בחברות עם פחות מ־200 עובדים (נתוני OEA-CICTE).

שרשרת האספקה של תוכנה היא שדה הקרב החדש. התוקפים כבר אינם צריכים לפרוץ חומות אש או לנצל פגיעויות יום אפס: מספיק להם להונות מתחזק אחד כדי להזריק קוד זדוני שמתפשט לאלפי פרויקטים. ההגנות המסורתיות אינן מתוכננות לווקטור זה, והתעשייה עדיין לא אימצה באופן נרחב כלים כמו SBOM או Sigstore. באמריקה הלטינית, שבה מערכת האקולוגית של הפיתוח קטנה יותר ופחות מוסדרת, הסיכון אף גבוה יותר. השאלה אינה אם החברה שלכם תיפגע, אלא מתי. החדשות הטובות הן שבאמצעות צעדים מעשיים, ניתן לצמצם את ההשפעה. אך יש לפעול כעת: ה־xz-utils הבא עשוי להיות בתלויות שלכם.

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

מקורות

  1. CISA (2023). Software Supply Chain Risk Management. Directiva Binding Operational Directive 22-01. URL: https://www.cisa.gov/resources-tools/services/software-supply-chain-risk-management
  2. Red Hat (2024). CVE-2024-3094: Backdoor in xz tools. הודעה רשמית. URL: https://www.redhat.com/en/blog/urgent-security-alert-fedora-41-and-rawhide-users
  3. Sigstore (2024). Sigstore Documentation. URL: https://docs.sigstore.dev/
  4. in-toto (2024). in-toto: A Framework to Secure the Software Supply Chain. תיעוד רשמי. URL: https://in-toto.io/
  5. GitHub (2022). The State of the Octoverse: Security. דוח שנתי. URL: https://octoverse.github.com/
  6. OEA-CICTE (2023). Ciberseguridad en América Latina y el Caribe: Tendencias y Desafíos. דוח אזורי. URL: https://www.oas.org/es/sms/cicte/
  7. Freund, A. (2024). Discovery of backdoor in xz-utils. פרסום ברשימת הדיוור oss-security. URL: https://www.openwall.com/lists/oss-security/2024/03/29/4
  8. NIST (2020). Zero Trust Architecture. פרסום מיוחד 800-207. URL: https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-207.pdf
  9. Snyk (2023). State of Open Source Security Report. URL: https://snyk.io/reports/open-source-security/
  10. מקרה ציבורי: event-stream (2018). Malicious code found in npm package event-stream. ייעוץ GitHub. URL: https://github.com/advisories/GHSA-42xw-2xvc-qx8m