Crear instrucciones VEX

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

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

Cada extracto proporciona lo siguiente:

  • El editor de la declaración VEX
  • El artefacto para el que se escribe la declaración.
  • La evaluación de vulnerabilidades (estado de VEX) de las vulnerabilidades conocidas

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

Los responsables de la seguridad y de la aplicación de las políticas pueden usar el estado de VEX para evaluar los riesgos de sus cadenas de suministro de software y usar las declaraciones de VEX para certificar la composición de sus artefactos, lo que ayuda a las organizaciones a cumplir los requisitos normativos.

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 se ve afectado: no es necesario tomar ninguna medida en relación con esta vulnerabilidad.
  • Afectado: se recomiendan acciones de corrección.
  • Corregido: en esta versión del producto, se ha aplicado una corrección para solucionar la vulnerabilidad.
  • En investigación: aún no se ha determinado el estado de este producto. El editor proporcionará un estado actualizado en una versión posterior.

Antes de empezar

  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. Verify 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. Si utilizas un proveedor de identidades (IdP) externo, primero debes iniciar sesión en la CLI de gcloud con tu identidad federada.

  7. Para inicializar gcloud CLI, ejecuta el siguiente comando:

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

    Go to project selector

  9. Verify that billing is enabled for your Google Cloud project.

  10. Enable the Container Analysis, Artifact Registry APIs.

    Enable the APIs

  11. Install the Google Cloud CLI.

  12. Si utilizas un proveedor de identidades (IdP) externo, primero debes iniciar sesión en la CLI de gcloud con tu identidad federada.

  13. Para inicializar gcloud CLI, ejecuta el siguiente comando:

    gcloud init
  14. Tener imágenes de contenedor almacenadas en un repositorio de Artifact Registry o crear un repositorio y enviar las imágenes.
  15. Roles obligatorios

    Para obtener los permisos que necesitas para subir evaluaciones de VEX y comprobar el estado de VEX de las vulnerabilidades, pide a tu administrador que te conceda los siguientes roles de gestión de identidades y accesos en el proyecto:

    Para obtener más información sobre cómo conceder roles, consulta el artículo Gestionar el acceso a proyectos, carpetas y organizaciones.

    También puedes conseguir los permisos necesarios a través de roles personalizados u otros roles predefinidos.

    Crear instrucciones VEX

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

    A continuación, se muestra un ejemplo de una declaración VEX para una imagen de Artifact Registry con una cve rama para una vulnerabilidad conocida.

    Debe 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 Nombre del producto legible por 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 y fixed.

    Por cada vulnerabilidad que quiera incluir en su declaración VEX, debe crear una rama cve y definir el valor de product_status.

    El valor del campo name de product_tree.branches.name es el URI de la imagen. Si incluye este valor, la declaración VEX se asociará a una imagen de Docker específica.

    Siguientes pasos

    • Sube declaraciones VEX. Puedes subir tus declaraciones VEX o las que te hayan proporcionado otros editores.
    • Prioriza los problemas de vulnerabilidad con VEX. Consulta cómo ver las declaraciones VEX y filtrar las vulnerabilidades por estado VEX.