סריקת חבילות של מערכת ההפעלה באופן אוטומטי

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

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

במדריך הזה נשתמש בחבילה פשוטה שזמינה לכולם כדי להדגים סוג אחד של סריקת חבילות. כברירת מחדל, כשתפעילו את ה-API לסריקה, התכונה 'ניתוח ארטיפקטים' תסרוק חולשות בכמה סוגים של חבילות. סוגי החבילות הנתמכים כוללים: מערכת הפעלה, Go, ‏ Java (Maven), ‏ Python ו-Node.js (npm).

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

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

  2. הגדירו שה-CLI של gcloud ישתמש בזהות המאוחדת שלכם.

    איך נכנסים ל-CLI של gcloud באמצעות הזהות המאוחדת?

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

    gcloud init
  4. יוצרים או בוחרים Google Cloud פרויקט.

    התפקידים שנדרשים כדי לבחור או ליצור פרויקט

    • Select a project: כדי לבחור פרויקט לא צריך תפקיד IAM ספציפי – אפשר לבחור כל פרויקט שקיבלתם בו תפקיד.
    • יצירת פרויקט: כדי ליצור פרויקט, צריך את התפקיד "יצירת פרויקטים" (roles/resourcemanager.projectCreator), שכולל את ההרשאה resourcemanager.projects.create. איך מקצים תפקידים?
    • יוצרים Google Cloud פרויקט:

      gcloud projects create PROJECT_ID

      מחליפים את PROJECT_ID בשם של פרויקט Google Cloud שיוצרים.

    • בוחרים את הפרויקט שיצרתם: Google Cloud

      gcloud config set project PROJECT_ID

      מחליפים את PROJECT_ID בשם הפרויקט ב- Google Cloud .

  5. מוודאים שהחיוב מופעל בפרויקט Google Cloud .

  6. מפעילים את ממשקי ה-API של Artifact Registry ושל Container Scanning, אם יש כאלה שלא מופעלים:

    תפקידים שנדרשים להפעלת ממשקי API

    כדי להפעיל ממשקי API, צריך את ההרשאה serviceusage.services.enable. אם יצרתם את הפרויקט, סביר להניח שכבר יש לכם את ההרשאה הזו דרך התפקיד 'בעלים' (roles/owner). אחרת, תוכלו לקבל את ההרשאה הזו דרך התפקיד 'אדמין בממשק Service Usage' (roles/serviceusage.serviceUsageAdmin). איך מקצים תפקידים

    gcloud services enable containerscanning.googleapis.com  artifactregistry.googleapis.com

יצירת מאגר Docker ב-Artifact Registry

יוצרים מאגר Docker כדי לאחסן את תמונת הדוגמה למדריך למתחילים הזה.

  1. פותחים את הדף Repositories במסוף Google Cloud .

    פתיחת הדף Repositories

  2. לוחצים על Create Repository (יצירת מאגר).

  3. בדף Create Repository, מזינים את ההגדרות הבאות:

    • שם: quickstart-docker-repo
    • פורמט: Docker
    • מצב: רגיל
    • סוג המיקום: אזור
    • אזור: us-central1
  4. לוחצים על יצירה.

מוצג הדף Repositories (מאגרי מידע). מאגר quickstart-docker-repo נוסף לרשימת המאגרים.

הגדרת אימות

כדי לדחוף או למשוך תמונות באמצעות Artifact Registry, צריך להגדיר את Docker כך שישתמש ב-Google Cloud CLI כדי לאמת בקשות ל-Artifact Registry.

ב-Cloud Shell או במעטפת המקומית, מגדירים אימות למאגרי Docker באזור us-central1:

gcloud auth configure-docker us-central1-docker.pkg.dev

קבלת חבילה

  1. עוברים לספרייה שבה רוצים לשמור את קובץ האימג' של הקונטיינר.

  2. מעתיקים את התמונה לספרייה המקומית. לדוגמה, אתם יכולים להשתמש ב-Docker כדי לשלוף את קובץ האימג' האחרון של Ubuntu מ-Docker Hub.

    docker pull ubuntu:latest
    

תיוג החבילה בשם המאגר

כשרוצים להעביר חבילה ל-Artifact Registry, צריך להגדיר את הפקודה docker push כדי להעביר את קובץ האימג' למיקום ספציפי.

מריצים את הפקודה הבאה כדי לתייג את התמונה כ-quickstart-image:tag1:

docker tag ubuntu:latest \
us-central1-docker.pkg.dev/PROJECT/quickstart-docker-repo/quickstart-image:tag1

כאשר:

  • ‫PROJECT הוא מזהה הפרויקט ב- Google Cloud. אם מזהה הפרויקט מכיל נקודתיים (:), כדאי לעיין במאמר בנושא פרויקטים בהיקף הדומיין.
  • ‫us-central1 הוא האזור של מאגר Artifact Registry.
  • ‫docker.pkg.dev הוא שם המארח של מאגרי Docker.
  • ‫quickstart-image הוא שם התמונה שרוצים להשתמש בה במאגר. שם התמונה יכול להיות שונה משם התמונה המקומית.
  • ‫tag1 הוא תג שמוסיפים לקובץ האימג' של Docker. אם לא ציינתם תג, Docker יחיל את תג ברירת המחדל latest.

העברת האימג' בדחיפה ל-Artifact Registry

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

כדי להעביר את קובץ האימג' למאגר Docker ב-Artifact Registry, מריצים את הפקודה הבאה:

docker push us-central1-docker.pkg.dev/PROJECT/quickstart-docker-repo/quickstart-image:tag1

מחליפים את PROJECT במזהה הפרויקט. Google Cloud אם מזהה הפרויקט מכיל נקודתיים (:), קראו את המאמר פרויקטים ברמת הדומיין.

הצגת תוצאות של סריקת נקודות חולשה

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

  1. פותחים את רשימת המאגרים של Artifact Registry במסוף Artifact Analysis.

    פתיחת הדף Repositories

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

  3. לוחצים על שם של תמונה.

    תוצג רשימה של תקצירי תמונות.

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

    צילום מסך של תמונה עם נקודות חולשה

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

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

    צילום מסך של רשימת תמונות ופרטים על נקודות חולשה

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

  5. כדי לקבל מידע נוסף על נקודת חולשה ספציפית ממקור נקודת החולשה, לוחצים על מזהה ה-CVE המקושר בעמודה Name.

דרכים אחרות לצפייה בתוצאות

במסוף Google Cloud מוצגות עד 1,200 נקודות חולשה. אם באימג' יש יותר מ-1,200 נקודות חולשה, צריך להשתמש ב-gcloud או ב-API כדי לראות את הרשימה המלאה.

הסרת המשאבים

כדי לא לצבור חיובים בחשבון Google Cloud על המשאבים שבהם השתמשתם בדף הזה, אתם צריכים למחוק את הפרויקט Google Cloud יחד עם המשאבים.

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

  1. נכנסים לדף Manage resources במסוף Google Cloud .

    כניסה לדף Manage resources

  2. ברשימת הפרויקטים, בוחרים את הפרויקט שרוצים למחוק ולוחצים על Delete.
  3. כדי למחוק את הפרויקט, כותבים את מזהה הפרויקט בתיבת הדו-שיח ולוחצים על Shut down.

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