A análise de artefactos oferece duas formas de analisar imagens: análise automática e análise a pedido. Este documento descreve os detalhes das funcionalidades para ambos os tipos de análise.
A Artifact Analysis também oferece gestão de metadados. Para saber mais sobre como pode usar a análise e o armazenamento de metadados em conjunto para proteger o pipeline de CI/CD de ponta a ponta, consulte a vista geral da análise de artefactos.
Consulte os preços para saber mais sobre os custos associados à análise de imagens de contentores.
Esta vista geral pressupõe que já está familiarizado com a utilização de repositórios do Docker no Artifact Registry.
Análise automática
A Artifact Analysis executa análises de vulnerabilidades nos seus artefactos no Artifact Registry. A análise de artefactos também identifica dependências e licenças para ajudar a compreender a composição do software.
A análise automática compreende duas tarefas principais: a análise no envio e a análise contínua.
Análise por pressão
A análise de artefactos analisa novas imagens quando são carregadas para o Artifact Registry. Esta análise extrai informações sobre os pacotes no contentor. As imagens são analisadas apenas uma vez, com base no resumo da imagem. Isto significa que a adição ou a modificação de etiquetas não aciona novas análises.
A análise de artefactos só deteta vulnerabilidades em pacotes que são monitorizados publicamente quanto a vulnerabilidades de segurança.
Quando a análise de uma imagem é concluída, o resultado da vulnerabilidade produzido é a recolha de ocorrências de vulnerabilidades para essa imagem.
Análise contínua
A análise de artefactos cria ocorrências para vulnerabilidades encontradas quando carrega a imagem. Após a análise inicial, monitoriza continuamente os metadados das imagens analisadas no Artifact Registry para novas vulnerabilidades.
A análise de artefactos recebe informações de vulnerabilidade novas e atualizadas de fontes de vulnerabilidade várias vezes por dia. Quando chegam novos dados de vulnerabilidade, a análise de artefactos atualiza os metadados das imagens analisadas para os manter atualizados. A análise de artefactos atualiza as ocorrências de vulnerabilidades existentes, cria novas ocorrências de vulnerabilidades para novas notas e elimina ocorrências de vulnerabilidades que já não são válidas.
A análise de artefactos só atualiza os metadados das imagens que foram enviadas por push ou extraídas nos últimos 30 dias. Após 30 dias, os metadados deixam de ser atualizados e os resultados ficam desatualizados. Além disso, a análise de artefactos arquiva metadados desatualizados há mais de 90 dias, e os metadados não ficam disponíveis na Google Cloud consola, no gcloud nem através da API. Para voltar a analisar uma imagem com metadados desatualizados ou arquivados, transfira essa imagem. A atualização dos metadados pode demorar até 24 horas.
Listas de manifestos
Também pode usar a análise de vulnerabilidades com listas de manifestos. Uma lista de manifestos é uma lista de ponteiros para manifestos de várias plataformas. Permitem que uma única imagem funcione com várias arquiteturas ou variações de um sistema operativo.
A análise de artefactos da análise de vulnerabilidades só suporta imagens Linux amd64. Se a sua lista de manifestos apontar para mais do que uma imagem Linux amd64, apenas a primeira será analisada. Se não existirem ponteiros para imagens Linux amd64, não recebe resultados da análise.
Análise a pedido
A análise a pedido permite-lhe analisar imagens de contentores localmente no seu computador ou no seu registo, através da CLI gcloud. Isto dá-lhe a flexibilidade de personalizar o seu pipeline de CI/CD, consoante quando precisar de aceder aos resultados das vulnerabilidades.
Tipos de pacotes suportados
Quando envia imagens de contentores para repositórios Docker no Artifact Registry, a análise de artefactos pode procurar vulnerabilidades em vários tipos de pacotes de SO e pacotes de linguagem de aplicações.
As tabelas seguintes comparam os tipos de pacotes que a Análise de artefactos pode analisar com cada serviço de análise:
Pacotes de SO compatíveis
Análise automática com o Artifact Registry | Análise a pedido | |
---|---|---|
AlmaLinux OS | ||
Alpine | ||
CentOS | ||
Chainguard | ||
Debian | ||
Google Distroless | ||
Red Hat Enterprise Linux (RHEL) | ||
Imagem base universal (UBI) do Red Hat | ||
Rocky Linux | ||
SUSE Linux Enterprise Server (SLES) | ||
Ubuntu | ||
Wolfi |
Pacotes de idiomas de aplicações suportados
Análise automática com o Artifact Registry | Análise a pedido | |
---|---|---|
Pacotes de viagens | ||
Pacotes Java | ||
Pacotes Node.js | ||
Pacotes PHP | ||
Pacotes Python | ||
Pacotes Ruby | ||
Pacotes de ferrugem | ||
Pacotes .NET |
A análise de artefactos apenas analisa pacotes de idiomas de aplicações no Artifact Registry quando os pacotes são colocados em contentores e armazenados num repositório de formato Docker. Os outros formatos de repositório do Artifact Registry não são suportados.
Para mais informações sobre as funcionalidades disponíveis para cada produto de registo, consulte o gráfico de comparação.
A análise de artefactos não é suportada em contentores do Windows Server.
Interfaces da Artifact Analysis
Na Google Cloud consola, pode ver vulnerabilidades de imagens e metadados de imagens para contentores no Artifact Registry.
Pode usar a CLI gcloud para ver vulnerabilidades e metadados de imagens.
Também pode usar a API REST Artifact Analysis para realizar qualquer uma destas ações. Tal como acontece com outras APIs da Cloud Platform, tem de autenticar o acesso através do OAuth2. Depois de se autenticar, também pode usar a API para criar notas e ocorrências personalizadas e ver ocorrências de vulnerabilidades.
A API Artifact Analysis suporta gRPC e REST/JSON. Pode fazer chamadas para a API através das bibliotecas cliente ou do cURL para REST/JSON.
Controle a implementação de imagens vulneráveis
Pode integrar a Artifact Analysis com a Binary Authorization para criar atestações, o que pode impedir a execução de imagens de contentores com problemas de segurança conhecidos no seu ambiente de implementação.
Também pode usar a autorização binária para criar uma lista de autorizações de vulnerabilidades com base nas informações de vulnerabilidades fornecidas pela análise de artefactos como parte da sua implementação. Se as vulnerabilidades violarem a política na lista de autorizações, recebe um alerta.
Por último, pode usar a análise a pedido para bloquear e falhar compilações com base na gravidade das vulnerabilidades encontradas.
Origens de vulnerabilidades
A secção seguinte apresenta as origens de vulnerabilidades que a análise de artefactos usa para obter dados CVE.
Leituras de pacotes do SO
A Artifact Analysis usa as seguintes fontes:
- AlmaLinux OS
- Alpino
- CentOS: a Red Hat e o CentOS partilham a mesma origem de dados de vulnerabilidade. Uma vez que 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 demorar algum tempo a ficar também disponível para o CentOS.
- Chainguard
- Debian
- O Google Distroless baseia-se no Debian e usa os dados de vulnerabilidade do Debian.
- National Vulnerability Database
- Red Hat Enterprise Linux (RHEL)
- Imagem base universal (UBI) da Red Hat
- Rocky Linux
- SUSE Linux Enterprise Server (SLES)
- Ubuntu
- Wolfi
Análises de pacotes de idiomas
A análise de artefactos suporta a análise de vulnerabilidades para pacotes de idiomas numa imagem de contentor. Os dados de vulnerabilidade são obtidos a partir da base de dados de avisos do GitHub.
Na maioria dos casos, é atribuído um ID CVE a cada vulnerabilidade, e este ID torna-se o identificador principal dessa vulnerabilidade. Nos casos em que não existe um ID CVE atribuído a uma vulnerabilidade, é atribuído um ID GHSA como identificador. Se, posteriormente, essa vulnerabilidade receber um ID CVE, o ID da vulnerabilidade é atualizado para corresponder ao CVE. Consulte o artigo Procure uma vulnerabilidade específica num projeto para mais informações.
Versões de SO compatíveis
A análise de artefactos suporta a análise de vulnerabilidades para as seguintes versões do software do sistema operativo:
- AlmaLinux OS – 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 e 3.22
- CentOS – Versões: 6, 7, 8 e versões secundárias
- Chainguard - Implementação de atualizações numa única faixa de lançamento.
- Debian GNU/Linux – Versões: 11, 12, 13, 14 e 15
- O Red Hat Enterprise Linux (RHEL) – Versões: 7, 8, 9, 10 e versões secundárias – é suportado para análises automáticas do registo.
- Imagem de base universal (UBI) do Red Hat: versões 8, 9, 10 e versões secundárias
- Rocky Linux: versões 8, 9, 10 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 é suportado com as mesmas versões
- Ubuntu – Versões: 14.04, 16.04, 18.04, 20.04, 22.04, 24.04, 24.10, 25.04
- Wolfi: atualizações contínuas numa única faixa de lançamento.
Limitações
A função principal da análise de artefactos é analisar e detetar vulnerabilidades em contentores e tornar essas vulnerabilidades visíveis para a sua organização. A análise de artefactos não reivindica a identificação de características das imagens que possam aumentar ou diminuir a capacidade da sua organização de validar a integridade ou a confiança de uma imagem. Para desenvolver ainda mais esta confiança, a Google tem soluções que pode usar individualmente ou em combinação. Saiba mais sobre a nossa abordagem à segurança da cadeia de fornecimento de software.
A análise de artefactos fornece resultados da análise 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 análise para versões secundárias mais antigas do RHEL.
A versão 9 do RHEL não é suportada para a análise a pedido.
Gestores de pacotes e controlo de versões semântico
- Go: os relatórios de análise de artefactos comunicam vulnerabilidades para pacotes na biblioteca padrão do Go e pacotes Go externos não incluídos na biblioteca padrão. As vulnerabilidades são comunicadas com uma etiqueta diferente para cada tipo de pacote.
- Java: a análise de artefactos suporta pacotes Maven que seguem as convenções de nomenclatura Maven. Se a versão do pacote incluir espaços, não é analisada.
- Node.js: a correspondência da versão do pacote segue a especificação de controlo de versões semântico.
- PHP: a análise de artefactos analisa pacotes do Composer. Consulte o artigo Controlo de versões semântico do Composer.
- Python: a correspondência da versão do Python segue a semântica da PEP 440.
- Ruby: a análise de artefactos analisa pacotes RubyGems. Consulte o controlo de versões semântico do RubyGems.
- Rust: a análise de artefactos analisa pacotes Cargo. Consulte a versão semântica do Rust.
- .NET: a análise de artefactos analisa pacotes NuGet. Consulte o controlo de versões semântico do NuGet.