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

במאמר הזה מוסבר איך להפעיל את 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, if any are not already enabled.

    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. Install the Google Cloud CLI.

  6. If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

  7. To initialize the gcloud CLI, run the following command:

    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, if any are not already enabled.

    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. Install the Google Cloud CLI.

  12. If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

  13. To initialize the gcloud CLI, run the following command:

    gcloud init
  14. יוצרים מאגר Docker ב-Artifact Registry ומעבירים אליו בדחיפה קובץ אימג' של קונטיינר עם קוד Python. אם אתם לא מכירים את Artifact Registry, כדאי לעיין במדריך למתחילים ל-Docker.

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

התפקידים הנדרשים

כדי לקבל את ההרשאות שדרושות לצפייה בתוצאות הסריקה של החבילה, בקשו מהאדמין להקצות לכם את התפקידים הבאים ב-IAM בפרויקט:

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

יכול להיות שאפשר לקבל את ההרשאות הנדרשות גם באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש.

הצגת נקודות החולשה של קובץ האימג'

הכלי 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. טקסט הקישור הוא View (הצגה) עבור פגיעויות ללא תיקון, ו-View Fixed (הצגת תיקונים) עבור פגיעויות שבהן הוחל תיקון.

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

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

כדי לראות את המטא-נתונים של הפגיעות לפי שכבה במסוף Google Cloud :

  1. ב-Artifact Registry, פותחים את רשימת המאגרים.

    פתיחת הדף Repositories

  2. בדף Repositories (מאגרים), לוחצים על מאגר.

  3. בדף Repository Details, לוחצים על תמונה.

  4. ברשימת גרסאות התמונות, לוחצים על תקציר תמונה.

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

    אם יש מטא-נתונים שמבוססים על שכבות, ב-Artifact Analysis מוצגת רשימה של שכבות שאפשר לבחור בסרגל Layer:

    תמונה של הדף Vulnerabilities של סיכום תמונה, כולל סרגל השכבות. בסרגל השכבות יש תפריט נפתח שבו אפשר לבחור מתוך רשימה ממוספרת של שכבות.

  6. כדי לראות את רשימת השכבות, לוחצים על התפריט הנפתח של השכבות.

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

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

    לכל שכבה, Artifact Analysis מציג את פקודת Docker ששימשה לבניית השכבה ואת מספר נקודות החולשה שנמצאו בשכבה הזו.

  7. כדי לקבל מידע נוסף על נקודות החולשה בשכבה מסוימת, בוחרים שכבה מרשימת השכבות.

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

  8. לוחצים על VIEW או על VIEW FIX לצד נקודת החולשה כדי לראות מידע מפורט יותר על נקודת החולשה.

    בחלונית הצדדית Vulnerability details (פרטים על נקודת החולשה) מוצגים מיקומי הקבצים שבהם יש חבילות עם נקודות חולשה.

  9. בטבלה File location(s), מעבירים את העכבר מעל סימן השאלה כדי לפתוח מטא-נתונים נוספים של השכבה.

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

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

כדי לראות את המופעים של קובצי אימג' ב-Artifact Registry, מריצים את הפקודה gcloud artifacts docker images list:

  gcloud artifacts docker images list --show-occurrences \
      LOCATION-docker.pkg.dev/PROJECT_ID/REPOSITORY/IMAGE_ID

כאשר:

  • ‫LOCATION הוא המיקום האזורי או המיקום במספר אזורים של המאגר.
  • ‫PROJECT_ID הוא מזהה הפרויקט Google Cloud במסוף.
  • ‫REPOSITORY הוא שם המאגר שבו מאוחסנת התמונה.
  • ‫IMAGE_ID הוא שם קובץ האימג' במאגר. אי אפשר לציין תג תמונה בפקודה הזו.

כברירת מחדל, הפקודה מחזירה את 10 התוצאות האחרונות. כדי להציג מספר שונה של תוצאות, משתמשים בדגל --show-occurrences-from. לדוגמה, הפקודה הבאה מחזירה את 25 התוצאות האחרונות:

gcloud artifacts docker images list --show-occurrences-from=25 \
    us-central1-docker.pkg.dev/my-project/my-repo/my-image

הפלט אמור להיראות כך:

פלט של תמונה לדוגמה

  {
      "name": "projects/my-project/locations/us-central1/occurrences/22d3edfb-34f2-4d3f-be08-fd90c549f010",
      "resource": {
        "uri": "https://us-central1-docker.pkg.dev/my-project/my-repo/golang-nginx@sha256:5b54ef20748417ccdb0b87afedf98c44e699e2f59bd6cv48cbdc1ca2e72c80e3"
      },
      "noteName": "projects/my-project/locations/us-central1/notes/CVE-2005-2541",
      "kind": "VULNERABILITY",
      "createTime": "2025-01-21T15:57:01.238832Z",
      "updateTime": "2025-01-21T15:57:01.238832Z",
      "vulnerability": {
        "severity": "CRITICAL",
        "cvssScore": 10,
        "packageIssue": [
          {
            "affectedLocation": {
              "cpeUri": "cpe:/o:debian:debian_linux:12",
              "package": "tar",
              "version": {
                "name": "1.34+dfsg",
                "revision": "1.2+deb12u1",
                "kind": "NORMAL"
              }
            },
            "fixedLocation": {
              "cpeUri": "cpe:/o:debian:debian_linux:12",
              "package": "tar",
              "version": {
                "kind": "MAXIMUM"
              }
            },
            "packageType": "OS",
            "effectiveSeverity": "LOW",
            "file_location": [
                {
                "file_path": "/var/lib/dpkg/status",
                "layerDetails": {
                  "index": 0,
                  "diffID": "sha256:123",
                  "buildCommand": "FROM golang:example_sha256",
                  "BaseImages": [
                    {
                      "name": "library/golang",
                    },
                  ],
                },
              },
            ],
          }
        ],
        "shortDescription": "CVE-2005-2541",
        "longDescription": "NIST vectors: AV:N/AC:L/Au:N/C:C/I:C/A:C",
        "relatedUrls": [
          {
            "url": "https://security-tracker.debian.org/tracker/CVE-2005-2541",
            "label": "More Info"
          }
        ],
        "effectiveSeverity": "LOW",
        "cvssVersion": "CVSS_VERSION_2",
        "cvssV2": {
          "baseScore": 10,
          "attackVector": "ATTACK_VECTOR_NETWORK",
          "attackComplexity": "ATTACK_COMPLEXITY_LOW",
          "authentication": "AUTHENTICATION_NONE",
          "confidentialityImpact": "IMPACT_COMPLETE",
          "integrityImpact": "IMPACT_COMPLETE",
          "availabilityImpact": "IMPACT_COMPLETE"
        }
      }
    }
  

סינון מופעים של נקודות חולשה

כדי לסנן מופעים של נקודות חולשה, משתמשים בפרמטר --occurrence-filter:

gcloud artifacts docker images list --show-occurrences \
    LOCATION-docker.pkg.dev/PROJECT_ID/REPOSITORY/IMAGE_ID \
    --occurrence-filter=FILTER_EXPRESSION

כאשר:

  • ‫LOCATION הוא המיקום האזורי או המיקום במספר אזורים של המאגר.
  • ‫PROJECT_ID הוא מזהה הפרויקט Google Cloud במסוף.
  • ‫REPOSITORY הוא שם המאגר שבו מאוחסן האימג'.
  • ‫IMAGE_ID הוא שם קובץ האימג' במאגר.
  • ‫FILTER_EXPRESSION הוא ביטוי סינון לדוגמה בפורמט שמוסבר במאמר סינון מופעים של נקודות חולשה.

צפייה בפגיעויות בשכבה ספציפית

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

  "layerDetails": {
    "index": 0,
    "diffID": "sha256:123",
    "buildCommand": "FROM golang:example_sha256",
    "BaseImages": [
      {
        "name": "library/golang",
      },
    ],
  }

הפלט מראה שאינדקס השכבה הוא 0 בתמונה, עם גיבוב (hash) של שכבה sha256:123. פקודת ה-build של Docker ששימשה ליצירת השכבה הזו היא FROM golang:example_sha256, והשכבה נמצאת גם בתמונת הבסיס library/golang.

צפייה במקרים באמצעות ה-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

הצגת נקודות חולשה ב-Cloud Build

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

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

סינון מופעים

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

הצגת מקרים מסוג מסוים

אפשר להשתמש בערך kind כדי לסנן לפי סוג המופע. סוגים זמינים

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

gcloud

ב-CLI של gcloud, מריצים את הפקודה הבאה:

gcloud artifacts docker images list --show-occurrences \
    --occurrence-filter='kind="PACKAGE_VULNERABILITY"' --format=json \
    LOCATION-docker.pkg.dev/PROJECT_ID/REPOSITORY/IMAGE_ID

כאשר:

  • ‫PACKAGE_VULNERABILITY הוא סוג המופע.
  • ‫LOCATION הוא המיקום של המאגר, באזור אחד או במספר אזורים.
  • ‫PROJECT_ID הוא מזהה הפרויקט Google Cloud במסוף.
  • ‫REPOSITORY הוא שם המאגר שבו מאוחסן האימג'.
  • ‫IMAGE_ID הוא שם קובץ האימג' במאגר.

API

בשאלת ה-API, משתמשים בביטוי המסנן הבא:

kind="PACKAGE_VULNERABILITY" AND resourceUrl="RESOURCE_URL"

כאשר:

  • ‫DEPLOYMENT הוא סוג המופע.
  • ‫RESOURCE_URL היא כתובת ה-URL המלאה של התמונה בפורמט https://LOCATION-docker.pkg.dev/PROJECT_ID/REPOSITORY_ID/IMAGE@sha256:HASH:
    • ‫LOCATION הוא המיקום האזורי או המיקום במספר אזורים של המאגר.
    • ‫PROJECT_ID הוא מזהה הפרויקט Google Cloud במסוף.
    • ‫REPOSITORY הוא שם המאגר שבו מאוחסן האימג'.
    • ‫IMAGE_ID הוא שם האימג' במאגר. אי אפשר לציין תג תמונה באמצעות הפקודה הזו.

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

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

kind="NOTE_KIND" AND has_prefix(resourceUrl, "RESOURCE_URL_PREFIX")

כאשר:

  • ‫RESOURCE_URL_PREFIX מציין מחרוזת משנה מכתובת URL של משאב.
    • כדי לסנן את כל הגרסאות של קובץ אימג', משמיטים את תקציר קובץ האימג'. משתמשים בפורמט: https://LOCATION-docker.pkg.dev/PROJECT_ID/REPOSITORY/IMAGE_ID@
    • כדי לסנן את כל התמונות בפרויקט, מציינים רק את מיקום המשאב והפרויקט. משתמשים בפורמט: https://LOCATION-docker.pkg.dev/PROJECT_ID/

הצגת מקרים של נקודות חולשה

אתם יכולים להציג רשימות של מופעי פגיעויות באמצעות ה-CLI של gcloud או Artifact Analysis API.

gcloud

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

gcloud artifacts docker images list \
    --show-occurrences \
    --occurrence-filter='kind="VULNERABILITY"' \
    --format=json \
    LOCATION-docker.pkg.dev/PROJECT_ID/REPOSITORY/IMAGE_ID

כאשר:

  • ‫VULNERABILITY הוא סוג המופע.
  • ‫LOCATION הוא המיקום האזורי או המיקום במספר אזורים של המאגר.
  • ‫PROJECT_ID הוא מזהה הפרויקט Google Cloud במסוף.
  • ‫REPOSITORY הוא שם המאגר שבו מאוחסן האימג'.
  • ‫IMAGE_ID הוא שם קובץ האימג' במאגר.

API

בשאלת ה-API, משתמשים בביטוי המסנן הבא:

GET https://containeranalysis.googleapis.com/v1/projects/PROJECT_ID/occurrences?filter=kind%3D%22VULNERABILITY%22%20AND%20resourceUrl%3D%22ENCODED_RESOURCE_URL%22

כאשר:

  • ‫ENCODED_RESOURCE_URL הוא הנתיב המקודד לתמונה. מידע נוסף על קידוד זמין במאמר בנושא קידוד כתובות URL.

מידע נוסף על השימוש ב-API זמין במאמר projects.occurrences.get.

סינון לפי סוג החבילה

כדי להגביל את תוצאות בדיקת נקודות החולשה לסוג חבילה אחד, מריצים את הפקודה הבאה ב-CLI של gcloud:

  gcloud artifacts docker images list /
      --show-occurrences /
      --occurrence-filter='kind="VULNERABILITY" AND packageType="PACKAGE_TYPE"' /
      LOCATION-docker.pkg.dev/PROJECT_ID/REPOSITORY/IMAGE_ID

כאשר:

  • ‫VULNERABILITY הוא סוג המופע.
  • ‫PACKAGE_TYPE הוא סוג חבילת השפה של האפליקציה. הסוגים הזמינים הם: COMPOSER,‏ GO,‏ MAVEN,‏ NPM,‏ NUGET,‏ PYTHON,‏ RUBYGEMS ו-RUST.
  • ‫LOCATION הוא המיקום האזורי או המיקום במספר אזורים של המאגר.
  • ‫PROJECT_ID הוא מזהה הפרויקט במסוף Google Cloud .
  • ‫REPOSITORY הוא שם המאגר שבו מאוחסנת התמונה.
  • ‫IMAGE_ID הוא שם האימג' במאגר. אי אפשר לציין תג תמונה בפקודה הזו.

הצגת תמונות שמשויכות לפתק ספציפי

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

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

gcloud

gcloud artifacts docker images list /
    --show-occurrences /
    --occurrence-filter='noteProjectId="goog-vulnz" AND noteId="NOTE_ID"' /
    LOCATION-docker.pkg.dev/PROJECT_ID

כאשר:

  • ‫goog-vulnz הוא ה-PROVIDER_PROJECT_ID לניתוח נקודות חולשה ב-Artifact Analysis. אם אתם משתמשים ב-Artifact Analysis בפרויקט מותאם אישית, אתם יכולים להחליף את הערך הזה במזהה פרויקט הספק שלכם.
  • ‫LOCATION הוא המיקום האזורי או המיקום במספר אזורים של המאגר.
  • ‫PROJECT_ID הוא מזהה הפרויקט במסוף Google Cloud .
  • ‫NOTE_ID הוא המזהה של ההערה. לדוגמה, כשרואים פגיעות בתוצאות הסריקה של Artifact Analysis, בדרך כלל נעשה שימוש בפורמט של מזהה CVE שדומה ל-CVE-2019-12345.

API

GET https://containeranalysis.googleapis.com/v1/projects/PROJECT_ID/occurrences?filter=noteProjectId%3D%22goog-vulnz%22%20AND%20resourceUrl%3D%22ENCODED_RESOURCE_URL%22%20AND%20noteId%3D%22NOTE_ID%22

כאשר:

  • ‫goog-vulnz הוא PROVIDER_PROJECT_ID לניתוח פגיעויות ב-Artifact Analysis. אם אתם משתמשים ב-Artifact Analysis בפרויקט מותאם אישית, אתם יכולים להחליף את הערך הזה במזהה פרויקט הספק שלכם.
  • ‫ENCODED_RESOURCE_URL הוא הנתיב המקודד לתמונה. מידע נוסף על קידוד זמין במאמר בנושא קידוד כתובות URL.
  • ‫NOTE_ID הוא המזהה של ההערה. לדוגמה, כשרואים נקודת חולשה בתוצאות הסריקה של Artifact Analysis, בדרך כלל היא תופיע בפורמט של מזהה CVE, כמו CVE-2019-12345.

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

gcloud

gcloud artifacts docker images list /
    --show-occurrences /
    --occurrence-filter='noteProjectId="goog-vulnz" AND noteId="NOTE_ID"' /
    LOCATION-docker.pkg.dev/PROJECT_ID/REPOSITORY/IMAGE_ID

כאשר:

  • ‫LOCATION הוא המיקום האזורי או המיקום במספר אזורים של המאגר.
  • ‫PROJECT_ID הוא מזהה הפרויקט Google Cloud במסוף.
  • ‫REPOSITORY הוא שם המאגר שבו מאוחסן קובץ האימג'.
  • ‫IMAGE_ID הוא שם קובץ האימג' במאגר. אי אפשר לציין תג תמונה באמצעות הפקודה הזו.

API

מוסיפים את ביטוי הסינון הבא לשאילתת ה-API:

resourceUrl="RESOURCE_URL" AND noteProjectId="goog-vulnz" \
AND noteId="NOTE_ID"

כאשר:

  • ‫RESOURCE_URL היא כתובת ה-URL המלאה של התמונה בפורמט http://LOCATION-docker.pkg.dev/PROJECT_ID/REPOSITORY_ID/IMAGE@sha256:HASH.
  • ‫goog-vulnz הוא PROVIDER_PROJECT_ID לניתוח נקודות חולשה ב-Artifact Analysis.
  • ‫NOTE_ID הוא המזהה של ההערה. הערות שקשורות לאבטחה בדרך כלל מופיעות בפורמט CVE-2019-12345.

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

  • שימוש בהתראות Pub/Sub כדי לקבל התראות על פגיעויות ומטא-נתונים אחרים.

  • יצירת אישורים על ידי שילוב של Artifact Analysis עם Binary Authorization כדי למנוע הפעלה של קובצי אימג' של קונטיינרים עם בעיות אבטחה ידועות בסביבת הפריסה.