Cette page présente les concepts clés de la gestion des métadonnées et leur importance dans une chaîne de distribution logicielle sécurisée.
L'un des aspects d'une chaîne d'approvisionnement sécurisée consiste à suivre la durée de vie d'un artefact logiciel. Pour des raisons de conformité, ces informations de suivi peuvent devoir être disponibles même bien après l'abandon de l'artefact. Pour ce faire, vous devez générer et stocker des métadonnées décrivant les événements importants concernant un artefact ou une ressource logicielle: une image de conteneur, une machine virtuelle ou un paquet logiciel.
Artifact Analysis vous permet de stocker des informations de métadonnées associées à une ressource. Ces métadonnées peuvent ensuite être récupérées pour auditer votre chaîne d'approvisionnement logiciel.
Comment Artifact Analysis stocke-t-il les métadonnées ?
L'Artifact Analysis est basée sur Grafeas, une API de métadonnées de composants Open Source qui peut servir de source de vérité centralisée pour le suivi et l'application des règles. Les outils de compilation, d'audit et de conformité peuvent utiliser Grafeas pour stocker, interroger et récupérer des métadonnées complètes sur les composants logiciels.
Étant donné que Grafeas est Open Source, vous n'êtes pas limité à un fournisseur particulier. Grafeas associe les métadonnées à l'aide d'un identifiant logiciel unique. Il dissocie le stockage des artefacts, ce qui vous permet de stocker des métadonnées sur les composants de nombreux dépôts différents. Les mêmes principes s'appliquent à l'Artifact Analysis. Vous pouvez l'utiliser comme un entrepôt de métadonnées universel centralisé pour les composants logiciels dans Artifact Registry ou à tout autre emplacement.
Le modèle Grafeas implique deux entités:
- Un fournisseur qui crée des métadonnées stockées dans des notes.
- Un client qui identifie si les métadonnées stockées dans une note s'appliquent à ses artefacts. Dans ce cas, les métadonnées sont représentées sous la forme d'une occurrence d'une note.
Note
Une note décrit une métadonnée de haut niveau. Par exemple, vous pouvez créer une note sur une faille particulière pour un paquet Linux. Vous pouvez également utiliser une note pour stocker des informations sur le compilateur d'un processus de compilation. Les fournisseurs qui effectuent l'analyse sont généralement les propriétaires et les créateurs des notes. Les clients qui souhaitent utiliser les métadonnées peuvent ensuite identifier les occurrences des notes dans leurs projets.
Nous vous recommandons de stocker les notes et les occurrences dans des projets distincts, afin de bénéficier d'contrôle des accès plus précis.
Les notes doivent être disponibles en écriture uniquement pour le propriétaire, et en lecture seule pour les clients ayant accès aux occurrences qui y font référence.
Occurrence
Une occurrence représente le moment où une note a été trouvée sur un artefact logiciel, et peut être considérée comme une instanciation d'une note. Par exemple, une occurrence d'une note sur une faille décrit le package dans lequel la faille a été trouvée et les mesures correctives spécifiques. Une occurrence d'une note sur les détails de la compilation, quant à elle, décrit les images de conteneurs résultant d'une compilation.
En règle générale, les occurrences sont stockées dans des projets distincts de ceux où les notes sont créées. L'accès en écriture aux occurrences ne doit être accordé qu'aux utilisateurs autorisés à lier des notes aux occurrences. Tout utilisateur peut disposer d'un accès en lecture aux occurrences.
Types de métadonnées acceptés
Le tableau suivant répertorie les types de métadonnées compatibles avec Artifact Analysis. Les fournisseurs tiers de métadonnées peuvent stocker et récupérer tous les types de métadonnées suivants pour les images de leurs clients.
Type de métadonnées | Utilisation dans les services Google Cloud |
---|---|
Faille : fournit des informations sur les failles des fichiers audités. | Artifact Analysis génère des occurrences de failles en fonction de bases de données externes sur les problèmes de sécurité divulgués publiquement. |
Compilation : fournit des informations sur la provenance du build. | Cloud Build génère ces métadonnées et Artifact Analysis stocke les informations si vous utilisez Cloud Build pour créer l'image. |
Image : correspond aux métadonnées sur l'image de conteneur (par exemple, les informations sur les différentes couches d'une image). | |
Package : contient des informations sur les packages installés dans votre image. | |
Déploiement : fournit des informations sur les événements de déploiement d'images. | |
Découverte : contient des informations sur l'analyse initiale des images. | Artifact Analysis ne fournit ces informations que pour les analyses de failles. |
L'attestation contient des informations de certification des images. | Oui. L'autorisation binaire lit ces informations et peut les utiliser pour contrôler les déploiements. |
Mise à niveau, qui décrit une mise à niveau de package disponible. | |
Conformité : fournit des informations sur une vérification de conformité. | |
Attestation DSSE, qui décrit une attestation qui utilise la signature Dead Simple Signing Envelope. | |
L'évaluation des failles stocke une déclaration VEX importée au format note VulnerabilityAssessment de Grafeas. | |
La référence SBOM fournit des métadonnées supplémentaires pour vous aider à localiser et à valider les SBOM. |
Étape suivante
- Fournissez des métadonnées pour vos images.
- Accordez un contrôle précis sur vos métadonnées en configurant le contrôle des accès.