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

devsecops

Définition

SLSA (Supply-chain Levels for Software Artifacts, prononcé "salsa") est un framework de sécurité de la supply chain logicielle développé initialement par Google et maintenant géré par l'OpenSSF (Open Source Security Foundation). SLSA définit quatre niveaux de maturité (L1 à L4) représentant un ensemble progressif de pratiques et de garanties permettant aux consommateurs d'évaluer la fiabilité du processus de production d'un artefact logiciel. SLSA répond à une question fondamentale : comment un consommateur peut-il faire confiance non seulement au contenu d'un binaire ou d'une image Docker, mais aussi au processus qui l'a produit ? La chaîne de confiance doit couvrir l'ensemble du pipeline, depuis le code source jusqu'à l'artefact publié, incluant le système de build, les dépendances du build, et la publication. Les quatre niveaux SLSA définissent des garanties progressives. SLSA L1 (Documentation de la provenance) : le producteur génère une provenance documentant l'artefact, sa source, et son builder — mais cette provenance n'est pas nécessairement signée ou vérifiée. SLSA L2 (Provenance signée) : la provenance est signée par l'infrastructure de build sur un système hébergé, rendant difficile la falsification après coup. SLSA L3 (Provenance vérifiée par un builder de confiance hermétique) : le build est exécuté dans un environnement hermétique (sans accès non contrôlé à l'extérieur), les dépendances de build sont déclarées et vérifiées, et la provenance est générée et signée par le Trusted Builder lui-même. SLSA L4 (Vérification indépendante à deux parties, builds hermétiques et reproductibles) : niveau maximal, requiert une vérification indépendante par deux parties distinctes et des builds reproductibles. La combinaison SLSA + Sigstore (Cosign + Rekor + Fulcio) est l'implémentation recommandée pour les projets GitHub et GitLab : les attestations SLSA sont générées par le slsa-github-generator (Trusted Builder officiel), signées via Cosign keyless, et vérifiables avec slsa-verifier.

Les quatre niveaux SLSA

SLSA L1 : génère de la provenance (qui a buildé quoi, quand, depuis quel commit) — protection minimale contre la substitution post-hoc. SLSA L2 : provenance signée par le service de build hébergé (GitHub Actions, GitLab CI) — difficile à falsifier car émise par un tiers. SLSA L3 : Trusted Builder hermétique (environnement isolé, dépendances déclarées, pas d'injection externe) — garantit l'intégrité du processus de build. SLSA L4 : builds bi-party verified et reproductibles — le standard le plus exigeant, requis pour les projets critiques d'infrastructure.

Générer des attestations SLSA L3 avec GitHub Actions

Le slsa-github-generator (CNCF/SLSA Framework) permet de générer des attestations SLSA L3 depuis GitHub Actions : le workflow cible appelle uses: slsa-framework/slsa-github-generator/.github/workflows/generator_container_slsa3.yml@v2.0.0 via un Reusable Workflow call. Ce workflow construit l'image dans un environnement isolé, génère l'attestation SLSA L3 (in-toto Statement), et la signe via Cosign keyless. Les consommateurs vérifient avec slsa-verifier verify-image myapp@sha256:abc --source-uri github.com/owner/repo.

SLSA et la politique de déploiement Kubernetes

SLSA s'intègre dans la policy de déploiement Kubernetes via des admission controllers : une ClusterImagePolicy Sigstore ou une Kyverno Policy peut exiger non seulement une signature Cosign valide mais aussi une attestation SLSA L2+ avant de permettre le démarrage d'un Pod. La policy vérifie le predicate type (https://slsa.dev/provenance/v0.2) et les champs clés (builder.id correspondant au Trusted Builder autorisé, materials[].uri correspondant au dépôt source autorisé). Cette intégration rend le niveau SLSA exigé coercitif dans l'environnement d'exécution.

Articles liés

Un projet cybersécurité ?

Expert dispo · Réponse 24h

Devis