Este documento descreve como criar instruções Vulnerability Exploitability eXchange (VEX).
Para cada imagem do contêiner enviada ao Artifact Registry, o Artifact Analysis pode armazenar uma instrução VEX associada. O VEX é um tipo de aviso de segurança que indica se um produto foi afetado por uma vulnerabilidade conhecida.
Cada instrução fornece:
- O editor da declaração VEX
- O artefato para o qual a instrução é gravada
- A avaliação de vulnerabilidade (status VEX) para todas as vulnerabilidades conhecidas
Os editores de software podem criar declarações VEX para descrever a postura de segurança de um aplicativo. As declarações VEX registram todas as vulnerabilidades descobertas em artefatos específicos e fornecem contexto sobre o impacto delas nos clientes ou órgãos reguladores.
Os responsáveis pela segurança e aplicação de políticas podem usar o status VEX para triagem de riscos nas cadeias de suprimentos de software e usar as declarações VEX para atestar a composição dos artefatos, ajudando as organizações a atender aos requisitos regulatórios.
Status VEX
O status VEX indica se um artefato foi afetado por uma vulnerabilidade conhecida.
O status pode ser um dos seguintes:
- Não afetada: essa vulnerabilidade não precisa de correção.
- Afetado: é recomendado realizar ações de correção.
- Corrigida: nesta versão do produto, uma correção foi aplicada para corrigir a vulnerabilidade.
- Sob investigação: o status deste produto ainda não foi determinado. O editor vai fornecer um status atualizado em uma versão posterior.
Antes de começar
-
Sign in to your Google Account.
If you don't already have one, sign up for a new account.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Container Analysis, Artifact Registry APIs.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Container Analysis, Artifact Registry APIs.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
- Armazene imagens de contêiner em um repositório do Artifact Registry ou crie um repositório e envie suas imagens.
Funções exigidas
Para ter as permissões necessárias para fazer upload de avaliações do VEX e verificar o status de vulnerabilidades do VEX, peça ao administrador para conceder a você os seguintes papéis do IAM no projeto:
-
Para criar e atualizar notas:
Editor de notas do Container Analysis (
roles/containeranalysis.notes.editor
)
Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.
Também é possível conseguir as permissões necessárias por meio de papéis personalizados ou de outros papéis predefinidos.
Criar instruções VEX
A Análise de artefatos oferece suporte ao padrão Common Security Advisory Format (CSAF) 2.0 em JSON. Para produzir uma nova instrução VEX, use o esquema CSAF.
Confira abaixo um exemplo de uma instrução VEX para uma imagem no Artifact Registry
com uma ramificação cve
para uma vulnerabilidade conhecida.
É necessário definir o valor do product_status
para cada CVE.
{
"document": {
"csaf_version": "2.0",
"lang": "en-US",
"publisher": {
"name": "Sample-Company",
"namespace": "https://sample-company.com"
},
"title": "Vex document 1.1"
},
"product_tree": {
"branches": [
{
"name": "https://LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/IMAGE_NAME",
"product": {
"name": "PRODUCT_NAME",
"product_id": "IMAGE_NAME"
}
}
]
},
"vulnerabilities": [
{
"cve": "CVE_ID",
"product_status": {
"PRODUCT_STATUS": [
"IMAGE_NAME"
]
}
}
]
}
Onde
- PRODUCT_NAME Nome do produto legível por humanos para a imagem. Recebe um valor de string. O valor precisa ser o nome canônico completo do produto, incluindo o número da versão e outros atributos.
- LOCATION é a região ou o local multirregional do seu repositório.
- PROJECT_ID é o ID do projeto que contém o repositório.
- REPO_NAME é o nome do repositório do Docker no Artifact Registry.
- IMAGE_NAME é o nome da imagem;
- CVE_ID é o identificador da vulnerabilidade, como
CVE-2017-11164
. - PRODUCT_STATUS é a avaliação do risco de segurança.
A Artifact Analysis oferece suporte a quatro tipos de status:
known_affected
,known_not_affected
,under_investigation
efixed
.
Para cada vulnerabilidade que você quer listar na declaração VEX, é necessário
criar uma ramificação cve
e definir o valor do product_status
.
O valor do campo name
em product_tree.branches.name
é o URI
da imagem. A inclusão desse valor associa a instrução VEX a uma imagem
Docker específica.
A seguir
- Faça upload de declarações VEX: suas declarações VEX atuais ou declarações VEX fornecidas por outros editores.
- Priorize problemas de vulnerabilidade usando o VEX. Saiba como visualizar instruções VEX e filtrar vulnerabilidades por status VEX.