סריקה אוטומטית של חבילות

במאמר הזה מוסבר איך להפעיל את Container Scanning API, להעביר קובץ אימג' ל-Artifact Registry ולראות את רשימת נקודות החולשה שנמצאו בקובץ האימג'.

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

לפני שמתחילים

  1. נכנסים לחשבון Google Cloud . אם אתם משתמשים חדשים ב- Google Cloud, צרו חשבון כדי שתוכלו להעריך את הביצועים של המוצרים שלנו בתרחישים מהעולם האמיתי. לקוחות חדשים מקבלים בחינם גם קרדיט בשווי 300$ להרצה, לבדיקה ולפריסה של עומסי העבודה.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. Enable the Artifact Registry and Container Scanning APIs.

    Roles required to enable APIs

    To enable APIs, you need the serviceusage.services.enable permission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.

    Enable the APIs

  5. התקינו את ה-CLI של Google Cloud.

  6. אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.

  7. כדי לאתחל את ה-CLI של gcloud, הריצו את הפקודה הבאה:

    gcloud init
  8. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  9. Verify that billing is enabled for your Google Cloud project.

  10. Enable the Artifact Registry and Container Scanning APIs.

    Roles required to enable APIs

    To enable APIs, you need the serviceusage.services.enable permission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.

    Enable the APIs

  11. התקינו את ה-CLI של Google Cloud.

  12. אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.

  13. כדי לאתחל את ה-CLI של gcloud, הריצו את הפקודה הבאה:

    gcloud init
  14. יוצרים מאגר ב-Artifact Registry ומעלים אליו חבילה עם קוד האפליקציה. אם אתם לא מכירים את ניהול החבילות ב-Artifact Registry, כדאי לעיין בנושאים הבאים:
    1. איך מאחסנים חבילות Java ב-Artifact Registry
    2. איך מאחסנים חבילות Node.js ב-Artifact Registry
    3. אחסון חבילות Python ב-Artifact Registry

הפעלת ה-API הזה מפעילה גם סריקה של חבילות שפה ב-Artifact Registry. סוגי החבילות הנתמכים

הצגת נקודות החולשה בחבילה

הכלי Artifact Analysis סורק חבילות חדשות כשהן מועלות אל Artifact Registry. בסריקה הזו מחולץ מידע על החבילה ועל התלות שלה.

אתם יכולים לראות את המקרים של פגיעויות בתמונות שלכם ב-Artifact Registry באמצעות מסוף Google Cloud , Google Cloud CLI או Container Analysis API. אם בתמונה יש נקודות חולשה, אפשר לקבל את הפרטים שלהן.

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

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

צפייה במקרים במסוף Google Cloud

כדי לראות את נקודות החולשה בחבילה:

  1. מקבלים את רשימת המאגרים.

    פתיחת הדף Repositories

  2. ברשימת המאגרים, לוחצים על מאגר.

  3. ברשימת החבילות, לוחצים על שם החבילה.

    הסכומים הכוללים של נקודות החולשה בכל חבילה מוצגים בעמודה Vulnerabilities (נקודות חולשה).

    חבילה שנסרקה עם נקודות חולשה

  4. כדי לראות את רשימת נקודות החולשה בחבילה, לוחצים על הקישור בעמודה Vulnerabilities (נקודות חולשה).

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

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

    בטבלת נקודות החולשה מפורטים השם של נקודת החולשה הנפוצה (CVE) שנמצאה, רמת החומרה האפקטיבית, הציון של Common Vulnerability Scoring System (CVSS), תיקונים (אם יש), שם החבילה שמכילה את נקודת החולשה וסוג החבילה. אפשר לסנן ולמיין את הקבצים האלה כדי לבדוק קובץ ספציפי, ספרייה או סוג קובץ לפי סיומת הקובץ. Google Cloud בטבלה הזו מוצגות עד 1,200 נקודות פגיעות בכל דף.

  5. כדי לראות פרטים על CVE ספציפי, לוחצים על השם של ה-CVE.

  6. כדי לראות פרטים על המקרים שבהם נמצאה פגיעות, כמו מספר הגרסה והמיקום שנפגע, לוחצים על הצגה או על הצגת הפגיעות שתוקנה בשורה עם שם הפגיעות. טקסט הקישור הוא View (הצגה) עבור פגיעויות ללא תיקון, ו-View Fixed (הצגת התיקון) עבור פגיעויות שבוצע בהן תיקון.

צפייה במקרים באמצעות gcloud

כדי לראות את המופעים של חבילות ב-Artifact Registry, מריצים את הפקודה gcloud artifacts versions describe:

gcloud artifacts versions describe VERSION \
    --location=LOCATION --repository=REPOSITORY --package=PACKAGE --show-package-vulnerability

כאשר:

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

צפייה במקרים באמצעות ה-API

כדי לקבל רשימה של מקרים בפרויקט:

 curl -X GET -H "Content-Type: application/json" -H \
    "Authorization: Bearer $(gcloud auth print-access-token)" \
    https://containeranalysis.googleapis.com/v1/projects/PROJECT_ID/occurrences

כדי לקבל סיכום של נקודות התורפה בפרויקט:

 curl -X GET -H "Content-Type: application/json" -H \
    "Authorization: Bearer $(gcloud auth print-access-token)" \
    https://containeranalysis.googleapis.com/v1/projects/PROJECT_ID/occurrences:vulnerabilitySummary

כדי לקבל פרטים על מופע ספציפי:

 curl -X GET -H "Content-Type: application/json" -H \
    "Authorization: Bearer $(gcloud auth print-access-token)" \
    https://containeranalysis.googleapis.com/v1/projects/PROJECT_ID/occurrences/OCCURRENCE_ID

סינון מופעים