Eseguire la scansione dei pacchetti Go manualmente

Questa guida rapida mostra come estrarre un'immagine container, analizzarla manualmente con On-Demand Scanning e recuperare le vulnerabilità identificate per i pacchetti di sistema e Go. Per seguire questa guida rapida, utilizzerai Cloud Shell e un'immagine Alpine di esempio.

Prima di iniziare

  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

Scaricare e scansionare un'immagine

  1. Apri Cloud Shell nel tuo progetto.

    Apri Cloud Shell

    Si aprirà un terminale con tutti gli strumenti necessari per seguire questa guida.

  2. Utilizza docker per eseguire il pull dell'immagine del contenitore:

    docker pull golang:1.17.6-alpine
    
  3. Esegui la scansione:

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

    Questo attiva la procedura di scansione e restituisce il nome della scansione al termine:

    ✓ 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. Utilizza il nome della scansione, il valore di scan dall'output, per recuperare i risultati della scansione:

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

    L'output contiene un elenco di vulnerabilità di Go, della libreria standard di Go e dei pacchetti Linux. Le seguenti etichette indicano il tipo di vulnerabilità Go:

    • packageType:GO_STDLIB. Vai alle vulnerabilità della libreria standard. Ciò indica che la vulnerabilità è stata trovata nella toolchain Go utilizzata per compilare il file binario o nella libreria standard inclusa nella toolchain. Un possibile correzione è eseguire l'upgrade della toolchain di compilazione.

    • packageType:GO. Vai alle vulnerabilità dei pacchetti. Ciò indica che la vulnerabilità è stata trovata in un pacchetto di terze parti. Una possibile soluzione è eseguire l'upgrade dei moduli dipendenti.

Esegui la pulizia

Per evitare che al tuo account Google Cloud vengano addebitati costi relativi alle risorse utilizzate in questa pagina, segui questi passaggi.

  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.

Passaggi successivi