Crie declarações VEX

Este documento descreve como criar declarações de Vulnerability Exploitability eXchange (VEX).

Para cada imagem de contentor enviada para o Artifact Registry, a Artifact Analysis pode armazenar uma declaração VEX associada. A VEX é um tipo de aviso de segurança que indica se um produto é afetado por uma vulnerabilidade conhecida.

Cada extrato fornece:

  • O publicador da declaração VEX
  • O artefacto para o qual a declaração é escrita
  • A avaliação de vulnerabilidades (estado VEX) para quaisquer vulnerabilidades conhecidas

Os publicadores de software podem criar declarações VEX para descrever a postura de segurança de uma aplicação. As declarações VEX indicam quaisquer vulnerabilidades descobertas em artefactos específicos e fornecem contexto sobre o respetivo impacto nos clientes ou nos organismos reguladores.

Os responsáveis pela aplicação de políticas e segurança podem usar o estado VEX para avaliar os riscos nas respetivas cadeias de fornecimento de software e usar declarações VEX para atestar a composição dos respetivos artefactos, de modo a ajudar as organizações a cumprir os requisitos regulamentares.

Estado da VEX

O estado da VEX indica se um artefacto é afetado por uma vulnerabilidade conhecida.

O estado pode ser um dos seguintes:

  • Não afetado: não é necessária nenhuma correção relativamente a esta vulnerabilidade.
  • Afetado: são recomendadas ações de remediação.
  • Corrigido: nesta versão do produto, foi aplicada uma correção para resolver a vulnerabilidade.
  • Em investigação: o estado deste produto ainda não foi determinado. O publicador vai fornecer um estado atualizado numa versão posterior.

Antes de começar

  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. Se estiver a usar um fornecedor de identidade (IdP) externo, primeiro, tem de iniciar sessão na CLI gcloud com a sua identidade federada.

  7. Para inicializar a CLI gcloud, execute o seguinte 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. Se estiver a usar um fornecedor de identidade (IdP) externo, primeiro, tem de iniciar sessão na CLI gcloud com a sua identidade federada.

  13. Para inicializar a CLI gcloud, execute o seguinte comando:

    gcloud init
  14. Ter imagens de contentores armazenadas num repositório do Artifact Registry ou criar um repositório e enviar as suas imagens.
  15. Funções necessárias

    Para receber as autorizações de que precisa para carregar avaliações VEX e verificar o estado VEX das vulnerabilidades, peça ao seu administrador que lhe conceda as seguintes funções de IAM no projeto:

    Para mais informações sobre a atribuição de funções, consulte o artigo Faça a gestão do acesso a projetos, pastas e organizações.

    Também pode conseguir as autorizações necessárias através de funções personalizadas ou outras funções predefinidas.

    Crie declarações VEX

    A análise de artefactos suporta a norma Common Security Advisory Format (CSAF) 2.0 em JSON. Para produzir uma nova declaração VEX, use o esquema CSAF.

    Segue-se um exemplo de uma declaração VEX para uma imagem no Artifact Registry com uma ramificação cve para uma vulnerabilidade conhecida.

    Tem de 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 para a imagem. Aceita um valor de string. O valor deve ser o nome canónico completo do produto, incluindo o número da versão e outros atributos.
    • LOCATION é a região ou a localização multirregional do seu repositório.
    • PROJECT_ID é o ID do projeto que contém o seu 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. A análise de artefactos suporta quatro tipos de estado: known_affected, known_not_affected, under_investigation e fixed.

    Para cada vulnerabilidade que quer incluir na sua declaração VEX, tem de criar um ramo 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 deste valor associa a declaração VEX a uma imagem do Docker específica.

    O que se segue?

    • Carregue declarações VEX, as suas declarações VEX existentes ou declarações VEX fornecidas por outros publicadores.
    • Priorize problemas de vulnerabilidade com o VEX. Saiba como ver declarações VEX e filtrar vulnerabilidades por estado VEX.