VEX-Anweisungen erstellen

In diesem Dokument wird beschrieben, wie Sie Vulnerability Exploitability eXchange (VEX)-Erklärungen erstellen.

Für jedes Container-Image, das in die Artifact Registry gepusht wird, kann die Artefaktanalyse eine zugehörige VEX-Anweisung speichern. VEX ist eine Art von Sicherheitswarnung, die angibt, ob ein Produkt von einer bekannten Sicherheitslücke betroffen ist.

Jede Erklärung enthält Folgendes:

  • Der Publisher der VEX-Erklärung
  • Das Artefakt, für das die Erklärung verfasst wird
  • Die Sicherheitslückenbewertung (VEX-Status) für alle bekannten Sicherheitslücken

Softwareanbieter können VEX-Erklärungen erstellen, um die Sicherheitslage einer Anwendung zu beschreiben. In VEX-Erklärungen werden alle in bestimmten Artefakten gefundenen Sicherheitslücken aufgeführt und Kunden oder Regulierungsbehörden werden über ihre Auswirkungen informiert.

Sicherheits- und Richtlinien-Enforcer können den VEX-Status verwenden, um Risiken in ihren Softwarelieferketten zu priorisieren, und VEX-Erklärungen verwenden, um die Zusammensetzung ihrer Artefakte zu bestätigen, damit Organisationen die behördlichen Anforderungen erfüllen können.

VEX-Status

Der VEX-Status gibt an, ob ein Artefakt von einer bekannten Sicherheitslücke betroffen ist.

Folgende Status sind möglich:

  • Nicht betroffen: Für diese Sicherheitslücke sind keine Abhilfemaßnahmen erforderlich.
  • Betroffen: Abhilfemaßnahmen werden empfohlen.
  • Behoben: In dieser Version des Produkts wurde eine Fehlerkorrektur zum Beheben der Sicherheitslücke implementiert.
  • Wird geprüft: Der Status dieses Produkts steht noch nicht fest. Der Publisher wird in einem späteren Release einen aktualisierten Status angeben.

Hinweise

  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. Sie können Container-Images in einem Artifact Registry-Repository speichern oder ein Repository erstellen und Ihre Images per Push übertragen.

Erforderliche Rollen

Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen für das Projekt zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Hochladen von VEX-Bewertungen und zum Prüfen des VEX-Status von Sicherheitslücken benötigen:

Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.

Sie können die erforderlichen Berechtigungen auch über benutzerdefinierte Rollen oder andere vordefinierte Rollen erhalten.

VEX-Anweisungen erstellen

Die Artefaktanalyse unterstützt den CSAF-2.0-Standard (Common Security Advisory Format) in JSON. Verwenden Sie das CSAF-Schema, um eine neue VEX-Anweisung zu erstellen.

Im Folgenden finden Sie ein Beispiel für eine VEX-Anweisung für ein Image in Artifact Registry mit einem cve-Zweig für eine bekannte Sicherheitslücke.

Sie müssen den Wert von product_status für jede CVE definieren.


{
  "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"
        ]
      }
    }
  ]
}

Dabei gilt:

  • PRODUCT_NAME Für Menschen lesbarer Produktname für das Bild. Erforderlich ist ein Stringwert. Der Wert sollte der vollständige kanonische Name des Produkts sein, einschließlich Versionsnummer und anderer Attribute.
  • LOCATION ist die Region oder Multiregion Ihres Repositorys.
  • PROJECT_ID ist die ID des Projekts, das Ihr Repository enthält.
  • REPO_NAME ist der Name Ihres Docker-Repositorys in Artifact Registry.
  • IMAGE_NAME ist der Name des Images.
  • CVE_ID ist die Kennung für die Sicherheitslücke, z. B. CVE-2017-11164.
  • PRODUCT_STATUS ist die Bewertung des Sicherheitsrisikos. Die Artefaktanalyse unterstützt vier Statustypen: known_affected, known_not_affected, under_investigation und fixed.

Für jede Sicherheitslücke, die Sie in Ihrer VEX-Erklärung angeben möchten, müssen Sie einen cve-Zweig erstellen und den Wert des product_status definieren.

Der Wert des Felds name in product_tree.branches.name ist die URI der Abbildung. Wenn Sie diesen Wert angeben, wird die VEX-Anweisung einem bestimmten Docker-Image zugeordnet.

Nächste Schritte