{"id":446,"date":"2026-03-24T08:53:53","date_gmt":"2026-03-24T07:53:53","guid":{"rendered":"https:\/\/secure-pipelines.com\/?p=446"},"modified":"2026-07-06T20:05:00","modified_gmt":"2026-07-06T19:05:00","slug":"ci-cd-threats-attacks-what-attackers-target-how-to-defend","status":"publish","type":"post","link":"https:\/\/secure-pipelines.com\/fr\/ci-cd-security\/ci-cd-threats-attacks-what-attackers-target-how-to-defend\/","title":{"rendered":"Menaces et attaques CI\/CD : ce que les attaquants ciblent et comment se d\u00e9fendre"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">La livraison logicielle moderne repose sur les pipelines d&rsquo;int\u00e9gration et de livraison continues (CI\/CD) pour construire, tester et d\u00e9ployer du code \u00e0 grande \u00e9chelle. Ces pipelines sont devenus la colonne vert\u00e9brale du DevOps, permettant aux organisations de livrer des fonctionnalit\u00e9s plus vite et de mani\u00e8re plus fiable que jamais. Mais cette puissance a une contrepartie critique : les syst\u00e8mes CI\/CD sont devenus l&rsquo;une des surfaces d&rsquo;attaque les plus attrayantes des environnements d&rsquo;entreprise.<\/p>\n\n<p class=\"wp-block-paragraph\">Contrairement \u00e0 l&rsquo;infrastructure traditionnelle, les pipelines CI\/CD se situent \u00e0 l&rsquo;intersection du code, des identifiants et des syst\u00e8mes de production. Un seul pipeline compromis peut donner \u00e0 un attaquant tout ce dont il a besoin \u2014 acc\u00e8s aux d\u00e9p\u00f4ts de code source, identifiants cloud, cl\u00e9s de signature et capacit\u00e9 de pousser des artifacts malveillants directement en production. Ce n&rsquo;est pas une pr\u00e9occupation th\u00e9orique. Les cinq derni\u00e8res ann\u00e9es ont vu une escalade spectaculaire des attaques visant les cha\u00eenes d&rsquo;approvisionnement logicielles \u00e0 travers l&rsquo;infrastructure CI\/CD, de <strong>SolarWinds<\/strong> \u00e0 <strong>XZ Utils<\/strong>.<\/p>\n\n<p class=\"wp-block-paragraph\">Ce guide propose une taxonomie compl\u00e8te des menaces et attaques CI\/CD, les met en correspondance avec des r\u00e9f\u00e9rentiels du secteur comme le OWASP CI\/CD Top 10, d\u00e9crit des incidents r\u00e9els et pr\u00e9sente des strat\u00e9gies d\u00e9fensives que vous pouvez mettre en \u0153uvre d\u00e8s aujourd&rsquo;hui. Que vous soyez ing\u00e9nieur s\u00e9curit\u00e9, praticien DevOps ou responsable d&rsquo;une \u00e9quipe plateforme, comprendre ces vecteurs d&rsquo;attaque est la premi\u00e8re \u00e9tape vers des pipelines r\u00e9silients.<\/p>\n\n<h2 class=\"wp-block-heading\">Pourquoi les attaquants ciblent les pipelines CI\/CD<\/h2>\n\n<p class=\"wp-block-paragraph\">Pour comprendre le paysage des menaces, vous devez penser aux pipelines CI\/CD comme le fait un attaquant. Les pipelines ne sont pas que de l&rsquo;automatisation \u2014 ce sont des <strong>environnements d&rsquo;ex\u00e9cution privil\u00e9gi\u00e9s<\/strong> dot\u00e9s de propri\u00e9t\u00e9s uniques qui en font des cibles d&rsquo;une valeur extraordinaire.<\/p>\n\n<h3 class=\"wp-block-heading\">Un acc\u00e8s privil\u00e9gi\u00e9 \u00e0 tout<\/h3>\n\n<p class=\"wp-block-paragraph\">Les pipelines CI\/CD d\u00e9tiennent couramment des identifiants pour les fournisseurs cloud (AWS, GCP, Azure), les registres de conteneurs, les d\u00e9p\u00f4ts de packages, les bases de donn\u00e9es et les clusters Kubernetes de production. Un seul runner de pipeline dispose souvent de plus d&rsquo;acc\u00e8s que n&rsquo;importe quel d\u00e9veloppeur individuel. Les attaquants qui compromettent un pipeline h\u00e9ritent instantan\u00e9ment de tous ces privil\u00e8ges.<\/p>\n\n<h3 class=\"wp-block-heading\">L&rsquo;automatisation comme arme<\/h3>\n\n<p class=\"wp-block-paragraph\">Les pipelines sont con\u00e7us pour ex\u00e9cuter du code automatiquement en r\u00e9ponse \u00e0 des d\u00e9clencheurs \u2014 un push sur une branche, une pull request, un tag ou un cron planifi\u00e9. Cette automatisation, qui est la raison d&rsquo;\u00eatre m\u00eame du CI\/CD, devient une arme d\u00e8s qu&rsquo;un attaquant peut influencer ce qui est ex\u00e9cut\u00e9. Contrairement \u00e0 un relecteur humain, un pipeline ex\u00e9cutera fid\u00e8lement toutes les instructions qu&rsquo;on lui donne, y compris malveillantes.<\/p>\n\n<h3 class=\"wp-block-heading\">Des hypoth\u00e8ses de confiance implicites<\/h3>\n\n<p class=\"wp-block-paragraph\">La plupart des architectures CI\/CD reposent sur un socle de confiance implicite. Les organisations partent du principe que les fichiers de configuration des pipelines n&rsquo;ont pas \u00e9t\u00e9 alt\u00e9r\u00e9s. Elles supposent que les d\u00e9pendances r\u00e9solues au moment du build sont l\u00e9gitimes. Elles supposent que les GitHub Actions tierces ou les templates de pipeline partag\u00e9s sont s\u00fbrs. Chacune de ces hypoth\u00e8ses de confiance repr\u00e9sente un vecteur d&rsquo;attaque potentiel.<\/p>\n\n<h3 class=\"wp-block-heading\">Une posture de s\u00e9curit\u00e9 faible<\/h3>\n\n<p class=\"wp-block-paragraph\">Les syst\u00e8mes CI\/CD se trouvent souvent dans un angle mort de la s\u00e9curit\u00e9. Ils sont g\u00e9r\u00e9s par les \u00e9quipes d&rsquo;ing\u00e9nierie plut\u00f4t que par les \u00e9quipes de s\u00e9curit\u00e9, ils ne b\u00e9n\u00e9ficient pas de la surveillance et de la journalisation dont profitent les syst\u00e8mes de production, et ils accumulent de la dette technique sous forme de configurations trop permissives, d&rsquo;identifiants p\u00e9rim\u00e9s et de runners non corrig\u00e9s. Cela en fait des cibles faciles compar\u00e9es \u00e0 une infrastructure de production durcie.<\/p>\n\n<h3 class=\"wp-block-heading\">L&rsquo;amplification par la cha\u00eene d&rsquo;approvisionnement<\/h3>\n\n<p class=\"wp-block-paragraph\">L&rsquo;aspect le plus dangereux des attaques CI\/CD est peut-\u00eatre leur potentiel d&rsquo;amplification. Compromettre un seul pipeline qui construit une biblioth\u00e8que ou un service largement utilis\u00e9 peut propager du code malveillant \u00e0 des milliers, voire des millions de consommateurs en aval. C&rsquo;est cet effet d&rsquo;amplification par la cha\u00eene d&rsquo;approvisionnement qui rend des incidents comme SolarWinds et XZ Utils si d\u00e9vastateurs.<\/p>\n\n<h2 class=\"wp-block-heading\">Taxonomie des attaques CI\/CD : correspondance avec le OWASP CI\/CD Top 10<\/h2>\n\n<p class=\"wp-block-paragraph\">Le <a href=\"https:\/\/secure-pipelines.com\/fr\/ci-cd-security\/owasp-top-10-ci-cd-risks-explained-real-world-examples\/\">OWASP CI\/CD Top 10<\/a> fournit un cadre structur\u00e9 pour comprendre les risques les plus critiques des environnements CI\/CD. Chaque cat\u00e9gorie de risque repr\u00e9sente une classe de vecteurs d&rsquo;attaque que les adversaires exploitent activement. Voici comment les principaux types d&rsquo;attaque correspondent \u00e0 ce cadre :<\/p>\n\n<figure class=\"wp-block-table\"><table><thead><tr><th>Risque OWASP CI\/CD<\/th><th>Cat\u00e9gorie d&rsquo;attaque<\/th><th>Enjeu principal<\/th><\/tr><\/thead><tbody><tr><td>CICD-SEC-1<\/td><td>Contr\u00f4le de flux insuffisant<\/td><td>Approbations manquantes, aucune protection de branche<\/td><\/tr><tr><td>CICD-SEC-2<\/td><td>Gestion inad\u00e9quate des identit\u00e9s et des acc\u00e8s<\/td><td>Comptes de service trop permissifs<\/td><\/tr><tr><td>CICD-SEC-3<\/td><td>Abus de la cha\u00eene de d\u00e9pendances<\/td><td>Confusion de d\u00e9pendances, typosquatting<\/td><\/tr><tr><td>CICD-SEC-4<\/td><td>Ex\u00e9cution de pipeline empoisonn\u00e9<\/td><td>Configuration de pipeline malveillante dans les PR\/branches<\/td><\/tr><tr><td>CICD-SEC-5<\/td><td>PBAC insuffisant<\/td><td>Absence de contr\u00f4les d&rsquo;acc\u00e8s bas\u00e9s sur le pipeline<\/td><\/tr><tr><td>CICD-SEC-6<\/td><td>Hygi\u00e8ne des identifiants insuffisante<\/td><td>Secrets cod\u00e9s en dur, tokens non renouvel\u00e9s<\/td><\/tr><tr><td>CICD-SEC-7<\/td><td>Configuration syst\u00e8me non s\u00e9curis\u00e9e<\/td><td>Configurations par d\u00e9faut, serveurs CI non corrig\u00e9s<\/td><\/tr><tr><td>CICD-SEC-8<\/td><td>Usage non encadr\u00e9 de services tiers<\/td><td>Actions compromises, int\u00e9grations non v\u00e9rifi\u00e9es<\/td><\/tr><tr><td>CICD-SEC-9<\/td><td>Validation inad\u00e9quate de l&rsquo;int\u00e9grit\u00e9 des artifacts<\/td><td>Artifacts non sign\u00e9s, mutation de tags<\/td><\/tr><tr><td>CICD-SEC-10<\/td><td>Journalisation et visibilit\u00e9 insuffisantes<\/td><td>Aucune piste d&rsquo;audit, angles morts dans la surveillance<\/td><\/tr><\/tbody><\/table><\/figure>\n\n<p class=\"wp-block-paragraph\">Pour une analyse approfondie de chacun de ces risques avec des exemples concrets, consultez notre guide d\u00e9taill\u00e9 : <a href=\"https:\/\/secure-pipelines.com\/fr\/ci-cd-security\/owasp-top-10-ci-cd-risks-explained-real-world-examples\/\">Le OWASP Top 10 des risques CI\/CD expliqu\u00e9 avec des exemples concrets<\/a>.<\/p>\n\n<p class=\"wp-block-paragraph\">Les sections ci-dessous explorent en d\u00e9tail les cat\u00e9gories d&rsquo;attaque les plus marquantes, en examinant pour chacune les m\u00e9canismes, des exemples concrets et les strat\u00e9gies de d\u00e9tection.<\/p>\n\n<h2 class=\"wp-block-heading\">Ex\u00e9cution de pipeline empoisonn\u00e9 (PPE)<\/h2>\n\n<p class=\"wp-block-paragraph\">L&rsquo;ex\u00e9cution de pipeline empoisonn\u00e9 (Poisoned Pipeline Execution, PPE) est l&rsquo;une des classes d&rsquo;attaques CI\/CD les plus dangereuses et les plus r\u00e9pandues. Elle survient lorsqu&rsquo;un attaquant manipule la configuration du pipeline CI\/CD ou les instructions de build pour ex\u00e9cuter du code malveillant au sein de l&rsquo;environnement du pipeline. L&rsquo;attaque exploite le fait que les pipelines ex\u00e9cutent automatiquement les instructions d\u00e9finies dans les fichiers de configuration \u2014 fichiers qui peuvent souvent \u00eatre modifi\u00e9s par les contributeurs.<\/p>\n\n<h3 class=\"wp-block-heading\">PPE direct (D-PPE)<\/h3>\n\n<p class=\"wp-block-paragraph\">Dans le PPE direct, l&rsquo;attaquant dispose d&rsquo;un acc\u00e8s en \u00e9criture au d\u00e9p\u00f4t et modifie directement le fichier de configuration du pipeline (par ex., <code>.github\/workflows\/*.yml<\/code>, <code>.gitlab-ci.yml<\/code>, <code>Jenkinsfile<\/code>, ou <code>azure-pipelines.yml<\/code>). L&rsquo;attaquant injecte des \u00e9tapes malveillantes qui s&rsquo;ex\u00e9cutent avec l&rsquo;ensemble des privil\u00e8ges du pipeline. Cela peut inclure l&rsquo;exfiltration de secrets, l&rsquo;injection de portes d\u00e9rob\u00e9es dans les artifacts de build ou l&rsquo;\u00e9tablissement d&rsquo;une persistance dans l&rsquo;environnement CI\/CD.<\/p>\n\n<p class=\"wp-block-paragraph\">Le PPE direct est particuli\u00e8rement efficace quand :<\/p>\n\n<ul class=\"wp-block-list\">\n<li>les r\u00e8gles de protection de branche sont faibles ou absentes<\/li>\n\n\n\n<li>les ex\u00e9cutions de pipeline se d\u00e9clenchent sur des \u00e9v\u00e9nements push vers n&rsquo;importe quelle branche<\/li>\n\n\n\n<li>des runners auto-h\u00e9berg\u00e9s \u00e0 \u00e9tat persistant sont utilis\u00e9s<\/li>\n\n\n\n<li>les fichiers CODEOWNERS ne prot\u00e8gent pas la configuration du pipeline<\/li>\n<\/ul>\n\n<h3 class=\"wp-block-heading\">PPE indirect (I-PPE)<\/h3>\n\n<p class=\"wp-block-paragraph\">Le PPE indirect est plus subtil et plus difficile \u00e0 d\u00e9tecter. Au lieu de modifier directement la configuration du pipeline, l&rsquo;attaquant modifie des fichiers que le pipeline <em>consomme<\/em> pendant l&rsquo;ex\u00e9cution. Cela inclut :<\/p>\n\n<ul class=\"wp-block-list\">\n<li><strong>Les scripts de build<\/strong> r\u00e9f\u00e9renc\u00e9s dans le pipeline (par ex., <code>Makefile<\/code>, <code>build.sh<\/code>, <code>package.json<\/code> scripts)<\/li>\n\n\n\n<li><strong>Les manifestes de d\u00e9pendances<\/strong> qui importent des packages malveillants pendant le build<\/li>\n\n\n\n<li><strong>Les fichiers de configuration<\/strong> consomm\u00e9s par les outils de build (par ex., <code>.npmrc<\/code>, <code>setup.py<\/code>, <code>build.gradle<\/code>)<\/li>\n\n\n\n<li><strong>Les fixtures de test ou fichiers de donn\u00e9es<\/strong> trait\u00e9s par les \u00e9tapes du pipeline<\/li>\n<\/ul>\n\n<p class=\"wp-block-paragraph\">Le I-PPE est particuli\u00e8rement dangereux car les processus de revue de code se concentrent g\u00e9n\u00e9ralement sur les modifications du code applicatif, et non sur les implications de s\u00e9curit\u00e9 des scripts de build ou fichiers de d\u00e9pendances modifi\u00e9s. Un attaquant peut dissimuler des instructions malveillantes dans une modification en apparence anodine d&rsquo;un Makefile qui s&rsquo;ex\u00e9cute avec l&rsquo;ensemble des privil\u00e8ges du pipeline.<\/p>\n\n<h3 class=\"wp-block-heading\">PPE via les pull requests<\/h3>\n\n<p class=\"wp-block-paragraph\">De nombreux syst\u00e8mes CI\/CD sont configur\u00e9s pour ex\u00e9cuter des pipelines sur les pull requests issues de forks \u2014 une fonctionnalit\u00e9 n\u00e9cessaire pour les projets open source. Mais cela cr\u00e9e un vecteur d&rsquo;attaque direct : un contributeur externe peut soumettre une pull request qui modifie la configuration du pipeline ou les scripts de build, et le pipeline ex\u00e9cutera le code malveillant avant toute revue humaine. Bien que certaines plateformes restreignent l&rsquo;acc\u00e8s aux secrets pour les PR de forks, des erreurs de configuration exposent fr\u00e9quemment les secrets, ou l&rsquo;environnement du pipeline lui-m\u00eame offre une valeur suffisante \u00e0 l&rsquo;attaquant.<\/p>\n\n<p class=\"wp-block-paragraph\">Pour explorer concr\u00e8tement les techniques d&rsquo;attaque PPE et apprendre les contre-mesures d\u00e9fensives, suivez notre lab d\u00e9di\u00e9 : <a href=\"https:\/\/secure-pipelines.com\/fr\/ci-cd-security\/lab-exploiting-defending-poisoned-pipeline-execution-ppe\/\">Lab : exploiter et se d\u00e9fendre contre l&rsquo;ex\u00e9cution de pipeline empoisonn\u00e9 (PPE)<\/a>.<\/p>\n\n<h2 class=\"wp-block-heading\">Confusion de d\u00e9pendances et empoisonnement d&rsquo;artifacts<\/h2>\n\n<p class=\"wp-block-paragraph\">Les attaques par confusion de d\u00e9pendances et empoisonnement d&rsquo;artifacts exploitent la confiance que les syst\u00e8mes de build accordent aux registres de packages et aux m\u00e9canismes de r\u00e9solution de d\u00e9pendances. Ces attaques visent la cha\u00eene d&rsquo;approvisionnement \u00e0 son niveau le plus fondamental \u2014 les composants qui sont int\u00e9gr\u00e9s \u00e0 votre logiciel au moment du build.<\/p>\n\n<h3 class=\"wp-block-heading\">Confusion de d\u00e9pendances<\/h3>\n\n<p class=\"wp-block-paragraph\">La confusion de d\u00e9pendances (aussi appel\u00e9e confusion d&rsquo;espace de noms ou attaque par substitution) exploite la mani\u00e8re dont les gestionnaires de packages r\u00e9solvent les d\u00e9pendances lorsque des registres publics et priv\u00e9s sont configur\u00e9s simultan\u00e9ment. L&rsquo;attaquant publie un package malveillant sur un registre public (npm, PyPI, RubyGems) sous le m\u00eame nom qu&rsquo;un package interne\/priv\u00e9 utilis\u00e9 par l&rsquo;organisation cibl\u00e9e. Si le gestionnaire de packages n&rsquo;est pas configur\u00e9 pour donner la priorit\u00e9 au registre priv\u00e9, il peut r\u00e9cup\u00e9rer la version publique malveillante \u00e0 la place \u2014 surtout si l&rsquo;attaquant publie un num\u00e9ro de version plus \u00e9lev\u00e9.<\/p>\n\n<p class=\"wp-block-paragraph\">Cette attaque a \u00e9t\u00e9 d\u00e9montr\u00e9e de fa\u00e7on retentissante par le chercheur en s\u00e9curit\u00e9 Alex Birsan en 2021, qui a utilis\u00e9 la confusion de d\u00e9pendances pour ex\u00e9cuter du code au sein des syst\u00e8mes de build d&rsquo;Apple, Microsoft, PayPal et de dizaines d&rsquo;autres grandes organisations. L&rsquo;attaque ne n\u00e9cessitait aucun acc\u00e8s \u00e0 l&rsquo;organisation cibl\u00e9e \u2014 seulement la connaissance des noms de packages internes, qui peuvent parfois \u00eatre d\u00e9couverts via des lock files fuit\u00e9s, des source maps JavaScript ou des messages d&rsquo;erreur.<\/p>\n\n<h3 class=\"wp-block-heading\">Typosquatting<\/h3>\n\n<p class=\"wp-block-paragraph\">Apparent\u00e9 \u00e0 la confusion de d\u00e9pendances, le typosquatting consiste \u00e0 publier des packages malveillants dont les noms ressemblent fortement \u00e0 ceux de packages l\u00e9gitimes populaires (par ex., <code>lodahs<\/code> au lieu de <code>lodash<\/code>, <code>reqeusts<\/code> au lieu de <code>requests<\/code>). Lorsqu&rsquo;un d\u00e9veloppeur ou un script de build fait une faute de frappe dans une d\u00e9claration de d\u00e9pendance, c&rsquo;est le package malveillant qui est install\u00e9 \u00e0 la place.<\/p>\n\n<h3 class=\"wp-block-heading\">Empoisonnement d&rsquo;artifacts<\/h3>\n\n<p class=\"wp-block-paragraph\">L&#8217;empoisonnement d&rsquo;artifacts adopte une approche diff\u00e9rente : il vise les artifacts produits par les pipelines de build plut\u00f4t que leurs entr\u00e9es. Les attaquants qui obtiennent l&rsquo;acc\u00e8s au stockage d&rsquo;artifacts (registres de conteneurs, d\u00e9p\u00f4ts de packages, stockage de binaires) peuvent remplacer des artifacts l\u00e9gitimes par des versions dot\u00e9es de portes d\u00e9rob\u00e9es. C&rsquo;est particuli\u00e8rement efficace contre les images de conteneurs stock\u00e9es dans des registres \u00e0 tags mutables \u2014 un attaquant qui obtient un acc\u00e8s en \u00e9criture peut remplacer l&rsquo;image derri\u00e8re un tag <code>:latest<\/code> ou <code>:v1.2.3<\/code> sans changer le tag lui-m\u00eame.<\/p>\n\n<p class=\"wp-block-paragraph\">Pour une exploration approfondie de ces vecteurs d&rsquo;attaque et de leurs d\u00e9fenses, consultez : <a href=\"https:\/\/secure-pipelines.com\/fr\/ci-cd-security\/dependency-confusion-artifact-poisoning-attacks-defenses\/\">Confusion de d\u00e9pendances et empoisonnement d&rsquo;artifacts : attaques et d\u00e9fenses<\/a>.<\/p>\n\n<h2 class=\"wp-block-heading\">Vol d&rsquo;identifiants et exfiltration de secrets<\/h2>\n\n<p class=\"wp-block-paragraph\">Les pipelines CI\/CD sont de v\u00e9ritables tr\u00e9sors d&rsquo;identifiants. Ils ont besoin d&rsquo;acc\u00e9der aux d\u00e9p\u00f4ts de code source, aux fournisseurs cloud, aux registres de conteneurs, aux bases de donn\u00e9es, aux cibles de d\u00e9ploiement et aux services externes. Ces identifiants \u2014 cl\u00e9s API, tokens, mots de passe, certificats et cl\u00e9s de signature \u2014 sont la cible principale de nombreuses attaques CI\/CD.<\/p>\n\n<h3 class=\"wp-block-heading\">Techniques courantes d&rsquo;exfiltration de secrets<\/h3>\n\n<p class=\"wp-block-paragraph\">Les attaquants recourent \u00e0 diverses techniques pour d\u00e9rober les secrets des environnements CI\/CD :<\/p>\n\n<ul class=\"wp-block-list\">\n<li><strong>Dump des variables d&rsquo;environnement :<\/strong> De nombreux syst\u00e8mes CI\/CD injectent les secrets sous forme de variables d&rsquo;environnement. Une simple commande <code>env<\/code> ou <code>printenv<\/code> dans une \u00e9tape de pipeline compromise r\u00e9v\u00e8le tous les secrets disponibles.<\/li>\n\n\n\n<li><strong>Balayage du syst\u00e8me de fichiers :<\/strong> Les secrets peuvent \u00eatre \u00e9crits sur le disque sous forme de fichiers (par ex., <code>~\/.docker\/config.json<\/code>, <code>~\/.aws\/credentials<\/code>, <code>~\/.kube\/config<\/code>). Les attaquants parcourent le syst\u00e8me de fichiers \u00e0 la recherche de fichiers d&rsquo;identifiants.<\/li>\n\n\n\n<li><strong>Inspection de la m\u00e9moire :<\/strong> Sur les runners auto-h\u00e9berg\u00e9s, les attaquants peuvent inspecter la m\u00e9moire des processus ou <code>\/proc<\/code> pour trouver les secrets d\u00e9chiffr\u00e9s au moment de l&rsquo;ex\u00e9cution.<\/li>\n\n\n\n<li><strong>Interception r\u00e9seau :<\/strong> Si les pipelines communiquent avec des services via des canaux non chiffr\u00e9s, des attaquants disposant d&rsquo;un acc\u00e8s r\u00e9seau peuvent intercepter les identifiants en transit.<\/li>\n\n\n\n<li><strong>Exfiltration via les logs :<\/strong> Les secrets qui apparaissent accidentellement dans les logs de build (un ph\u00e9nom\u00e8ne malheureusement tr\u00e8s courant) peuvent \u00eatre extraits par quiconque a acc\u00e8s aux logs.<\/li>\n\n\n\n<li><strong>Exfiltration via DNS\/HTTP :<\/strong> Dans les environnements restreints o\u00f9 les connexions sortantes sont limit\u00e9es, les attaquants encodent les secrets d\u00e9rob\u00e9s dans des requ\u00eates DNS ou des en-t\u00eates HTTP pour contourner les contr\u00f4les de sortie.<\/li>\n<\/ul>\n\n<h3 class=\"wp-block-heading\">Le probl\u00e8me cumulatif de la prolif\u00e9ration des identifiants<\/h3>\n\n<p class=\"wp-block-paragraph\">Un d\u00e9fi majeur de la s\u00e9curit\u00e9 CI\/CD est la prolif\u00e9ration des identifiants (credential sprawl) \u2014 la tendance des secrets \u00e0 s&rsquo;accumuler au fil du temps dans les configurations de pipeline, les variables d&rsquo;environnement, les coffres de secrets et les fichiers de configuration. Les identifiants \u00e0 longue dur\u00e9e de vie jamais renouvel\u00e9s, les comptes de service trop permissifs et les secrets partag\u00e9s entre plusieurs pipelines augmentent tous le rayon d&rsquo;impact d&rsquo;un vol d&rsquo;identifiants.<\/p>\n\n<p class=\"wp-block-paragraph\">La solution est une approche rigoureuse de la gestion des secrets, combinant identifiants \u00e0 courte dur\u00e9e de vie, acc\u00e8s au moindre privil\u00e8ge, rotation des secrets et injection au moment de l&rsquo;ex\u00e9cution depuis un coffre centralis\u00e9. Pour des conseils de mise en \u0153uvre d\u00e9taill\u00e9s, consultez notre guide sur la <a href=\"https:\/\/secure-pipelines.com\/fr\/ci-cd-security\/secrets-management-ci-cd-pipelines-patterns-vault-2\/\">Gestion des secrets dans les pipelines CI\/CD : patterns avec Vault<\/a>.<\/p>\n\n<p class=\"wp-block-paragraph\">Pour vous exercer \u00e0 d\u00e9tecter et pr\u00e9venir les fuites de secrets dans un environnement contr\u00f4l\u00e9, suivez notre lab pratique : <a href=\"https:\/\/secure-pipelines.com\/fr\/ci-cd-security\/lab-detecting-preventing-secret-leaks-ci-cd-pipelines\/\">Lab : d\u00e9tecter et pr\u00e9venir les fuites de secrets dans les pipelines CI\/CD<\/a>.<\/p>\n\n<h2 class=\"wp-block-heading\">Alt\u00e9ration d&rsquo;artifacts et attaques de registres<\/h2>\n\n<p class=\"wp-block-paragraph\">L&rsquo;int\u00e9grit\u00e9 des artifacts est une pierre angulaire de la s\u00e9curit\u00e9 de la cha\u00eene d&rsquo;approvisionnement. Si un attaquant peut modifier les artifacts que votre pipeline produit \u2014 images de conteneurs, packages, binaires ou manifestes de d\u00e9ploiement \u2014 il peut injecter du code malveillant qui se propage \u00e0 chaque environnement consommant ces artifacts.<\/p>\n\n<h3 class=\"wp-block-heading\">Attaques par mutation de tags<\/h3>\n\n<p class=\"wp-block-paragraph\">Les registres de conteneurs autorisent par d\u00e9faut l&rsquo;\u00e9crasement des tags d&rsquo;images. Un attaquant disposant d&rsquo;un acc\u00e8s en \u00e9criture \u00e0 un registre peut remplacer l&rsquo;image derri\u00e8re n&rsquo;importe quel tag mutable (comme <code>:latest<\/code>, <code>:stable<\/code>, ou m\u00eame un tag de version en apparence sp\u00e9cifique comme <code>:v2.1.0<\/code>) par une version dot\u00e9e d&rsquo;une porte d\u00e9rob\u00e9e. Les syst\u00e8mes en aval qui r\u00e9cup\u00e8rent ce tag recevront silencieusement l&rsquo;image compromise.<\/p>\n\n<p class=\"wp-block-paragraph\">C&rsquo;est pourquoi les tags immuables et les r\u00e9f\u00e9rences par digest (<code>image@sha256:abc123...<\/code>) sont des contr\u00f4les de s\u00e9curit\u00e9 essentiels. Les m\u00e9canismes de confiance de contenu comme Docker Content Trust (DCT) et Sigstore\/cosign fournissent une v\u00e9rification cryptographique de la provenance des images.<\/p>\n\n<h3 class=\"wp-block-heading\">Compromission de registre<\/h3>\n\n<p class=\"wp-block-paragraph\">La compromission directe des registres d&rsquo;artifacts \u2014 que ce soit via des identifiants d\u00e9rob\u00e9s, l&rsquo;exploitation de vuln\u00e9rabilit\u00e9s du registre ou des menaces internes \u2014 donne aux attaquants la capacit\u00e9 de modifier n&rsquo;importe quel artifact stock\u00e9. Les registres auto-h\u00e9berg\u00e9s d\u00e9pourvus d&rsquo;authentification, utilisant des identifiants par d\u00e9faut ou ex\u00e9cutant des logiciels non corrig\u00e9s sont particuli\u00e8rement vuln\u00e9rables.<\/p>\n\n<h3 class=\"wp-block-heading\">Manipulation du processus de build<\/h3>\n\n<p class=\"wp-block-paragraph\">Plut\u00f4t que d&rsquo;alt\u00e9rer les artifacts apr\u00e8s leur construction, les attaquants sophistiqu\u00e9s modifient le processus de build lui-m\u00eame pour produire des artifacts compromis. Cela peut impliquer la manipulation de Dockerfiles, l&rsquo;injection de couches malveillantes dans des builds multi-\u00e9tapes ou la modification des options de compilation pour ins\u00e9rer des portes d\u00e9rob\u00e9es. Ces attaques sont particuli\u00e8rement insidieuses car les artifacts obtenus semblent \u00eatre des produits l\u00e9gitimes du pipeline CI\/CD.<\/p>\n\n<p class=\"wp-block-paragraph\">Se d\u00e9fendre contre l&rsquo;alt\u00e9ration d&rsquo;artifacts exige une combinaison de stockage immuable, de signature cryptographique, d&rsquo;attestation de provenance (comme SLSA) et de v\u00e9rification continue. Pour vous exercer \u00e0 d\u00e9tecter l&rsquo;alt\u00e9ration d&rsquo;artifacts dans un environnement pratique, consultez : <a href=\"https:\/\/secure-pipelines.com\/fr\/ci-cd-security\/lab-artifact-tampering-detection-swapping-container-images-registry-2\/\">Lab : d\u00e9tection d&rsquo;alt\u00e9ration d&rsquo;artifacts \u2014 remplacement d&rsquo;images de conteneurs dans un registre<\/a>.<\/p>\n\n<h2 class=\"wp-block-heading\">Actions et int\u00e9grations tierces compromises<\/h2>\n\n<p class=\"wp-block-paragraph\">Les pipelines CI\/CD modernes ne sont pas monolithiques \u2014 ils sont assembl\u00e9s \u00e0 partir de dizaines de composants tiers : GitHub Actions, templates GitLab CI, plugins Jenkins, providers Terraform et diverses int\u00e9grations SaaS. Chacun de ces composants repr\u00e9sente une fronti\u00e8re de confiance que les attaquants peuvent exploiter.<\/p>\n\n<h3 class=\"wp-block-heading\">Attaques de la cha\u00eene d&rsquo;approvisionnement via GitHub Actions<\/h3>\n\n<p class=\"wp-block-paragraph\">Les GitHub Actions sont une cible de choix car elles ex\u00e9cutent du code arbitraire dans le contexte du workflow qui les appelle. Les vecteurs d&rsquo;attaque incluent :<\/p>\n\n<ul class=\"wp-block-list\">\n<li><strong>D\u00e9p\u00f4ts d&rsquo;actions compromis :<\/strong> Un attaquant qui obtient l&rsquo;acc\u00e8s au d\u00e9p\u00f4t d&rsquo;une action populaire peut pousser du code malveillant qui s&rsquo;ex\u00e9cute dans chaque workflow utilisant cette action. L&rsquo;incident tj-actions\/changed-files en 2023 l&rsquo;a d\u00e9montr\u00e9 \u00e0 grande \u00e9chelle.<\/li>\n\n\n\n<li><strong>Manipulation de tags :<\/strong> Les actions r\u00e9f\u00e9renc\u00e9es par des tags mutables (par ex., <code>@v3<\/code>) peuvent \u00eatre remplac\u00e9es silencieusement. L&rsquo;attaquant d\u00e9place le tag pour qu&rsquo;il pointe vers un commit malveillant.<\/li>\n\n\n\n<li><strong>Typosquatting :<\/strong> Des actions malveillantes publi\u00e9es sous des noms proches de ceux d&rsquo;actions populaires exploitent les fautes de frappe des d\u00e9veloppeurs.<\/li>\n\n\n\n<li><strong>Reprise d&rsquo;actions abandonn\u00e9es :<\/strong> Lorsque les mainteneurs d&rsquo;une action abandonnent leur projet, des attaquants peuvent parfois s&#8217;emparer de l&rsquo;espace de noms et pousser des mises \u00e0 jour malveillantes.<\/li>\n<\/ul>\n\n<h3 class=\"wp-block-heading\">Risques li\u00e9s aux plugins et extensions<\/h3>\n\n<p class=\"wp-block-paragraph\">Les plugins Jenkins, les composants GitLab CI et d&rsquo;autres extensions CI\/CD pr\u00e9sentent des risques similaires. De nombreux plugins sont maintenus par des contributeurs individuels aux pratiques de s\u00e9curit\u00e9 variables. Les vuln\u00e9rabilit\u00e9s des plugins peuvent exposer toute l&rsquo;infrastructure CI\/CD ; les plugins Jenkins ont historiquement \u00e9t\u00e9 une source abondante de vols d&rsquo;identifiants et de vuln\u00e9rabilit\u00e9s d&rsquo;ex\u00e9cution de code \u00e0 distance.<\/p>\n\n<p class=\"wp-block-paragraph\">La strat\u00e9gie d\u00e9fensive consiste \u00e0 \u00e9pingler tous les composants tiers \u00e0 des r\u00e9f\u00e9rences immuables (SHA de commit plut\u00f4t que tags), \u00e0 auditer r\u00e9guli\u00e8rement les d\u00e9pendances et \u00e0 utiliser des outils qui d\u00e9tectent les actions connues comme malveillantes. Pour vous exercer \u00e0 d\u00e9tecter des GitHub Actions malveillantes, suivez : <a href=\"https:\/\/secure-pipelines.com\/fr\/ci-cd-security\/lab-detecting-malicious-github-actions-static-analysis\/\">Lab : d\u00e9tecter les GitHub Actions malveillantes par analyse statique<\/a>.<\/p>\n\n<h2 class=\"wp-block-heading\">Chronologie des attaques CI\/CD r\u00e9elles<\/h2>\n\n<p class=\"wp-block-paragraph\">La chronologie suivante retrace les principales attaques CI\/CD et de la cha\u00eene d&rsquo;approvisionnement logicielle de 2020 \u00e0 2024. Chaque incident illustre diff\u00e9rents vecteurs d&rsquo;attaque et rappelle pourquoi la s\u00e9curit\u00e9 CI\/CD m\u00e9rite une attention d\u00e9di\u00e9e.<\/p>\n\n<h3 class=\"wp-block-heading\">SolarWinds \/ SUNBURST (d\u00e9cembre 2020)<\/h3>\n\n<p class=\"wp-block-paragraph\">L&rsquo;attaque SolarWinds demeure la compromission de la cha\u00eene d&rsquo;approvisionnement CI\/CD de r\u00e9f\u00e9rence. Les attaquants (attribu\u00e9s au SVR, le service de renseignement russe) ont infiltr\u00e9 l&rsquo;infrastructure de build de SolarWinds et inject\u00e9 la porte d\u00e9rob\u00e9e SUNBURST dans le processus de mise \u00e0 jour du logiciel Orion. Le pipeline de build compromis a produit des mises \u00e0 jour trojanis\u00e9es distribu\u00e9es \u00e0 environ 18 000 organisations, dont des agences gouvernementales am\u00e9ricaines, des entreprises du Fortune 500 et des op\u00e9rateurs d&rsquo;infrastructures critiques.<\/p>\n\n<p class=\"wp-block-paragraph\"><strong>Le\u00e7ons cl\u00e9s :<\/strong> L&rsquo;infrastructure de build doit \u00eatre trait\u00e9e comme un actif critique. La v\u00e9rification de l&rsquo;int\u00e9grit\u00e9 des artifacts et les builds reproductibles auraient pu d\u00e9tecter l&rsquo;alt\u00e9ration. L&rsquo;attaque a d\u00e9montr\u00e9 que compromettre un seul pipeline de build peut avoir un impact de niveau \u00e9tatique.<\/p>\n\n<h3 class=\"wp-block-heading\">Codecov Bash Uploader (janvier\u2013avril 2021)<\/h3>\n\n<p class=\"wp-block-paragraph\">Les attaquants ont compromis le script Bash Uploader de Codecov \u2014 un composant utilis\u00e9 par des milliers de pipelines CI\/CD pour t\u00e9l\u00e9verser des rapports de couverture de code. Pendant trois mois, le script modifi\u00e9 a exfiltr\u00e9 les variables d&rsquo;environnement (dont les secrets, tokens et cl\u00e9s CI\/CD) de chaque pipeline qui l&rsquo;ex\u00e9cutait. L&rsquo;attaque a touch\u00e9 des entreprises comme Twitch, HashiCorp, Confluent et bien d&rsquo;autres.<\/p>\n\n<p class=\"wp-block-paragraph\"><strong>Le\u00e7ons cl\u00e9s :<\/strong> Les scripts tiers ex\u00e9cut\u00e9s dans les pipelines doivent voir leur int\u00e9grit\u00e9 v\u00e9rifi\u00e9e (par ex. via des sommes de contr\u00f4le). Les secrets ne devraient jamais \u00eatre largement disponibles sous forme de variables d&rsquo;environnement. Une surveillance du trafic sortant sur les runners CI\/CD aurait pu d\u00e9tecter l&rsquo;exfiltration.<\/p>\n\n<h3 class=\"wp-block-heading\">D\u00e9tournement de ua-parser-js (octobre 2021)<\/h3>\n\n<p class=\"wp-block-paragraph\">Le package npm <code>ua-parser-js<\/code>, t\u00e9l\u00e9charg\u00e9 plus de 7 millions de fois par semaine, a \u00e9t\u00e9 d\u00e9tourn\u00e9 lorsque le compte npm du mainteneur a \u00e9t\u00e9 compromis. Des versions malveillantes ont \u00e9t\u00e9 publi\u00e9es, installant des cryptomineurs et des malwares voleurs d&rsquo;identifiants. Comme ce package est une d\u00e9pendance de milliers d&rsquo;autres packages et processus de build CI\/CD, le rayon d&rsquo;impact a \u00e9t\u00e9 \u00e9norme.<\/p>\n\n<p class=\"wp-block-paragraph\"><strong>Le\u00e7ons cl\u00e9s :<\/strong> M\u00eame des packages de confiance et largement utilis\u00e9s peuvent \u00eatre compromis. Les lock files, la v\u00e9rification d&rsquo;int\u00e9grit\u00e9 et l&rsquo;analyse automatis\u00e9e des d\u00e9pendances en CI\/CD sont essentiels. La s\u00e9curit\u00e9 des comptes npm (2FA, limitation de port\u00e9e des tokens) est un enjeu de cha\u00eene d&rsquo;approvisionnement.<\/p>\n\n<h3 class=\"wp-block-heading\">Incident de s\u00e9curit\u00e9 CircleCI (janvier 2023)<\/h3>\n\n<p class=\"wp-block-paragraph\">CircleCI, l&rsquo;une des plus grandes plateformes CI\/CD, a r\u00e9v\u00e9l\u00e9 qu&rsquo;un attaquant avait obtenu l&rsquo;acc\u00e8s \u00e0 des donn\u00e9es clients, dont des variables d&rsquo;environnement, des cl\u00e9s et des tokens stock\u00e9s dans CircleCI. La br\u00e8che provenait d&rsquo;un malware sur l&rsquo;ordinateur portable d&rsquo;un ing\u00e9nieur, qui a d\u00e9rob\u00e9 un token de session SSO valide, ensuite utilis\u00e9 pour acc\u00e9der aux syst\u00e8mes internes. CircleCI a exhort\u00e9 tous ses clients \u00e0 renouveler imm\u00e9diatement chaque secret stock\u00e9 sur la plateforme.<\/p>\n\n<p class=\"wp-block-paragraph\"><strong>Le\u00e7ons cl\u00e9s :<\/strong> Les fournisseurs de plateformes CI\/CD sont des cibles de grande valeur. Les organisations doivent mettre en \u0153uvre une d\u00e9fense en profondeur et ne pas se reposer uniquement sur la s\u00e9curit\u00e9 de leur plateforme CI\/CD. Des identifiants \u00e0 courte dur\u00e9e de vie et \u00e0 port\u00e9e limit\u00e9e r\u00e9duisent l&rsquo;impact des compromissions de plateforme. Disposer d&rsquo;un plan de r\u00e9ponse aux incidents pour la rotation des secrets est essentiel.<\/p>\n\n<h3 class=\"wp-block-heading\">Compromission de tj-actions\/changed-files (mars 2023)<\/h3>\n\n<p class=\"wp-block-paragraph\">La populaire GitHub Action <code>tj-actions\/changed-files<\/code> (utilis\u00e9e par plus de 23 000 d\u00e9p\u00f4ts) a \u00e9t\u00e9 compromise lorsqu&rsquo;un attaquant a obtenu l&rsquo;acc\u00e8s au compte du mainteneur et pouss\u00e9 du code malveillant. L&rsquo;action compromise a d\u00e9vers\u00e9 les secrets CI\/CD dans les logs des workflows, o\u00f9 ils pouvaient \u00eatre r\u00e9colt\u00e9s. Comme de nombreux workflows r\u00e9f\u00e9ren\u00e7aient l&rsquo;action par des tags de version mutables, le code malveillant a \u00e9t\u00e9 automatiquement int\u00e9gr\u00e9 \u00e0 des milliers d&rsquo;ex\u00e9cutions de pipeline.<\/p>\n\n<p class=\"wp-block-paragraph\"><strong>Le\u00e7ons cl\u00e9s :<\/strong> \u00c9pinglez toujours les GitHub Actions \u00e0 des SHA de commit, jamais \u00e0 des tags de version. Surveillez les d\u00e9pendances d&rsquo;actions pour rep\u00e9rer tout changement inattendu. Appliquez aux workflows des permissions suivant le principe du moindre privil\u00e8ge.<\/p>\n\n<h3 class=\"wp-block-heading\">Porte d\u00e9rob\u00e9e XZ Utils (mars 2024)<\/h3>\n\n<p class=\"wp-block-paragraph\">La porte d\u00e9rob\u00e9e XZ Utils (CVE-2024-3094) a \u00e9t\u00e9 une attaque de la cha\u00eene d&rsquo;approvisionnement sophistiqu\u00e9e, \u00e9tal\u00e9e sur plusieurs ann\u00e9es. Un contributeur qui avait b\u00e2ti sa cr\u00e9dibilit\u00e9 au sein du projet XZ pendant deux ans a introduit progressivement une porte d\u00e9rob\u00e9e dans le syst\u00e8me de build. Le code malveillant \u00e9tait cach\u00e9 dans des fichiers de fixtures de test et activ\u00e9 par des scripts de build soigneusement con\u00e7us \u2014 un exemple d&rsquo;\u00e9cole d&rsquo;ex\u00e9cution de pipeline empoisonn\u00e9 indirecte. La porte d\u00e9rob\u00e9e visait le d\u00e9mon SSH des syst\u00e8mes Linux et aurait affect\u00e9 quasiment toutes les distributions Linux si elle n&rsquo;avait pas \u00e9t\u00e9 d\u00e9couverte par hasard.<\/p>\n\n<p class=\"wp-block-paragraph\"><strong>Le\u00e7ons cl\u00e9s :<\/strong> L&rsquo;ing\u00e9nierie sociale et l&rsquo;infiltration de longue dur\u00e9e des projets open source sont des menaces r\u00e9elles. L&rsquo;int\u00e9grit\u00e9 du syst\u00e8me de build est aussi importante que celle du code source. L&rsquo;attaque a d\u00e9montr\u00e9 que les techniques d&rsquo;I-PPE peuvent \u00eatre extraordinairement subtiles et patientes.<\/p>\n\n<h2 class=\"wp-block-heading\">Patterns d\u00e9fensifs et mesures d&rsquo;att\u00e9nuation<\/h2>\n\n<p class=\"wp-block-paragraph\">Se d\u00e9fendre contre les attaques CI\/CD exige une approche en couches qui traite chaque cat\u00e9gorie d&rsquo;attaque. Les patterns suivants forment le socle d&rsquo;une posture de s\u00e9curit\u00e9 CI\/CD robuste.<\/p>\n\n<h3 class=\"wp-block-heading\">Configuration de pipeline en tant que code, avec des contr\u00f4les stricts<\/h3>\n\n<ul class=\"wp-block-list\">\n<li>Prot\u00e9ger les fichiers de configuration de pipeline avec CODEOWNERS et des r\u00e8gles de protection de branche<\/li>\n\n\n\n<li>Exiger une revue de code pour toute modification de la configuration CI\/CD<\/li>\n\n\n\n<li>Utiliser des templates de pipeline g\u00e9r\u00e9s de fa\u00e7on centralis\u00e9e plut\u00f4t que des configurations propres \u00e0 chaque d\u00e9p\u00f4t lorsque c&rsquo;est possible<\/li>\n\n\n\n<li>S\u00e9parer les d\u00e9finitions de pipeline du code applicatif dans les d\u00e9p\u00f4ts sensibles<\/li>\n<\/ul>\n\n<h3 class=\"wp-block-heading\">Durcissement des identifiants<\/h3>\n\n<ul class=\"wp-block-list\">\n<li>Utiliser des identifiants \u00e0 courte dur\u00e9e de vie et \u00e0 port\u00e9e limit\u00e9e (f\u00e9d\u00e9ration OIDC avec les fournisseurs cloud)<\/li>\n\n\n\n<li>Mettre en \u0153uvre une injection de secrets juste-\u00e0-temps depuis un coffre centralis\u00e9<\/li>\n\n\n\n<li>Ne jamais exposer les secrets sous forme de variables d&rsquo;environnement quand une injection par fichier est possible<\/li>\n\n\n\n<li>Renouveler tous les identifiants selon un calendrier d\u00e9fini et imm\u00e9diatement apr\u00e8s tout incident<\/li>\n\n\n\n<li>Mettre en \u0153uvre le secret scanning dans les logs CI\/CD et les artifacts produits<\/li>\n<\/ul>\n\n<h3 class=\"wp-block-heading\">Contr\u00f4les des d\u00e9pendances et de la cha\u00eene d&rsquo;approvisionnement<\/h3>\n\n<ul class=\"wp-block-list\">\n<li>\u00c9pingler toutes les d\u00e9pendances \u00e0 des versions exactes avec des hachages d&rsquo;int\u00e9grit\u00e9<\/li>\n\n\n\n<li>Utiliser des proxys de registre priv\u00e9 avec limitation d&rsquo;espace de noms pour pr\u00e9venir la confusion de d\u00e9pendances<\/li>\n\n\n\n<li>\u00c9pingler les GitHub Actions et autres composants de pipeline tiers \u00e0 des SHA de commit<\/li>\n\n\n\n<li>Mettre en \u0153uvre une analyse automatis\u00e9e des vuln\u00e9rabilit\u00e9s des d\u00e9pendances dans chaque pipeline<\/li>\n\n\n\n<li>G\u00e9n\u00e9rer et v\u00e9rifier des nomenclatures logicielles (SBOM)<\/li>\n<\/ul>\n\n<h3 class=\"wp-block-heading\">Int\u00e9grit\u00e9 des artifacts<\/h3>\n\n<ul class=\"wp-block-list\">\n<li>Signer cryptographiquement tous les artifacts de build (Sigstore\/cosign pour les conteneurs, GPG pour les packages)<\/li>\n\n\n\n<li>Utiliser des tags immuables et des r\u00e9f\u00e9rences par digest pour les images de conteneurs<\/li>\n\n\n\n<li>Mettre en \u0153uvre l&rsquo;attestation de provenance SLSA pour v\u00e9rifier l&rsquo;origine des artifacts<\/li>\n\n\n\n<li>D\u00e9ployer des contr\u00f4leurs d&rsquo;admission (par ex. Kyverno, OPA Gatekeeper) qui v\u00e9rifient les signatures avant le d\u00e9ploiement<\/li>\n<\/ul>\n\n<h3 class=\"wp-block-heading\">Surveillance et d\u00e9tection<\/h3>\n\n<ul class=\"wp-block-list\">\n<li>Surveiller l&rsquo;ex\u00e9cution des pipelines \u00e0 la recherche de comportements anormaux (connexions r\u00e9seau inattendues, acc\u00e8s au syst\u00e8me de fichiers, jobs de longue dur\u00e9e)<\/li>\n\n\n\n<li>Mettre en \u0153uvre des contr\u00f4les de sortie sur les runners CI\/CD pour d\u00e9tecter l&rsquo;exfiltration<\/li>\n\n\n\n<li>Auditer toutes les modifications des configurations de pipeline, des secrets et des permissions<\/li>\n\n\n\n<li>Corr\u00e9ler les \u00e9v\u00e9nements CI\/CD avec un SIEM pour une d\u00e9tection inter-syst\u00e8mes<\/li>\n<\/ul>\n\n<p class=\"wp-block-paragraph\">Pour une analyse approfondie de chacun de ces patterns d\u00e9fensifs avec des exemples de mise en \u0153uvre, consultez : <a href=\"https:\/\/secure-pipelines.com\/fr\/ci-cd-security\/defensive-patterns-mitigations-ci-cd-pipeline-attacks\/\">Patterns d\u00e9fensifs et mesures d&rsquo;att\u00e9nuation pour les attaques de pipelines CI\/CD<\/a>.<\/p>\n\n<h2 class=\"wp-block-heading\">Mod\u00e9lisation des menaces pour le CI\/CD<\/h2>\n\n<p class=\"wp-block-paragraph\">Une s\u00e9curit\u00e9 CI\/CD efficace commence par la mod\u00e9lisation des menaces \u2014 l&rsquo;identification syst\u00e9matique des fronti\u00e8res de confiance, des flux de donn\u00e9es et des chemins d&rsquo;attaque au sein de votre architecture de pipeline. Sans une compr\u00e9hension claire de votre mod\u00e8le de menaces CI\/CD, les efforts d\u00e9fensifs tendent \u00e0 \u00eatre r\u00e9actifs et incomplets.<\/p>\n\n<h3 class=\"wp-block-heading\">Fronti\u00e8res de confiance cl\u00e9s \u00e0 \u00e9valuer<\/h3>\n\n<p class=\"wp-block-paragraph\">Chaque syst\u00e8me CI\/CD comporte des fronti\u00e8res de confiance que les attaquants tentent de franchir :<\/p>\n\n<ul class=\"wp-block-list\">\n<li><strong>Du poste de travail du d\u00e9veloppeur au d\u00e9p\u00f4t :<\/strong> Une machine de d\u00e9veloppeur compromise peut-elle pousser du code malveillant ?<\/li>\n\n\n\n<li><strong>Du d\u00e9p\u00f4t au pipeline :<\/strong> Quels changements d\u00e9clenchent l&rsquo;ex\u00e9cution du pipeline, et avec quels privil\u00e8ges ?<\/li>\n\n\n\n<li><strong>Du pipeline au coffre de secrets :<\/strong> Quels pipelines peuvent acc\u00e9der \u00e0 quels secrets, et sous quelles conditions ?<\/li>\n\n\n\n<li><strong>Du pipeline au registre d&rsquo;artifacts :<\/strong> Qui peut pousser des artifacts, et sont-ils v\u00e9rifi\u00e9s avant utilisation ?<\/li>\n\n\n\n<li><strong>Du registre d&rsquo;artifacts au d\u00e9ploiement :<\/strong> Les artifacts d\u00e9ploy\u00e9s sont-ils v\u00e9rifi\u00e9s par rapport \u00e0 leur provenance de build ?<\/li>\n\n\n\n<li><strong>Des services tiers au pipeline :<\/strong> De quels acc\u00e8s disposent les int\u00e9grations externes ?<\/li>\n<\/ul>\n\n<h3 class=\"wp-block-heading\">Analyse des chemins d&rsquo;attaque<\/h3>\n\n<p class=\"wp-block-paragraph\">Une fois les fronti\u00e8res de confiance cartographi\u00e9es, l&rsquo;\u00e9tape suivante consiste \u00e0 \u00e9num\u00e9rer les chemins d&rsquo;attaque \u2014 les s\u00e9quences d&rsquo;actions qu&rsquo;un attaquant pourrait entreprendre pour atteindre ses objectifs. Les objectifs courants incluent :<\/p>\n\n<ul class=\"wp-block-list\">\n<li>Injecter du code malveillant dans les d\u00e9ploiements de production<\/li>\n\n\n\n<li>Exfiltrer des identifiants en vue d&rsquo;un mouvement lat\u00e9ral<\/li>\n\n\n\n<li>\u00c9tablir une persistance dans l&rsquo;infrastructure CI\/CD<\/li>\n\n\n\n<li>Perturber la livraison logicielle (sabotage\/d\u00e9ni de service)<\/li>\n\n\n\n<li>Compromettre les consommateurs en aval par propagation dans la cha\u00eene d&rsquo;approvisionnement<\/li>\n<\/ul>\n\n<p class=\"wp-block-paragraph\">Pour un guide complet de la mod\u00e9lisation des menaces CI\/CD avec des cadres et mod\u00e8les pratiques, consultez : <a href=\"https:\/\/secure-pipelines.com\/fr\/threats-attacks\/ci-cd-threat-modeling-trust-boundaries-attack-paths\/\">Mod\u00e9lisation des menaces CI\/CD : fronti\u00e8res de confiance et chemins d&rsquo;attaque<\/a>.<\/p>\n\n<h2 class=\"wp-block-heading\">Labs pratiques : s&rsquo;exercer \u00e0 l&rsquo;attaque et \u00e0 la d\u00e9fense<\/h2>\n\n<p class=\"wp-block-paragraph\">Comprendre les attaques CI\/CD en th\u00e9orie est important, mais rien ne remplace la pratique. Les labs suivants offrent des environnements contr\u00f4l\u00e9s o\u00f9 vous pouvez explorer en toute s\u00e9curit\u00e9 les techniques d&rsquo;attaque et mettre en \u0153uvre des d\u00e9fenses :<\/p>\n\n<ul class=\"wp-block-list\">\n<li><strong><a href=\"https:\/\/secure-pipelines.com\/fr\/ci-cd-security\/lab-exploiting-defending-poisoned-pipeline-execution-ppe\/\">Lab : exploiter et se d\u00e9fendre contre l&rsquo;ex\u00e9cution de pipeline empoisonn\u00e9 (PPE)<\/a><\/strong> \u2014 Pratiquez les attaques PPE directes et indirectes, puis mettez en \u0153uvre la protection de branche, CODEOWNERS et des contr\u00f4les de configuration de pipeline pour vous en d\u00e9fendre.<\/li>\n\n\n\n<li><strong><a href=\"https:\/\/secure-pipelines.com\/fr\/ci-cd-security\/dependency-confusion-artifact-poisoning-attacks-defenses\/\">Lab : confusion de d\u00e9pendances et empoisonnement d&rsquo;artifacts<\/a><\/strong> \u2014 Ex\u00e9cutez une attaque par confusion de d\u00e9pendances contre une configuration de build vuln\u00e9rable, puis mettez en \u0153uvre la limitation d&rsquo;espace de noms, la v\u00e9rification d&rsquo;int\u00e9grit\u00e9 et des contr\u00f4les de registre priv\u00e9.<\/li>\n\n\n\n<li><strong><a href=\"https:\/\/secure-pipelines.com\/fr\/ci-cd-security\/lab-detecting-preventing-secret-leaks-ci-cd-pipelines\/\">Lab : d\u00e9tecter et pr\u00e9venir les fuites de secrets dans les pipelines CI\/CD<\/a><\/strong> \u2014 D\u00e9couvrez des secrets expos\u00e9s via des variables d&rsquo;environnement, des logs et des artifacts, puis mettez en place une d\u00e9tection avec des outils comme gitleaks, truffleHog et des gardes de pipeline personnalis\u00e9s.<\/li>\n\n\n\n<li><strong><a href=\"https:\/\/secure-pipelines.com\/fr\/ci-cd-security\/lab-artifact-tampering-detection-swapping-container-images-registry-2\/\">Lab : d\u00e9tection d&rsquo;alt\u00e9ration d&rsquo;artifacts \u2014 remplacement d&rsquo;images de conteneurs dans un registre<\/a><\/strong> \u2014 R\u00e9alisez une attaque par mutation de tag contre un registre de conteneurs, puis mettez en \u0153uvre la confiance de contenu, l&rsquo;\u00e9pinglage par digest et la v\u00e9rification par contr\u00f4leur d&rsquo;admission.<\/li>\n\n\n\n<li><strong><a href=\"https:\/\/secure-pipelines.com\/fr\/ci-cd-security\/lab-detecting-malicious-github-actions-static-analysis\/\">Lab : d\u00e9tecter les GitHub Actions malveillantes par analyse statique<\/a><\/strong> \u2014 Analysez des GitHub Actions \u00e0 la recherche de patterns malveillants, mettez en \u0153uvre l&rsquo;\u00e9pinglage par SHA et int\u00e9grez une d\u00e9tection automatis\u00e9e \u00e0 votre processus d&rsquo;approbation de workflow.<\/li>\n<\/ul>\n\n<p class=\"wp-block-paragraph\">Chaque lab comprend des instructions pas \u00e0 pas, un environnement pr\u00e9configur\u00e9 et des sc\u00e9narios d&rsquo;attaque comme de d\u00e9fense. Ils sont con\u00e7us pour \u00eatre r\u00e9alis\u00e9s ind\u00e9pendamment, m\u00eame si les parcourir dans l&rsquo;ordre indiqu\u00e9 ci-dessus construira une compr\u00e9hension compl\u00e8te de la s\u00e9curit\u00e9 CI\/CD.<\/p>\n\n<h2 class=\"wp-block-heading\">Conclusion : b\u00e2tir une architecture CI\/CD d\u00e9fendable<\/h2>\n\n<p class=\"wp-block-paragraph\">Les pipelines CI\/CD sont devenus la surface d&rsquo;attaque la plus lourde de cons\u00e9quences des organisations logicielles modernes. Les incidents recens\u00e9s dans ce guide \u2014 de SolarWinds \u00e0 XZ Utils \u2014 d\u00e9montrent que les attaquants ont pris conscience de cette r\u00e9alit\u00e9 et investissent des ressources consid\u00e9rables dans les techniques d&rsquo;exploitation CI\/CD.<\/p>\n\n<p class=\"wp-block-paragraph\">Mais le tableau n&rsquo;est pas enti\u00e8rement sombre. La communaut\u00e9 de la s\u00e9curit\u00e9 CI\/CD a r\u00e9agi avec des r\u00e9f\u00e9rentiels (OWASP CI\/CD Top 10, SLSA), des outils (Sigstore, gitleaks, StepSecurity) et des patterns architecturaux qui peuvent r\u00e9duire consid\u00e9rablement votre exposition. Les principes cl\u00e9s \u00e0 retenir sont les suivants :<\/p>\n\n<ol class=\"wp-block-list\">\n<li><strong>Traitez les pipelines comme de l&rsquo;infrastructure de production.<\/strong> Appliquez au CI\/CD la m\u00eame rigueur de s\u00e9curit\u00e9 qu&rsquo;aux syst\u00e8mes de production : acc\u00e8s au moindre privil\u00e8ge, surveillance, application des correctifs et r\u00e9ponse aux incidents.<\/li>\n\n\n\n<li><strong>\u00c9liminez la confiance implicite.<\/strong> V\u00e9rifiez tout \u2014 d\u00e9pendances, actions tierces, artifacts et configurations de pipeline. \u00c9pinglez \u00e0 des r\u00e9f\u00e9rences immuables. Signez et v\u00e9rifiez \u00e0 chaque \u00e9tape.<\/li>\n\n\n\n<li><strong>R\u00e9duisez le rayon d&rsquo;impact.<\/strong> Utilisez des identifiants \u00e0 courte dur\u00e9e de vie, des permissions \u00e0 port\u00e9e limit\u00e9e, des runners isol\u00e9s et une segmentation r\u00e9seau pour limiter ce qu&rsquo;un attaquant peut accomplir \u00e0 partir d&rsquo;une seule compromission.<\/li>\n\n\n\n<li><strong>Investissez dans la visibilit\u00e9.<\/strong> On ne peut pas d\u00e9fendre ce que l&rsquo;on ne voit pas. Une journalisation, une surveillance et des alertes compl\u00e8tes pour les syst\u00e8mes CI\/CD sont non n\u00e9gociables.<\/li>\n\n\n\n<li><strong>Entra\u00eenez votre r\u00e9ponse.<\/strong> Utilisez les labs r\u00e9f\u00e9renc\u00e9s tout au long de ce guide pour d\u00e9velopper des automatismes, tant pour la d\u00e9tection des attaques que pour la mise en \u0153uvre des d\u00e9fenses. Lorsque le prochain incident CI\/CD surviendra, vous serez pr\u00eat.<\/li>\n<\/ol>\n\n<p class=\"wp-block-paragraph\">La s\u00e9curit\u00e9 CI\/CD n&rsquo;est pas un projet ponctuel \u2014 c&rsquo;est une discipline continue qui doit \u00e9voluer \u00e0 mesure que les techniques d&rsquo;attaque progressent. Commencez par un <a href=\"https:\/\/secure-pipelines.com\/fr\/threats-attacks\/ci-cd-threat-modeling-trust-boundaries-attack-paths\/\">mod\u00e8le de menaces<\/a>, mettez en \u0153uvre les <a href=\"https:\/\/secure-pipelines.com\/fr\/ci-cd-security\/defensive-patterns-mitigations-ci-cd-pipeline-attacks\/\">patterns d\u00e9fensifs<\/a> qui r\u00e9pondent \u00e0 vos risques les plus \u00e9lev\u00e9s, et validez continuellement vos d\u00e9fenses gr\u00e2ce aux labs pratiques ci-dessus. Vos pipelines sont trop importants pour rester sans d\u00e9fense.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>La livraison logicielle moderne repose sur les pipelines d&rsquo;int\u00e9gration et de livraison continues (CI\/CD) pour construire, tester et d\u00e9ployer du code \u00e0 grande \u00e9chelle. Ces pipelines sont devenus la colonne vert\u00e9brale du DevOps, permettant aux organisations de livrer des fonctionnalit\u00e9s plus vite et de mani\u00e8re plus fiable que jamais. Mais cette puissance a une contrepartie &#8230; <a title=\"Menaces et attaques CI\/CD : ce que les attaquants ciblent et comment se d\u00e9fendre\" class=\"read-more\" href=\"https:\/\/secure-pipelines.com\/fr\/ci-cd-security\/ci-cd-threats-attacks-what-attackers-target-how-to-defend\/\" aria-label=\"En savoir plus sur Menaces et attaques CI\/CD : ce que les attaquants ciblent et comment se d\u00e9fendre\">Lire la suite<\/a><\/p>\n","protected":false},"author":1,"featured_media":1182,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[49,54],"tags":[],"post_folder":[],"class_list":["post-446","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-ci-cd-security","category-threats-attacks"],"_links":{"self":[{"href":"https:\/\/secure-pipelines.com\/fr\/wp-json\/wp\/v2\/posts\/446","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/secure-pipelines.com\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/secure-pipelines.com\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/secure-pipelines.com\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/secure-pipelines.com\/fr\/wp-json\/wp\/v2\/comments?post=446"}],"version-history":[{"count":5,"href":"https:\/\/secure-pipelines.com\/fr\/wp-json\/wp\/v2\/posts\/446\/revisions"}],"predecessor-version":[{"id":1183,"href":"https:\/\/secure-pipelines.com\/fr\/wp-json\/wp\/v2\/posts\/446\/revisions\/1183"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/secure-pipelines.com\/fr\/wp-json\/wp\/v2\/media\/1182"}],"wp:attachment":[{"href":"https:\/\/secure-pipelines.com\/fr\/wp-json\/wp\/v2\/media?parent=446"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/secure-pipelines.com\/fr\/wp-json\/wp\/v2\/categories?post=446"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/secure-pipelines.com\/fr\/wp-json\/wp\/v2\/tags?post=446"},{"taxonomy":"post_folder","embeddable":true,"href":"https:\/\/secure-pipelines.com\/fr\/wp-json\/wp\/v2\/post_folder?post=446"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}