Verificar pacotes do Go manualmente

Neste guia de início rápido, mostramos como extrair uma imagem de contêiner, fazer uma verificação manual com a verificação sob demanda e recuperar as vulnerabilidades identificadas para pacotes do sistema e do Go. Para seguir este guia de início rápido, você vai usar o Cloud Shell e uma imagem de exemplo do Alpine.

Antes de começar

  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

Baixar e verificar uma imagem

  1. Abra um Cloud Shell no projeto.

    Abra o Cloud Shell

    Isso abre um terminal com todas as ferramentas necessárias para seguir este guia.

  2. Use o Docker para extrair a imagem do contêiner:

    docker pull golang:1.17.6-alpine
    
  3. Execute a verificação:

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

    Isso aciona o processo de verificação e retorna o nome da verificação quando ela termina:

    ✓ 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. Use o nome da verificação e o valor de scan da saída para buscar os resultados da verificação:

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

    A saída contém uma lista de vulnerabilidades de pacotes do Go, da biblioteca padrão do Go e do Linux. Os rótulos a seguir indicam o tipo de vulnerabilidade do Go:

    • packageType:GO_STDLIB. Vulnerabilidades da biblioteca padrão do Go. Isso indica que a vulnerabilidade foi encontrada na cadeia de ferramentas do Go usada para criar o binário ou na biblioteca padrão agrupada com a cadeia de ferramentas. Uma possível correção é fazer upgrade do conjunto de ferramentas de build.

    • packageType:GO. Vulnerabilidades do pacote Go. Isso indica que a vulnerabilidade foi encontrada em um pacote de terceiros. Uma possível correção é fazer upgrade dos módulos dependentes.

Limpar

Para evitar cobranças na sua conta do Google Cloud pelos recursos usados nesta página, siga estas etapas.

  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.

A seguir