Este documento descreve como criar declarações de vulnerabilidade, exploração e troca (VEX, na sigla em inglês).
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 declaração fornece:
- O editor da declaração VEX
- O artefato para o qual a declaração é escrita
- A avaliação de vulnerabilidade (status VEX) para vulnerabilidades conhecidas
Os publishers 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 aplicação de segurança e políticas podem usar o status VEX para classificar os riscos nas cadeias de suprimentos de software e usar declarações 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 destes:
- Não afetado: essa vulnerabilidade não precisa de correção.
- Afetada: é recomendado realizar ações de correção.
- Corrigida: nesta versão do produto, a vulnerabilidade foi corrigida.
- Sob investigação: o status deste produto ainda não foi determinado. O publisher vai fornecer um status atualizado em uma versão posterior.
Antes de começar
-
Faça login na sua Conta do Google.
Se você ainda não tiver uma, inscreva-se agora.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Container Analysis, Artifact Registry APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.-
Instale a Google Cloud CLI.
-
Ao usar um provedor de identidade (IdP) externo, primeiro faça login na gcloud CLI com sua identidade federada.
-
Para inicializar a CLI gcloud, execute o seguinte comando:
gcloud init -
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Container Analysis, Artifact Registry APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.-
Instale a Google Cloud CLI.
-
Ao usar um provedor de identidade (IdP) externo, primeiro faça login na gcloud CLI com sua identidade federada.
-
Para inicializar a CLI gcloud, execute o seguinte comando:
gcloud init - Tenha imagens de contêiner armazenadas 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 VEX e verificar o status VEX das vulnerabilidades, 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 usando personalizados papéis ou outros predefinidos papéis.
Criar declarações VEX
O Artifact Analysis oferece suporte ao Common Security Advisory Format (CSAF) 2.0 padrão em JSON. Para produzir uma nova declaração VEX, use o esquema CSAF.
Confira a seguir um exemplo de 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
- PRODUCT_NAME nome do produto legível por humanos para a imagem. Aceita 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 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.
O Artifact Analysis oferece suporte a quatro tipos de status:
known_affected,known_not_affected,under_investigationefixed.
Para cada vulnerabilidade que você quiser listar na declaração VEX, é necessário criar uma ramificação cve e definir o valor de product_status.
O valor do campo name em product_tree.branches.name é o URI da imagem. A inclusão desse valor associa a declaração VEX a uma imagem específica do Docker.
A seguir
- Faça upload das suas declarações VEX atuais ou das declarações VEX fornecidas por outros publishers.
- Priorize problemas de vulnerabilidade usando o VEX. Saiba como visualizar declarações VEX e filtrar vulnerabilidades por status VEX.