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:
- AlmaLinux OS
- Alpine
- CentOS: o Red Hat e o CentOS compartilham a mesma fonte de dados de vulnerabilidade. Como os pacotes do CentOS são publicados depois dos pacotes do Red Hat, uma correção disponível para uma vulnerabilidade no Red Hat pode levar algum tempo para também ficar disponível no CentOS.
- Chainguard (link em inglês)
- Debian (em inglês)
- O Google Distroless é baseado no Debian e usa os dados de vulnerabilidade do Debian.
- National Vulnerability Database
- Red Hat Enterprise Linux (RHEL) [em inglês]
- Imagem base universal (UBI) do Red Hat
- Rocky Linux
- SUSE Linux Enterprise Server (SLES) [em inglês]
- Ubuntu
- Wolfi
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
- Go: Artifact Analysis informa vulnerabilidades de pacotes na biblioteca padrão do Go e em pacotes externos do Go não incluídos na biblioteca padrão. As vulnerabilidades são informadas com um rótulo diferente para cada tipo de pacote.
- Java: Artifact Analysis é compatível com pacotes Maven que seguem as convenções de nomenclatura do Maven (em inglês). Se a versão do pacote incluir espaços, ela não será verificada.
- Node.js: a correspondência de versões de pacotes segue a especificação de controle de versão semântico.
- PHP: Artifact Analysis verifica pacotes do Composer. Consulte Controle de versões semântico do Composer.
- Python: a correspondência de versões do Python segue a semântica da PEP 440.
- Ruby: o Artifact Analysis verifica pacotes do RubyGems. Consulte Controle de versões semântico do RybyGems.
- Rust: o Artifact Analysis verifica pacotes do Cargo. Consulte Controle de versões semântico do Rust.
- .NET: o Artifact Analysis verifica pacotes NuGet. Consulte Controle de versão semântico do NuGet.