En este documento, se describe cómo crear declaraciones de Vulnerability Exploitability eXchange (VEX).
Por cada imagen de contenedor enviada a Artifact Registry, Artifact Analysis puede almacenar una declaración de VEX asociada. VEX es un tipo de asesoramiento de seguridad que indica si un producto se ve afectado por una vulnerabilidad conocida.
Cada declaración proporciona lo siguiente:
- Publicador de la declaración de VEX
- Es el artefacto para el que se escribe la declaración.
- La evaluación de vulnerabilidades (estado de VEX) para las vulnerabilidades conocidas
Los publicadores de software pueden crear declaraciones de VEX para describir la postura de seguridad de una aplicación. Las declaraciones de VEX registran las vulnerabilidades descubiertas en artefactos específicos y proporcionan contexto sobre su impacto en los clientes o los organismos reguladores.
Los encargados de aplicar la seguridad y las políticas pueden usar el estado de VEX para priorizar los riesgos en sus cadenas de suministro de software y usar las declaraciones de VEX para certificar la composición de sus artefactos y ayudar a las organizaciones a cumplir con los requisitos reglamentarios.
Estado de VEX
El estado de VEX indica si un artefacto se ve afectado por una vulnerabilidad conocida.
El estado puede ser uno de los siguientes:
- No afectado: No se requiere una corrección con respecto a esta vulnerabilidad.
- Afectado: Se recomiendan acciones de corrección.
- Corregido: En esta versión del producto, se aplicó una corrección para abordar la vulnerabilidad.
- En investigación: Aún no se determinó el estado de este producto. El publicador proporcionará un estado actualizado en una versión posterior.
Antes de comenzar
-
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
- Tener imágenes de contenedor almacenadas en un repositorio de Artifact Registry o crear un repositorio y enviar tus imágenes
-
Para crear y actualizar notas, usa el rol de Editor de notas de Container Analysis (
roles/containeranalysis.notes.editor
). - PRODUCT_NAME Es el nombre del producto legible para humanos de la imagen. Toma un valor de cadena. El valor debe ser el nombre canónico completo del producto, incluido el número de versión y otros atributos.
- LOCATION es la ubicación regional o multirregional de tu repositorio.
- PROJECT_ID es el ID del proyecto que contiene tu repositorio.
- REPO_NAME es el nombre de tu repositorio de Docker en Artifact Registry.
- IMAGE_NAME es el nombre de la imagen.
- CVE_ID es el identificador de la vulnerabilidad, como
CVE-2017-11164
. - PRODUCT_STATUS es la evaluación del riesgo de seguridad.
Artifact Analysis admite cuatro tipos de estado:
known_affected
,known_not_affected
,under_investigation
yfixed
. - Sube las declaraciones de VEX existentes o las que proporcionen otros publicadores.
- Prioriza los problemas de vulnerabilidad con VEX. Obtén más información para ver declaraciones de VEX y filtrar vulnerabilidades por estado de VEX.
Roles obligatorios
Para obtener los permisos que necesitas para subir evaluaciones de VEX y verificar el estado de VEX de las vulnerabilidades, pídele a tu administrador que te otorgue los siguientes roles de IAM en el proyecto:
Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.
También puedes obtener los permisos necesarios mediante roles personalizados o cualquier otro rol predefinido.
Crea declaraciones de VEX
Artifact Analysis admite el estándar Common Security Advisory Format (CSAF) 2.0 en JSON. Para generar una nueva declaración de VEX, usa el esquema de CSAF.
A continuación, se muestra un ejemplo de una declaración de VEX para una imagen en Artifact Registry con una rama cve
para una vulnerabilidad conocida.
Debes definir el 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"
]
}
}
]
}
Dónde
Para cada vulnerabilidad que desees incluir en tu declaración de VEX, debes crear una rama cve
y definir el valor de product_status
.
El valor del campo name
en product_tree.branches.name
es el URI de la imagen. Incluir este valor asocia la declaración de VEX a una imagen de Docker específica.