<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>CI/CD - RiskInsight</title>
	<atom:link href="https://www.riskinsight-wavestone.com/tag/ci-cd/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.riskinsight-wavestone.com/tag/ci-cd/</link>
	<description>Le blog cybersécurité des consultants Wavestone</description>
	<lastBuildDate>Wed, 08 Jul 2026 07:54:49 +0000</lastBuildDate>
	<language>fr-FR</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	

<image>
	<url>https://www.riskinsight-wavestone.com/wp-content/uploads/2024/02/Blogs-2024_RI-39x39.png</url>
	<title>CI/CD - RiskInsight</title>
	<link>https://www.riskinsight-wavestone.com/tag/ci-cd/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Sécurité CI/CD : attaque de chaîne d’approvisionnement depuis un développeur compromis</title>
		<link>https://www.riskinsight-wavestone.com/2026/07/securite-ci-cd-attaque-de-chaine-dapprovisionnement-depuis-un-developpeur-compromis/</link>
					<comments>https://www.riskinsight-wavestone.com/2026/07/securite-ci-cd-attaque-de-chaine-dapprovisionnement-depuis-un-developpeur-compromis/#respond</comments>
		
		<dc:creator><![CDATA[Meriem Abidi]]></dc:creator>
		<pubDate>Wed, 08 Jul 2026 07:54:48 +0000</pubDate>
				<category><![CDATA[Cybersecurity & Digital Trust]]></category>
		<category><![CDATA[Eclairage]]></category>
		<category><![CDATA[Ethical Hacking & Incident Response]]></category>
		<category><![CDATA[artefacts]]></category>
		<category><![CDATA[artifactory]]></category>
		<category><![CDATA[CI/CD]]></category>
		<category><![CDATA[CI/CD attacks]]></category>
		<category><![CDATA[CI/CD security]]></category>
		<category><![CDATA[Cloud]]></category>
		<category><![CDATA[Cloud security]]></category>
		<category><![CDATA[cybersecurity]]></category>
		<category><![CDATA[DevSecOps]]></category>
		<category><![CDATA[pipeline]]></category>
		<category><![CDATA[Remediation]]></category>
		<category><![CDATA[runners]]></category>
		<guid isPermaLink="false">https://www.riskinsight-wavestone.com/?p=30370</guid>

					<description><![CDATA[<p>Dans les environnements DevOps modernes, les pipelines CI/CD automatisent le développement, les tests et le déploiement du code, permettant une livraison rapide et scalable tout en élargissant significativement la surface d’attaque. Les audits CI/CD réalisés en 2025 et 2026 ont...</p>
<p>Cet article <a href="https://www.riskinsight-wavestone.com/2026/07/securite-ci-cd-attaque-de-chaine-dapprovisionnement-depuis-un-developpeur-compromis/">Sécurité CI/CD : attaque de chaîne d’approvisionnement depuis un développeur compromis</a> est apparu en premier sur <a href="https://www.riskinsight-wavestone.com">RiskInsight</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p style="text-align: justify;">Dans les <strong>environnements DevOps modernes</strong>, les <em>pipelines</em> CI/CD automatisent le développement, les tests et le déploiement du code, permettant une livraison rapide et scalable tout en élargissant significativement la surface d’attaque.</p>
<p style="text-align: justify;">Les audits CI/CD réalisés en 2025 et 2026 ont révélé que des <strong>identifiants exposés </strong>dans des <strong>dépôts</strong>, des <strong><em>runners</em> mal configurés</strong>, des <strong>stockages d’artefacts non sécurisés </strong>et des <strong>rôles cloud trop permissifs </strong>constituent autant de vecteurs d&rsquo;attaque que des acteurs malveillants peuvent exploiter afin d&rsquo;obtenir un accès persistant et fortement privilégié à l&rsquo;ensemble de l&rsquo;infrastructure.</p>
<p style="text-align: justify;">Une vue d’ensemble des outils DevOps est illustrée ci-dessous :</p>
<figure id="attachment_30332" aria-describedby="caption-attachment-30332" style="width: 911px" class="wp-caption aligncenter"><img fetchpriority="high" decoding="async" class="size-full wp-image-30332" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2026/07/1-Outils-aux-usages-et-fonctions-multiples-pour-le-DevOps.png" alt="Outils aux usages et fonctions multiples pour le DevOps" width="911" height="422" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2026/07/1-Outils-aux-usages-et-fonctions-multiples-pour-le-DevOps.png 911w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/07/1-Outils-aux-usages-et-fonctions-multiples-pour-le-DevOps-412x191.png 412w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/07/1-Outils-aux-usages-et-fonctions-multiples-pour-le-DevOps-71x33.png 71w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/07/1-Outils-aux-usages-et-fonctions-multiples-pour-le-DevOps-768x356.png 768w" sizes="(max-width: 911px) 100vw, 911px" /><figcaption id="caption-attachment-30332" class="wp-caption-text">Outils aux usages et fonctions multiples pour le DevOps</figcaption></figure>
<p style="text-align: justify;">Une compromission à n’importe quelle étape du <em>pipeline</em> peut ouvrir une voie vers des systèmes plus sensibles.</p>
<figure id="attachment_30358" aria-describedby="caption-attachment-30358" style="width: 911px" class="wp-caption aligncenter"><img decoding="async" class="size-full wp-image-30358" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2026/07/2-Outils-DevOps-pouvant-constituer-un-moyen-rapide-pour-les-attaquants-dobtenir-un-acces-a-privileges-eleves-sur-le-systeme-dinformation.png" alt="Outils DevOps pouvant constituer un moyen rapide pour les attaquants d’obtenir un accès à privilèges élevés sur le système d’information" width="911" height="380" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2026/07/2-Outils-DevOps-pouvant-constituer-un-moyen-rapide-pour-les-attaquants-dobtenir-un-acces-a-privileges-eleves-sur-le-systeme-dinformation.png 911w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/07/2-Outils-DevOps-pouvant-constituer-un-moyen-rapide-pour-les-attaquants-dobtenir-un-acces-a-privileges-eleves-sur-le-systeme-dinformation-437x182.png 437w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/07/2-Outils-DevOps-pouvant-constituer-un-moyen-rapide-pour-les-attaquants-dobtenir-un-acces-a-privileges-eleves-sur-le-systeme-dinformation-71x30.png 71w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/07/2-Outils-DevOps-pouvant-constituer-un-moyen-rapide-pour-les-attaquants-dobtenir-un-acces-a-privileges-eleves-sur-le-systeme-dinformation-768x320.png 768w" sizes="(max-width: 911px) 100vw, 911px" /><figcaption id="caption-attachment-30358" class="wp-caption-text">Outils DevOps pouvant constituer un moyen rapide pour les attaquants d’obtenir un accès à privilèges élevés sur le système d’information</figcaption></figure>
<p style="text-align: justify;">Cet article décrit <strong>une chaîne d’attaque CI/CD représentative visant un environnement CI/CD, </strong>fondée sur des scénarios observés en conditions réelles. Il met en évidence les vecteurs d&rsquo;attaque les plus couramment exploités ainsi que les principales mesures de durcissement permettant de réduire la surface d&rsquo;attaque à chaque étape du pipeline, depuis le code source jusqu&rsquo;au déploiement en production.</p>
<p> </p>
<h2>La chaîne d’attaque: de la reconnaissance à la persistance</h2>
<h3>Reconnaissance et accès initial</h3>
<p style="text-align: justify;">La chaîne d’attaque débute généralement par <strong>une attaque de phishing ciblant les développeurs</strong> afin de <strong>voler des identifiants et des codes MFA</strong>, bien que le MFA puisse lui-même être contourné via le vol de <strong>jetons d’accès</strong> ou de <strong>détournement de sessions.</strong></p>
<figure id="attachment_30334" aria-describedby="caption-attachment-30334" style="width: 911px" class="wp-caption aligncenter"><img decoding="async" class="size-full wp-image-30334" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2026/07/3-Attaque-de-Phishing-reussie.png" alt="Attaque de Phishing réussie" width="911" height="479" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2026/07/3-Attaque-de-Phishing-reussie.png 911w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/07/3-Attaque-de-Phishing-reussie-363x191.png 363w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/07/3-Attaque-de-Phishing-reussie-71x37.png 71w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/07/3-Attaque-de-Phishing-reussie-768x404.png 768w" sizes="(max-width: 911px) 100vw, 911px" /><figcaption id="caption-attachment-30334" class="wp-caption-text">Attaque de Phishing réussie</figcaption></figure>
<p style="text-align: justify;">Il convient de noter que la <strong>compromission d’identifiants seule </strong>n’est <strong>pas toujours suffisante</strong> pour accéder directement à des portails administratifs sensibles. Les <strong>contrôles de sécurité</strong> autour des interfaces d’administration <strong>Microsoft 365</strong> ont été <strong>renforcés</strong> par des mécanismes de MFA ainsi que, le cas échéant, par des politiques d’accès conditionnel, limitant l’impact du phishing sur les accès hautement privilégiés.</p>
<p style="text-align: justify;">Cependant, <strong>dans les environnements d’entreprise modernes</strong> où <strong>la majorité des applications reposent sur le Single Sign-On (SSO),</strong> la compromission d’une session Microsoft (par exemple via le <strong>vol</strong> de <strong>cookies</strong> de <strong>session</strong>) peut donner aux attaquants accès à un large éventail de services interconnectés, incluant les dépôts de code et les plateformes CI/CD. Les attaquants utilisent généralement ce point d’entrée initial pour identifier les environnements de développement et <strong>établir une persistance</strong> via des mécanismes tels que les <strong>Jetons d&rsquo;accès personnels (PAT).</strong></p>
<p style="text-align: justify;">Un risque souvent négligé survient lorsqu’un <strong>compte utilisateur est désactivé</strong> au niveau du fournisseur d’identité (ex. <strong>Entra ID</strong>) mais n’est <strong>pas entièrement désactivé </strong>dans les plateformes de dépôt. Dans ce cas, <strong>des PATs précédemment émis</strong> peuvent rester valides, permettant à un attaquant de conserver un accès malgré la révocation du compte.</p>
<p style="text-align: justify;">D’autres vecteurs d’entrée incluent <strong>l’exploitation de CVE connues</strong> ainsi qu&rsquo;une mauvaise gestion des identifiants. De nombreuses vulnérabilités majeures sur les outils DevOps sont régulièrement découvertes, ce qui souligne la nécessité d’une gestion continue des vulnérabilités. <strong>L’exploitation</strong> d’une <strong>vulnérabilité critique</strong> peut directement <strong>fournir un accès privilégié à un outil de la chaîne</strong>.</p>
<p style="text-align: justify;">Exemples :</p>
<ul>
<li style="text-align: justify;"><span style="color: #808080;"><a style="color: #808080;" href="https://nvd.nist.gov/vuln/detail/cve-2024-23897"><strong>CVE-2024-23897</strong></a></span><strong> (Jenkins)</strong>, permettant à des attaquants non authentifiés de lire des fichiers arbitraires présents sur le contrôleur Jenkins, exposant ainsi des secrets sensibles,</li>
<li style="text-align: justify;"><span style="color: #808080;"><a style="color: #808080;" href="https://nvd.nist.gov/vuln/detail/cve-2023-7028"><strong>CVE-2023-7028</strong></a></span><strong> (GitLab)</strong>, dans laquelle les emails de réinitialisation de mot de passe pouvaient être envoyés vers une adresse électronique non vérifiée.</li>
<li style="text-align: justify;"><span style="color: #808080;"><a style="color: #808080;" href="https://nvd.nist.gov/vuln/detail/cve-2023-36561"><strong>CVE-2023-36561</strong></a></span><strong> (Azure DevOps Server)</strong>, une vulnérabilité d&rsquo;élévation de privilèges permettant à un attaquant d&rsquo;obtenir un accès non autorisé à certaines fonctionnalités d&rsquo;Azure DevOps Server, avec un impact potentiel sur les pipelines, les secrets et les ressources des projets.</li>
</ul>
<p> </p>
<p style="text-align: justify;"><strong><u>REMÉDIATION – Renforcer les contrôles d’accès aux dépôts de code source</u></strong></p>
<p style="text-align: justify;">Afin de réduire les risques liés à l&rsquo;accès initial, les organisations doivent mettre en œuvre des contrôles permettant d&#8217;empêcher les accès non autorisés, de détecter les mécanismes de persistance et de renforcer la gouvernance des identités.</p>
<p style="text-align: justify;"><em><u>Appliquer des politiques d’accès strictes et réduire l’exposition réseau</u></em></p>
<ul style="text-align: justify;">
<li>Eviter l’utilisation des <strong>comptes génériques ou partagés</strong>,</li>
<li>Utiliser des <strong>identités développeurs dédiées</strong>, séparées des comptes bureautiques standards (messagerie et outils collaboratifs), afin de réduire l’exposition au phishing et l’impact d’une compromission dans les environnements CI/CD,</li>
<li><strong>Imposer des mécanismes MFA résistants au phishing</strong> (clés FIDO2, certificats, etc),</li>
<li><strong>Mettre en place des politiques d’accès conditionnel</strong> basées sur des critères contextuels (localisation réseau, conformité des appareils).</li>
</ul>
<p style="text-align: justify;"><em><u>Mettre en place des mécanismes de détection de persistance</u></em></p>
<ul style="text-align: justify;">
<li><strong>Surveiller</strong> la création ou l’utilisation suspecte de <strong>PAT</strong> dans GitLab, ainsi que les activités anormales (ex. <strong>déploiements à des horaires inhabituels</strong>),</li>
<li>Surveiller l’ajout de <strong>nouvelles méthodes d’authentification dans Entra ID</strong>, notamment les méthodes sans mot de passe, après un événement de phishing.</li>
</ul>
<p style="text-align: justify;"><em><u>Réviser périodiquement les accès et supprimer les comptes inutilisés</u></em></p>
<ul>
<li style="text-align: justify;">Désactiver ou supprimer les <strong>comptes inutilisés ou inactifs,</strong></li>
<li style="text-align: justify;">Révoquer les accès des <strong>collaborateurs sortis de l’organisation</strong> sur tous les systèmes,</li>
<li style="text-align: justify;">Réaliser des revues d’accès périodiques, <strong>au minimum tous les six mois</strong> pour les <strong>utilisateurs</strong> <strong>à risque élevé.</strong></li>
</ul>
<p> </p>
<h3>Compromission des dépôts de code et des <em>pipelines</em></h3>
<p style="text-align: justify;"><strong>Les dépôts de code</strong> sont souvent <strong>directement intégrés aux <em>pipelines</em> CI/CD</strong>, ce qui signifie que toute modification du code peut déclencher automatiquement des processus de <em>build</em> et de déploiement. Ainsi, la compromission d’un compte développeur peut influencer la manière dont les applications sont construites et déployées.</p>
<p style="text-align: justify;">Pour <strong>réduire le risque de modifications non autorisées en production</strong>, les organisations <strong>protègent</strong> généralement les <strong>branches de production</strong> (ex. main ou master) via des <em>pull requests</em>, des validations et des contrôles automatisés. En revanche, les <strong>branches de développement</strong> sont souvent <strong>moins strictement contrôlées</strong> afin de favoriser la rapidité de développement et de test.</p>
<p style="text-align: justify;">Dans le scénario observé, l’attaquant <strong>cible la branche de développement</strong> et modifie le fichier de configuration du <em>pipeline</em> (gitlab-ci.yml), en y injectant <strong>une commande malveillante</strong> (visant à établir un accès distant) au sein d’un <strong><em>job</em> existant</strong>. Lors de l&rsquo;exécution du <em>pipeline</em>, cette commande est exécutée sur le <em>runner</em> CI/CD, ce qui permet à l&rsquo;attaquant d&rsquo;obtenir un accès distant à ce dernier.</p>
<figure id="attachment_30336" aria-describedby="caption-attachment-30336" style="width: 911px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="size-full wp-image-30336" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2026/07/4-Etablissement-dun-acces-distant-depuis-lenvironnement-dexecution-CICD.png" alt="Établissement d’un accès distant depuis l’environnement d’exécution CICD" width="911" height="574" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2026/07/4-Etablissement-dun-acces-distant-depuis-lenvironnement-dexecution-CICD.png 911w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/07/4-Etablissement-dun-acces-distant-depuis-lenvironnement-dexecution-CICD-303x191.png 303w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/07/4-Etablissement-dun-acces-distant-depuis-lenvironnement-dexecution-CICD-62x39.png 62w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/07/4-Etablissement-dun-acces-distant-depuis-lenvironnement-dexecution-CICD-768x484.png 768w" sizes="auto, (max-width: 911px) 100vw, 911px" /><figcaption id="caption-attachment-30336" class="wp-caption-text">Établissement d’un accès distant depuis l’environnement d’exécution CICD</figcaption></figure>
<p style="text-align: justify;"><strong>Une fois dans le <em>runner</em> CI/CD</strong>, l’attaquant peut alors <strong>exécuter du code arbitraire sur le <em>runner </em>CI/CD</strong> et, entre autres, énumérer les variables d’environnement contenant des <strong>paramètres de configurations et les secrets définis dans le projet GitLab</strong>.</p>
<p style="text-align: justify;">Cependant, il arrive que certains <strong>composants</strong> de la chaîne CI/CD <strong>ne sont pas dupliqués entre environnements</strong> pour des <strong>raisons de coûts. </strong>Dans ce cas précis, les secrets GitLab ne sont pas segmentés entre les environnements de production et de développement. Ainsi l’attaquant est en capacité de<strong> lister les secrets de production depuis le <em>runner </em>CI/CD de développement</strong>.</p>
<p style="text-align: justify;">Un exemple de <strong>variables</strong> <strong>d’environnement</strong> rencontrées dans les <em>pipelines</em> CI/CD est présenté ci-dessous.</p>
<figure id="attachment_30338" aria-describedby="caption-attachment-30338" style="width: 911px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="size-full wp-image-30338" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2026/07/5-Exemple-de-variables-de-production-accessibles-depuis-un-environnement-de-developpement.png" alt="Exemple de variables de production accessibles depuis un environnement de développement" width="911" height="404" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2026/07/5-Exemple-de-variables-de-production-accessibles-depuis-un-environnement-de-developpement.png 911w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/07/5-Exemple-de-variables-de-production-accessibles-depuis-un-environnement-de-developpement-431x191.png 431w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/07/5-Exemple-de-variables-de-production-accessibles-depuis-un-environnement-de-developpement-71x31.png 71w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/07/5-Exemple-de-variables-de-production-accessibles-depuis-un-environnement-de-developpement-768x341.png 768w" sizes="auto, (max-width: 911px) 100vw, 911px" /><figcaption id="caption-attachment-30338" class="wp-caption-text">Exemple de variables de production accessibles depuis un environnement de développement</figcaption></figure>
<p style="text-align: justify;">Ce flux d’attaque montre comment la manipulation de <em>pipeline</em> permet l’exécution de code dans le <em>runner</em> et l’extraction de variables sensibles de production depuis un environnement de développement.</p>
<figure id="attachment_30340" aria-describedby="caption-attachment-30340" style="width: 911px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="size-full wp-image-30340" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2026/07/6-Manipulation-du-depot-de-code.png" alt="Manipulation du dépôt de code" width="911" height="396" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2026/07/6-Manipulation-du-depot-de-code.png 911w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/07/6-Manipulation-du-depot-de-code-437x191.png 437w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/07/6-Manipulation-du-depot-de-code-71x31.png 71w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/07/6-Manipulation-du-depot-de-code-768x334.png 768w" sizes="auto, (max-width: 911px) 100vw, 911px" /><figcaption id="caption-attachment-30340" class="wp-caption-text">Manipulation du dépôt de code</figcaption></figure>
<p style="text-align: justify;">Parmi les identifiants récupérés dans l&rsquo;environnement CI/CD compromis<strong>, l&rsquo;attaquant obtient un jeton d&rsquo;accès à Nexus, système de gestion d&rsquo;artefacts</strong> utilisé pour stocker et distribuer les artefacts de <em>build</em> de confiance consommés par les pipelines situés en aval.</p>
<p style="text-align: justify;"> </p>
<p style="text-align: justify;"><strong><u>REMÉDIATION – Durcir la sécurité des dépôts de code</u></strong></p>
<p style="text-align: justify;">La sécurisation du dépôt de code est essentielle pour empêcher l’exploitation des <em>pipelines</em> CI/CD après un accès initial, car les dépôts contrôlent directement le <em>build</em> et le déploiement.</p>
<p style="text-align: justify;"><em><u>Durcir les dépôts pour limiter les déclenchements de pipeline</u></em></p>
<ul style="text-align: justify;">
<li>Configurer des <strong>branches protégées</strong> pour les branches de déploiement,</li>
<li><strong>Mettre en place des workflows d’approbation multi-niveaux</strong> pour les <em>merge requests</em> déclenchant des <em>pipelines</em> et <strong>interdire</strong> <strong>l’auto-approbation</strong>,</li>
<li>Utiliser la <strong>propriété du code (<em>ownership</em>)</strong> pour <strong>assigner</strong> et <strong>exiger</strong> <strong>l’approbation</strong> des <strong>responsables</strong> désignés sur les <strong>fichiers</strong> <strong>sensibles</strong> (ex. configuration CI/CD).</li>
</ul>
<p style="text-align: justify;"><em><u>Limiter la visibilité et les permissions</u></em></p>
<ul style="text-align: justify;">
<li><strong>Limiter les droits d’écriture</strong> aux seuls utilisateurs qui en ont besoin,</li>
<li><strong>Restreindre la visibilité des projets</strong> selon le <strong>principe du besoin de savoir</strong> (interne ou privé recommandé).</li>
</ul>
<p style="text-align: justify;"><em><u>Mettre en place une bonne hygiène de gestion des secrets</u></em></p>
<ul style="text-align: justify;">
<li><strong>Configurer des secrets CI/CD scopés au niveau projet</strong> et privilégier des identifiants éphémères,</li>
<li><strong>Détecter les secrets en clair le plus tôt possible</strong> (au moment du <em>commit</em> ou avant la publication du code) et les révoquer immédiatement en cas d’exposition,</li>
<li>Réaliser <strong>des revues périodiques</strong> (ex. audits internes, exercices de red team) sur des plateformes telles que les dépôts Git, Jira ou Confluence afin d&rsquo;identifier d&rsquo;éventuelles fuites de secrets passées inaperçues.</li>
</ul>
<p style="text-align: justify;"> </p>
<p style="text-align: justify;"><strong><u>REMÉDIATION – Renforcer la sécurité des <em>runners</em> auto-hébergés</u></strong></p>
<p style="text-align: justify;">Les <em>runners</em> sont des composants critiques des <em>pipelines</em> CI/CD car ils exécutent le code et manipulent des données sensibles. S’ils sont compromis, ils peuvent permettre des mouvements latéraux, l’accès aux secrets ou la prise de contrôle de l’environnement.</p>
<p style="text-align: justify;"><em><u>Réduire l’exposition réseau et le périmètre d’exécution</u></em></p>
<ul style="text-align: justify;">
<li><strong>Restreindre le trafic réseau des <em>runners</em></strong> uniquement à ce qui est nécessaire à l’exécution des pipelines, et appliquer des <strong>contrôles réseau</strong> tels que des <strong><em>proxies</em></strong> et de la <strong>segmentation</strong> afin d’empêcher tout accès Internet non contrôlé et limiter les mouvements latéraux au sein des réseaux internes,</li>
<li><strong>Restreindre les déclenchements</strong> depuis des dépôts non fiables ou personnels.</li>
</ul>
<p style="text-align: justify;"><em><u>Considérer les runners comme des systèmes sensibles</u></em></p>
<ul style="text-align: justify;">
<li>Considérer les <em>runners</em> comme des serveurs critiques (Application régulière des <strong>correctifs</strong> du <strong>système d’exploitation</strong> et <strong>durcissement</strong>),</li>
<li>Déployer des solutions de <strong><em>Endpoint Detection and Response (EDR)</em></strong> pour la surveillance des processus, y compris dans les environnements conteneurisés.</li>
</ul>
<p style="text-align: justify;"><em><u>Utiliser des runners dédiés et éphémères</u></em></p>
<ul style="text-align: justify;">
<li>Privilégier des <strong><em>runners</em> dédiés par projet ou environnement</strong>. Le partage de <em>runners</em> entre plusieurs contextes augmente le risque de contamination inter-projets et d’escalade de privilèges,</li>
<li>Utiliser des <strong><em>runners</em> éphémères / autoscalés</strong> détruits après chaque job,</li>
<li>S’assurer que les <strong><em>runners</em> basés sur VM</strong> soient également <strong>éphémères</strong> et <strong>isolés</strong> afin qu’aucune donnée ou accès résiduel ne persiste entre les exécutions. En complément, s’appuyer <strong>uniquement sur des images de base durcies et de confiance</strong> (par exemple des <strong>golden</strong> <strong>images</strong> pour les <em>runners</em> VM et des images conteneurs approuvées), afin d’éviter toute exécution dans des environnements compromis ou non vérifiés.</li>
</ul>
<p style="text-align: justify;"><em><u>Sécuriser les runners containerisés</u></em></p>
<ul style="text-align: justify;">
<li><strong>N’autoriser que des images approuvées et de confiance dans les exécutions de pipelines</strong> afin d’éviter l’introduction de code malveillant via des images compromises ou non vérifiées,</li>
<li>Appliquer le <strong>principe du moindre privilège</strong> dans les environnements d’exécution conteneurisés,</li>
<li><strong>Éviter le mode privilégié</strong> et supprimer les capacités Linux inutiles,</li>
<li>Utiliser des moteurs de <strong><em>build</em> sécurisés (BuildKit / Buildah)</strong> lorsque le <strong>Docker-in-Docker</strong> est requis.</li>
</ul>
<p style="text-align: justify;"><em><u>Durcir les runners cloud</u></em></p>
<ul>
<li style="text-align: justify;">Lors de l’utilisation de <strong><em>runners</em> managés dans le cloud</strong>, appliquer une <strong>isolation stricte</strong> et un <strong>périmètre d’identité</strong>, <strong>restreindre l’accès aux métadonnées</strong> afin d’éviter l’exposition d’identifiants depuis l’infrastructure sous-jacente, et s’assurer que les rôles CI/CD sont gouvernés par des <strong>politiques IAM strictes en moindre privilège</strong> afin d’éviter des permissions excessives.</li>
</ul>
<p> </p>
<h3>Empoisonnement d’artefacts et attaques sur les dépendances</h3>
<p style="text-align: justify;">Dans les environnements de livraison logicielle, <strong>les systèmes de gestion d’artefacts</strong> stockent et distribuent les <strong>sorties générées par les pipelines CI/CD</strong>. Ces sorties, appelées <strong>artefacts</strong>, représentent les <strong>résultats packagés</strong> du processus de <em>build</em>, tels que des binaires compilés, des packages applicatifs ou des images de déploiement.</p>
<p style="text-align: justify;"><strong>Les artefacts</strong> sont <strong>stockés de manière centralisée</strong> afin d’assurer le versioning, la traçabilité et la réutilisation à travers plusieurs pipelines. En plus des <strong>sorties spécifiques aux applications</strong>, ces dépôts hébergent souvent également des <strong>composants partagés tels que des golden images</strong>, des <strong>bibliothèques réutilisables</strong> ou des <strong>dépendances <em>runtime</em> communes</strong>. Comme ils proviennent de processus de <em>build</em> considérés comme fiables, les <strong>artefacts</strong> sont généralement supposés sûrs et <strong>largement consommés par les pipelines</strong> <strong>en aval</strong> sans validation supplémentaire.</p>
<p style="text-align: justify;">Dans le scénario observé, <strong>l’attaquant</strong> <strong>utilise</strong> des <strong>identifiants</strong> précédemment obtenus pour <strong>s’authentifier</strong> au <strong>dépôt</strong> <strong>d’artefacts</strong> (<strong>Nexus</strong> dans cet exemple) avec des <strong>permissions</strong> <strong>excessives</strong> (lecture/écriture sur plusieurs catégories, plutôt que limitées à un périmètre applicatif unique), et obtient ainsi un accès à la fois aux artefacts de production et aux artefacts partagés.</p>
<p style="text-align: justify;">Parmi ces derniers, l’attaquant identifie un <strong>binaire</strong> <strong>Terraform</strong> <strong>légitime</strong> utilisé dans le processus de déploiement d’infrastructure (appelé ici le <strong>binaire</strong> <strong>tofu</strong>), qui est couramment approuvé et consommé par les pipelines CI/CD pour provisionner et gérer les ressources cloud.</p>
<figure id="attachment_30342" aria-describedby="caption-attachment-30342" style="width: 1394px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="size-full wp-image-30342" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2026/07/7-Binaire-legitime-utilise-pour-le-deploiement-dinfrastructure.png" alt="Binaire légitime utilisé pour le déploiement d’infrastructure" width="1394" height="949" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2026/07/7-Binaire-legitime-utilise-pour-le-deploiement-dinfrastructure.png 1394w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/07/7-Binaire-legitime-utilise-pour-le-deploiement-dinfrastructure-281x191.png 281w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/07/7-Binaire-legitime-utilise-pour-le-deploiement-dinfrastructure-57x39.png 57w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/07/7-Binaire-legitime-utilise-pour-le-deploiement-dinfrastructure-768x523.png 768w" sizes="auto, (max-width: 1394px) 100vw, 1394px" /><figcaption id="caption-attachment-30342" class="wp-caption-text">Binaire légitime utilisé pour le déploiement d’infrastructure</figcaption></figure>
<p style="text-align: justify;">L’attaquant <strong>télécharge</strong> <strong>cet artefact localement</strong> et en <strong>modifie le contenu</strong> en injectant une <strong>logique malveillante</strong> tout en conservant sa fonctionnalité d’origine, et y <strong>intègre un comportement caché</strong> conçu pour interagir avec les services <strong>AWS Identity and Access Management (IAM)</strong> et <strong>AWS Security Token Service (STS)</strong> afin de récupérer des identifiants.</p>
<figure id="attachment_30344" aria-describedby="caption-attachment-30344" style="width: 827px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="size-full wp-image-30344" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2026/07/8-Logique-de-gestion-des-identifiants-AWS-IAM-et-STS-dans-le-binaire-Terraform-malveillant.png" alt="Logique de gestion des identifiants AWS IAM et STS dans le binaire Terraform malveillant" width="827" height="716" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2026/07/8-Logique-de-gestion-des-identifiants-AWS-IAM-et-STS-dans-le-binaire-Terraform-malveillant.png 827w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/07/8-Logique-de-gestion-des-identifiants-AWS-IAM-et-STS-dans-le-binaire-Terraform-malveillant-221x191.png 221w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/07/8-Logique-de-gestion-des-identifiants-AWS-IAM-et-STS-dans-le-binaire-Terraform-malveillant-45x39.png 45w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/07/8-Logique-de-gestion-des-identifiants-AWS-IAM-et-STS-dans-le-binaire-Terraform-malveillant-768x665.png 768w" sizes="auto, (max-width: 827px) 100vw, 827px" /><figcaption id="caption-attachment-30344" class="wp-caption-text">Logique de gestion des identifiants AWS IAM et STS dans le binaire Terraform malveillant</figcaption></figure>
<p style="text-align: justify;">Le binaire modifié est ensuite <strong>téléversé de nouveau</strong> <strong>dans</strong> <strong>Nexus</strong>, remplaçant la version légitime par un <strong>artefact compromis.</strong></p>
<figure id="attachment_30346" aria-describedby="caption-attachment-30346" style="width: 744px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="size-full wp-image-30346" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2026/07/9-Upload-du-binaire-malveillant.png" alt="Upload du binaire malveillant" width="744" height="613" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2026/07/9-Upload-du-binaire-malveillant.png 744w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/07/9-Upload-du-binaire-malveillant-232x191.png 232w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/07/9-Upload-du-binaire-malveillant-47x39.png 47w" sizes="auto, (max-width: 744px) 100vw, 744px" /><figcaption id="caption-attachment-30346" class="wp-caption-text">Upload du binaire malveillant</figcaption></figure>
<p style="text-align: justify;">À partir de ce moment, <strong>tout pipeline CI/CD consommant cet artefact</strong> récupère automatiquement le <strong>binaire compromis</strong> lors de la résolution des dépendances, car il est toujours considéré comme fiable.</p>
<figure id="attachment_30348" aria-describedby="caption-attachment-30348" style="width: 911px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="size-full wp-image-30348" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2026/07/10-Telechargement-du-binaire-malveillant-depuis-Nexus.png" alt="Téléchargement du binaire malveillant depuis Nexus" width="911" height="473" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2026/07/10-Telechargement-du-binaire-malveillant-depuis-Nexus.png 911w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/07/10-Telechargement-du-binaire-malveillant-depuis-Nexus-368x191.png 368w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/07/10-Telechargement-du-binaire-malveillant-depuis-Nexus-71x37.png 71w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/07/10-Telechargement-du-binaire-malveillant-depuis-Nexus-768x399.png 768w" sizes="auto, (max-width: 911px) 100vw, 911px" /><figcaption id="caption-attachment-30348" class="wp-caption-text">Téléchargement du binaire malveillant depuis Nexus</figcaption></figure>
<p style="text-align: justify;">Lors de son exécution, <strong>le binaire compromis active la charge malveillante intégrée</strong>, dont l’objectif est de <strong>récupérer le jeton d’accès AWS</strong> utilisé par le <strong>contexte d’exécution Terraform</strong> et de l’envoyer vers un serveur contrôlé par l’attaquant pour exfiltration. Il génère ensuite une <strong>sortie obfusquée</strong> <strong>encodée en Base32</strong>. Le décodage permet de reconstruire un objet JSON contenant des identifiants AWS (AccessKeyId, SecretAccessKey et SessionToken).</p>
<figure id="attachment_30350" aria-describedby="caption-attachment-30350" style="width: 911px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="size-full wp-image-30350" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2026/07/11-Payload-Base32-decode-revelant-des-identifiants-AWS.png" alt="Payload Base32 décodé révélant des identifiants AWS" width="911" height="494" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2026/07/11-Payload-Base32-decode-revelant-des-identifiants-AWS.png 911w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/07/11-Payload-Base32-decode-revelant-des-identifiants-AWS-352x191.png 352w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/07/11-Payload-Base32-decode-revelant-des-identifiants-AWS-71x39.png 71w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/07/11-Payload-Base32-decode-revelant-des-identifiants-AWS-768x416.png 768w" sizes="auto, (max-width: 911px) 100vw, 911px" /><figcaption id="caption-attachment-30350" class="wp-caption-text">Payload Base32 décodé révélant des identifiants AWS</figcaption></figure>
<p style="text-align: justify;">L’attaquant configure ensuite ces identifiants localement et utilise <strong>AWS STS</strong> (appel API GetCallerIdentity) pour confirmer l’usurpation d’identité du <em>runner</em> CI/CD.</p>
<figure id="attachment_30352" aria-describedby="caption-attachment-30352" style="width: 910px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="size-full wp-image-30352" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2026/07/12-Acces-AWS.png" alt="Accès AWS" width="910" height="182" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2026/07/12-Acces-AWS.png 910w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/07/12-Acces-AWS-437x87.png 437w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/07/12-Acces-AWS-71x14.png 71w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/07/12-Acces-AWS-768x154.png 768w" sizes="auto, (max-width: 910px) 100vw, 910px" /><figcaption id="caption-attachment-30352" class="wp-caption-text">Accès AWS</figcaption></figure>
<p style="text-align: justify;">Cette illustration montre la chaîne d’attaque : compromission d’artefact, injection de logique malveillante, propagation via les pipelines CI/CD et vol final d’identifiants AWS menant à la compromission de l’environnement.</p>
<figure id="attachment_30354" aria-describedby="caption-attachment-30354" style="width: 911px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="size-full wp-image-30354" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2026/07/13-Compromission-Artifactory-corruption-des-dependances.png" alt="Compromission Artifactory - corruption des dépendances" width="911" height="450" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2026/07/13-Compromission-Artifactory-corruption-des-dependances.png 911w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/07/13-Compromission-Artifactory-corruption-des-dependances-387x191.png 387w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/07/13-Compromission-Artifactory-corruption-des-dependances-71x35.png 71w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/07/13-Compromission-Artifactory-corruption-des-dependances-768x379.png 768w" sizes="auto, (max-width: 911px) 100vw, 911px" /><figcaption id="caption-attachment-30354" class="wp-caption-text">Compromission Artifactory &#8211; corruption des dépendances</figcaption></figure>
<p style="text-align: justify;">En conséquence, l’attaquant obtient un accès non autorisé aux ressources AWS sous une identité légitime.</p>
<p style="text-align: justify;"> </p>
<p style="text-align: justify;"><strong><u>REMÉDIATION – Améliorer la gestion des accès à l’Artifactory</u></strong></p>
<p style="text-align: justify;">Les dépôts d’artefacts tels que Nexus sont des composants clés des pipelines CI/CD utilisés pour stocker et distribuer les dépendances et artefacts de <em>build</em>. Ce sont des cibles à forte valeur pour les attaques de chaîne d’approvisionnement.</p>
<p style="text-align: justify;">La sécurité nécessite des contrôles d’accès forts, une gouvernance des dépendances et une surveillance continue de l’intégrité.</p>
<p style="text-align: justify;"><em><u>Durcir la plateforme d’artefacts</u></em></p>
<ul style="text-align: justify;">
<li><strong>Autoriser une large lecture du dépôt uniquement sous deux conditions :</strong> depuis le service nécessaire (CI/CD) et si une gestion de mots de passe dans les dépendances existe,</li>
<li>Restreindre fortement les <strong>permissions d’écriture,</strong></li>
<li>Modifier les <strong>identifiants par défaut.</strong></li>
</ul>
<p style="text-align: justify;"><em><u>Analyse de composition logicielle (SCA)</u></em></p>
<ul style="text-align: justify;">
<li><strong>Appliquer une analyse de composition logicielle</strong> aux <strong>dépendances internes</strong> (stockées dans des dépôts locaux) ainsi qu’aux <strong>dépendances externes</strong> (récupérées depuis des dépôts distants ou proxy) afin de détecter les vulnérabilités connues et les composants obsolètes.</li>
</ul>
<p style="text-align: justify;"><em><u>Restreindre les sources d’artefacts</u></em></p>
<ul>
<li style="text-align: justify;"><strong>Maintenir une whitelist de dépôts de confiance</strong> afin de garantir que seules des sources approuvées sont utilisées,</li>
<li style="text-align: justify;"><strong>Appliquer des contrôles au niveau des dépôts </strong>pour exclure les versions non approuvées ou vulnérables, par exemple dans Nexus ou via des règles d’exclusion dans <strong>JFrog</strong> Artifactory,</li>
<li style="text-align: justify;"><strong>Empêcher les pipelines CI/CD d’accéder à des sources externes</strong> <strong>non</strong> <strong>fiables</strong> en imposant des frontières strictes entre dépôts.</li>
</ul>
<p> </p>
<h3>Compromission cloud via abus des workloads CI/CD</h3>
<p style="text-align: justify;">Dans les environnements cloud, <strong>les <em>runners</em> CI/CD</strong> sont généralement associés à des <strong>rôles IAM privilégiés</strong> pour effectuer des opérations de déploiement, incluant la création, modification et suppression de ressources d’infrastructure. Ces rôles incluent souvent des <strong>permissions larges</strong> telles que <strong>AdministratorAccess</strong> ou des politiques personnalisées trop permissives, permettant au <em>runner</em> d’interagir avec un large ensemble de services AWS, incluant les services de calcul, le stockage et la gestion des identités.</p>
<p style="text-align: justify;">Lorsqu’un <strong><em>runner</em> CI/CD est compromis</strong>, un attaquant peut <strong>directement abuser de ces privilèges</strong> sans nécessiter d’escalade supplémentaire. Cela peut conduire à un <strong>accès immédiat</strong> à des ressources sensibles telles que des <strong>buckets S3</strong> ou <strong>des bases de données RDS</strong>, permettant <strong>l’exfiltration de données</strong>. L’attaquant peut également exploiter les <strong>permissions</strong> <strong>IAM</strong> pour assumer d’autres rôles dans <strong>d’autres comptes ou projets AWS</strong>, facilitant les mouvements latéraux au sein de l’organisation. En outre, <strong>l’accès aux services de <em>compute</em> </strong>peut être utilisé pour déployer, modifier ou maintenir des charges malveillantes, aboutissant finalement à une <strong>compromission</strong> <strong>complète</strong> de <strong>l’environnement cloud</strong>.</p>
<p> </p>
<h2>De la compromission initiale du développeur à la prise de contrôle cloud : vue complète de la chaîne CI/CD</h2>
<p style="text-align: justify;">la chaîne d’attaque CI/CD commence par la compromission initiale du développeur jusqu’à la prise de contrôle complète de l’environnement cloud.</p>
<p style="text-align: justify;">L’illustration suivante met en évidence <strong>les opportunités clés de détection et de surveillance à travers l’écosystème CI/CD.</strong> Elle montre comment les données de télémétrie de sécurité peuvent être collectées et corrélées tout au long des <strong>différentes étapes de la chaîne d&rsquo;attaque CI/CD</strong>, depuis les <strong>activités de développement </strong>jusqu&rsquo;aux <strong><em>runners</em></strong> <strong>CI/CD</strong>, aux <strong>dépôts d&rsquo;artefacts</strong> et aux <strong>opérations IAM dans le cloud</strong>.</p>
<figure id="attachment_30356" aria-describedby="caption-attachment-30356" style="width: 911px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="size-full wp-image-30356" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2026/07/14-Chaine-dattaque-Detection.png" alt="Chaîne d’attaque - Détection" width="911" height="409" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2026/07/14-Chaine-dattaque-Detection.png 911w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/07/14-Chaine-dattaque-Detection-425x191.png 425w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/07/14-Chaine-dattaque-Detection-71x32.png 71w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/07/14-Chaine-dattaque-Detection-768x345.png 768w" sizes="auto, (max-width: 911px) 100vw, 911px" /><figcaption id="caption-attachment-30356" class="wp-caption-text">Chaîne d’attaque &#8211; Détection</figcaption></figure>
<p style="text-align: justify;">Dans l’ensemble, bien que les pipelines CI/CD élargissent significativement la surface d’attaque, ils offrent également de multiples points d’interception stratégiques où une journalisation centralisée et une surveillance de sécurité peuvent permettre une détection précoce et une réponse aux activités malveillantes.</p>
<p style="text-align: justify;"> </p>
<p style="text-align: justify;">En conclusion, pour obtenir <strong>un <em>pipeline</em> CI/CD sécurisé</strong>, la sécurité doit être pensée de bout en bout, des environnements développeurs jusqu’aux systèmes de production.</p>
<p style="text-align: justify;"><strong>Les développeurs sont le premier maillon de la chaîne</strong>, et la sécurisation de leurs comptes est essentielle. Cela doit être complété par de bonnes pratiques telles que la gestion sécurisée des secrets et la sensibilisation régulière à la sécurité.</p>
<p style="text-align: justify;">Il est également crucial d’assurer une <strong>bonne isolation entre environnements</strong> et d’appliquer strictement le <strong>principe du moindre privilège</strong>, aussi bien pour les <strong>utilisateurs</strong> que pour les <strong>comptes</strong> <strong>de</strong> <strong>service</strong>.</p>
<p style="text-align: justify;">Les problèmes de sécurité ne peuvent pas être corrigés par de simples correctifs si la conception globale du <em>pipeline</em> est faible.</p>
<p style="text-align: justify;">Enfin, <strong>les cas d’usage de déploiement</strong> doivent être définis clairement dès le départ, car ils influencent directement l’architecture et les choix IAM.</p>
<p style="text-align: justify;">Au-delà des aspects techniques, <strong>la sécurité CI/CD doit être évaluée en continu via des audits techniques réguliers</strong> ainsi que des <strong>revues organisationnelles</strong> du cycle de développement afin de maintenir les risques sous contrôle.</p>
<p style="text-align: justify;">Pour une perspective plus large et des <strong>recommandations de haut niveau</strong> sur le positionnement du CI/CD comme pilier du système d’information, voir l’article RiskInsight : « <a href="https://www.riskinsight-wavestone.com/2025/09/ci-cd-la-nouvelle-pierre-angulaire-du-si/"><span style="color: #808080;">CI/CD: the new cornerstone of the information system</span></a><span style="color: #808080;"> </span>».</p>
<p> </p>
<p>Cet article <a href="https://www.riskinsight-wavestone.com/2026/07/securite-ci-cd-attaque-de-chaine-dapprovisionnement-depuis-un-developpeur-compromis/">Sécurité CI/CD : attaque de chaîne d’approvisionnement depuis un développeur compromis</a> est apparu en premier sur <a href="https://www.riskinsight-wavestone.com">RiskInsight</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.riskinsight-wavestone.com/2026/07/securite-ci-cd-attaque-de-chaine-dapprovisionnement-depuis-un-developpeur-compromis/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>CI/CD : la nouvelle pierre angulaire du SI ? </title>
		<link>https://www.riskinsight-wavestone.com/2025/09/ci-cd-la-nouvelle-pierre-angulaire-du-si/</link>
					<comments>https://www.riskinsight-wavestone.com/2025/09/ci-cd-la-nouvelle-pierre-angulaire-du-si/#respond</comments>
		
		<dc:creator><![CDATA[Alexandre GUY]]></dc:creator>
		<pubDate>Tue, 16 Sep 2025 08:46:12 +0000</pubDate>
				<category><![CDATA[Cloud & Next-Gen IT Security]]></category>
		<category><![CDATA[CI/CD]]></category>
		<category><![CDATA[Cloud]]></category>
		<category><![CDATA[gestion des accès]]></category>
		<category><![CDATA[Gestion des risques]]></category>
		<category><![CDATA[IAM]]></category>
		<category><![CDATA[Risk management]]></category>
		<guid isPermaLink="false">https://www.riskinsight-wavestone.com/?p=27494</guid>

					<description><![CDATA[<p>Depuis l’expansion massive du DevOps, les chaînes d&#8217;intégration et de déploiement continu (CI/CD) sont devenues indispensables afin d’automatiser les cycles de développement d’applications. Tandis que l’intégration continue (CI) consiste à intégrer régulièrement du code et à le tester automatiquement, le...</p>
<p>Cet article <a href="https://www.riskinsight-wavestone.com/2025/09/ci-cd-la-nouvelle-pierre-angulaire-du-si/">CI/CD : la nouvelle pierre angulaire du SI ? </a> est apparu en premier sur <a href="https://www.riskinsight-wavestone.com">RiskInsight</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p style="text-align: justify;"><span data-contrast="auto">Depuis l’expansion massive du DevOps, les </span><b><span data-contrast="none">chaînes d&rsquo;intégration</span></b><span data-contrast="auto"> et de </span><b><span data-contrast="none">déploiement continu</span></b><span data-contrast="auto"> (CI/CD) sont devenues indispensables afin d’automatiser les cycles de développement d’applications. Tandis que l’</span><b><span data-contrast="none">intégration continue</span></b><span data-contrast="auto"> (CI) consiste à intégrer régulièrement du code et à le tester automatiquement, le </span><b><span data-contrast="none">déploiement continu</span></b> <span data-contrast="auto">(CD) automatise l&rsquo;ensemble du processus de mise en production du code, permettant de s’assurer qu’il fonctionne correctement dans l&rsquo;environnement où il est déployé. </span><span data-ccp-props="{&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559731&quot;:708}"> </span></p>
<p style="text-align: justify;"><span data-contrast="auto">Les attaques impliquant ces chaînes d’approvisionnement introduisent de nouveaux risques dans les systèmes d’information. Des intrusions peuvent entraîner des </span><span data-contrast="none">fuites de</span> <span data-contrast="auto">propriété</span> <span data-contrast="auto">intellectuelle, des </span><span data-contrast="none">altérations de </span><span data-contrast="auto">code</span> <span data-contrast="auto">source, des interruptions</span> <span data-contrast="none">de service</span> <span data-contrast="none">ainsi que des </span><span data-contrast="auto">élévations de privilèges vers des parties plus critiques du SI. </span><span data-ccp-props="{&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559731&quot;:708}"> </span></p>
<p style="text-align: justify;"><span data-contrast="auto">Quels sont donc ces </span><b><span data-contrast="none">nouveaux vecteurs d’attaques</span></b> <span data-contrast="auto">sur les chaînes CI/CD et </span><b><span data-contrast="none">comment s’en protéger</span></b><span data-contrast="none"> </span><span data-contrast="auto">? Cet article vise à dresser un panorama de chemins de compromission observés sur le terrain, ainsi que des recommandations pour les contrer.</span><span data-ccp-props="{&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559731&quot;:708}"> </span></p>
<p> </p>
<h1 style="text-align: justify;"><b><span data-contrast="auto">Quels risques pour les chaînes CI/CD ?</span></b><span data-ccp-props="{&quot;335551550&quot;:6,&quot;335551620&quot;:6}"> </span></h1>
<p> </p>
<p style="text-align: justify;"><span data-contrast="auto">L&rsquo;attaque de </span><b><span data-contrast="none">SolarWinds</span></b><span data-contrast="auto"> en 2020 est un exemple qui ne cesse d’être énoncé, mais qui a mis en lumière l‘ampleur qu’une attaque de ce type peut causer. Après avoir vraisemblablement volé des identifiants FTP laissés en clair dans un ancien dépôt GitHub, </span><a href="https://www.cert.ssi.gouv.fr/alerte/CERTFR-2020-ALE-026/"><span data-contrast="none">l&rsquo;opération</span></a><span data-contrast="auto"> a exploité la chaîne d&rsquo;approvisionnement de SolarWinds en insérant un beacon C2 (Command &amp; Control) dans leur logiciel de gestion réseau, Orion, en amont du processus de signature.</span><span data-ccp-props="{&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559731&quot;:708}"> </span></p>
<p style="text-align: justify;"><span data-contrast="auto">Cette backdoor a permis aux attaquants d&rsquo;accéder aux réseaux internes de plusieurs agences gouvernementales américaines et entreprises privées, et ce, pendant </span><b><span data-contrast="none">plusieurs mois avant d&rsquo;être détectée</span></b><span data-contrast="auto">.</span><span data-ccp-props="{&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559731&quot;:708}"> </span></p>
<p style="text-align: justify;"><span data-contrast="auto">Cet incident, ainsi que des plus récents comme Log4Shell, Codecov et XZ Utils, ont non seulement souligné la nécessité d&rsquo;une sécurité accrue dans la chaîne CI/CD mais aussi celle d&rsquo;une réponse à incident beaucoup plus adaptative. L’OWASP présente de façon concrète un panorama des surfaces de risques les plus communes dans leur </span><a href="https://owasp.org/www-project-top-10-ci-cd-security-risks/"><span data-contrast="none">Top 10</span></a><span data-contrast="auto"> CI/CD Security.</span><span data-ccp-props="{&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559731&quot;:708}"> </span></p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-27500 size-full" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/Diapositive1.png" alt="Fig 1 – Top 10 OWASP CICD-Sec " width="1280" height="720" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/Diapositive1.png 1280w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/Diapositive1-340x191.png 340w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/Diapositive1-69x39.png 69w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/Diapositive1-768x432.png 768w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/Diapositive1-800x450.png 800w" sizes="auto, (max-width: 1280px) 100vw, 1280px" /></p>
<p style="text-align: center;"><i><span data-contrast="auto">Fig 1 – Top 10 OWASP CICD-Sec</span></i><span data-ccp-props="{&quot;335551550&quot;:2,&quot;335551620&quot;:2,&quot;335559685&quot;:360}"> </span></p>
<h1> </h1>
<h1 style="text-align: justify;"><b><span data-contrast="auto">Quels retours terrain chez Wavestone ?</span></b><span data-ccp-props="{&quot;335551550&quot;:6,&quot;335551620&quot;:6}"> </span></h1>
<p> </p>
<p style="text-align: justify;"><span data-contrast="auto">Les audits et tests d’intrusion permettent de détecter des vulnérabilités de façon proactive avant qu’elles ne soient exploitées par des attaquants. En simulant de réelles attaques, ces évaluations offrent une perspective pratique sur la manière dont un système peut être compromis, ce qui permet d’appréhender plus concrètement les potentielles failles dans un système.</span><span data-ccp-props="{&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559731&quot;:708}"> </span></p>
<p style="text-align: justify;"><span data-contrast="auto">Les différentes interventions menées chez nos clients nous permettent de faire un constat clair :</span><span data-ccp-props="{&quot;335551550&quot;:6,&quot;335551620&quot;:6}"> </span></p>
<ul>
<li><span data-contrast="auto">Dans nos </span><b><span data-contrast="none">audits Cloud </span></b><span data-contrast="auto">et</span><b><span data-contrast="none"> CI/CD</span></b><span data-contrast="auto">, des vulnérabilités sont systématiquement trouvées au niveau des chaînes CI/CD, permettant dans la majorité des cas de prendre le contrôle de la chaîne, des artefacts, voire des infrastructures sous-jacentes. </span><span data-ccp-props="{&quot;335551550&quot;:6,&quot;335551620&quot;:6}"> </span></li>
<li><span data-contrast="auto">De même, au niveau de nos interventions </span><b><span data-contrast="none">CERT &amp; RedTeam</span></b><span data-contrast="auto">, nous observons que les chaînes CI/CD sont souvent utilisées comme accélérateur dans les chemins de compromission.</span><span data-ccp-props="{&quot;335551550&quot;:6,&quot;335551620&quot;:6}"> </span></li>
</ul>
<p style="text-align: justify;"><span data-contrast="auto">Regardons ensemble deux </span><b><span data-contrast="none">exemples d’attaque </span></b><span data-contrast="auto">observés par nos équipes d’audit :</span><span data-ccp-props="{&quot;335551550&quot;:6,&quot;335551620&quot;:6}"> </span></p>
<p style="text-align: justify;"><span data-contrast="auto">Ce premier test d’intrusion en boîte grise a permis la </span><b><span data-contrast="none">compromission totale</span></b> <span data-contrast="auto">d’une organisation Cloud AWS (600+ comptes) en partant de comptes standards de DevOps.</span><span data-ccp-props="{&quot;335551550&quot;:6,&quot;335551620&quot;:6}"> </span></p>
<figure id="attachment_27502" aria-describedby="caption-attachment-27502" style="width: 1280px" class="wp-caption alignnone"><img loading="lazy" decoding="async" class="size-full wp-image-27502" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/Diapositive2.png" alt="Fig 2 - Chemin de compromission d’une attaque sur un cluster d’Amazon EKS " width="1280" height="720" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/Diapositive2.png 1280w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/Diapositive2-340x191.png 340w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/Diapositive2-69x39.png 69w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/Diapositive2-768x432.png 768w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/Diapositive2-800x450.png 800w" sizes="auto, (max-width: 1280px) 100vw, 1280px" /><figcaption id="caption-attachment-27502" class="wp-caption-text"><em>                      Fig 2 &#8211; Chemin de compromission d’une attaque sur un cluster d’Amazon EKS<span style="font-size: revert; text-align: center; color: initial;"> </span></em></figcaption></figure>
<p style="text-align: justify;"><span data-contrast="auto">Dans ce scénario d&rsquo;attaque,</span><span data-ccp-props="{&quot;335551550&quot;:6,&quot;335551620&quot;:6}"> </span></p>
<ul>
<li><span data-contrast="auto">Un attaquant pousse du code malveillant</span> <span data-contrast="auto">vers un repository </span><b><span data-contrast="none">GitLab</span></b><span data-contrast="auto">, déclenchant une pipeline dans GitLab CI qui déploie ce code dans un pod Kubernetes générique.</span><span data-ccp-props="{&quot;335551550&quot;:6,&quot;335551620&quot;:6}"> </span></li>
<li><span data-contrast="auto">Ce code ouvre un </span><b><span data-contrast="none">reverse shell</span></b><span data-contrast="auto">, permettant à l&rsquo;attaquant de se connecter à distance à l&rsquo;environnement </span><span data-contrast="none">Kubernetes.</span><span data-ccp-props="{&quot;335551550&quot;:6,&quot;335551620&quot;:6}"> </span></li>
<li><span data-contrast="auto">Depuis ce pod, l’attaquant exploite le fait que le </span><b><span data-contrast="none">compte de service </span></b><span data-contrast="auto">associé au nœud dispose de privilèges trop élevés (capacité de patcher des jetons dans le cluster) et patch le jeton du nœud administrateur par un jeton générique.</span><span data-ccp-props="{&quot;335551550&quot;:6,&quot;335551620&quot;:6}"> </span></li>
<li><span data-contrast="auto">Quand un redéploiement est déclenché, le pod malveillant ne peut qu’être déployer sur l&rsquo;ancien nœud administrateur bénéficiant toujours des droits admin.</span><span data-ccp-props="{&quot;335551550&quot;:6,&quot;335551620&quot;:6}"> </span></li>
<li><span data-contrast="auto">Cela permet donc à l&rsquo;attaquant d&rsquo;obtenir des </span><b><span data-contrast="none">privilèges élevés</span></b> <span data-contrast="auto">et de </span><b><span data-contrast="none">se latéraliser</span></b> <span data-contrast="auto">dans l&rsquo;infrastructure </span><span data-contrast="none">AWS</span><span data-contrast="auto">, compromettant ainsi le cluster Elastic Kubernetes Service (EKS) et les ressources associées.</span><span data-ccp-props="{&quot;335551550&quot;:6,&quot;335551620&quot;:6}"> </span></li>
</ul>
<p style="text-align: justify;"><span data-contrast="auto">Regardons maintenant un deuxième exemple :</span><span data-ccp-props="{&quot;335551550&quot;:6,&quot;335551620&quot;:6}"> </span></p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-27504 size-full" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/Diapositive3-e1758008947607.png" alt="Fig 3 - Condensé de plusieurs typologies d’attaques observées dans les CI/CD de nos clients " width="670" height="570" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/Diapositive3-e1758008947607.png 670w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/Diapositive3-e1758008947607-225x191.png 225w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/Diapositive3-e1758008947607-46x39.png 46w" sizes="auto, (max-width: 670px) 100vw, 670px" /></p>
<p style="text-align: center;"><i><span data-contrast="auto">Fig 3 &#8211; Condensé de plusieurs typologies d’attaques observées dans les CI/CD de nos clients</span></i><span data-ccp-props="{&quot;335551550&quot;:2,&quot;335551620&quot;:2}"> </span></p>
<p style="text-align: justify;"><span data-contrast="auto">Ce condensé, présenté à la </span><a href="https://www.riskinsight-wavestone.com/2022/10/lete-cybersecurite-de-wavestone/"><span data-contrast="none">DefCon &amp; BSides 2022</span></a><span data-contrast="auto">, met en évidence comment différents composants d’une chaîne peuvent être utilisés dans une attaque. Retrouvez cette présentation détaillée sur les nouveaux vecteurs d’attaque liés aux CI/CD en </span><a href="https://www.youtube.com/watch?v=a3SeASgtINY"><span data-contrast="none">vidéo </span></a><span data-contrast="auto">!</span><span data-ccp-props="{&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559731&quot;:708}"> </span></p>
<p> </p>
<h1 style="text-align: justify;"><b><span data-contrast="auto">Quelles recommandations pour sécuriser sa chaîne CI/CD ?</span></b><span data-ccp-props="{}"> </span></h1>
<p> </p>
<p style="text-align: justify;"><span data-contrast="auto">La chaîne CI/CD est désormais devenue un composant systémique des systèmes d’information pouvant être utilisée afin de compromettre des ressources critiques d’une entreprise.</span><span data-ccp-props="{&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559731&quot;:708}"> </span></p>
<p style="text-align: justify;"><span data-contrast="auto">Nos recommandations en matière de sécurité de la chaîne CI/CD peuvent être articulées autour de trois grands axes : la </span><b><span data-contrast="none">gestion des identités et des accès </span></b><span data-contrast="auto">(IAM), une meilleure</span> <b><span data-contrast="none">conception de la chaîne CI/CD</span></b><span data-contrast="auto">, ainsi que sa </span><b><span data-contrast="none">surveillance</span></b><span data-contrast="auto">. Ces recommandations suivent notamment le </span><a href="https://cyber.gouv.fr/publications/devsecops"><span data-contrast="none">guide</span></a><span data-contrast="auto"> DevSecOps de l’ANSSI.</span><span data-ccp-props="{&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559731&quot;:708}"> </span></p>
<p style="text-align: justify;"><img loading="lazy" decoding="async" class="aligncenter wp-image-27506 size-full" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/Diapositive4-e1758009062200.png" alt="Fig 4 - Trois grands axes de recommandations pour sécuriser une CI/CD " width="1028" height="452" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/Diapositive4-e1758009062200.png 1028w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/Diapositive4-e1758009062200-434x191.png 434w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/Diapositive4-e1758009062200-71x31.png 71w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/Diapositive4-e1758009062200-768x338.png 768w" sizes="auto, (max-width: 1028px) 100vw, 1028px" /></p>
<p style="text-align: center;"><i><span data-contrast="auto">Fig 4 &#8211; Trois grands axes de recommandations pour sécuriser une CI/CD</span></i><span data-ccp-props="{&quot;335551550&quot;:2,&quot;335551620&quot;:2}"> </span></p>
<h1> </h1>
<h1 style="text-align: justify;"><b><span data-contrast="auto">Gestion des identités et accès (IAM)</span></b><span data-ccp-props="{&quot;335551550&quot;:6,&quot;335551620&quot;:6}"> </span></h1>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-27508 size-full" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/Diapositive5-e1758009180837.png" alt="Fig 5 – Recommandations IAM" width="970" height="358" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/Diapositive5-e1758009180837.png 970w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/Diapositive5-e1758009180837-437x161.png 437w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/Diapositive5-e1758009180837-71x26.png 71w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/Diapositive5-e1758009180837-768x283.png 768w" sizes="auto, (max-width: 970px) 100vw, 970px" /></p>
<p style="text-align: center;"><i><span data-contrast="auto">Fig 5 – Recommandations IAM</span></i></p>
<h2> </h2>
<h2 style="text-align: justify;"><b><span data-contrast="auto">Gestion des identités</span></b><span data-ccp-props="{&quot;335551550&quot;:6,&quot;335551620&quot;:6}"> </span></h2>
<p style="text-align: justify;"><span data-contrast="auto">Outre les règles traditionnelles de gestion du cycle de vie des identités, il est recommandé d’utiliser systématiquement du </span><b><span data-contrast="none">Single-Sign On</span></b> <span data-contrast="auto">(SSO) avec authentification </span><b><span data-contrast="none">multifacteur</span></b><span data-contrast="auto"> (MFA) afin de réduire significativement le risque d’intrusion en CI/CD. Cela assurerait par exemple que les utilisateurs qui accèdent aux dépôts de code, qui signent un commit ou effectuent tout autre action privilégiée soient légitimés.</span><span data-ccp-props="{&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559731&quot;:708}"> </span></p>
<p> </p>
<h2 style="text-align: justify;"><b><span data-contrast="auto">Contrôle des accès</span></b><span data-ccp-props="{&quot;335551550&quot;:6,&quot;335551620&quot;:6}"> </span></h2>
<p style="text-align: justify;"><span data-contrast="auto">Il est nécessaire de limiter au maximum les droits des utilisateurs et des comptes de service selon leur fonction dans la chaîne CI/CD, toujours en suivant le </span><b><span data-contrast="none">principe du moindre privilège</span></b><span data-contrast="auto">. Les comptes sans mot de passe gérés par jetons d’accès doivent également être soumis à une gouvernance claire, avec des règles de cycle de vie, de rotation et de recertification régulière pour réduire les risques liés à leur utilisation.</span><span data-ccp-props="{&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559731&quot;:708}"> </span></p>
<p style="text-align: justify;"><span data-contrast="auto">Cela peut aussi se faire en passant par du </span><b><span data-contrast="none">contrôle d&rsquo;accès basé sur les rôles</span></b> <span data-contrast="auto">(RBAC). Par exemple, il ne serait pas utile de manière générale de donner un accès en écriture sur la configuration de la chaîne en elle-même à un développeur travaillant sur un projet spécifique.</span><span data-ccp-props="{&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559731&quot;:708}"> </span></p>
<p style="text-align: justify;"><span data-contrast="auto">De la même façon, il est pertinent de </span><b><span data-contrast="none">segmenter</span></b> <span data-contrast="auto">ses projets en utilisant différents dépôts de code et de s&rsquo;assurer que le compte orchestrateur d&rsquo;un projet n&rsquo;ait pas des droits excessifs sur le déploiement des projets auxquels il n&rsquo;est pas rattaché.</span><span data-ccp-props="{&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559731&quot;:708}"> </span></p>
<p> </p>
<h2 style="text-align: justify;"><b><span data-contrast="auto">Gestion des secrets</span></b><span data-ccp-props="{&quot;335551550&quot;:6,&quot;335551620&quot;:6}"> </span></h2>
<p style="text-align: justify;"><span data-contrast="auto">Les </span><b><span data-contrast="none">secrets</span></b><span data-contrast="auto"> en CI/CD désignent des données sensibles telles que des mots de passe, des clés d’API, des certificats ou des jetons d’accès. Ces secrets permettent notamment d’effectuer des actions privilégiées dans les pipelines et doivent être récupérés de façon automatique.</span><span data-ccp-props="{&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559731&quot;:708}"> </span></p>
<p style="text-align: justify;"><span data-contrast="auto">Des éditeurs comme </span><a href="https://www.hashicorp.com/products/vault"><span data-contrast="none">HashiCorp</span></a><span data-contrast="auto"> proposent des solutions de </span><b><span data-contrast="none">gestionnaires de secrets</span></b> <span data-contrast="auto">pour stocker facilement ses données sensibles et les chiffrer en transit et au repos. </span><span data-ccp-props="{&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559731&quot;:708}"> </span></p>
<p> </p>
<h1 style="text-align: justify;"><b><span data-contrast="auto">Conception de la CI/CD</span></b><span data-ccp-props="{&quot;335551550&quot;:6,&quot;335551620&quot;:6}"> </span></h1>
<p style="text-align: center;"><span data-ccp-props="{&quot;335551550&quot;:2,&quot;335551620&quot;:2}" data-wp-editing="1"> <img loading="lazy" decoding="async" class="wp-image-27510 size-full aligncenter" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/Diapositive6-e1758009516245.png" alt="Fig 6 – Recommandations sur la conception d’une CI/CD " width="977" height="397" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/Diapositive6-e1758009516245.png 977w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/Diapositive6-e1758009516245-437x178.png 437w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/Diapositive6-e1758009516245-71x29.png 71w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/Diapositive6-e1758009516245-768x312.png 768w" sizes="auto, (max-width: 977px) 100vw, 977px" /></span><i><span data-contrast="auto">Fig 6 – Recommandations sur la conception d’une CI/CD</span></i><span data-ccp-props="{&quot;335551550&quot;:2,&quot;335551620&quot;:2}"> </span></p>
<h2 style="text-align: justify;"><b><span data-contrast="auto">Segmentation des environnements</span></b><span data-ccp-props="{&quot;335551550&quot;:6,&quot;335551620&quot;:6}"> </span></h2>
<p style="text-align: justify;"><span data-contrast="auto">Il est nécessaire de préserver le </span><b><span data-contrast="none">cloisonnement</span></b><span data-contrast="auto"> entre les utilisateurs, les applications et l’infrastructure pour minimiser les impacts en cas de compromission. Reprenant des conseils de l’ANSSI, il faut considérer les actions réalisées par la chaîne CI/CD de production comme des actions d’administration et réduire au maximum le nombre d’utilisateurs pouvant y accéder. De plus, il est nécessaire d’utiliser du </span><b><span data-contrast="none">chiffrement bout à bout </span></b><span data-contrast="none">et de s’assurer qu’aucun environnement n’est</span> <b><span data-contrast="none">exposé sur internet.</span></b><span data-ccp-props="{&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559731&quot;:708}"> </span></p>
<p> </p>
<h2 style="text-align: justify;"><b><span data-contrast="auto">Intégration d’outils tiers</span></b><span data-ccp-props="{&quot;335551550&quot;:6,&quot;335551620&quot;:6}"> </span></h2>
<p style="text-align: justify;"><span data-contrast="auto">De la même manière que l’attaque SolarWinds, un grand nombre d’attaques de type </span><b><span data-contrast="none">supply-chain</span></b> <span data-contrast="auto">sont à l’origine un composant tiers compromis dans une chaîne CI/CD. Ces outils tiers sont souvent indispensables au bon fonctionnement des chaînes d’approvisionnement, ils peuvent aller d’un simple add-on sur un espace de développement, jusqu’à un outil de contrôle de version ou un orchestrateur.</span><span data-ccp-props="{&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559731&quot;:708}"> </span></p>
<p style="text-align: justify;"><span data-contrast="auto">Généralement, ces outils se voient accorder des droits leur permettant d’accéder à des ressources sensibles ou d’effectuer des actions spécifiques au sein de la chaîne CI/CD. Si une vulnérabilité sur un outil n’est pas patchée et est exploitée par un attaquant, la capacité d’intervention sera limitée car la résolution de la faille dépendra souvent du fournisseur de l’outil. Il convient donc d’adopter une </span><b><span data-contrast="none">gouvernance stricte</span></b><span data-contrast="auto"> et un processus de </span><b><span data-contrast="none">Third-Party Cyber Risk Management (TPCRM)</span></b> <span data-contrast="auto">pour ces outils tiers.</span><span data-ccp-props="{&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559731&quot;:708}"> </span></p>
<p> </p>
<h2 style="text-align: justify;"><b><span data-contrast="auto">Gestion des artefacts</span></b><span data-ccp-props="{&quot;335551550&quot;:6,&quot;335551620&quot;:6}"> </span></h2>
<p style="text-align: justify;"><span data-contrast="auto">Pour éviter de stocker des </span><b><span data-contrast="none">artefacts malveillants</span></b><span data-contrast="auto">, il est recommandé de les signer en amont de la chaîne pour assurer leur </span><b><span data-contrast="none">intégrité</span></b> <span data-contrast="auto">en vérifiant cette signature au moment de leur déploiement. De la même façon, il faut s’assurer de ne pas déployer des librairies malveillantes en réalisant des scans </span><b><span data-contrast="none">Software Composition Analysis</span></b> <span data-contrast="auto">(SCA) régulièrement. </span></p>
<p style="text-align: justify;"><span data-ccp-props="{&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559731&quot;:708}"> </span></p>
<h1 style="text-align: justify;"><b><span data-contrast="auto">Surveillance de la chaîne </span></b><span data-ccp-props="{&quot;335551550&quot;:6,&quot;335551620&quot;:6}"> </span></h1>
<p style="text-align: justify;"><img loading="lazy" decoding="async" class="aligncenter wp-image-27512 size-full" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/Diapositive7-e1758009660158.png" alt="Fig 7 – Recommandations de surveillance " width="638" height="352" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/Diapositive7-e1758009660158.png 638w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/Diapositive7-e1758009660158-346x191.png 346w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/Diapositive7-e1758009660158-71x39.png 71w" sizes="auto, (max-width: 638px) 100vw, 638px" /></p>
<p style="text-align: center;"><i><span data-contrast="auto">Fig 7 – Recommandations de surveillance</span></i><span data-ccp-props="{&quot;335551550&quot;:2,&quot;335551620&quot;:2}"> </span></p>
<h2 style="text-align: justify;"><b><span data-contrast="auto">Journalisation et détection</span></b><span data-ccp-props="{&quot;335551550&quot;:6,&quot;335551620&quot;:6}"> </span></h2>
<p style="text-align: justify;"><span data-contrast="auto">Garder un haut niveau de visibilité et de contrôle sur tous les composants de la chaîne permet d’assurer une maintenance plus facile et une réponse plus rapide en cas d’attaque. </span><span data-ccp-props="{&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559731&quot;:708}"> </span></p>
<p style="text-align: justify;"><span data-contrast="auto">Premièrement, il faut mettre en place une stratégie de </span><b><span data-contrast="none">journalisation</span></b><span data-contrast="auto"> adaptée, en maintenant des logs contenant uniquement ce qui est utile à la traçabilité et la responsabilité en cas d’incident. Il faut aussi s’assurer de stocker ces logs de façon sécurisée, ne pas y laisser des secrets en dur, ainsi que les partager efficacement à son Security information and Event management (SIEM)</span><span data-contrast="none">.</span><span data-ccp-props="{&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559731&quot;:708}"> </span></p>
<p style="text-align: justify;"><span data-contrast="auto">Aussi, pour réévaluer sa posture de sécurité et limiter au maximum les possibles chemins de compromission du pipeline CI/CD, des </span><b><span data-contrast="none">audits</span></b> <span data-contrast="auto">et des </span><b><span data-contrast="none">tests d’intrusion</span></b> <span data-contrast="auto">réguliers sont nécessaires. </span><span data-ccp-props="{&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559731&quot;:708}"> </span></p>
<p> </p>
<h2 style="text-align: justify;"><b><span data-contrast="auto">Réponse à incident</span></b><span data-ccp-props="{&quot;335551550&quot;:6,&quot;335551620&quot;:6}"> </span></h2>
<p style="text-align: justify;"><span data-contrast="auto">Enfin, il faut s’assurer d’inclure sa chaine CI/CD dans ses plans de réponses à incident au même titre que n’importe quel autre périmètre de son système d’information. Il convient par exemple d’avoir des sauvegardes de son code source et ses configurations ainsi que des plans de continuité d’activités en cas de panne d’un outil.</span><span data-ccp-props="{&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559731&quot;:708}"> </span></p>
<h1> </h1>
<h1 style="text-align: justify;"><b><span data-contrast="auto">En conclusion</span></b><span data-ccp-props="{&quot;335551550&quot;:6,&quot;335551620&quot;:6}"> </span></h1>
<p> </p>
<p style="text-align: justify;"><span data-contrast="auto">Les chaînes CI/CD sont devenues une véritable </span><b><span data-contrast="none">pierre angulaire</span></b> <span data-contrast="auto">dans les systèmes d’information. Ces composants systémiques sont aujourd’hui indispensables pour développer et déployer des applications. Pourtant, leur criticité dans les SI appelle à mettre en place des mesures de sécurité adaptées pour qu’elles ne deviennent pas un vecteur d’attaques. </span><span data-ccp-props="{&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559731&quot;:708}"> </span></p>
<p><span data-ccp-props="{&quot;335551550&quot;:2,&quot;335551620&quot;:2}"> <img loading="lazy" decoding="async" class="size-full wp-image-27514 aligncenter" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/Diapositive8-e1758009992895.png" alt="Fig 8 – Quelques composants systémiques et critiques en CI/CD " width="1280" height="340" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/Diapositive8-e1758009992895.png 1280w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/Diapositive8-e1758009992895-437x116.png 437w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/Diapositive8-e1758009992895-71x19.png 71w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/Diapositive8-e1758009992895-768x204.png 768w" sizes="auto, (max-width: 1280px) 100vw, 1280px" /></span></p>
<p style="text-align: center;"><i><span data-contrast="auto">Fig 8 – Quelques composants systémiques et critiques en CI/CD</span></i><span data-ccp-props="{&quot;335551550&quot;:2,&quot;335551620&quot;:2}"> </span></p>
<p style="text-align: justify;"><span data-contrast="auto">Outre les recommandations de cet article, d’autres mesures préventives peuvent se traduire plus précisément par des </span><b><span data-contrast="none">guides de durcissement</span></b> <span data-contrast="auto">pour des outils particuliers d’une chaîne. L’adoption d’une stratégie pertinente de </span><b><span data-contrast="none">formation</span></b> <span data-contrast="auto">des utilisateurs ainsi que de </span><b><span data-contrast="none">conduite du changement </span></b><span data-contrast="auto">est aussi nécessaire pour réussir ces transformations. </span><span data-ccp-props="{&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559731&quot;:708}"> </span></p>
<p> </p>
<p style="text-align: center;"><em>Un grand merci à Jeanne GRENIER pour sa précieuse contribution à la rédaction de cet article.</em></p>
<p>Cet article <a href="https://www.riskinsight-wavestone.com/2025/09/ci-cd-la-nouvelle-pierre-angulaire-du-si/">CI/CD : la nouvelle pierre angulaire du SI ? </a> est apparu en premier sur <a href="https://www.riskinsight-wavestone.com">RiskInsight</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.riskinsight-wavestone.com/2025/09/ci-cd-la-nouvelle-pierre-angulaire-du-si/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Gardez le contrôle de vos développements externes</title>
		<link>https://www.riskinsight-wavestone.com/2023/02/gardez-le-controle-de-vos-developpements-externes/</link>
					<comments>https://www.riskinsight-wavestone.com/2023/02/gardez-le-controle-de-vos-developpements-externes/#respond</comments>
		
		<dc:creator><![CDATA[Christophe Berenguer]]></dc:creator>
		<pubDate>Fri, 03 Feb 2023 10:00:00 +0000</pubDate>
				<category><![CDATA[Cloud & Next-Gen IT Security]]></category>
		<category><![CDATA[Eclairage]]></category>
		<category><![CDATA[CI/CD]]></category>
		<category><![CDATA[DevSecOps]]></category>
		<category><![CDATA[Outsourcing / Externalisation]]></category>
		<guid isPermaLink="false">https://www.riskinsight-wavestone.com/?p=19570</guid>

					<description><![CDATA[<p>Comment assurer la sécurité de vos applications malgré l&#8217;externalisation de leur développement ?   L’intégration de la sécurité dans les projets est un processus important pour les entreprises pour définir et intégrer les aspects sécurité au plus tôt dans les...</p>
<p>Cet article <a href="https://www.riskinsight-wavestone.com/2023/02/gardez-le-controle-de-vos-developpements-externes/">Gardez le contrôle de vos développements externes</a> est apparu en premier sur <a href="https://www.riskinsight-wavestone.com">RiskInsight</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<blockquote>
<p style="text-align: justify;">Comment assurer la sécurité de vos applications malgré l&rsquo;externalisation de leur développement ?</p>
</blockquote>
<p> </p>
<p style="text-align: justify;">L’intégration de la sécurité dans les projets est un processus important pour les entreprises pour définir et intégrer les aspects sécurité au plus tôt dans les produits. Cela évite d’augmenter le coût des remédiations si celles-ci n’ont pas été prévues et sont implémentées en fin de projet.</p>
<p style="text-align: justify;">Dans le cadre de développements, l’Agile Security et le DevSecOps définissent les processus et outils à mettre en place pour intégrer la sécurité au plus tôt, comme présenté dans notre article précédent donnant des exemples.</p>
<p style="text-align: justify;">Ces méthodes sont souvent définies sur les développements internes. Cependant, <strong>il est fréquent que les entreprises fassent appel à des prestataires externes pour développer une application ou une fonctionnalité particulière.</strong> Dans ce cas, il est important de s&rsquo;assurer que ces prestataires suivent des pratiques de sécurité rigoureuses et qu&rsquo;ils intègrent la sécurité dans leurs processus de développement aux mêmes standards que le demandeur. Ce qui amène la question suivante :</p>
<p> </p>
<h1 style="text-align: justify;">Développements externes : comment maintenir la confiance dans le code développé de manière externalisée ?</h1>
<p style="text-align: justify;">Dans la suite de cet article, nous entendons par code externe l&rsquo;ensemble des éléments de code qui n&rsquo;ont pas été développés en passant par une chaîne CI/CD internalisée. Par exemple, un développeur freelance utilisant la chaîne CI / CD interne ou un poste de travail entreprise n&rsquo;est pas considéré comme un code externe.</p>
<p style="text-align: justify;">Par ailleurs, nous considèrerons deux modèles de livraison d&rsquo;applicatif en fonction du modèle de développement utilisé par le prestataire :</p>
<ul style="text-align: justify;">
<li>la livraison du code source lui-même</li>
<li>la livraison de l&rsquo;exécutable, c&rsquo;est-à-dire le code déjà précompilé</li>
</ul>
<p style="text-align: justify;">Il est important de noter que ces deux modèles de livraison d&rsquo;applicatif ont des implications différentes en termes de cybersécurité et de DevSecOps.</p>
<p style="text-align: justify;"> </p>
<h1 style="text-align: justify;">Livraison de code</h1>
<p style="text-align: justify;">Dans le cas d&rsquo;une livraison de code, les prestataires externes remettent le code qu&rsquo;ils ont écrit, généralement sous forme de fichiers sources (par exemple des fichiers .java pour du code Java), à l&rsquo;entreprise. Cette dernière peut alors auditer, compiler et déployer le code sur ses propres serveurs.</p>
<p style="text-align: justify;">La livraison de code présente plusieurs avantages. Le premier avantage repose sur la flexibilité : en livrant le code source, l&rsquo;entreprise peut facilement effectuer des modifications et personnalisations sur le code. Elle peut également intégrer le code dans son environnement de développement et de déploiement (CI/CD) existant contenant l&rsquo;ensemble des outils de sécurité préconfigurés.</p>
<p style="text-align: justify;">L&rsquo;entreprise n&rsquo;a alors pas à placer sa confiance dans la sécurité de la chaîne CI du prestataire sur laquelle elle n&rsquo;a aucun contrôle. De plus, l&rsquo;entreprise ayant accès au code source peut également l’auditer et ainsi vérifier qu’il est sécurisé. Ces audits tendent à être plus exhaustifs puisque l&rsquo;auditeur a accès à beaucoup plus de détails sur le fonctionnement du code et peut effectuer à la fois une analyse statique et dynamique du code.</p>
<p style="text-align: justify;">En revanche, la livraison de code présente certains inconvénients. L&rsquo;entreprise doit disposer de compétences pour adapter les étapes de compilation et déploiement au contexte de production. Si elle ne dispose pas de ces compétences en interne, cela peut entraîner des coûts supplémentaires.x</p>
<p style="text-align: justify;">Voici donc quelques bonnes pratiques afin de maximiser la confiance dans le code livré :</p>
<ul style="text-align: justify;">
<li>Partager au plus tôt (contrat, réunion de lancement) les exigences attendues sur la sécurité dans le développement, les versions des logiciels, l&rsquo;outillage utilisé en interne pour le déploiement, la confidentialité du code source, etc. Certains clients demandent à ce que les développeurs externes aient un certain niveau de certification ou de formation (par exemple, un palier de formation sur Secure Code Warrior, dans un certain langage de programmation).</li>
<li>Définir et contractualiser les engagements sur les processus de remédiation des vulnérabilités identifiées après livraison du code et le suivi associé (outillage pour le suivi, SLA, etc.)</li>
<li>Implémenter un contrôle de type hash ou signature sur le code envoyé pour en assurer l&rsquo;intégrité et définir les modalités de transfert sécurisé du code source avec le prestataire</li>
<li>Intégrer le code reçu dans la chaîne CI/CD existante y compris les fichiers d&rsquo;Infrastructure as Code (IaC)</li>
<li>Réaliser les tests fonctionnels sécurité définis initialement lors du threat modeling : Evil User Stories et Security Stories</li>
</ul>
<p style="text-align: justify;"> </p>
<p style="text-align: justify;">Certaines organisations peuvent être confrontées à une situation où la notion de développeurs externes correspond à des développeurs d&rsquo;autres entités au sein d&rsquo;un même groupe. Ces entités peuvent avoir leur propres chaînes CI mais dépendre de la chaîne CD ou CI/CD de l&rsquo;équipe centrale de production.</p>
<p style="text-align: justify;"><img loading="lazy" decoding="async" class="aligncenter wp-image-19571 size-full" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2023/02/Image1.png" alt="" width="922" height="303" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2023/02/Image1.png 922w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/02/Image1-437x144.png 437w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/02/Image1-71x23.png 71w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/02/Image1-768x252.png 768w" sizes="auto, (max-width: 922px) 100vw, 922px" /></p>
<p style="text-align: justify;">Dans ces cas, une interconnexion des différentes chaînes CI sur la chaîne CI/CD centrale peut être envisagée. Cette solution permet aux différentes équipes de développer avec les outils leur convenant au mieux.</p>
<p style="text-align: justify;"> </p>
<p style="text-align: justify;">Le niveau de sécurité assuré par la chaîne CI/CD projet est idéalement équivalent à celui de la production mais ce n&rsquo;est pas nécessairement le cas. La chaîne CI/CD de production contrôle le code à déployer.</p>
<p style="text-align: justify;">Cependant, le contrôle de la sécurité est souvent effectué trop tard dans le processus de développement. Pour garantir une sécurité efficace dans les développements, il est crucial de s&rsquo;assurer que la sécurité est intégrée dès le début du cycle de développement (shift-left). Pour remédier à cela, il est recommandé d&rsquo;offrir des outils de sécurité en libre-service pour les équipes projet afin qu&rsquo;elles puissent identifier les vulnérabilités dès le début de leur développement en utilisant les outils cibles appropriés.</p>
<p style="text-align: justify;">Dans le cas contraire, les outils de sécurité de la chaîne CI/CD de production permettront d&rsquo;assurer la conformité aux règles du groupe sans ralentir la mise en production si des contrôles sécurités automatisés ont été mis en place au sein de la chaîne projet.</p>
<p style="text-align: justify;">Cette solution permet aussi à la production de s&rsquo;assurer de l&rsquo;utilisation des images (systèmes, docker, etc.) ou des artefacts (bibliothèques) validés par l&rsquo;entreprise.</p>
<p style="text-align: justify;">Ces interconnexions entre les différentes pipelines peuvent par exemple cloner la branche voulant être déployée par l&rsquo;équipe produit afin de les pousser en entrée de la chaine CD. Les équipes de production doivent cependant posséder les droits appropriés. Techniquement, le modèle de gestion des droits accordés (idéalement temporairement) doit répondre à la fois au besoin de faciliter l&rsquo;exécution et au besoin de provision des droits (manuelle vs. automatique), tout en limitant l&rsquo;accès à l&rsquo;ensemble des branches ou des projets afin de respecter le principe du moindre privilège.</p>
<p style="text-align: justify;">La majorité des bonnes pratiques citées précédemment s&rsquo;appliquent aussi afin de réduire le temps de mise en production.</p>
<p style="text-align: justify;">Bien que les méthodes décrites ci-dessus apparaissent comme les plus efficaces pour avoir un contrôle sur des applications développés par des tiers, les entreprises se retrouvent parfois à recevoir des exécutables sans accès au code source. Ceci peut par exemple être le cas pour des raisons de restrictions liées aux licences. Dans ce cas, certaines bonnes pratiques énoncées plus haut ne s&rsquo;appliquent pas, il est nécessaire de repenser la manière d&rsquo;intégrer les changements à la production pour ne pas négliger certains aspects sécurité.</p>
<p style="text-align: justify;"> </p>
<h1 style="text-align: justify;">Livraison d&rsquo;exécutable</h1>
<p style="text-align: justify;">Dans le cas d&rsquo;une livraison d&rsquo;exécutable, les prestataires externes remettent un fichier exécutable (par exemple, un fichier .exe pour des serveurs Windows) qui peut être directement exécuté par l&rsquo;entreprise sans compilation. Cette méthode de livraison est souvent utilisée pour les logiciels commerciaux qui nécessitent tout de même quelques ajustements de configuration.</p>
<p style="text-align: justify;">Dans ce cadre, l&rsquo;intégration dans la chaîne de déploiement est beaucoup plus limitée et seules quelques étapes classiques d&rsquo;une CD peuvent être effectuées sans que les étapes de sécurité de la chaîne CI puissent être vérifiée :</p>
<ul style="text-align: justify;">
<li>Réaliser un scan des artefacts</li>
<li>Réaliser un scan DAST pour détecter les vulnérabilités les plus classiques</li>
<li>Réaliser des tests d&rsquo;intrusion</li>
</ul>
<p style="text-align: justify;">Les rapports des outils de sécurité de la chaîne du prestataire effectuant le développement peuvent aussi être demandés. Ceci doit être inscrit en amont dans le contrat de prestation, avec les exigences sécurité sur le niveau de sécurité du code.</p>
<p style="text-align: justify;">Enfin, une signature du code pour s&rsquo;assurer de son intégrité est nécessaire lors de l&rsquo;échange et de l&rsquo;exécutable. Privilégiez pour cela les signatures via certificats plutôt que les empreintes hash puisque celles-ci permettent de vérifier l’origine (non-répudiation) en plus de l’intégrité de l&rsquo;exécutable.</p>
<p style="text-align: justify;"> </p>
<p style="text-align: justify;">Pour conclure, il est important pour les entreprises de s&rsquo;assurer de la qualité et de la sécurité du code livré par les prestataires externes, surtout lorsque ces derniers développent du code sur des chaînes CI externes. Il existe plusieurs moyens de se convaincre de la sécurité du code livré :</p>
<ul style="text-align: justify;">
<li>Des clauses contractuelles claires et précises peuvent aider à définir les attentes et les responsabilités de chacune des parties en ce qui concerne la qualité et la sécurité du code.</li>
<li>Le partage des spécifications et des attentes en matière de sécurité avec les prestataires externes peut également aider à s&rsquo;assurer que le code livré répond aux exigences de l&rsquo;entreprise.</li>
<li>L&rsquo;intégration avec les outils de la chaîne de développement interne peut faciliter la vérification de la qualité et de la sécurité du code, ainsi que la mise en place de tests automatisés. Ces intégrations soulèvent des défis à la fois techniques et de processus qu&rsquo;il faut anticiper pour faciliter le déploiement des développements externes.</li>
</ul>
<p style="text-align: justify;">En implémentant ces différentes approches, les entreprises peuvent renforcer leur confiance dans le code livré par les prestataires externes et s&rsquo;assurer de la sécurité de leurs applications.</p>
<p>Cet article <a href="https://www.riskinsight-wavestone.com/2023/02/gardez-le-controle-de-vos-developpements-externes/">Gardez le contrôle de vos développements externes</a> est apparu en premier sur <a href="https://www.riskinsight-wavestone.com">RiskInsight</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.riskinsight-wavestone.com/2023/02/gardez-le-controle-de-vos-developpements-externes/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
