אבטחת שרשרת האספקה של תוכנות

‫Google Cloud מספקת קבוצה מקיפה ומודולרית של יכולות וכלים במוצרי Google Cloud Google, שצוותי הפיתוח, ה-DevOps והאבטחה יכולים להשתמש בהם כדי לשפר את מצב האבטחה של שרשרת אספקת התוכנה.

שרשרת אספקת תוכנה

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

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

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

לדוגמה, בדצמבר 2021, צוות Google Open Source Insights ערך הערכה של נקודת החולשה של Apache Log4j ומצא שיש יותר מ-17,000 חבילות מושפעות ב-Maven Central. רוב החבילות האלה לא היו תלויות ישירות בחבילה הפגיעה log4j-core, אבל היו להן תלויות שדרשו את החבילה.

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

הגנה על שרשראות אספקת תוכנה ב- Google Cloud

‫Google Cloud מספקת:

  • מוצרים ותכונות שמשלבים שיטות מומלצות לאבטחה בפיתוח, בבנייה, בבדיקה, בהטמעה ובאכיפת מדיניות.
  • לוחות בקרה במסוף Google Cloud שמספקים מידע על אבטחה לגבי מקורות, גרסאות build, ארטיפקטים, פריסות וזמני ריצה. המידע הזה כולל נקודות חולשה בארטיפקטים של build, באישור המקור של Build וברשימות תלות של Software Bill of Materials (SBOM).
  • מידע שמזהה את רמת הבשלות של אבטחת שרשרת אספקת התוכנה שלכם באמצעות מסגרת Supply chain Levels for Software Artifacts‏ (SLSA).

בתרשים הבא מוצגים Google Cloud שירותים שפועלים יחד כדי להגן על שרשרת אספקת התוכנה. אתם יכולים לשלב חלק מהרכיבים האלה או את כולם בשרשרת האספקה של התוכנה כדי לשפר את רמת האבטחה.

 ‫Google Cloud רכיבים בשרשרת האספקה של תוכנות

הגנה על סביבת הפיתוח

Cloud Workstations מספקת סביבות פיתוח בניהול מלא ב- Google Cloud. אדמינים של IT ואבטחה יכולים להקצות משאבים, להרחיב, לנהל ולאבטח את סביבות הפיתוח שלהם. מפתחים יכולים לגשת לסביבות פיתוח עם הגדרות עקביות וכלים שניתנים להתאמה אישית.

‫Cloud Workstations משפר את מצב האבטחה של סביבות פיתוח האפליקציות שלכם, וכך מאפשר לכם להקדים את האבטחה. תכונות האבטחה כוללות VPC Service Controls, תעבורת נתונים נכנסת או יוצאת פרטית, עדכון תמונות מאולץ ומדיניות גישה של ניהול זהויות והרשאות גישה. ‫Cloud Workstations מספק יכולות נוספות של מניעת אובדן נתונים בשילוב עם Chrome Enterprise Premium.

הגנה על אספקת התוכנה

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

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

  • Artifact Registry הוא מנהל חבילות אוניברסלי לכל פריטי המידע שנוצרו בתהליך פיתוח (artifacts) בגרסת build ויחסי התלות. ריכוז כל הארטיפקטים והתלותיות במקום אחד מאפשר לכם לקבל תמונה ברורה יותר של הקוד בשרשרת אספקת התוכנה ולשלוט בו.

    • מאגרים מרוחקים מאחסנים ארטיפקטים ממקורות חיצוניים מוגדרים מראש, כמו Docker Hub,‏ Maven Central,‏ Python Package Index‏ (PyPI),‏ Debian או CentOS, וגם ממקורות שהוגדרו על ידי המשתמש בפורמטים נתמכים. שמירת ארטיפקטים במטמון במאגרי מידע מרוחקים מקצרת את זמן ההורדה, משפרת את הזמינות של החבילה וכוללת סריקת פגיעויות אם הסריקה מופעלת.
    • מאגרי מידע וירטואליים מאחדים מאגרי מידע באותו פורמט מאחורי נקודת קצה אחת, ומאפשרים לכם לשלוט בסדר החיפוש במאגרי מידע במעלה הזרם. אתם יכולים לתת עדיפות לחבילות הפרטיות שלכם, וכך להקטין את הסיכון למתקפות של בלבול תלות
    • אפשר גם להגן על הארטיפקטים באמצעות הגדרת תכונות אבטחה כמו בקרת גישה, גבולות גזרה לשירות של VPC Service Controls, מדיניות ארגונית ותכונות אבטחה אחרות. פרטים נוספים מופיעים במאמר בנושא Artifact Registry.
  • Artifact Analysis מזהה נקודות חולשה באופן יזום בארטיפקטים ב-Artifact Registry.

הגנה על צינור עיבוד הנתונים של CI/CD

גורמים זדוניים יכולים לתקוף שרשרות אספקה של תוכנות על ידי פריצה לצינורות CI/CD. המוצרים הבאים עוזרים לכם לאבטח את צינור עיבוד הנתונים של CI/CD:

  • Cloud Build מריץ את גרסאות ה-build בתשתית של Google Cloud. תכונות האבטחה כוללות הרשאות IAM מפורטות, VPC Service Controls וסביבות בנייה מבודדות וזמניות. תכונות שספציפיות לאבטחת שרשרת האספקה של תוכנות כוללות:

    • תמיכה בגרסאות build ברמה 3 של SLSA לקובצי אימג' של קונטיינרים.
    • אפשרות ליצור תיעוד של מקורות הבנייה מאומת ובלתי ניתן לזיוף עבור אפליקציות בקונטיינרים.
    • תובנות אבטחה לגבי אפליקציות מובנות. למשל:

      • רמת ה-build של SLSA, שמזהה את רמת הבשלות של תהליך ה-build של התוכנה בהתאם למפרט SLSA.
      • נקודות חולשה בפריטי מידע שנוצרו בתהליך הפיתוח (Artifact).
      • ליצור אישור המקור של Build, שהוא אוסף של מטא-נתונים שניתנים לאימות לגבי גרסת build. הוא כולל פרטים כמו תקצירי התמונות שנבנו, מיקומי מקור הקלט, שרשרת הכלים של ה-build, שלבי ה-build ומשך ה-build.

    הוראות לצפייה בתובנות אבטחה לגבי אפליקציות מובנות זמינות במאמר יצירת אפליקציה וצפייה בתובנות אבטחה.

  • Cloud Deploy הוא שירות ששולח אפליקציות באופן אוטומטי לפי רצף מוגדר לסדרה של סביבות יעד. הוא תומך בפיתוח רציף (continuous delivery) ישירות אל Google Kubernetes Engine,‏ GKE Enterprise ו-Cloud Run, עם אישורים והחזרות בלחיצה אחת, אבטחה וביקורת ברמת הארגון, וגם מדדי פיתוח מובנים. בנוסף, הכלי מציג תובנות בנושאי אבטחה לגבי אפליקציות שנפרסו.

הגנה על אפליקציות בסביבת הייצור

Google Kubernetes Engine‏ (GKE) ו-Cloud Run עוזרים לשפר את רמת האבטחה של סביבות זמן הריצה. שתי האפשרויות כוללות תכונות אבטחה להגנה על האפליקציות בזמן הריצה.

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

  • ‫Cloud Run כולל חלונית אבטחה שבה מוצגים תובנות לגבי אבטחת שרשרת אספקת התוכנה, כמו מידע על התאימות לרמת ה-build של SLSA, אישור המקור של Build ונקודות חולשה שנמצאו בשירותים פעילים. הוראות להצגת תובנות אבטחה בחלונית התובנות בנושא אבטחה ב-Cloud Run מופיעות במאמר פריסה ב-Cloud Run והצגת תובנות אבטחה.

איך בונים שרשרת אמון באמצעות מדיניות

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

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

לדוגמה, אישורים יכולים לציין שתמונה היא:

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

אפשר להשתמש ב-Binary Authorization עם GKE ו-Cloud Run.

תמחור

לכל Google Cloud שירות יש תמחור משלו. לפרטים נוספים, אפשר לעיין במסמכי התמחור של השירותים שמעניינים אתכם.

המאמרים הבאים