Aller au contenu principal
Expert Cybersécurité & IAv9.0
Centres de ressources conformité
Besoin d'un accompagnement expert ?
Devis personnalisé sous 24h — audit, conformité, incident
Checklists Sécurité — Audit & Durcissement
Formats disponibles
📄 PDF 📊 Excel 🌐 Web

11 checklists professionnelles couvrant 2 200+ points de contrôle. Téléchargement gratuit, aucune inscription.

SLSA Provenance

devsecops

Définition

SLSA Provenance (Supply-chain Levels for Software Artifacts Provenance) est un standard de métadonnées d'attestation décrivant le processus de build qui a produit un artefact logiciel. Ces métadonnées de provenance permettent aux consommateurs d'un artefact (image Docker, package npm, binaire) de vérifier de manière cryptographiquement vérifiable que l'artefact a été produit par un processus de build spécifique à partir d'un code source spécifique, protégeant contre les attaques de supply chain ciblant les systèmes de build. Le concept de provenance SLSA répond à une question fondamentale de la sécurité des supply chains : "comment puis-je savoir que ce binaire est vraiment le résultat de la compilation de ce code source, et non d'un binaire malveillant injecté quelque part dans la chaîne ?" Sans provenance, un attaquant pouvant compromettre un serveur de build ou un système de distribution peut remplacer un artefact légitime par un artefact malveillant sans que les consommateurs ne puissent le détecter. Un document SLSA Provenance au format JSON contient plusieurs sections clés : le sujet (l'artefact produit, identifié par son hash SHA-256), le builder (l'identité du système de build qui a exécuté la compilation), les buildDefinition (le code source utilisé, les commandes de build exécutées, les variables d'environnement), et les runDetails (timestamp, invocationID, configuration du builder). Ce document est signé cryptographiquement (via Sigstore/Cosign) par le système de build lui-même. La génération de SLSA Provenance est supportée nativement par GitHub Actions via le Trusted Attestations GitHub Actions Workflow. Pour les images Docker, le buildkit de Docker génère des attestations de provenance SLSA lors de la construction avec buildx. Des outils comme slsa-github-generator (Google) fournissent des workflows préconfigurés pour générer et vérifier des attestations SLSA Level 3. La vérification de la provenance à l'entrée d'un pipeline (avant déploiement) permet de rejeter les artefacts dont la provenance ne peut pas être vérifiée ou qui proviennent d'un système de build non trusted — protégeant contre les compromissions de registres de paquets et les substitutions d'artefacts.

Format et contenu d'une attestation SLSA Provenance

Une attestation SLSA Provenance (in-toto attestation avec predicate SLSA) contient : _type (SlsaProvenance), subject (artefact + sha256), builder.id (URI identifiant le système de build), buildType (type de build : GitHubActionsWorkflow), invocation (workflow, parameters, environment), buildConfig (steps exécutées), materials (code source utilisé avec son hash git). Le tout est signé en DSSE (Dead Simple Signing Envelope) et peut être vérifié avec Cosign ou slsa-verifier.

Générer la provenance SLSA sur GitHub Actions

Le générateur officiel slsa-github-generator (google/slsa-github-generator) produit des attestations SLSA Level 3 via des GitHub Actions Reusable Workflows. Pour les images Docker : l'action docker/build-push-action avec buildx génère automatiquement la provenance SLSA. La provenance est attachée à l'image dans le registre OCI et vérifiable avec cosign verify-attestation --type slsa ou slsa-verifier verify-image.

Vérification et enforcement de la provenance

La valeur de la provenance SLSA réside dans son vérification systématique avant déploiement. Des admission controllers Kubernetes (via Kyverno ou OPA Gatekeeper) peuvent refuser le déploiement d'images sans attestation SLSA valide ou signée par une clé de confiance. Pour les packages open source, des outils comme deps.dev et GUAC (Graph for Understanding Artifact Composition) agrègent les informations de provenance pour analyser la supply chain de l'ensemble d'un projet.

Articles liés

Un projet cybersécurité ?

Expert dispo · Réponse 24h

Devis