Visão geral da verificação de contêineres

O Artifact Analysis oferece duas maneiras de verificar imagens: verificação automática e verificação sob demanda. Este documento descreve os detalhes dos recursos para os dois tipos de verificação.

Artifact Analysis também oferece gerenciamento de metadados. Para saber mais sobre como usar a verificação e o armazenamento de metadados para proteger seu pipeline de CI/CD de ponta a ponta, consulte a Visão geral da análise de artefatos.

Consulte Preços para saber mais sobre os custos associados à verificação de imagens de contêineres.

Esta visão geral pressupõe que você já sabe usar repositórios do Docker no Artifact Registry ou no Container Registry (descontinuado).

Verificação automática

O Artifact Analysis realiza verificações de vulnerabilidades nos seus artefatos no Artifact Registry ou no Container Registry (descontinuado). Artifact Analysis também identifica dependências e licenças para ajudar você a entender a composição do software.

A verificação automática inclui duas tarefas principais: verificação automática e análise contínua.

Verificação por push

O Artifact Analysis verifica novas imagens quando elas são enviadas para o Artifact Registry ou o Container Registry. Essa verificação extrai informações sobre os pacotes no contêiner. As imagens são verificadas apenas uma vez, com base no resumo da imagem. Isso significa que a adição ou modificação de tags não acionará novas verificações.

O Artifact Analysis só detecta vulnerabilidades em pacotes monitorados publicamente quanto a vulnerabilidades de segurança.

Quando a varredura de uma imagem é concluída, o resultado de vulnerabilidade é uma coleção das ocorrências de vulnerabilidade de uma imagem.

Análise contínua

O Artifact Analysis cria ocorrências de vulnerabilidades encontradas quando você faz upload da imagem. Após a verificação inicial, ele monitora continuamente os metadados de imagens digitalizadas no Artifact Registry e no Container Registry em busca de novas vulnerabilidades.

O Artifact Analysis recebe informações de vulnerabilidade novas e atualizadas de origens de vulnerabilidade várias vezes por dia. Quando novos dados de vulnerabilidade chegam, o Artifact Analysis atualiza os metadados das imagens digitalizadas para mantê-los atualizados. O Artifact Analysis atualiza as ocorrências de vulnerabilidade existentes, cria novas ocorrências de vulnerabilidade para novas notas e exclui ocorrências que não são mais válidas.

O Artifact Analysis só atualiza os metadados de imagens enviadas ou extraídas nos últimos 30 dias. Após 30 dias, os metadados não serão mais atualizados, e os resultados ficarão desatualizados. Além disso, o Artifact Analysis arquiva metadados que estão desatualizados há mais de 90 dias, e eles não estarão disponíveis no console do Google Cloud, no gcloud ou usando a API. Para verificar novamente uma imagem com metadados desatualizados ou arquivados, extraia essa imagem. A atualização de metadados pode levar até 24 horas.

Listas de manifestos

Também é possível usar verificação de vulnerabilidades com listas de manifesto. Uma lista de manifestos é uma lista de ponteiros para manifestos de várias plataformas. Elas permitem que uma única imagem funcione com várias arquiteturas ou variações de um sistema operacional.

A verificação de vulnerabilidades do Artifact Analysis só tem suporte para imagens amd64 do Linux. Se a lista de manifestos apontar para mais de uma imagem Linux amd64, somente a primeira será verificada. Se não houver ponteiros para imagens Linux amd64, você não vai receber resultados de verificação.

Verificação sob demanda

A verificação sob demanda permite verificar imagens de contêiner localmente no computador ou no registro usando a CLI gcloud. Isso oferece a flexibilidade de personalizar seu pipeline de CI/CD, dependendo de quando você precisa acessar os resultados de vulnerabilidade.

Tipos de pacotes com suporte

Quando você envia imagens de contêiner para repositórios do Docker no Artifact Registry, o Artifact Analysis pode verificar vulnerabilidades em vários tipos de pacotes de SO e de linguagem de aplicativo.

O Container Registry foi descontinuado. Com o Container Registry, a verificação automática só verifica pacotes do SO. Se você estiver usando o Container Registry, saiba como fazer a transição para o Artifact Registry.

As tabelas a seguir comparam os tipos de pacotes que Artifact Analysis pode verificar com cada serviço de verificação:

Pacotes de SO com suporte

Verificação automática com o Artifact Registry Verificação automática com o Container Registry (descontinuado) Verificação sob demanda
AlmaLinux OS
Alpine
CentOS
Chainguard
Debian
Distroless do Google
Red Hat Enterprise Linux (RHEL)
Imagem de base universal (UBI) do Red Hat
Rocky Linux
SUSE Linux Enterprise Server (SLES)
Ubuntu
Wolfi

Pacotes de idioma do aplicativo com suporte

Verificação automática com o Artifact Registry Verificação automática com o Container Registry (descontinuado) Verificação sob demanda
Pacotes do Go
Pacotes Java
Pacotes Node.js
Pacotes PHP
Pacotes do Python
Pacotes do Ruby
Pacotes Rust
Pacotes .NET

O Artifact Analysis só verifica pacotes de linguagem de aplicativo no Artifact Registry quando eles são contêinerizados e armazenados em um repositório de formato do Docker. Os outros formatos de repositório do Artifact Registry não são compatíveis.

Para mais informações sobre os recursos disponíveis para cada produto de registro, consulte a tabela de comparação.

Artifact Analysis não é compatível com contêineres do Windows Server.

Interfaces do Artifact Analysis

No console do Google Cloud, é possível conferir vulnerabilidades de imagem e metadados de imagem para contêineres no Artifact Registry.

Use a CLI gcloud para visualizar vulnerabilidades e metadados de imagens.

Você também pode usar a API REST Artifact Analysis para realizar qualquer uma dessas ações. Assim como em outras APIs do Cloud Platform, você precisa autenticar o acesso usando o OAuth2. Depois da autenticação, você também pode usar a API para criar notas e ocorrências personalizadas e conferir ocorrências de vulnerabilidade.

A API Artifact Analysis é compatível com gRPC e REST/JSON. É possível fazer chamadas para a API usando as bibliotecas de cliente ou usando cURL para REST/JSON.

Controlar a implantação de imagens vulneráveis

É possível usar a autorização binária para criar uma lista de permissões de vulnerabilidade com base nas informações de vulnerabilidade fornecidas pelo Artifact Analysis como parte do pipeline do Cloud Build. Se as vulnerabilidades violarem a política na lista de permissões, a compilação vai falhar.

Você também pode integrar o Artifact Analysis com a autorização binária para criar atestados, o que pode impedir que imagens de contêiner com problemas de segurança conhecidos sejam executadas no ambiente de implantação.

Origens de vulnerabilidade

A seção a seguir lista as origens de vulnerabilidade que Artifact Analysis usa para extrair dados de CVE.

Verificações de pacotes do SO

O Artifact Analysis usa as seguintes fontes:

Verificações de pacotes de idiomas

O Artifact Analysis oferece suporte à verificação de vulnerabilidades para pacotes de linguagem em uma imagem de contêiner. Os dados de vulnerabilidade são extraídos do GitHub Advisory Database.

Na maioria dos casos, cada vulnerabilidade recebe um ID do CVE, que passa a ser o identificador principal dessa vulnerabilidade. Nos casos em que não há um ID de CVE atribuído a uma vulnerabilidade, um ID da GHSA é atribuído como identificador. Se essa vulnerabilidade receber um ID de CVE mais tarde, o ID da vulnerabilidade será atualizado para corresponder à CVE. Consulte Verificar uma vulnerabilidade específica em um projeto para mais informações.

Versões compatíveis do SO

O Artifact Analysis é compatível com a verificação de vulnerabilidades das seguintes versões do software do sistema operacional:

  • AlmaLinux OS: versões 8, 9 e versões secundárias
  • Alpine Linux - Versões: 3.3, 3.4, 3.5, 3.6, 3.7, 3.8, 3.9, 3.10, 3.11, 3.12, 3.13, 3.14, 3.15, 3.16, 3.17, 3.18, 3.19, 3.20
  • CentOS: versões 6, 7, 8 e versões secundárias
  • Chainguard: atualizações graduais em uma faixa de lançamento.
  • Debian GNU/Linux - Versões: 9, 10, 11, 12
  • Red Hat Enterprise Linux (RHEL): as versões 6, 7, 8, 9 e as versões secundárias têm suporte para verificações automáticas de registro.
  • Imagem base universal (UBI) do Red Hat: versões 8, 9 e versões secundárias
  • Rocky Linux: versões 8, 9 e versões secundárias
  • SUSE Linux Enterprise Server (SLES): versões 12, 15 e versões secundárias. O SLES para SAP também tem suporte às mesmas versões.
  • Ubuntu: 12.04, 12.10, 13.04, 14.04, 14.10, 15.04, 15.10, 16.04, 16.10, 17.04, 17.10, 18.04, 18.10, 20.04, 20.10, 21.04, 21.10, 22.04, 22.10, 23.04, 23.10, 24.04
  • Wolfi: atualizações graduais em uma única faixa de lançamento.

Limitações

  • Artifact Analysis gera resultados de verificação de vulnerabilidades do RHEL com base na versão secundária mais recente de cada versão principal lançada. Pode haver imprecisões nos resultados da verificação para versões secundárias mais antigas do RHEL.
  • A verificação sob demanda não é compatível com o RHEL versão 9.

Gerenciadores de pacotes e controle de versão semântico

A seguir