Crea sentencias VEX

En este documento, se describe cómo crear instrucciones de Vulnerability Exploitability eXchange (VEX).

Para cada imagen de contenedor que se envía a Artifact Registry, Artifact Analysis puede almacenar una sentencia VEX asociada. VEX es un tipo de aviso de seguridad que indica si un producto se ve afectado por una vulnerabilidad conocida.

Cada sentencia proporciona lo siguiente:

  • El publicador de la declaración de VEX
  • El artefacto para el que se escribió la sentencia
  • La evaluación de vulnerabilidades (estado de VEX) de las vulnerabilidades conocidas

Los editores de software pueden crear instrucciones VEX para describir la postura de seguridad de una aplicación. Las declaraciones de VEX toman nota de las vulnerabilidades descubiertas en artefactos específicos y proporcionan contexto sobre su impacto a sus clientes o organismos reguladores.

Los responsables de seguridad y aplicación de políticas pueden usar el estado de VEX para clasificar 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 determina el estado de este producto. El publicador proporcionará un estado actualizado en una versión posterior.

Antes de comenzar

  1. Sign in to your Google Account.

    If you don't already have one, sign up for a new account.

  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

  4. Enable the Container Analysis, Artifact Registry APIs.

    Enable the APIs

  5. Install the Google Cloud CLI.
  6. To initialize the gcloud CLI, run the following command:

    gcloud init
  7. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  8. Make sure that billing is enabled for your Google Cloud project.

  9. Enable the Container Analysis, Artifact Registry APIs.

    Enable the APIs

  10. Install the Google Cloud CLI.
  11. To initialize the gcloud CLI, run the following command:

    gcloud init
  12. Tener imágenes de contenedor almacenadas en un repositorio de Artifact Registry o crear un repositorio y enviar tus imágenes

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 sentencias VEX

Artifact Analysis admite el estándar 2.0 del Common Security Advisory Format (CSAF) en JSON. Para produzir una nueva sentencia VEX, usa el esquema CSAF.

El siguiente es un ejemplo de una sentencia 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

  • PRODUCT_NAME Es el nombre del producto legible por humanos para 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 región o la ubicación 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 y fixed.

Para cada vulnerabilidad que desees enumerar en tu sentencia 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. Si incluyes este valor, se asocia la sentencia VEX a una imagen de Docker específica.

¿Qué sigue?

  • Sube declaraciones de VEX tus declaraciones de VEX existentes o las declaraciones de VEX que proporcionan otros publicadores.
  • Prioriza los problemas de vulnerabilidad con VEX. Obtén información para ver las sentencias VEX y filtrar vulnerabilidades por estado de VEX.