In diesem Dokument wird beschrieben, wie Sie VEX-Erklärungen (Vulnerability Exploitability eXchange) erstellen.
Für jedes Container-Image, das per Push in Artifact Registry übertragen wird, kann Artefaktanalyse eine zugehörige VEX-Anweisung speichern. VEX ist eine Art Sicherheitshinweis, der angibt, ob ein Produkt von einer bekannten Sicherheitslücke betroffen ist.
Jede Anweisung enthält Folgendes:
- Der Herausgeber der VEX-Erklärung
- Das Artefakt, für das die Erklärung verfasst wurde
- Die Sicherheitslückenbewertung (VEX-Status) für alle bekannten Sicherheitslücken
Softwareherausgeber können VEX-Anweisungen erstellen, um die Sicherheitslage einer Anwendung zu beschreiben. In VEX-Erklärungen werden alle in bestimmten Artefakten entdeckten Sicherheitslücken aufgeführt und es wird Kontext zu den Auswirkungen auf Kunden oder Aufsichtsbehörden bereitgestellt.
Sicherheits- und Richtlinienerzwingungsstellen können den VEX-Status verwenden, um Risiken in ihren Softwarelieferketten zu priorisieren, und VEX-Anweisungen, um die Zusammensetzung ihrer Artefakte zu bestätigen und Organisationen bei der Erfüllung behördlicher Anforderungen zu unterstützen.
VEX-Status
Der VEX-Status gibt an, ob ein Artefakt von einer bekannten Sicherheitslücke betroffen ist.
Der Status kann einer der folgenden sein:
- 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
-
Sign in to your Google Account.
If you don't already have one, sign up for a new account.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Container Analysis, Artifact Registry APIs.
-
Install the Google Cloud CLI.
-
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Container Analysis, Artifact Registry APIs.
-
Install the Google Cloud CLI.
-
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
-
To initialize the gcloud CLI, run the following command:
gcloud init
- Container-Images in einem Artifact Registry-Repository gespeichert haben oder ein Repository erstellen und Ihre Images per Push übertragen.
-
So erstellen und aktualisieren Sie Hinweise:
Bearbeiter von Container Analysis-Hinweisen (
roles/containeranalysis.notes.editor
) - PRODUCT_NAME Für Menschen lesbarer Produktname für das Bild. Akzeptiert einen Stringwert. Der Wert sollte der vollständige kanonische Name des Produkts sein, einschließlich Versionsnummer und anderer Attribute.
- LOCATION ist der regionale oder multiregionale Speicherort 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
undfixed
. - VEX-Erklärungen hochladen: Sie können Ihre vorhandenen VEX-Erklärungen oder VEX-Erklärungen hochladen, die von anderen Verlagen bereitgestellt wurden.
- VEX verwenden, um Probleme mit Sicherheitslücken zu priorisieren. VEX-Anweisungen ansehen und Sicherheitslücken nach VEX-Status filtern
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 Common Security Advisory Format (CSAF) 2.0-Standard in JSON. Verwenden Sie das CSAF-Schema, um eine neue VEX-Erklärung zu erstellen.
Das Folgende ist 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"
]
}
}
]
}
Wo
Für jede Sicherheitslücke, die Sie in Ihrer VEX-Erklärung auflisten möchten, müssen Sie einen cve
-Zweig erstellen und den Wert von product_status
definieren.
Der Wert des Felds name
in product_tree.branches.name
ist der Bild-URI. Wenn Sie diesen Wert angeben, wird die VEX-Erklärung einem bestimmten Docker-Image zugeordnet.