Verificar pacotes Go manualmente

Este guia de início rápido mostra como extrair uma imagem de contêiner, fazer a 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 um exemplo de imagem 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

Fazer o download e verificar uma imagem

  1. Abra um Cloud Shell no projeto.

    Abrir 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 concluído:

    ✓ 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, 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 do Go, da biblioteca padrão do Go e do pacote Linux. Os rótulos a seguir indicam o tipo de vulnerabilidades 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 empacotada com a cadeia de ferramentas. Uma possível solução é fazer upgrade do conjunto de ferramentas de build.

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

Limpar

Para evitar cobranças na 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