Go-Pakete manuell scannen

In dieser Kurzanleitung erfahren Sie, wie Sie ein Container-Image abrufen, es manuell mit On-Demand-Scannen prüfen und erkannte Sicherheitslücken für System- und Go-Pakete abrufen. In dieser Kurzanleitung verwenden Sie Cloud Shell und ein Beispiel-Alpine-Image.

Hinweise

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

  4. Enable the On-Demand Scanning API.

    Enable the API

  5. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  6. Make sure that billing is enabled for your Google Cloud project.

  7. Enable the On-Demand Scanning API.

    Enable the API

Bild 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 diese Anleitung auszuführen.

  2. Verwenden Sie Docker, um das Container-Image abzurufen:

    docker pull golang:1.17.6-alpine
    
  3. So 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 der Scanname wird am Ende 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. Verwenden Sie den Scannamen, den Wert von scan aus der Ausgabe, um die Scanergebnisse abzurufen:

    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, der Go-Standardbibliothek und Linux-Paketen. Die folgenden Labels geben den Typ der Go-Sicherheitslücken an:

    • packageType:GO_STDLIB. Sicherheitslücken in der Go-Standardbibliothek. Dies bedeutet, dass die Sicherheitslücke entweder in der Go-Toolchain gefunden wurde, mit der die Binärdatei erstellt wurde, oder in der Standardbibliothek, die mit der Toolchain gebündelt ist. Eine mögliche Lösung besteht darin, Ihre Build-Toolchain zu aktualisieren.

    • packageType:GO. Rufen Sie „Sicherheitslücken in Paketen“ auf. Dies bedeutet, 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 in dieser Anleitung verwendeten Ressourcen in Rechnung gestellt werden:

  1. In the Google Cloud console, go to the Manage resources page.

    Go to Manage resources

  2. In the project list, select the project that you want to delete, and then click Delete.
  3. In the dialog, type the project ID, and then click Shut down to delete the project.

Nächste Schritte