Este documento descreve como ver as declarações da Vulnerability Exploitability eXchange (VEX) armazenadas na análise de artefactos e filtrar vulnerabilidades através do estado da VEX.
Os responsáveis pela segurança e aplicação de políticas podem usar estas funcionalidades para dar prioridade às tarefas de mitigação de problemas de segurança. Também pode usar dados VEX para atestar a composição dos seus artefactos e ajudar a sua organização a cumprir os requisitos regulamentares.
Funções necessárias
Para receber as autorizações de que precisa para carregar avaliações VEX e verificar o estado VEX das vulnerabilidades, peça ao seu administrador que lhe conceda as seguintes funções de IAM no projeto:
-
Para ver ocorrências de vulnerabilidades:
Visualizador de ocorrências da análise de contentores (
roles/containeranalysis.occurrences.viewer
)
Para mais informações sobre a atribuição de funções, consulte o artigo Faça a gestão do acesso a projetos, pastas e organizações.
Também pode conseguir as autorizações necessárias através de funções personalizadas ou outras funções predefinidas.
Veja o estado da VEX na Google Cloud consola
Para ver informações VEX para imagens de contentores armazenadas no Artifact Registry:
Abra a página Repositórios do Artifact Registry.
A página apresenta uma lista dos seus repositórios.
Na lista de repositórios, clique no nome de um repositório.
Na lista de imagens, clique no nome de uma imagem.
É apresentada uma lista dos resumos das imagens.
Na lista de resumos, clique no nome de um resumo.
É apresentada uma página de detalhes do resumo com uma linha de separadores. Por predefinição, o separador Vista geral está aberto.
Na linha de separadores, selecione o separador Vulnerabilidades.
A página apresenta uma vista geral dos Resultados da análise com uma secção Estado da VEX.
A secção de resumo Estado da VEX apresenta o número de pacotes categorizados por cada tipo de estado da VEX. Para ver todos os pacotes com um estado VEX específico, clique no número junto ao tipo de estado.
O separador Vulnerabilidades também apresenta o estado da VEX para cada pacote na lista de vulnerabilidades.
Para filtrar a lista de vulnerabilidades:
- Acima da lista de vulnerabilidades, clique em Filtrar vulnerabilidades.
- Escolha um filtro na lista de filtros.
- Especifique o valor que quer usar para filtrar a lista.
Veja o estado da VEX no Cloud Build
Se estiver a usar o Cloud Build, também pode ver informações da VEX no painel lateral Estatísticas de segurança na Google Cloud consola.
Se estiver a usar o Cloud Build, pode ver os metadados das imagens no painel lateral Estatísticas de segurança na Google Cloud consola.
O painel lateral Estatísticas de segurança oferece uma vista geral de alto nível das informações de segurança de compilação para artefactos armazenados no Artifact Registry. Para saber mais acerca do painel lateral e como pode usar o Cloud Build para ajudar a proteger a sua cadeia de fornecimento de software, consulte Veja informações de segurança da compilação.
Veja-o através da CLI gcloud
A secção seguinte explica como obter informações VEX e aplicar filtros para limitar os resultados com base nas suas necessidades.
Veja informações VEX de um único artefacto
Para ver as informações VEX carregadas, pode consultar a API e listar notas com o tipo de nota VULNERABILITY_ASSESSMENT
.
Use a seguinte chamada da API para pedir todas as notas de avaliação de vulnerabilidades do artefacto especificado:
curl -G -H "Content-Type: application/json" \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
--data-urlencode "filter=(kind=\"VULNERABILITY_ASSESSMENT\" AND vulnerability_assessment.product.generic_uri=\"https://LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/IMAGE_NAME@DIGEST\"" https://containeranalysis.googleapis.com/v1/projects/PROJECT_ID/notes
Onde
- LOCATION é a região ou a localização multirregional do seu repositório.
- PROJECT_ID é o ID do projeto onde a sua imagem está armazenada num repositório do Artifact Registry. Google Cloud
- REPO_NAME é o nome do repositório do Artifact Registry que contém a imagem.
- IMAGE_NAME é o nome da imagem.
- DIGEST é o resumo da imagem, uma string que começa com
sha256:
.
Filtre vulnerabilidades por estado VEX
Com o gcloud, pode filtrar os metadados de vulnerabilidade por estado VEX. A análise de artefactos filtra com base no estado armazenado em cada ocorrência de vulnerabilidade do Grafeas.
Execute o seguinte comando para filtrar ocorrências de vulnerabilidades com base num estado VEX especificado:
gcloud artifacts vulnerabilities list RESOURCE_URI \
--occurrence-filter="vulnDetails.vex_assessment.state=\"STATUS\""
Onde
- RESOURCE_URI é o URL completo da imagem, semelhante a https://LOCATION-docker.pkg.dev/PROJECT_ID/REPOSITORY/IMAGE_ID@sha256:HASH.
- STATUS é o estado de VEX pelo qual filtrar, que pode ser um dos seguintes valores:
known_affected
,known_not_affected
,under_investigation
oufixed
.
Por exemplo, execute o seguinte comando para filtrar ocorrências de vulnerabilidades com o estado VEX AFFECTED
:
gcloud artifacts vulnerabilities list RESOURCE_URI \
--occurrence-filter="vulnDetails.vex_assessment.state=\"AFFECTED\""
Liste vulnerabilidades sem VEX
Para identificar as vulnerabilidades que ainda não têm informações VEX associadas, use o seguinte comando gcloud:
gcloud artifacts vulnerabilities list /
LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/IMAGE_NAME@DIGEST /--occurrence-filter="isNull(vulnDetails.vex_assessment.state)"
Onde
- LOCATION é a região ou a localização multirregional do seu repositório.
- PROJECT_ID é o ID do projeto onde a sua imagem está armazenada num repositório do Artifact Registry. Google Cloud
- REPO_NAME é o nome do repositório do Artifact Registry que contém a imagem.
- IMAGE_NAME é o nome da imagem.
- DIGEST é o resumo da imagem, uma string que começa com
sha256:
.
Limitações
- O carregamento de declarações VEX só é suportado para imagens de contentores.
- Não é possível exportar declarações VEX carregadas para as normas CSAF, OpenVex ou SPDX.
O que se segue?
- Saiba mais sobre as SBOMs.
- Analise vulnerabilidades com a Artifact Analysis.