Este documento descreve como criar declarações de Vulnerability Exploitability eXchange (VEX).
Para cada imagem de contêiner enviada ao Artifact Registry, o Artifact Analysis pode armazenar uma declaraçã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 declaração é escrita
- A avaliação de vulnerabilidades (status VEX) para 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 observam 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 pela aplicação de políticas podem usar o status do VEX para classificar os riscos nas cadeias de suprimentos de software e usar declarações do VEX para atestar a composição dos artefatos e ajudar as organizações a atender aos requisitos regulamentares.
Status VEX
O status VEX indica se um artefato foi afetado por uma vulnerabilidade conhecida.
O status pode ser um dos seguintes:
- Não afetado: essa vulnerabilidade não precisa de correção.
- Afetado: é recomendado realizar ações de correção.
- Corrigido: nesta versão do produto, a vulnerabilidade foi corrigida.
- 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.
-
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
-
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.
-
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
-
To initialize the gcloud CLI, run the following command:
gcloud init
- Ter imagens de contêiner armazenadas em um repositório do Artifact Registry ou criar um repositório e enviar suas imagens.
-
Para criar e atualizar notas:
Editor de notas do Container Analysis (
roles/containeranalysis.notes.editor
) - PRODUCT_NAME Nome do produto legível para a imagem. Usa 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 seu 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.
Artifact Analysis é compatível com quatro tipos de status:
known_affected
,known_not_affected
,under_investigation
efixed
. - Faça upload das declarações VEX que você já tem ou das declarações VEX fornecidas por outros editores.
- Priorize problemas de vulnerabilidade usando o VEX. Saiba como ver declarações VEX e filtrar vulnerabilidades por status VEX.
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 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 é compatível com o padrão Common Security Advisory Format (CSAF) 2.0 em JSON. Para produzir uma nova declaração VEX, use o esquema CSAF.
Confira um exemplo de uma declaração VEX para uma imagem no Artifact Registry
com uma ramificação cve
para uma vulnerabilidade conhecida.
É necessário definir o valor de 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
Para cada vulnerabilidade que você quiser listar na sua declaração VEX, crie uma ramificação cve
e defina o valor de product_status
.
O valor do campo name
em product_tree.branches.name
é o URI da imagem. Incluir esse valor associa a declaração VEX a uma imagem
do Docker específica.