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 juntos 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êiner.

Esta visão geral pressupõe que você já está familiarizado com o uso de 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 consiste em duas tarefas principais: verificação por push 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 que são 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 verificadas 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 verificadas para mantê-los atualizados. O Artifact Analysis atualiza as ocorrências de vulnerabilidade atuais, cria novas ocorrências de vulnerabilidade para novas notas e exclui ocorrências de vulnerabilidade 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 vão ficar desatualizados. Além disso, o Artifact Analysis arquiva metadados que estão desatualizados há mais de 90 dias, e eles não ficam disponíveis no console Google Cloud , na gcloud ou usando a API. Para verificar novamente uma imagem com metadados desatualizados ou arquivados, extraia essa imagem. A atualização dos metadados pode levar até 24 horas.

Listas de manifestos

Também é possível usar a verificação de vulnerabilidades com listas de manifestos. 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ó é compatível com imagens Linux amd64. Se a lista de manifestos apontar para mais de uma imagem Linux amd64, apenas a primeira será verificada. Se não houver ponteiros para imagens Linux amd64, você não vai receber nenhum resultado de verificação.

Verificação sob demanda

Com a verificação sob demanda, é possível 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 pacote compatíveis

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

O Container Registry está descontinuado. Com o Container Registry, a verificação automática só verifica pacotes do SO. Se você usa 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 compatíveis

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
Google Distroless
Red Hat Enterprise Linux (RHEL)
Imagem de base universal (UBI, na sigla em inglês) da Red Hat
Rocky Linux
SUSE Linux Enterprise Server (SLES)
Ubuntu
Wolfi

Pacotes de idiomas de aplicativos compatíveis

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 aplicativos no Artifact Registry quando eles são contêinerizados e armazenados em um repositório de formato 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 do registro, consulte o gráfico 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 visualizar vulnerabilidades de imagem e metadados de imagem para contêineres no Artifact Registry.

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

A API REST Artifact Analysis também pode ser usada para executar 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 ver ocorrências de vulnerabilidade.

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

Controlar a implantação de imagens vulneráveis

É possível 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 seu ambiente de implantação.

Também é 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 da implantação. Se as vulnerabilidades violarem a política na lista de permissões, você vai receber um alerta.

Por fim, é possível usar a verificação on demand para bloquear e falhar builds com base na gravidade das vulnerabilidades encontradas.

Origens de vulnerabilidade

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

Verificações de pacotes do SO

O Artifact Analysis usa as seguintes fontes:

Verificações de pacotes de linguagens

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 obtidos do GitHub Advisory Database.

Na maioria dos casos, cada vulnerabilidade recebe um ID de CVE, que se torna o principal identificador dela. Nos casos em que não há um ID de CVE atribuído a uma vulnerabilidade, um ID do GHSA é atribuído como identificador. Se mais tarde essa vulnerabilidade receber um ID de CVE, 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 de software do sistema operacional:

  • AlmaLinux OS: versões 8, 9 e 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, 3.21
  • CentOS: versões 6, 7, 8 e secundárias
  • Chainguard: atualizações graduais em uma única faixa de lançamento.
  • Debian GNU/Linux - Versões: 11, 12, 13
  • Red Hat Enterprise Linux (RHEL): as versões 7, 8, 9 e secundárias têm suporte para verificações automáticas de registro.
  • Red Hat Universal Base Image (UBI) - versões 8, 9 e secundárias
  • Rocky Linux: versões 8, 9 e secundárias
  • SUSE Linux Enterprise Server (SLES): versões 12, 15 e secundárias. O SLES para SAP também é compatível com as mesmas versões.
  • Ubuntu: versões 14.04, 16.04, 18.04, 20.04, 22.04, 24.04, 24.10
  • Wolfi: atualizações graduais em uma única faixa de lançamento.

Limitações

  • A principal função do Artifact Analysis é verificar e detectar vulnerabilidades em contêineres e torná-las visíveis para sua organização. Artifact Analysis não afirma identificar características de imagens que possam aumentar ou diminuir a capacidade da sua organização de verificar a integridade ou a confiança de uma imagem. Para desenvolver ainda mais essa confiança, o Google tem soluções que podem ser usadas individualmente ou em combinação. Saiba mais sobre nossa abordagem de segurança da cadeia de suprimentos de software.

  • Artifact Analysis fornece resultados de verificação de vulnerabilidades para o 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 versão 9 do RHEL não é compatível com a verificação sob demanda.

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

A seguir