Creare istruzioni VEX

Questo documento descrive come creare dichiarazioni Vulnerability Exploitability eXchange (VEX).

Per ogni immagine contenitore di cui è stato eseguito il push in Artifact Registry, Artifact Analysis può memorizzare un'istruzione VEX associata. VEX è un tipo di avviso sulla sicurezza che indica se un prodotto è interessato da una vulnerabilità nota.

Ogni istruzione fornisce:

  • Il publisher della dichiarazione VEX
  • L'elemento per cui è stata scritta l'istruzione
  • La valutazione delle vulnerabilità (stato VEX) per eventuali vulnerabilità note

I publisher di software possono creare dichiarazioni VEX per descrivere la postura di sicurezza di un'applicazione. Le dichiarazioni VEX segnalano eventuali vulnerabilità rilevate in artifatti specifici e forniscono il contesto relativo al loro impatto sui clienti o sui regolamenti.

Gli addetti all'applicazione di criteri e sicurezza possono utilizzare lo stato VEX per valutare i rischi nelle loro catene di approvvigionamento software e utilizzare le dichiarazioni VEX per attestare la composizione dei loro artefatti per aiutare le organizzazioni a soddisfare i requisiti normativi.

Stato VEX

Lo stato VEX indica se un artefatto è interessato da una vulnerabilità nota.

Lo stato può essere uno dei seguenti:

  • Non interessato: non è necessario alcun intervento in merito a questa vulnerabilità.
  • Interessato: sono consigliate azioni di correzione.
  • Corretto: in questa versione del prodotto è stata applicata una correzione per risolvere la vulnerabilità.
  • Indagine in corso: lo stato di questo prodotto è ancora da determinare. Il publisher fornirà uno stato aggiornato in una release futura.

Prima di iniziare

  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. Avere immagini container archiviate in un repository Artifact Registry oppure creare un repository ed eseguire il push delle immagini.

Ruoli obbligatori

Per ottenere le autorizzazioni necessarie per caricare le valutazioni VEX e controllare lo stato VEX delle vulnerabilità, chiedi all'amministratore di concederti i seguenti ruoli IAM nel progetto:

Per saperne di più sulla concessione dei ruoli, consulta Gestire l'accesso a progetti, cartelle e organizzazioni.

Potresti anche riuscire a ottenere le autorizzazioni richieste tramite i ruoli personalizzati o altri ruoli predefiniti.

Creare istruzioni VEX

L'Artifact Analysis supporta lo standard 2.0 del Common Security Advisory Format (CSAF) in JSON. Per produrre una nuova dichiarazione VEX, utilizza lo schema CSAF.

Di seguito è riportato un esempio di dichiarazione VEX per un'immagine in Artifact Registry con un ramo cve per una vulnerabilità nota.

Devi definire il valore di product_status per ogni 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"
        ]
      }
    }
  ]
}

Dove

  • PRODUCT_NAME Nome del prodotto leggibile per l'immagine. Accetta un valore di stringa. Il valore deve essere il nome canonicale completo del prodotto, incluso il numero di versione e altri attributi.
  • LOCATION è la regione o la località multiregionale del tuo repository.
  • PROJECT_ID è l'ID del progetto contenente il repository.
  • REPO_NAME è il nome del repository Docker in Artifact Registry.
  • IMAGE_NAME è il nome dell'immagine.
  • CVE_ID è l'identificatore della vulnerabilità, ad esempio CVE-2017-11164.
  • PRODUCT_STATUS è la valutazione del rischio per la sicurezza. Artifact Analysis supporta quattro tipi di stato: known_affected, known_not_affected, under_investigation e fixed.

Per ogni vulnerabilità che vuoi elencare nella dichiarazione VEX, devi creare un ramo cve e definire il valore di product_status.

Il valore del campo name in product_tree.branches.name è l'URI dell'immagine. L'inclusione di questo valore associa l'istruzione VEX a un'immagine Docker specifica.

Passaggi successivi