Skip to content
Learni
View all tutorials
Sécurité logicielle

Comment sécuriser la supply chain en 2026

Introduction

En 2026, la sécurité de la supply chain logicielle est devenue critique face à l'explosion des attaques comme SolarWinds (2020, impactant 18 000 organisations) ou Log4Shell (2021, vulnérabilité zero-day dans une dépendance Java). Ces incidents montrent que 80 % des breaches proviennent de tiers, selon le rapport Verizon DBIR 2025. Une supply chain insecure expose vos artefacts (packages npm, conteneurs Docker) à des malwares injectés en amont.

Ce tutoriel intermédiaire vous guide pas à pas : des menaces aux frameworks comme SLSA (Supply-chain Levels for Software Artifacts), en passant par des stratégies actionnables. Imaginez votre CI/CD comme une chaîne logistique physique : un maillon faible (dépendance compromise) contamine tout. Sécuriser cela réduit les risques de 70 % (selon Gartner). À la fin, vous saurez implémenter une politique robuste, bookmark-worthy pour tout lead DevSecOps.

Prérequis

  • Connaissances de base en DevOps et CI/CD (GitHub Actions, Jenkins).
  • Familiarité avec les conteneurs (Docker) et les registres (Docker Hub, ECR).
  • Compréhension des SBOM (Software Bill of Materials) et des attaques en chaîne (ex. : XZ Utils 2024).
  • Outils comme Sigstore ou Trivy pour les tests pratiques.

Comprendre les menaces principales

Les attaques sur la supply chain ciblent quatre phases : source, build, stage et deploy.

PhaseMenace exempleImpact
-------------------------------
SourceInjection dans un repo tiers (npm typosquatting)Code malveillant dans vos dépendances
BuildCompromission CI/CD (token GitHub volé)Artefacts falsifiés
StagePoisoning de registre (Hugging Face 2024)Images conteneurs infectées
DeployRuntime injection (via K8s manifests)Exécution post-déploiement
Analogie : Comme un fournisseur de vin falsifie l'étiquette, un attaquant altère un package PyPI sans que vos scans le détectent. Étude de cas : L'attaque sur Codecov (2021) a injecté un bash uploader malveillant dans 42 000 CI, exfiltrant des credentials. Priorisez les menaces par probabilité : dépendances open-source (94 % des apps, OWASP).

Adopter le framework SLSA

SLSA (prononcé 'salsa'), développé par Google, définit 4 niveaux de maturité pour sécuriser les artefacts logiciels. C'est un standard ouvert, adopté par GitHub et Cloud Native Computing Foundation.

NiveauExigences clésExemple concret
--------------------------------------
0Basique (pas de protections)Repo public sans signatures
1Tamper-evident (logs immuables)GitHub Actions avec provenance
2Tamper-resistant (pas de nouveaux scripts)Pipelines verrouillés, pas de bash dynamique
3Trusted (tous inputs signés)SLSA v1.0 pour conteneurs
4Full (publishers hébergés)Cosign + Rekor pour attestations
Pourquoi SLSA ? Il prouve l'intégrité via provenance (métadonnées signées cryptographiquement). Cas réel : Après XZ Utils, Red Hat a upgradé à SLSA niveau 2, bloquant 99 % des injections build-time. Visez niveau 2 en 6 mois.

Sécuriser phase par phase

Appliquez une défense en profondeur par phase.

1. Source :

  • Générer des SBOM (via Syft ou CycloneDX) pour lister toutes dépendances.
  • Politique : Auditer les vendors (score GitHub Security > 80/100).

2. Build :
  • Utiliser des runners éphémères (GitHub-hosted).
  • Checklist : Secrets scanning (TruffleHog), SLSA provenance.

3. Stage :
  • Signer images (cosign) et scanner (Trivy, Grype).
  • Mirror privé pour registres publics.

4. Deploy :
  • Admission controllers K8s (Kyverno) pour valider signatures.
  • Runtime monitoring (Falco).

Exemple concret : Chez Uber, implémentation SLSA + SBOM a détecté une vuln éphémère en 2h vs 48h manuellement.

Implémenter une politique globale

Créez une politique supply chain sous forme de charter :

  1. Gouvernance : Équipe DRI (Directly Responsible Individual) par projet.
  2. Audits : Trimestriels avec outils comme OpenSSF Scorecard (github.com/ossf/scorecard).
  3. Réponse : Playbook pour incidents (ex. : freeze des builds).
  4. Métriques : Taux de SBOM coverage >95 %, temps de détection <24h.
Framework actionnable :
  • Jour 1 : Inventory des dépendances (dependabot).
  • Semaine 1 : SLSA niveau 1.
  • Mois 1 : Signatures full.
Cas d'étude : Microsoft après SolarWinds a imposé SBOM pour tous suppliers, réduisant risques de 60 %.

Bonnes pratiques essentielles

  • Toujours générer des SBOM : Intégrez-les nativement (npm ci --sbom).
  • Signer tout : Cosign pour conteneurs, npm sigstore pour packages.
  • Minimaliser la surface : Pinned versions (package-lock.json strict), zero-trust pour CI.
  • Automatiser les scans : Gatekeeper en CI/CD (fail on vuln high).
  • Diversifier fournisseurs : Pas plus de 20 % d'un même registry.

Erreurs courantes à éviter

  • Ignorer les transitive deps : 70 % des vulns viennent d'elles ; utilisez npm ls --depth=0.
  • Runners persistants : Faciles à compromettre ; préférez ephemeral.
  • Pas de rotation secrets : Un leak Codecov coûte des millions.
  • SBOM statiques seulement : Générez runtime SBOM pour conteneurs dynamiques.

Pour aller plus loin

Plongez dans les ressources officielles :


Découvrez nos formations Learni sur DevSecOps pour des ateliers pratiques SLSA et cas réels.