DevOps
Checklist sécurité CI/CD : au-delà des bases
Checklist pragmatique pour sécuriser une CI/CD : identité, secrets, provenance, approbations et durcissement contre les attaques de la supply chain.
De plus en plus d’incidents démarrent dans la chaîne de build et de déploiement : token CI volé, workflow modifié pour exfiltrer des secrets, runner compromis, dépendance malveillante. Une CI/CD “sécurisée” n’est pas une pile de scanners : c’est la maîtrise de la chaîne qui transforme du code en production, avec une identité forte, des privilèges minimaux, et des artefacts vérifiables.
Ce que veut dire « CI/CD sécurisée »
L’objectif est de contrôler comment quelque chose arrive en prod :
- Identité forte (humains et machines)
- Moindre privilège et tokens courte durée
- Intégrité des artefacts (build une fois, promotion fiable)
- Promotions & rollbacks contrôlés
- Auditabilité : qui a changé quoi, qui a approuvé, qu’est-ce qui a été déployé
Commencer par un mini threat model (30 minutes)
Avant de changer les outils, alignez-vous sur les menaces les plus probables :
- Vol d’identifiants : token exposé dans les logs, artefacts ou workspace du runner
- Manipulation de workflow : PR qui modifie le pipeline pour récupérer des secrets
- Runner compromis : runners partagés, état persistant, image non patchée
- Dépendances : version malveillante, typosquatting, chaîne d’outils non maîtrisée
- Artefact altéré : ce qui a été construit n’est pas ce qui a été déployé
Votre but est de réduire le blast radius et d’augmenter la confiance dans chaque release.
Quick wins (souvent faisables en une semaine)
1) Éliminer les clés longue durée dans la CI
Les clés cloud statiques et partagées sont un anti-pattern classique.
- Préférez OIDC + rôles/token éphémères
- Limitez chaque identifiant à un seul environnement (staging ou prod)
- Auditez l’accès aux secrets et faites de la rotation régulière
- Empêchez les forks / PR non fiables d’accéder aux secrets
2) Exiger des reviews pour les changements de workflow
Votre pipeline est du code critique.
- CODEOWNERS / review obligatoire sur
.github/workflows/*(ou équivalent) - Restreindre qui peut approuver ces changements
- Empêcher l’auto-approbation sur les dépôts sensibles
3) Épingler et vérifier les actions / dépendances
Exemple GitHub Actions :
- Épingler les actions par SHA, pas par tag flottant
- Auditer les étapes à fort privilège (auth cloud, deploy, signing)
- Prioriser des composants maintenus (signaux de maintenance clairs)
4) Durcir les runners
Les runners sont souvent le point faible le plus sous-estimé.
- Utiliser des runners éphémères (nouvelle instance par job) si possible
- Minimiser la surface : outils nécessaires uniquement, images patchées
- Éviter l’accumulation de secrets sur disque / workspace
- Éviter les mounts de credentials trop larges
5) Mettre des protections d’environnement
Rendre difficile le “mauvais déploiement” :
- Séparer build et deploy
- Approbation requise avant la prod quand c’est pertinent
- Checks requis avant prod (tests, policy, scans)
- Rollback testé et documenté (pas “à l’instinct”)
Au-delà des scanners : intégrité et provenance
Les scanners aident, mais ne garantissent pas que l’artefact déployé correspond au code revu.
Provenance
Répond à : “Quel code, quels inputs, quel builder, quel résultat ?”
- SHA commit, lockfiles, image builder, configuration de build
- Attestations stockées avec l’artefact (ou dans un système dédié)
Intégrité des artefacts
Répond à : “L’artefact a-t-il été modifié ?”
- Signer les images (ou équivalent) et vérifier au moment du déploiement
- Promouvoir le même artefact entre environnements (pas de rebuild)
Checklist CI/CD sécurité (comme roadmap)
Identité & accès
- SSO + MFA pour Git et tooling critique
- Distinction claire humains vs machines
- Secrets accessibles uniquement à des rôles nécessaires
- Moindre privilège par environnement
Secrets
- Pas de clés statiques cloud dans la CI (préférer OIDC)
- Secrets jamais imprimés dans les logs
- Accès aux secrets audité et gouverné
Supply chain
- Lockfiles requis et revus
- Actions/dépendances épinglées et réévaluées périodiquement
- Mises à jour auto avec garde-fous (tests + approvals)
Build & release
- Build une fois, artefact immutable
- Promotion de l’artefact (pas de rebuild par environnement)
- Vérification d’intégrité/signature avant prod
Contrôle des changements
- Revue obligatoire sur workflow et infra
- Approvals explicites pour prod + checks requis
- Rollback “first-class” et testé
Pièges fréquents
- « On a ajouté des scanners, donc c’est bon. » Non : les scanners alimentent la sécurité, ils ne la remplacent pas.
- Tokens CI trop permissifs (écriture repo, release, accès cloud large).
- Runners partagés avec état persistant.
- Déploiements manuels qui contournent les checks en situation d’urgence.
Besoin d’un pipeline CI/CD durci de bout en bout ?
Si vous voulez une CI/CD robuste, avec des promotions fiables et un rollback maîtrisé, voyez notre offre mise en place et durcissement CI/CD. Nous commençons en général par le threat model et les quick wins, puis nous mettons en place les contrôles d’intégrité et de provenance adaptés à votre stade et à vos exigences de conformité.