Build Provenance
devsecopsDéfinition
La Build Provenance (provenance du build) est l'ensemble des métadonnées documentant de manière vérifiable le processus de construction d'un artefact logiciel : quel code source a été utilisé (commit hash, dépôt, branche), sur quel système de build (runner, image de build), avec quels outils (compilateurs, dépendances de build), à quel moment, et selon quelles étapes. Ces métadonnées constituent la traçabilité cryptographique de l'artefact, permettant d'établir une chaîne de confiance depuis le code source jusqu'au binaire déployé. La Build Provenance est un concept central du framework SLSA (Supply-chain Levels for Software Artifacts). SLSA définit quatre niveaux de maturité de la provenance, de L1 (provenance générée mais non signée) à L4 (build hermétique, bi-party review, provenance scellée). En pratique, la plupart des organisations visent SLSA L2 ou L3 comme objectif réaliste, combinant génération automatique de la provenance et signature cryptographique par le système de build. Les informations typiques incluses dans une Build Provenance sont : les matériaux d'entrée (buildDefinition.resolvedDependencies contenant les hashes des dépendances de build), l'identité du builder (builder.id comme URI identifiant le système de build, ex : "https://github.com/actions/runner@v2"), les étapes de build exécutées (buildDefinition.buildConfig.steps), les paramètres (inputs), les métadonnées d'invocation (timestamp, runId), et le hash SHA-256 de l'artefact produit (subject.digest). La génération de Build Provenance peut être intégrée dans les pipelines CI existants via des extensions et plugins : les Attestation Actions GitHub, les extension BuildKit pour Docker, et les outils SLSA comme slsa-github-generator (Google) automatisent la génération et la signature de la provenance SLSA via Sigstore/Rekor. Les artefacts et leur provenance associée sont stockés ensemble dans des registres OCI-compatibles. La vérification de la provenance par les consommateurs (avant déploiement en production) utilise des outils comme cosign verify-attestation, slsa-verifier verify-image, ou des admission controllers Kubernetes configurés pour rejeter les déploiements d'artefacts sans provenance SLSA valide.
Contenu d'une Build Provenance SLSA
Une Build Provenance SLSA (format in-toto attestation) contient : _type (SlsaProvenance/v0.2), subject (artefact + sha256), builder.id (URI du système de build, ex : https://github.com/actions/runner), buildType (type de build, ex : GitHubActionsWorkflow), invocation (paramètres, environnement), materials (sources : dépôt Git + commit hash, images de base Docker), et buildConfig (steps exécutées). Tout est signé en DSSE (Dead Simple Signing Envelope) avec vérification via Sigstore/Cosign.
Génération automatique avec GitHub Attestations
GitHub Attestations (disponible depuis 2024) génère et publie automatiquement des Build Provenances pour les artefacts buildés dans GitHub Actions : npm packages, images Docker, binaires. La commande attest-build-provenance génère l'attestation SLSA et la publie dans l'attestation store GitHub. La vérification se fait avec gh attestation verify --owner OWNER artifact.tar.gz. Cette intégration native rend SLSA L2 accessible sans outils tiers pour les projets hébergés sur GitHub.
Vérification et enforcement de la Build Provenance
La valeur de la Build Provenance réside dans sa vérification systématique. Des admission controllers Kubernetes (Kyverno avec attestation checking, OPA Gatekeeper) peuvent refuser les déploiements d'images sans provenance SLSA valide ou dont la provenance ne correspond pas au repo GitHub attendu. Pour les packages npm et PyPI, des outils comme sigstore/python-sigstore permettent de vérifier la provenance lors de l'installation. Cette vérification transforme la provenance d'un artefact documentaire en un contrôle de sécurité actif.
Articles liés
Expert en cybersécurité offensive et intelligence artificielle. Pentest, audit et développement IA sur-mesure.
Services
- Audit Infrastructure
- Audit Kubernetes
- Audit Microsoft 365
- Audit Sécurité Réseau
- Analyse de Risques
- Audit Active Directory
- Audit Application Web
- Audit Cloud (AWS/Azure/GCP)
- Audit Messagerie
- Audit API (OWASP Top 10)
- Audit DevSecOps & CI/CD
- Audit Code Source (SAST)
- Audit Postes de Travail
- Audit Sauvegarde & Résilience
- Audit OT/SCADA (IEC 62443)
- Développement IA
- Formations
Ressources
Projets & Outils
© 2026 Ayi NEDJIMI Consultants. Tous droits réservés.
Un projet cybersécurité ?
Expert dispo · Réponse 24h