Go-Pakete manuell scannen

In dieser Kurzanleitung erfahren Sie, wie Sie ein Container-Image abrufen, es mit On-Demand-Scans manuell scannen und identifizierte Sicherheitslücken für System- und Go-Pakete abrufen. Für diese Kurzanleitung verwenden Sie Cloud Shell und ein Alpine-Beispielimage.

Hinweis

  1. Melden Sie sich in Ihrem Google Cloud -Konto an. Wenn Sie noch nicht mit Google Cloudvertraut sind, erstellen Sie ein Konto, um die Leistung unserer Produkte in der Praxis sehen und bewerten zu können. Neukunden erhalten außerdem ein Guthaben von 300 $, um Arbeitslasten auszuführen, zu testen und bereitzustellen.
  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 On-Demand Scanning API.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the API

  5. 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

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

  7. Enable the On-Demand Scanning API.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the API

Image herunterladen und scannen

  1. Öffnen Sie eine Cloud Shell in Ihrem Projekt.

    Cloud Shell öffnen

    Dadurch wird ein Terminal mit allen erforderlichen Tools geöffnet, um dieser Anleitung zu folgen.

  2. Rufen Sie das Container-Image mit Docker ab:

    docker pull golang:1.17.6-alpine
    
  3. Führen Sie den Scan aus:

    gcloud artifacts docker images scan golang:1.17.6-alpine --additional-package-types=GO
    

    Dadurch wird der Scanvorgang ausgelöst und nach Abschluss der Scanname zurückgegeben:

    ✓ Scanning container image
      ✓ Locally extracting packages and versions from local container image
      ✓ Remotely initiating analysis of packages and versions
      ✓ Waiting for analysis operation to complete [projects/my-project/locations/us/operations/849db1f8-2fb2-4559-9fe0-8720d8cd347c]
    Done.
    done: true
    metadata:
      '@type': type.googleapis.com/google.cloud.ondemandscanning.v1.AnalyzePackagesMetadata
      createTime: '2022-01-11T16:58:11.711487Z'
      resourceUri: golang:1.16.13-alpine
    name: projects/my-project/locations/us/operations/f4adb1f8-20b2-4579-9fe0-8720d8cd347c
    response:
      '@type': type.googleapis.com/google.cloud.ondemandscanning.v1.AnalyzePackagesResponse
      scan: projects/my-project/locations/us/scans/a54f12b0-ca2d-4d93-8da5-5cf48e9e20ef
    
  4. Rufen Sie die Scanergebnisse mit dem Scannamen, dem Wert von scan aus der Ausgabe, ab:

    gcloud artifacts docker images list-vulnerabilities \
    projects/my-project/locations/us/scans/a54f12b0-ca2d-4d93-8da5-5cf48e9e20ef
    

    Die Ausgabe enthält eine Liste von Sicherheitslücken in Go-, Go-Standardbibliotheken und Linux-Paketen. Die folgenden Labels geben den Typ der Go-Sicherheitslücken an:

    • packageType:GO_STDLIB: Sicherheitslücken in der Go-Standardbibliothek. Dies weist darauf hin, dass die Sicherheitslücke entweder in der Go-Toolchain gefunden wurde, die zum Erstellen der Binärdatei verwendet wurde, oder in der Standardbibliothek, die in der Toolchain enthalten ist. Eine mögliche Lösung besteht darin, die Build-Toolchain zu aktualisieren.

    • packageType:GO: Sicherheitslücken in Go-Paketen. Dies weist darauf hin, dass die Sicherheitslücke in einem Drittanbieterpaket gefunden wurde. Eine mögliche Lösung besteht darin, die abhängigen Module zu aktualisieren.

Bereinigen

Mit den folgenden Schritten vermeiden Sie, dass Ihrem Google Cloud -Konto die auf dieser Seite verwendeten Ressourcen in Rechnung gestellt werden:

  1. Wechseln Sie in der Google Cloud -Console zur Seite Ressourcen verwalten.

    Zur Seite „Ressourcen verwalten“

  2. Wählen Sie in der Projektliste das Projekt aus, das Sie löschen möchten, und klicken Sie dann auf Löschen.
  3. Geben Sie im Dialogfeld die Projekt-ID ein und klicken Sie auf Shut down (Beenden), um das Projekt zu löschen.

Nächste Schritte