Sécuriser les pipelines CI/CD
Renforcer le parcours de compilation et de publication.
Sécuriser les pipelines CI/CD est une leçon Cyber Security Academy gratuite sur CoddyKit. Ceci est la leçon 4 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Cyber Security Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Cyber Security Academy comprend 4 leçons au total.
La chaîne comme cible
Une chaîne d'intégration et de livraison dispose d'un accès privilégié au code source, aux secrets et à la production. La compromettre permet à un attaquant d'injecter des portes dérobées dans chaque compilation future tout en contournant la revue de code. Il s'agit de l'une des cibles les plus intéressantes de l'ingénierie moderne.
Traitez la chaîne comme une infrastructure de production : elle mérite le même durcissement, la même surveillance et la même discipline du moindre privilège que vos systèmes en production.
Entrées non fiables dans les compilations
Les chaînes s'exécutent automatiquement en réponse à des événements que vous ne contrôlez pas entièrement : demandes de fusion, étiquettes, contributions externes. Une demande de fusion malveillante peut tenter de modifier la compilation elle-même.
- Une définition de chaîne empoisonnée dans un dépôt dérivé peut tenter d'exfiltrer des secrets
- Du code non fiable peut s'exécuter avec les mêmes autorisations que les compilations approuvées
Séparez les flux de travail fiables des flux non fiables : n'exposez pas de secrets aux tâches déclenchées par des demandes de fusion externes.
Figer vos actions et vos images
Les étapes d'une chaîne récupèrent souvent des actions tierces ou des images de conteneurs au moyen d'une étiquette modifiable. Si cette étiquette est réorientée vers un contenu malveillant, votre compilation est compromise. Figez-les sur des empreintes immuables.
# BAD: mutable tag can be moved under you
uses: some/action@v3
# GOOD: pinned to an immutable commit SHA
uses: some/action@a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0
# pin container steps by digest too
image: build-tools@sha256:9f86d081884c7d659a2feaa0c55ad015...Le moindre privilège pour les jetons
Les jetons par défaut des chaînes disposent souvent de trop d'autorisations et accordent un accès en écriture à l'ensemble du dépôt ou du registre. Réduisez leur portée à ce dont chaque tâche a exactement besoin.
# scope the default token to read-only, grant more only where needed
permissions:
contents: read
jobs:
publish:
permissions:
contents: read
packages: write # only this job can publishHygiène des secrets
Les secrets codés en dur ou largement partagés constituent une voie principale de fuite. Appliquez une gestion stricte :
- Stockez les secrets dans un gestionnaire de secrets ou dans le coffre de secrets de l'intégration continue, jamais dans le code
- Privilégiez la fédération OIDC de courte durée aux clés statiques de services en nuage
- Masquez les secrets dans les journaux et bloquez leur affichage
- Limitez chaque secret aux tâches et aux environnements strictement nécessaires
La fédération OIDC permet à la chaîne d'échanger une identité au moment de la compilation contre des identifiants de services en nuage à courte durée de vie, éliminant ainsi complètement les clés à longue durée de vie.
Des exécuteurs éphémères et isolés
Un exécuteur de compilation réutilisé peut transporter des logiciels malveillants ou des secrets divulgués d'une tâche à l'autre. Les exécuteurs éphémères sont créés spécialement pour chaque tâche puis supprimés, de sorte que rien ne subsiste.
- Un environnement propre par compilation, puis supprimé
- Aucun état partagé entre les tâches fiables et non fiables
- Le trafic sortant du réseau est limité aux points de terminaison nécessaires
Cela contribue directement aux objectifs d'isolation du niveau L3 de SLSA.
Protéger la branche source
La confiance accordée à la chaîne commence dans le contrôle du code source. Si n'importe qui peut pousser des modifications vers la branche de mise en production, la signature et l'analyse en aval ne servent à rien.
- Exiger une revue de la demande de fusion avant la fusion
- Imposer des validations signées sur les branches protégées
- Exiger que les vérifications d'état (validations, analyses) réussissent
- Interdire la poussée forcée et la poussée directe vers
main
# require signed commits on a branch
git config commit.gpgsign true
# verify a commit signature locally
git verify-commit HEADAnalyser dans la chaîne
Intégrez directement les contrôles de sécurité à l'intégration continue afin que les problèmes fassent échouer la compilation plutôt que d'atteindre la production.
# secret leak detection
gitleaks detect --source . --redact
# dependency vulnerabilities
osv-scanner --lockfile=package-lock.json
# IaC and config misconfig
trivy config .
# fail the job on critical findings (non-zero exit stops CI)Contrôle à deux pour les mises en production
Les actions à fort impact méritent une validation humaine. Les déploiements en production et les modifications d'identifiants doivent nécessiter l'approbation d'une personne autre que leur auteur.
- Les règles de protection des environnements exigent l'intervention d'un réviseur avant le déploiement
- Séparer l'identité de compilation de l'identité de déploiement
- Aucun acteur ne peut à la fois écrire du code et le pousser en production sans revue
Cela limite à la fois le risque interne et le rayon d'impact d'un compte compromis.
Audit et détection des altérations
Vous devez pouvoir reconstituer les actions de la chaîne. Centralisez et protégez ses journaux.
- Transférez les journaux d'intégration continue vers un stockage en ajout uniquement à accès contrôlé
- Consignez qui a modifié les définitions de la chaîne et à quel moment
- Produisez une provenance signée afin de relier les artefacts à une compilation précise
- Déclenchez une alerte en cas d'anomalie : nouvel exécuteur auto-hébergé, accès inattendu à un secret, modification de configuration en dehors du processus de revue
Liste de contrôle du durcissement de la chaîne
Une chaîne défendable combine des contrôles du code source, de la compilation et de la mise en production :
- Protection des branches, validations examinées et signées
- Actions et images figées selon leur empreinte
- Jetons OIDC de courte durée et à privilèges minimaux
- Exécuteurs éphémères et isolés
- Analyse des secrets, des dépendances et des configurations dans la chaîne
- Approbation des mises en production par deux personnes
- Artefacts signés, SBOM et provenance avec journalisation d'audit
Vérification rapide : autorisations des jetons
Déterminez le contrôle approprié pour un jeton de compilation privilégié.
Récapitulatif : sécuriser les chaînes d'intégration et de livraison
Vous avez appris à durcir l'ensemble du parcours de compilation et de mise en production.
- Traitez la chaîne comme de la production ; elle peut installer une porte dérobée dans chaque compilation future
- Isolement des compilations issues de demandes de fusion non fiables vis-à-vis des secrets
- Figer les actions et les images selon leur empreinte ; utiliser des jetons OIDC de courte durée et à privilèges minimaux
- Utiliser des exécuteurs éphémères et isolés et protéger la branche source
- Analyser dans la chaîne, exiger l'approbation des mises en production par deux personnes et conserver des journaux d'audit permettant de détecter les altérations
Cours terminé : vous pouvez désormais sécuriser la chaîne d'approvisionnement logicielle de bout en bout.
Questions Fréquemment Posées
La leçon « Sécuriser les pipelines CI/CD » est-elle gratuite ?
Oui — le texte complet de « Sécuriser les pipelines CI/CD » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Cyber Security Academy, passe à CoddyKit PRO. Le cours Cyber Security Academy comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Sécuriser les pipelines CI/CD » ?
Renforcer le parcours de compilation et de publication. Tu pratiques Cyber Security Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer Cyber Security Academy ?
Aucune expérience préalable n'est requise. Cyber Security Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 4 sur 4.
Combien de temps prend la leçon « Sécuriser les pipelines CI/CD » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon Cyber Security Academy ?
Oui. Chaque leçon Cyber Security Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- Menaces liées à la chaîne d’approvisionnement
- Nomenclature logicielle (SBOM)
- Signature des dépendances et des artefacts
- Sécuriser les pipelines CI/CD