Este documento descreve como criar instruções Vulnerability Exploitability eXchange (VEX).
Para cada imagem de 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 declaraçã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 do VEX para triagem de riscos nas cadeias de suprimentos de software e usar as declarações do VEX para atestar a composição dos artefatos e ajudar 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
Artifact Analysis 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.