A verificação de contêineres identifica vulnerabilidades novas e atuais e pacotes maliciosos nas dependências de código aberto para imagens de contêiner nos repositórios do Artifact Registry. O Artifact Analysis oferece duas maneiras de verificar seus pacotes: verificação automática e verificação sob demanda. Este documento descreve os dois tipos de verificação.
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 do Artifact Analysis.
Consulte os 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á esteja familiarizado com o uso de repositórios do Docker no Artifact Registry.
Verificar vulnerabilidades em imagens
O Artifact Analysis realiza verificações de vulnerabilidades e pacotes maliciosos nos seus artefatos no Artifact Registry. O 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 automática
O Artifact Analysis verifica novas imagens quando elas são enviadas para o Artifact 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 e softwares maliciosos em pacotes monitorados publicamente. Os dados de vulnerabilidade são originados de vários provedores upstream, e os dados de pacotes maliciosos são originados do repositório de pacotes maliciosos do OpenSSF. Os pacotes maliciosos são informados como vulnerabilidades de gravidade CRITICAL.
Quando a varredura de uma imagem é concluída, o resultado de vulnerabilidade é uma coleção das ocorrências de vulnerabilidade de uma imagem.
As verificações automáticas de vulnerabilidades também detectam secrets, como chaves de API e chaves de conta de serviço, para que você possa evitar a exposição de dados sensíveis. Este recurso está em pré-lançamento público. Para mais informações, consulte Verificar secrets.
Análise contínua
O Artifact Analysis cria ocorrências de vulnerabilidades e pacotes maliciosos encontrados quando você faz upload da imagem. Após a verificação inicial, ele monitora continuamente os metadados de imagens verificadas no Artifact Registry em busca de novas vulnerabilidades e pacotes maliciosos.
O Artifact Analysis recebe informações novas e atualizadas sobre vulnerabilidades e pacotes maliciosos de origens de vulnerabilidade várias vezes por dia. Quando novos dados de vulnerabilidade ou pacotes maliciosos chegam, o Artifact Analysis atualiza os metadados das imagens verificadas para mantê-los atualizados. O Artifact Analysis atualiza as ocorrências atuais, cria novas ocorrências para novas notas e exclui ocorrências que não são mais válidas.
O Artifact Analysis continua verificando imagens e pacotes enquanto eles forem extraídos nos últimos 30 dias. Após 30 dias, os metadados de imagens e pacotes verificados não serão mais atualizados, e os resultados ficarão desatualizados.
O Artifact Analysis arquiva metadados que estão desatualizados há mais de 90 dias. Esses metadados arquivados só podem ser avaliados usando a API. É possível verificar novamente uma imagem com metadados desatualizados ou arquivados extraindo essa imagem. A atualização dos metadados pode levar até 24 horas. Não é possível verificar novamente pacotes com metadados desatualizados ou arquivados.
Arquiteturas
O Artifact Analysis pode verificar imagens em qualquer arquitetura baseada em Linux.
Também é possível usar a verificação de vulnerabilidades com listas de manifestos. Uma lista de manifestos é uma lista de indicadores para manifestos de várias plataformas. Eles permitem que uma única imagem funcione com várias arquiteturas ou variações de um sistema operacional.
Se a lista de manifestos contiver uma imagem Linux amd64, o Artifact Analysis vai verificar essa imagem. Caso contrário, o Artifact Analysis seleciona uma imagem diferente na lista.
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 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 de SO e pacotes de linguagem de aplicativos.
As tabelas a seguir comparam os tipos de pacotes que o 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 sob demanda | |
|---|---|---|
| SO AlmaLinux | ||
| Alpine | ||
| CentOS | ||
| Chainguard | ||
| Debian | ||
| Google Distroless | ||
| MinimOS | ||
| Red Hat Enterprise Linux (RHEL) | ||
| Red Hat Universal Base Image (UBI) | ||
| Rocky Linux | ||
| SUSE Linux Enterprise Server (SLES) | ||
| Ubuntu | ||
| Wolfi |
Pacotes de linguagem de aplicativos compatíveis
| Verificação automática com o Artifact Registry | Verificação sob demanda | |
|---|---|---|
| Pacotes do Go | ||
| Pacotes Java | ||
| Pacotes Node.js | ||
| Pacotes PHP | ||
| Pacotes do Python | ||
| Pacotes do Ruby | ||
| Pacotes Rust | ||
| Pacotes .NET |
Para mais informações sobre os recursos disponíveis para cada produto de registro, consulte o gráfico de comparação.
O Artifact Analysis não é compatível com contêineres do Windows Server.
Interfaces do Artifact Analysis
No Google Cloud consol, é 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 OAuth2. Depois da autenticação, também é possível usar a API para criar notas e ocorrências personalizadas e visualizar 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 usando cURL para REST/JSON.
Como encontrar caminhos de arquivos de pacotes
Quando o Artifact Analysis encontra uma vulnerabilidade, talvez você não reconheça o pacote vulnerável como uma dependência no seu artefato. Isso pode acontecer se o gerenciador de pacotes o introduzir ou se o pacote for uma dependência transitiva, ou seja, uma dependência de uma das suas dependências.
Para encontrar o caminho para o arquivo que causou uma descoberta de vulnerabilidade, siga estas etapas:
- Noconsol, acesse a lista de vulnerabilidades de um artefato em Acessar o Artifact Registry. Google Cloud
- Para a vulnerabilidade que você quer investigar, clique em VER CORREÇÃO.
No painel de detalhes, clique em MOSTRAR MAIS INFORMAÇÕES.
O campo Local do arquivo mostra o caminho para o pacote vulnerável.
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 as imagens de contêiner com problemas de segurança conhecidos sejam executadas no ambiente da sua 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ê receberá um alerta.
Por fim, é possível usar a verificação sob demanda para bloquear e falhar builds com base na gravidade das vulnerabilidades encontradas.
Origens de vulnerabilidade
A seção a seguir lista as origens de vulnerabilidade que o Artifact Analysis usa para receber CVE.
Verificações de pacotes do SO
O Artifact Analysis usa as seguintes origens:
- SO AlmaLinux
- Alpine
- CentOS: o Red Hat e o CentOS compartilham a mesma origem de dados de vulnerabilidade. Como os pacotes do CentOS são publicados após os 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 para o CentOS.
- Chainguard
- Debian
- O Google Distroless é baseado no Debian e usa os dados de vulnerabilidade do Debian.
- Banco Nacional de Vulnerabilidades
- Minimus
- Red Hat Enterprise Linux (RHEL)
- Red Hat Universal Base Image (UBI)
- Rocky Linux
- SUSE Linux Enterprise Server (SLES)
- Ubuntu
- Wolfi
Verificações de pacotes de linguagem
O Artifact Analysis oferece suporte à verificação de vulnerabilidades e pacotes maliciosos para pacotes de linguagem em uma imagem de contêiner.
- Os dados de vulnerabilidade são obtidos do GitHub Advisory Database.
Os dados de pacotes maliciosos são obtidos do repositório de pacotes maliciosos do OpenSSF. Os pacotes maliciosos são informados como descobertas de gravidade CRITICAL. O Artifact Analysis detecta pacotes maliciosos que se enquadram nas seguintes categorias:
- Typosquatting ou confusão de dependência: pacotes publicados com nomes semelhantes a pacotes populares para enganar os usuários e fazer com que eles os instalem.
- Sequestro de conta: pacotes legítimos que foram comprometidos por agentes maliciosos.
- Binários maliciosos: binários pré-criados para um pacote que contém código malicioso.
- Atividade de pesquisador de segurança: pacotes criados por pesquisadores para demonstrar vulnerabilidades ou rastrear o uso de pacotes.
Na maioria dos casos, cada vulnerabilidade recebe um ID de CVE, e esse ID
se torna o identificador principal dessa vulnerabilidade. Nos casos em que não há um
ID de CVE atribuído a uma vulnerabilidade, um ID de GHSA é atribuído como
identificador. Se, mais tarde, essa vulnerabilidade receber um ID de CVE, o ID da vulnerabilidade será atualizado para corresponder ao CVE. Os avisos de pacotes maliciosos têm IDs com um prefixo MAL-. Consulte
Verificar uma vulnerabilidade específica em um projeto para mais
informações.
Versões compatíveis do SO
O Artifact Analysis oferece suporte à verificação de vulnerabilidades para as seguintes versões de software do sistema operacional:
- SO AlmaLinux: versões 8, 9, 10 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, 3.21, 3.22, 3.23
- CentOS: versões 6, 7, 8 e versões secundárias
- Chainguard: atualizações contínuas em uma única faixa de lançamento.
- Debian GNU/Linux: versões 11, 12, 13, 14, 15
- MinimOS: atualizações contínuas em uma única faixa de lançamento.
- Red Hat Enterprise Linux (RHEL): as versões 7, 8, 9 e secundárias são compatíveis com 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, 10 e versões 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, 25.04, 25.10
- Wolfi: atualizações contínuas em uma única faixa de lançamento.
Limitações
A principal função do Artifact Analysis é verificar e detectar vulnerabilidades em contêineres e tornar essas vulnerabilidades visíveis para sua organização. 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 para a segurança da cadeia de suprimentos de software.
O Artifact Analysis oferece 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. Se você verificar uma versão secundária mais antiga, poderá receber resultados imprecisos.
A versão 9 do RHEL não é compatível com a verificação sob demanda.
Gerenciadores de pacotes e controle de versões semântico
- Go: o Artifact Analysis informa vulnerabilidades para pacotes na biblioteca padrão do Go e 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: o Artifact Analysis oferece suporte a pacotes Maven que seguem as convenções de nomenclatura do Maven. Se a versão do pacote incluir espaços, ela não será verificada.
- Node.js: a correspondência de versão do pacote segue a especificação de controle de versões semântico.
- PHP: o Artifact Analysis verifica pacotes do Composer. Consulte o controle de versões semântico do Composer.
- Python: a correspondência de versão do Python segue a semântica PEP 440.
- Ruby: o Artifact Analysis verifica pacotes do RubyGems. Consulte o controle de versões semântico do RubyGems.
- Rust: o Artifact Analysis verifica pacotes do Cargo. Consulte o controle de versões semântico do Rust.
- .NET: o Artifact Analysis verifica pacotes do NuGet. Consulte o controle de versões semântico do NuGet.