Ce document explique comment créer des instructions Vulnerability Exploitability eXchange (VEX).
Pour chaque image de conteneur transférée vers Artifact Registry, Artifact Analysis peut stocker une instruction VEX associée. VEX est un type d'avis de sécurité qui indique si un produit est affecté par une faille connue.
Chaque instruction fournit les informations suivantes:
- Éditeur de la déclaration VEX
- L'artefact pour lequel l'instruction est écrite
- L'évaluation des failles (état VEX) pour toute faille connue
Les éditeurs de logiciels peuvent créer des instructions VEX pour décrire la posture de sécurité d'une application. Les déclarations VEX indiquent toute faille découverte dans des artefacts spécifiques et fournissent un contexte sur leur impact auprès de leurs clients ou des organismes de réglementation.
Les responsables de la sécurité et de l'application des règles peuvent utiliser l'état VEX pour trier les risques dans leurs chaînes d'approvisionnement logicielles et utiliser des instructions VEX pour attester de la composition de leurs artefacts afin d'aider les organisations à respecter les exigences réglementaires.
État VEX
L'état VEX indique si un artefact est affecté par une faille connue.
L'état peut être l'un des suivants:
- Non affecté: aucune correction n'est requise concernant cette faille.
- Affecté: des actions correctives sont recommandées.
- Corrigé: dans cette version du produit, un correctif a été appliqué pour traiter la faille.
- En cours d'examen: l'état de ce produit n'est pas encore déterminé. L'éditeur fournira un état actualisé dans une prochaine version.
Avant de commencer
-
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.
-
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.
-
To initialize the gcloud CLI, run the following command:
gcloud init
- Stockez les images de conteneur dans un dépôt Artifact Registry, ou créez un dépôt et transférez vos images.
Rôles requis
Pour obtenir les autorisations nécessaires pour importer des évaluations VEX et vérifier l'état VEX des failles, demandez à votre administrateur de vous accorder les rôles IAM suivants sur le projet:
-
Pour créer et mettre à jour des notes :
Éditeur de notes Container Analysis (
roles/containeranalysis.notes.editor
)
Pour en savoir plus sur l'attribution de rôles, consultez la page Gérer l'accès aux projets, aux dossiers et aux organisations.
Vous pouvez également obtenir les autorisations requises via des rôles personnalisés ou d'autres rôles prédéfinis.
Créer des instructions VEX
Artifact Analysis est compatible avec la norme CSAF (Common Security Advisory Format) 2.0 au format JSON. Pour générer une nouvelle instruction VEX, utilisez le schéma CSAF.
Voici un exemple d'instruction VEX pour une image dans Artifact Registry avec une branche cve
pour une faille connue.
Vous devez définir la valeur de product_status
pour chaque 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"
]
}
}
]
}
Où
- PRODUCT_NAME Nom du produit lisible pour l'image. Accepte une valeur de chaîne. La valeur doit correspondre au nom canonique complet du produit, y compris le numéro de version et d'autres attributs.
- LOCATION correspond à la région ou à l'emplacement multirégional de votre dépôt.
- PROJECT_ID est l'ID du projet contenant votre dépôt.
- REPO_NAME est le nom de votre dépôt Docker dans Artifact Registry.
- IMAGE_NAME correspond au nom de l'image.
- CVE_ID est l'identifiant de la faille, par exemple
CVE-2017-11164
. - PRODUCT_STATUS correspond à l'évaluation du risque de sécurité.
L'Artifact Analysis accepte quatre types d'états:
known_affected
,known_not_affected
,under_investigation
etfixed
.
Pour chaque faille que vous souhaitez lister dans votre instruction VEX, vous devez créer une branche cve
et définir la valeur de product_status
.
La valeur du champ name
dans product_tree.branches.name
est l'URI de l'image. L'inclusion de cette valeur associe l'instruction VEX à une image Docker spécifique.
Étape suivante
- Importez des déclarations VEX vos déclarations VEX existantes ou des déclarations VEX fournies par d'autres éditeurs.
- Hiérarchisez les problèmes de faille à l'aide de VEX. Découvrez comment afficher les instructions VEX et filtrer les failles par état VEX.