<?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>DevSecOps - RiskInsight</title>
	<atom:link href="https://www.riskinsight-wavestone.com/tag/devsecops/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.riskinsight-wavestone.com/tag/devsecops/</link>
	<description>Le blog cybersécurité des consultants Wavestone</description>
	<lastBuildDate>Fri, 03 Nov 2023 17:10:12 +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>DevSecOps - RiskInsight</title>
	<link>https://www.riskinsight-wavestone.com/tag/devsecops/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>CI/CD dans AWS : la solution à tous vos problèmes ? Ce qu’il faut savoir.</title>
		<link>https://www.riskinsight-wavestone.com/2023/11/ci-cd-dans-aws-la-solution-a-tous-vos-problemes-ce-quil-faut-savoir/</link>
					<comments>https://www.riskinsight-wavestone.com/2023/11/ci-cd-dans-aws-la-solution-a-tous-vos-problemes-ce-quil-faut-savoir/#respond</comments>
		
		<dc:creator><![CDATA[Christophe Berenguer]]></dc:creator>
		<pubDate>Fri, 03 Nov 2023 14:46:17 +0000</pubDate>
				<category><![CDATA[Cloud & Next-Gen IT Security]]></category>
		<category><![CDATA[Eclairage]]></category>
		<category><![CDATA[AWS]]></category>
		<category><![CDATA[CICD]]></category>
		<category><![CDATA[DevSecOps]]></category>
		<guid isPermaLink="false">https://www.riskinsight-wavestone.com/?p=21741</guid>

					<description><![CDATA[<p>L’intégration de la sécurité directement dans la configuration des chaînes CI/CD, notamment par la pratique de DevSecOps, permet le développement d’applications sécurisées tout en augmentant la fréquence de livraison. Ceci permet de décharger les équipes de sécurité qui peuvent être...</p>
<p>Cet article <a href="https://www.riskinsight-wavestone.com/2023/11/ci-cd-dans-aws-la-solution-a-tous-vos-problemes-ce-quil-faut-savoir/">CI/CD dans AWS : la solution à tous vos problèmes ? Ce qu’il faut savoir.</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;">L’intégration de la sécurité directement dans la configuration des chaînes CI/CD, notamment par la pratique de DevSecOps, permet le développement d’applications sécurisées tout en augmentant la fréquence de livraison. Ceci permet de décharger les équipes de sécurité qui peuvent être un des facteurs limitant la fréquence de mise en production.</p>
<p style="text-align: justify;">Cependant, il est complexe de mettre en place une chaine CI/CD pertinente et ou on-premise qui demandent également un investissement des équipes d’infrastructure. Les solutions Cloud (PaaS) apparaissent alors comme un bon intermédiaire entre customisation de la chaine CI/CD et simplicité de mise en place. Les solutions cloud permettent également de provisionner des ressources sur demande de façon à s’adapter au mieux aux besoins métier.</p>
<p style="text-align: justify;">Il existe un grand nombre de solutions CI/CD dans le cloud permettant potentiellement de satisfaire les besoins à la fois de sécurité et d’efficacité d’une chaine de développement. Nous proposons ici de présenter notre vision des solutions d’Amazon Web Services (AWS) qui reste un des leader du marché.</p>
<p> </p>
<h3 style="text-align: justify;"><strong>Qu’est-ce que les services CI/CD AWS peuvent offrir en termes de fonctionnalités ? Quelle est leur valeur ajoutée ?</strong></h3>
<p style="text-align: justify;">Si vous ne connaissez pas AWS CodeCommit, CodePipeline, CodeBuild ou CodeDeploy, nous proposons une entrée en matière pour mieux comprendre le fonctionnement de l’environnement DevSecOps AWS. Afin de présenter un aperçu des outils proposé par AWS, nous décrivons dans les paragraphes suivants le fonctionnement des différents services.</p>
<p> </p>
<h2 style="text-align: justify;">Reprenons depuis le début : du DevOps au DevSecOps</h2>
<p style="text-align: justify;">Le DevOps constitue un élément clé du cycle de vie du développement logiciel des entreprises. Le DevOps s’appuie sur un outillage de type CI/CD. C’est une chaîne sur laquelle repose l’évolution du code source en une application livrée en production. La CI/CD accélère les phases de construction, de test et de déploiement afin d’augmenter la fréquence de livraison des applications. Cette accélération est notamment rendue possible par l’automatisation d’un grand nombre de tâches au sein d’un « pipeline CI/CD », comprenez une succession d’actions menant au déploiement en production.</p>
<p style="text-align: justify;">Le DevSecOps rajoute les aspects sécurité au DevOps et s’appuie sur certains outils internes à la CI/CD. Ces outils s’intègrent à tout niveau de la chaîne CI/CD afin de scanner le code source (SAST), les dépendances (SCA) etc. L’objectif est d’intégrer la sécurité au plus tôt, comme présenté dans notre <a href="https://www.riskinsight-wavestone.com/2022/09/securite-dans-lagilite-et-devsecops-des-destins-lies/">article précédent.</a></p>
<p style="text-align: justify;">La chaine CI/CD se positionne comme un composant d’intérêt majeur afin d’assurer la sécurité des développements. On peut aller jusqu’à dire que la chaîne CI/CD joue un rôle aussi important dans le développement sécurisé que celui qu&rsquo;occupe l&rsquo;AD dans la gestion des identités et des accès (IAM).</p>
<p> </p>
<h2 style="text-align: justify;">La CI/CD dans AWS</h2>
<p style="text-align: justify;">AWS offre une multitude de services permettant, en plus des services d’infrastructure classiques, de mettre en place des chaînes de développement continue (du code source à son déploiement) tout en assurant la bonne réalisation des tests de sécurité.</p>
<p> </p>
<figure id="attachment_21744" aria-describedby="caption-attachment-21744" style="width: 554px" class="wp-caption aligncenter"><img fetchpriority="high" decoding="async" class="wp-image-21744 size-full" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2023/11/Image1.png" alt="" width="554" height="388" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2023/11/Image1.png 554w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/11/Image1-273x191.png 273w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/11/Image1-56x39.png 56w" sizes="(max-width: 554px) 100vw, 554px" /><figcaption id="caption-attachment-21744" class="wp-caption-text"><em>Exemple d’une chaîne CI/CD majoritairement hébergé dans AWS</em></figcaption></figure>
<p style="text-align: justify;"> </p>
<p style="text-align: justify;">L’orchestrateur CodePipeline permet d’organiser et de lier les différentes étapes de la CI/CD. C’est cet outil qui coordonne la progression au sein du pipeline CI/CD en fonction des résultats des autres outils et services. Si un des outils renvoi un code d’échec, le pipeline peut être bloqué si nécessaire. Les raisons d’un échec du pipeline peuvent être nombreuses : score de sécurité du code insuffisant, échec du déploiement d’un outil…</p>
<p> </p>
<h3 style="text-align: justify;">La gestion du code : SCM et AWS CodeCommit</h3>
<p style="text-align: justify;">Les gestionnaires de versions de code (ou SCM : Source Code Manager) sont des outils indispensables dans le développement et sont le point de départ des chaînes d’intégration continue. Ces outils sont essentiels afin d’éditer du code de manière collaborative.</p>
<p style="text-align: justify;">A date, seuls 3 SCM disposent d’une intégration native : GitHub, BitBucket et leur solution propriétaire AWS CodeCommit. Pour toute autre intégration avec un SCM non supporté nativement, il est possible de créer une routine à base de fonctions serverless Lambda et de webhook (notification HTTP) de façon à télécharger le code source dans AWS S3 à chaque commit d’un développeur.</p>
<p style="text-align: justify;">AWS CodeCommit est le service SCM proposé par AWS. C’est un service d’hébergement de code permettant le contrôle de versions et la collaboration supportant les commandes Git, au même titre que GitHub ou GitLab. Ce service a l’avantage d’être pleinement intégré à l’environnement AWS ce qui facilite l’interconnexion avec les autres services AWS. L’utilisation d’AWS CodeCommit permet aussi d’utiliser la solution AWS IAM de gestion des identités et des accès ce qui évite la duplication d’un référentiel d’identité et la gestion des rôles au sein d’un SCM tiers.</p>
<p style="text-align: justify;">Néanmoins, AWS CodeCommit offre des fonctionnalités relativement limitées par rapport à GitHub (ex : UI et expérience utilisateur) et dispose d’une communauté bien plus faible que GitHub ou GitLab.</p>
<p style="text-align: justify;">Tout ceci fait d’AWS CodeCommit une solution convenable dans le cas d’une utilisation au sein d’un environnement entièrement AWS en raison de son intégration étroite à d’autres services AWS tel que AWS CodeBuild ou CodePipeline. En revanche, lorsque la chaîne CI/CD comprend plusieurs solutions externes à AWS, une autre solution telle que GitHub ou GitLab offrira plus de flexibilité.</p>
<p> </p>
<h3 style="text-align: justify;">La phase de build : AWS CodeBuild</h3>
<p style="text-align: justify;">Une fois le développement terminé, AWS CodeBuild prend le relais. Cet outil permet aussi bien de compiler/construire une application qu’exécuter des tests via des runners CI. Le service exécute  les instructions qui lui sont passées en entrée dans un fichier <em>buildspec.yml.</em> C’est un outil polyvalent et similaire à un outil CI classique tel que GitLab CI ou GitHub Actions.</p>
<p style="text-align: justify;"> </p>
<figure id="attachment_21746" aria-describedby="caption-attachment-21746" style="width: 877px" class="wp-caption aligncenter"><img decoding="async" class="wp-image-21746 size-full" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2023/11/Image2.png" alt="" width="877" height="526" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2023/11/Image2.png 877w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/11/Image2-318x191.png 318w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/11/Image2-65x39.png 65w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/11/Image2-768x461.png 768w" sizes="(max-width: 877px) 100vw, 877px" /><figcaption id="caption-attachment-21746" class="wp-caption-text"><em>Exemple d’intégration BitBucket dans AWS CodeBuild*</em></figcaption></figure>
<p> </p>
<p style="text-align: justify;">AWS CodeBuild permet également d’exécuter les tests de sécurité (SAST, SCA…) en installant et utilisant des applications sur ses runners. Prenons l’exemple de SonarQube, un outil de qualité de code avec un module SAST permettant de scanner du code source pour en ressortir les vulnérabilités. L’exécution fonctionne de la façon suivante :</p>
<p> </p>
<figure id="attachment_21748" aria-describedby="caption-attachment-21748" style="width: 605px" class="wp-caption aligncenter"><img decoding="async" class="wp-image-21748 size-full" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2023/11/Image3.png" alt="" width="605" height="363" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2023/11/Image3.png 605w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/11/Image3-318x191.png 318w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/11/Image3-65x39.png 65w" sizes="(max-width: 605px) 100vw, 605px" /><figcaption id="caption-attachment-21748" class="wp-caption-text"><em>Lancement d’un scan de code SonarQube avec AWS CodeBuild</em></figcaption></figure>
<p style="text-align: justify;"> </p>
<ol style="text-align: justify;">
<li>Lorsque le code source est modifié, une notification webhook (requête HTTP POST du SCM) est transmise à AWS (en pratique, cet évènement est géré par AWS EventBridge ou AWS CodePipeline) qui déclenche le test.</li>
<li>Le code source est dupliqué sur le runner CI qui effectue un scan de celui-ci et produit un rapport.</li>
<li>Ce rapport est ensuite envoyé à un serveur SonarQube (on-premise ou sur une EC2).</li>
<li>Après analyse SonarQube produit un rapport final indiquant le niveau de sécurité du code.</li>
<li>Ces résultats sont envoyés à CodeBuild qui interprète, selon les conditions présentes dans le fichier <em>yml</em>, si le test est réussi ou non.</li>
</ol>
<p style="text-align: justify;">Encore une fois, l’intérêt de CodeBuild réside essentiellement dans son intégration à l’environnement et permet une collaboration étroite avec les autres services AWS. Il sera par exemple plus aisé d’attribuer des rôles particuliers aux projets CodeBuild, d’utiliser AWS Secrets Manager (pour la gestion des secrets) ou de permettre le déploiement avec AWS CodeDeploy.</p>
<p> </p>
<h3 style="text-align: justify;">Le déploiement : AWS CodeDeploy</h3>
<p style="text-align: justify;">Le déploiement d’une application constitue la fin de son cycle de développement. Au sein d’AWS, le déploiement s’effectue via AWS CodeDeploy. Son rôle est de récupérer les et fichiers de configuration nécessaires dans les buckets S3 dédiés pour ensuite les déployer sur le serveur choisi (EC2…). Il diffère d’AWS Elastic Beanstalk qui permet de déployer une application uniquement grâce à son code (ne supporte généralement pas les langages compilés tel que le C/C++).</p>
<p style="text-align: justify;">Le fonctionnement de CodeDeploy permet de déployer du code sur n’importe quel type de serveur, qu’il soit hébergé par AWS ou non. Son fonctionnement est simple : il suffit d’installer un agent (CodeDeploy agent) sur le serveur cible. C’est cet agent qui est chargé de télécharger les artéfacts, de les installer et de lancer l’application.</p>
<p> </p>
<figure id="attachment_21750" aria-describedby="caption-attachment-21750" style="width: 605px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="wp-image-21750 size-full" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2023/11/Image4.png" alt="" width="605" height="347" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2023/11/Image4.png 605w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/11/Image4-333x191.png 333w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/11/Image4-68x39.png 68w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/11/Image4-120x70.png 120w" sizes="auto, (max-width: 605px) 100vw, 605px" /><figcaption id="caption-attachment-21750" class="wp-caption-text"><em>Déploiement d’une application sur une instance EC2 à l’aide d’AWS CodeDeploy et de GitHub (aucun artéfact n’est téléchargé depuis AWS S3 dans cet exemple)</em></figcaption></figure>
<p style="text-align: justify;"> </p>
<p style="text-align: justify;">Il est nécessaire de définir en amont les instances concernées par le déploiement et leur appliquer un tag AWS arbitraire permettant de les identifier. L’ensemble de ces instances constitue alors un « groupe de déploiement ». Lorsque le déploiement est déclenché, CodeDeploy sélectionne les instances concernées et publie ses instructions. La communication est néanmoins initiée par l’instance cible, c’est bien l’agent CodeDeploy qui contacte (toutes les secondes par défaut) le service CodeDeploy en scrutant pour de nouvelles instructions (polling mode). Ce mode de communication évite toute ouverture de port amenuisant la posture sécurité de l’instance.</p>
<p style="text-align: justify;">AWS CodeDeploy est un outil efficace qui permet le déploiement sur n’importe quel type d’infrastructure. Néanmoins, il nécessite l’installation d’un agent managé par AWS sur l’instance où est déployée le code, ce qui n’est pas toujours souhaitable en fonction du contexte client. On peut imaginer que le polling des instances EC2 peut impacter les performances d’une application critique ou être détecté comme malveillant par un EDR ou NDR (Network Detection &amp; Response).</p>
<p> </p>
<h2 style="text-align: justify;">Sécurisation de la CI/CD AWS</h2>
<p style="text-align: justify;">Au vu du rôle essentiel de la chaîne CI/CD dans le développement d’applications, il est essentiel de sécuriser cette infrastructure (sécurisation de l’outillage, intégration, configuration de la chaine…). Ci-dessous nous récapitulons quelques axes d’études à ne pas négliger lors de la mise en place d’une chaine CI/CD AWS. Ces grands principes peuvent être maitrisés via la création de politiques AWS de façon à alerter ou à imposer leur application.</p>
<p> </p>
<h3 style="text-align: justify;">Gestion des flux</h3>
<p style="text-align: justify;">Par défaut, les flux vers les services managés AWS (CodeBuild, CodeDeploy…) transitent sur internet avant de revenir vers l’instance cliente de la ressource. Afin d’éviter de faire transiter l’ensemble des flux vers les services AWS par internet, nous recommandons de mettre en place des <a href="https://docs.aws.amazon.com/vpc/latest/privatelink/aws-services-privatelink-support.html">interfaces VPC endpoints</a>. Ces points d’accès réseaux permettent aux instances au sein d’un VPC de contacter les services AWS comme s’ils étaient déployés au sein du VPC.</p>
<p> </p>
<h3 style="text-align: justify;">Gestion des secrets</h3>
<p style="text-align: justify;">Les secrets permettant d’accéder aux services ou à d’autres APIs ne peuvent être stockés en clair dans les SCM ou dans les fichiers de configuration de la chaine. On souhaite éviter toute fuite d’information confidentielle lors d’un accès &#8211; légitime ou non – à ces répertoires.</p>
<p style="text-align: justify;">Nous recommandons la mise en place d’un coffre-fort AWS Secret Manager chargé de stocker les secrets (ex : clés API SonarQube…) et de les distribuer aux services uniquement lorsque nécessaire. La récupération d’un secret se fait alors par un appel API à ce coffre-fort avec vérification des privilèges.</p>
<p> </p>
<h3 style="text-align: justify;">Supervision / monitoring</h3>
<p style="text-align: justify;">Tout comme n’importe quelle infrastructure, la chaine CI/CD nécessite d’être supervisée. Les solutions AWS natives pour la supervision de services sont AWS CloudWatch pour le recueil de logs, AWS EventBridge pour la création d’alertes et AWS SNS / SQS permettent l’envoie de notification à des groupes prédéfinis (mail, SMS, push notification…). La supervision de la chaine CI/CD permettrait d’alerter des mises en production dangereuses par exemple dans le cas où un projet souhaiterai contourner les politiques de sécurité mises en œuvre.</p>
<p> </p>
<h3 style="text-align: justify;">Identity and Access Management</h3>
<p style="text-align: justify;">La gestion des privilèges au sein d’AWS est traité selon le modèle <em>Rôle Based Access Control</em> (RBAC). Chaque action utilisateur requiert une permission spécifique. Par exemple, si un utilisateur souhaite accéder à un bucket S3, il doit d’abord obtenir la permission en lecture associée à la ressource correspondante au S3. On rappellera l’importance du principe du moindre privilège qui consiste à attribuer aux clients (utilisateurs &amp; services) uniquement les droits dont ils ont besoin.</p>
<p style="text-align: justify;">Les droits AWS permettent une configuration totale des accès de chaque client à chaque service / ressource. Cette flexibilité permet de définir précisément le périmètre d’autorisation de chaque acteur de l’environnement AWS. Néanmoins, la finesse des droits peut être fastidieuse à configurer dans une infrastructure CI/CD de grande ampleur.</p>
<p style="text-align: justify;">AWS propose des rôles prédéterminés qui permettent d’appliquer rapidement un ensemble de permissions. Néanmoins, ces rôles prédéfinis ne permettent souvent pas de respecter le principe du moindre privilège. Il est donc important de créer des rôles permettant d’appliquer le principe du moindre privilège sans rentrer dans une micro-gestion des droits.</p>
<p> </p>
<h2 style="text-align: justify;">Nos convictions sur la CI/CD AWS</h2>
<p style="text-align: justify;">Les solutions CI/CD présentes dans le Cloud AWS sont intéressantes et nativement intégrées avec les autres services AWS. L’intégration native est particulièrement appréciable notamment dans le cas d’un pipeline entièrement hébergé par AWS. L’appartenance de l’ensemble des outils au même environnement Cloud permet une grande flexibilité, une supervision ainsi que la gestion des droits et identités de manière centralisée. Cependant, le nombre d’options de configurations engendre aussi de la complexité rendant sa maintenance potentiellement fastidieuse au sein d’infrastructures conséquentes.</p>
<p style="text-align: justify;">AWS est un bon choix lorsqu’une entreprise a déjà migré la majeure partie de ses infrastructures chez AWS. Il est possible de tirer avantage des interconnexions entre services et notamment des puissantes solutions de gestion des accès et de monitoring avec peu de configuration additionnelle. En revanche, dans le cadre d’une utilisation simple et isolée, on ne privilégiera pas AWS CodeCommit ou AWS CodeBuild. Des solutions telles que GitHub / GitLab proposent des solutions plus complètes, une meilleure intégration avec d’autres éditeurs et une interface utilisateur plus accessible. Idem côté sécurité, AWS n&rsquo;offre pas nativement les services de sécurité CI/CD pour attester du code déployé (SAST, DAST…). AWS ne propose pas d’intégration native mais des services tiers peuvent toujours être intégrées relativement simplement.</p>
<p> </p>
<p>* « Exemple d&rsquo;intégration BitBucket dans AWS CodeBuild » &#8211; <a href="https://docs.aws.amazon.com/codebuild/latest/userguide/sample-bitbucket-pull-request.html">Source</a> </p>
<p>Cet article <a href="https://www.riskinsight-wavestone.com/2023/11/ci-cd-dans-aws-la-solution-a-tous-vos-problemes-ce-quil-faut-savoir/">CI/CD dans AWS : la solution à tous vos problèmes ? Ce qu’il faut savoir.</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/11/ci-cd-dans-aws-la-solution-a-tous-vos-problemes-ce-quil-faut-savoir/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>ChatGPT &#038; DevSecOps – Quels sont les nouveaux risques cybersécurité induits par l’utilisation de l’IA par les développeurs ? </title>
		<link>https://www.riskinsight-wavestone.com/2023/08/chatgpt-devsecops-quels-sont-les-nouveaux-risques-cybersecurite-induits-par-lutilisation-de-lia-par-les-developpeurs/</link>
					<comments>https://www.riskinsight-wavestone.com/2023/08/chatgpt-devsecops-quels-sont-les-nouveaux-risques-cybersecurite-induits-par-lutilisation-de-lia-par-les-developpeurs/#respond</comments>
		
		<dc:creator><![CDATA[Emma Barfety]]></dc:creator>
		<pubDate>Tue, 22 Aug 2023 15:00:00 +0000</pubDate>
				<category><![CDATA[Cloud & Next-Gen IT Security]]></category>
		<category><![CDATA[Eclairage]]></category>
		<category><![CDATA[chatgpt]]></category>
		<category><![CDATA[DevSecOps]]></category>
		<category><![CDATA[Intelligence Artificielle]]></category>
		<guid isPermaLink="false">https://www.riskinsight-wavestone.com/?p=21020</guid>

					<description><![CDATA[<p>En novembre 2022, l’agent conversationnel ChatGPT développé par OpenAI était rendu accessible au grand public. Depuis, dire que ce nouvel outil a suscité l’intérêt serait un euphémisme. Deux mois après son lancement, l’outil était l’application qui a connu la plus...</p>
<p>Cet article <a href="https://www.riskinsight-wavestone.com/2023/08/chatgpt-devsecops-quels-sont-les-nouveaux-risques-cybersecurite-induits-par-lutilisation-de-lia-par-les-developpeurs/">ChatGPT &amp; DevSecOps – Quels sont les nouveaux risques cybersécurité induits par l’utilisation de l’IA par les développeurs ? </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="none">En novembre 2022, l’agent conversationnel ChatGPT développé par OpenAI était rendu accessible au grand public. Depuis, dire que ce nouvel outil a suscité l’intérêt serait un euphémisme. Deux mois après son lancement, l’outil était l’application qui a connu la plus forte croissance de l’histoire avec près de 100 millions d’utilisateurs actifs par mois (record depuis battu par Threads).</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:240}"> </span></p>
<p style="text-align: justify;"><span data-contrast="none">A l’heure où les utilisateurs ont adopté ce produit en masse, cela pose aujourd’hui plusieurs questions fondamentales de cybersécurité. </span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:240}"> </span></p>
<p style="text-align: justify;"><span data-contrast="none">Les entreprises doivent-elles laisser leurs employés – spécifiquement les équipes de développement – continuer à utiliser cet outil sans aucune restriction ? Doivent-elles suspendre son usage le temps que les équipes de sécurité se saisissent de la question ? Ou alors faut-il simplement le bannir ?</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:240}"> </span></p>
<p style="text-align: justify;"><span data-contrast="none">Entre autres, certaines entreprises comme J.P. Morgan ou Verizon ont fait le choix d’en interdire l’usage. La société Apple <a href="https://www.businessinsider.com/chatgpt-companies-issued-bans-restrictions-openai-ai-amazon-apple-2023-7">avait initialement décidé d’autoriser l’outil pour ses employés avant de revenir sur sa décision et l’interdire</a></span><span data-contrast="none">. Amazon et Microsoft ont simplement demandé à leurs employés de faire attention aux informations partagées avec OpenAI.</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:240}"> </span></p>
<p style="text-align: justify;"><span data-contrast="none">L’approche la plus restrictive qui consiste à bloquer la plateforme permet d’éviter toutes questions de cybersécurité mais posent d’autres interrogations, notamment sur la performance et la productivité des équipes, et plus largement de la compétitivité des entreprises sur des marchés changeant rapidement.</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:240}"> </span></p>
<p style="text-align: justify;"><span data-contrast="none">Aujourd’hui, la question du blocage IT de l’intelligence artificielle reste d’actualité. Nous proposons de donner quelques éléments de réponses à cette question </span><b><span data-contrast="none">pour une catégorie de population particulièrement concernée par la question : les équipes de développement</span></b><span data-contrast="none">.</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:240}"> </span></p>
<p style="text-align: justify;"><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:240}"> </span></p>
<h2 style="text-align: justify;" aria-level="3"><b><span data-contrast="none">ChatGPT, collecte d’informations personnelles et RGPD</span></b><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:240}"> </span></h2>
<p style="text-align: justify;"><span data-contrast="none">Le produit d’OpenAI est libre d’accès et d’utilisation sous condition de créer un compte utilisateur. C’est une tendance connue : si un outil en ligne est gratuit, c’est que la source de revenu n’est pas issue de l’accès à l’outil. Pour le cas particulier de ChatGPT, les informations provenant de l’historique des millions d’utilisateurs permettent d’améliorer la plateforme et la qualité du modèle de langage. ChatGPT est un service </span><i><span data-contrast="none">en preview</span></i><span data-contrast="none"> : toute données entrée par l’utilisateur est susceptible d’être lue par un humain de façon à améliorer les services.</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:240}"> </span></p>
<p style="text-align: justify;"><span data-contrast="none">Actuellement ChatGPT ne semble pas conforme au RGPD et à la loi informatique et liberté mais aucune décision de justice n’a été rendue. Les conditions générales ne font actuellement pas mention du droit à la limitation du traitement, droit à la portabilité des données ou encore du droit d’opposition. La société OpenAI</span> <span data-contrast="none">basée aux Etats-Unis ne fait pas mention du RGPD mais rappelle que ChatGPT est conforme aux « CALIFORNIA PRIVACY RIGHTS ». En revanche, cette régulation ne s’applique que pour les résidents Californiens et ne s’applique donc pas au-delà des Etats-Unis d’Amérique. OpenAI ne propose pas non plus de solution pour permettre aux individus de vérifier si l’éditeur stocke leurs données personnelles, ni d’en réclamer leur suppression.</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:240}"> </span></p>
<p style="text-align: justify;"><span data-contrast="none">Enfin, lorsque nous nous attardons sur les </span><a href="https://openai.com/policies/privacy-policy"><span data-contrast="none">mentions légales</span></a><span data-contrast="none"> de ChatGPT, nous pouvons comprendre que : </span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:240}"> </span></p>
<ol style="text-align: justify;">
<li data-leveltext="%1." data-font="Calibri" data-listid="12" data-list-defn-props="{&quot;335552541&quot;:0,&quot;335559684&quot;:-1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769242&quot;:[65533,0],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;%1.&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}" aria-setsize="-1" data-aria-posinset="1" data-aria-level="1"><span data-contrast="none">OpenAI collecte les adresses IP de l’utilisateur, son type de navigateur Web, ainsi que les données et ses interactions avec le site web. Par exemple, cela inclut le type de contenu généré avec l’IA, les cas d’usages et les fonctions utilisées.</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:240}"> </span></li>
<li data-leveltext="%1." data-font="Calibri" data-listid="12" data-list-defn-props="{&quot;335552541&quot;:0,&quot;335559684&quot;:-1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769242&quot;:[65533,0],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;%1.&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}" aria-setsize="-1" data-aria-posinset="1" data-aria-level="1"><span data-contrast="none">OpenAI collecte aussi des informations sur l’activité de navigation des utilisateurs sur le web. Elle se réserve d’ailleurs le droit de partager ces informations personnelles avec des tiers, mais sans préciser lesquelles. </span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:240}"> </span></li>
</ol>
<p style="text-align: justify;"><span data-contrast="none">Tout ceci étant fait dans le but entre autres d’améliorer les services existants ou de développer de nouvelles fonctionnalités. </span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:240}"> </span></p>
<p style="text-align: justify;"><span data-contrast="none">Pour revenir aux populations de développeurs, on observe aujourd’hui que la majorité du code s’écrit de manière collaborative en utilisant des outils Git. Ainsi, il n’est pas rare pour un développeur de devoir comprendre un morceau de code qu’il n’a pas écrit lui-même. Plutôt que de demander au rédacteur en question ce qui peut prendre plusieurs minutes (au mieux), un développeur peut être tenté de se tourner vers ChatGPT afin d’obtenir une réponse de manière instantanée. La réponse peut parfois même être plus détaillée que celle que l’auteur du code pourrait fournir.</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:240}"> </span></p>
<table style="width: 100%; border-collapse: collapse; border-style: solid; background-color: #cccfca;">
<tbody>
<tr>
<td style="width: 100%;">
<p style="text-align: justify;"><span style="color: #ffffff;">En conséquence, il semble plus que nécessaire d’anonymiser les éléments que l’on partage avec le ChatBot. Sans quoi, certains individus pourraient avoir accès à des données confidentielles de manière illégitime.  </span></p>
<p style="text-align: justify;"><span style="color: #ffffff;">Ainsi, si un développeur souhaite comprendre les fonctionnalités d’un morceau de code qu’il ne connaît pas avec l’aide de ChatGPT, il convient de : </span></p>
<ul style="text-align: justify; list-style-type: circle;">
<li data-leveltext="" data-font="Symbol" data-listid="15" data-list-defn-props="{&quot;335552541&quot;:1,&quot;335559684&quot;:-2,&quot;335559685&quot;:1068,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}" aria-setsize="-1" data-aria-posinset="1" data-aria-level="1"><span style="color: #ffffff;">Morceler le code de façon à ne pas divulguer des fonctionnalités complètes, </span></li>
<li data-leveltext="" data-font="Symbol" data-listid="15" data-list-defn-props="{&quot;335552541&quot;:1,&quot;335559684&quot;:-2,&quot;335559685&quot;:1068,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}" aria-setsize="-1" data-aria-posinset="2" data-aria-level="1"><span style="color: #ffffff;">Supprimer tous les secrets et les mots de passe éventuels présent dans le code (cela étant une bonne pratique à respecter même sans utilisation de ChatGPT),  </span></li>
<li data-leveltext="" data-font="Symbol" data-listid="15" data-list-defn-props="{&quot;335552541&quot;:1,&quot;335559684&quot;:-2,&quot;335559685&quot;:1068,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}" aria-setsize="-1" data-aria-posinset="3" data-aria-level="1"><span style="color: #ffffff;">Changer les noms de variables étant trop explicites. </span></li>
</ul>
</td>
</tr>
</tbody>
</table>
<p><span style="font-size: revert; color: initial;" data-contrast="none"> </span><span style="font-size: revert; color: initial;" data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:240}"> </span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:240}"> </span></p>
<h2 style="text-align: justify;" aria-level="3"><b><span data-contrast="none">Les attaques classiques sur l’IA restent valables</span></b><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:240}"> </span></h2>
<p style="text-align: justify;"><span data-contrast="none">Plus de la moitié des entreprises se disent aujourd’hui prêtes et décidées à investir et à s’équiper d’outils fonctionnant grâce à l’intelligence artificielle. Par conséquent, il va être de plus en plus intéressant pour les attaquants d’exploiter ce type de technologie. D’autant que la notion cybersécurité est trop souvent ignorée lorsqu’on parle d’intelligence artificielle.</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559731&quot;:360,&quot;335559739&quot;:0,&quot;335559740&quot;:240}"> </span></p>
<p style="text-align: justify;"><span data-contrast="none">L’IA d’OpenAI n’est pas immunisée contre les </span><b><span data-contrast="none">attaques par empoisonnement</span></b><span data-contrast="none">. Même si l’IA est entraînée sur une base de connaissance conséquente, il est peu probable que l’ensemble de cette connaissance ait fait l’objet d’une revue manuelle. </span><b><span data-contrast="none">Si nous revenons au sujet de la génération de code, il est probable que selon certains entrants spécifiques l’IA propose du code contenant une porte dérobée (backdoor).</span></b><span data-contrast="none"> Même si ce cas de figure n’a pas été constaté, il n’est pas possible de prouver que celui-ci ne se produira pas selon un entrant particulier de l’utilisateur.</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:240}"> </span></p>
<p style="text-align: justify;"><span data-contrast="none">Nous pouvons également supposer que l’outil n’a été entrainé qu’à partir de sources web relativement sûres. Le LLM (Large Language Model) sur lequel repose ChatGPT : GPT3 pourrait être susceptible à « l’auto-empoisonnement ». En effet, à mesure que GPT3 est utilisée par des millions d’utilisateurs, il est très probable que du texte généré par GPT3 se retrouve au sein de contenus internet de confiance. L’entraînement de GPT4 pourrait donc théoriquement contenir du texte généré par GPT3. Ainsi, l’IA pourrait réaliser son apprentissage à partir de connaissances qui aurait été générées par des versions antérieures du même modèle LLM. Il sera intéressant de voir comment OpenAI contourne le problème d’empoisonnement à mesure que les évolutions sont apportées au modèle.</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:240}"> </span></p>
<p style="text-align: justify;"><span data-contrast="none">L’empoisonnement est une des techniques permettant d’ajouter des </span><i><span data-contrast="none">backdoors</span></i><span data-contrast="none"> dans le code généré par l’IA, mais ceci n’est pas l’unique vecteur d’attaque. Il est également possible qu’une compromission des systèmes OpenAI permettant de modifier la configuration de ChatGPT afin de suggérer du code contenant des portes dérobées sous certaines conditions. Un attaquant sournois pourrait aller jusqu’à filtrer sur l’identité du compte utilisateur de ChatGPT (par exemple un compte finissant par @grandclientduCAC40.com) pour décider ou non de générer du code contenant des backdoors et autres vulnérabilités. Il est donc nécessaire de rester vigilant du niveau de sécurité d’OpenAI de façon à éviter toute compromission par rebond.</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:240}"> </span></p>
<p style="text-align: justify;"><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559685&quot;:360,&quot;335559739&quot;:0,&quot;335559740&quot;:240}"> </span></p>
<h2 style="text-align: justify;" aria-level="3"><b><span data-contrast="none">Chat GPT et la génération de code</span></b><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:240}"> </span></h2>
<p style="text-align: justify;"><span data-contrast="none">La génération de code via ChatGPT est une des fonctionnalités qui peuvent faire gagner le plus de temps à un développeur au quotidien. Un développeur peut par exemple demander de rédiger un squelette de code pour une fonction puis compléter / corriger les erreurs de l’IA au besoin. Le risque principal induit par cette pratique est ici l’insertion de code malveillant au sein d’une application.</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:240}"> </span></p>
<p style="text-align: justify;"><span data-contrast="none">Cependant, le risque existait bien avant ChatGPT. Un développeur malveillant pourrait très bien obfusquer son code et insérer une </span><i><span data-contrast="none">backdoor</span></i><span data-contrast="none"> au sein d’une application de manière volontaire. En revanche l’introduction de l’IA apporte une nouvelle dimension au risque dès lors qu’un utilisateur bien intentionné pourrait introduire une </span><i><span data-contrast="none">backdoor</span></i> <b><span data-contrast="none">malgré lui</span></b><span data-contrast="none">. Ceci est à mettre en perspective de la </span><b><span data-contrast="none">maturité de l’entreprise vis-à-vis de sa chaine CI/CD. La réalisation de scans SAST, DAST et d’audits divers avant la mise en production permet entre-autres de réduire le risque. </span></b><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:240}"> </span></p>
<p style="text-align: justify;"><span data-contrast="none">Nous avons constaté que la génération de code via ChatGPT ne suit pas par défaut les meilleures pratiques de sécurité. </span><b><span data-contrast="none">L’outil peut générer du code utilisant des fonctions non sécurisées comme </span></b><b><i><span data-contrast="none">scanf</span></i></b><b><span data-contrast="none"> en langage C</span></b><span data-contrast="none">. Nous avons proposé à l’outil la requête suivante : « Est-ce que tu peux écrire une fonction en langage C qui permet de créer une liste de nombres entiers grâce à des inputs d’un utilisateur ? ».</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:240}"> </span></p>
<p> </p>
<p><img loading="lazy" decoding="async" class="wp-image-21040 size-full aligncenter" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2023/08/Article-ChatGPT1.png" alt="xtrait de code - Code généré par ChatGPT suite à l’entrée utilisateur décrite ci-dessus " width="732" height="624" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2023/08/Article-ChatGPT1.png 732w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/08/Article-ChatGPT1-224x191.png 224w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/08/Article-ChatGPT1-46x39.png 46w" sizes="auto, (max-width: 732px) 100vw, 732px" /></p>
<p style="text-align: center;"><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:240}"> <em>Code généré par ChatGPT suite à l’entrée utilisateur décrite ci-dessus</em></span></p>
<p style="text-align: justify;"><span data-contrast="none">En analysant le code généré par ChatGPT on remarque – entre autres – trois vulnérabilités importantes : </span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:240}"> </span></p>
<p style="text-align: justify;"><span data-contrast="none">(1) Pour débuter, l’utilisation de la fonction scanf permet à l’utilisateur de rentrer n’importe quelle longueur d’input (int overflow…). Il n’y a pas de validation de l’input de l’utilisateur, ce qui reste aujourd’hui un type de vulnérabilité phare remonté par l’OWASP TOP10. </span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:240}"> </span></p>
<p style="text-align: justify;"><span data-contrast="none">(2) Additionnellement, la fonction est sensible au buffer overflow : au-delà du 100</span><span data-contrast="none">ème</span><span data-contrast="none"> input, la liste </span><i><span data-contrast="none">list </span></i><span data-contrast="none">ne contient plus de place pour stocker des données additionnelles ce qui peut soit terminer l’exécution par une erreur ou alors permettre à un utilisateur malveillant d’écrire des données dans une zone de la mémoire qui ne serait pas autorisée </span><b><span data-contrast="none">afin de prendre le contrôle de l’exécution du programme</span></b><span data-contrast="none">. </span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:240}"> </span></p>
<p style="text-align: justify;"><span data-contrast="none">(3) Pour finir, ChatGPT alloue de la mémoire à la liste via la fonction </span><i><span data-contrast="none">malloc</span></i><span data-contrast="none"> mais oublie de libérer la mémoire une fois que la liste n’est plus utilisée ce qui pourrait entrainer des </span><b><span data-contrast="none">soucis de fuite de mémoire </span></b><span data-contrast="none">(</span><i><span data-contrast="none">memory leak</span></i><span data-contrast="none">).</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:240}"> </span></p>
<p style="text-align: justify;"><span data-contrast="none">Chat GPT ne génère donc pas de code de manière sécurisée par défaut contrairement à un développeur expérimenté. </span><b><span data-contrast="none">L’outil propose du code contenant des vulnérabilités critiques</span></b><span data-contrast="none">. Si l’utilisateur se révèle assez sensibilisé à la cybersécurité, il est possible de demander à ChatGPT d’identifier les vulnérabilités contenues dans son propre code : </span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:240}"> </span></p>
<p><img loading="lazy" decoding="async" class="wp-image-21042 size-full" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2023/08/Article-ChatGPT2.png" alt="" width="814" height="329" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2023/08/Article-ChatGPT2.png 814w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/08/Article-ChatGPT2-437x177.png 437w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/08/Article-ChatGPT2-71x29.png 71w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/08/Article-ChatGPT2-768x310.png 768w" sizes="auto, (max-width: 814px) 100vw, 814px" /></p>
<p style="text-align: center;"><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:240}"> <em>ChatGPT est capable de détecter les vulnérabilités sur le code ayant été généré par ses soins.</em></span></p>
<p style="text-align: justify;"><span data-contrast="none">Pour résumer, la génération de code via ChatGPT n’introduit pas de nouveaux risques mais </span><b><span data-contrast="none">accentue la probabilité qu’une vulnérabilité se retrouve en production</span></b><span data-contrast="none">. Les recommandations peuvent varier en fonction de la maturité et de la confiance qu’a l’entreprise dans la sécurisation du code livré en production. Une chaine CI/CD et des processus robustes avec des scans de sécurité automatiques (SAST, DAST, FOSS…) a de grande chance de détecter les vulnérabilités les plus critiques. </span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:240}"> </span></p>
<p style="text-align: justify;"><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:240}"> </span></p>
<p style="text-align: justify;"><span data-contrast="none">Ainsi, ChatGPT n’est pas la seule ressource accessible en ligne par les utilisateurs pouvant permettre l’exfiltration de données (Google Drive, WeTransfer…). Le risque de fuite de données plane déjà sur toute organisation n’ayant pas implémenté une allow-list sur le proxy internet de ses utilisateurs. Le facteur différenciant dans le cas de ChatGPT est que l’utilisateur ne se rend pas nécessairement compte du caractère public des données postées sur la plateforme. Les bénéfices et le gain de temps apportés par l’outil sont bien souvent trop tentant pour l’utilisateur lui faisant oublier les bonnes pratiques. En ce sens ChatGPT n’apporte pas de nouveaux risques mais accentue les probabilités de fuite de données.</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:240}"> </span></p>
<p style="text-align: justify;"><b><span data-contrast="none">Une organisation dispose donc de deux options afin d’empêcher la fuite de donnée via ChatGPT : (1) former et sensibiliser ses utilisateurs puis leur faire confiance, ou (2) bloquer l’outil.</span></b><span data-contrast="none"> </span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:240}"> </span></p>
<p style="text-align: justify;"><span data-contrast="none">Pour les population de développeurs, ici encore la génération de code via ChatGPT n’introduit pas de nouveaux risques mais accentue la probabilité qu’une vulnérabilité se retrouve en production. Il revient à l’entreprise d’évaluer les capacités de sa chaine CI/CD et ses processus de mise en production afin d’évaluer les risques résiduels notamment concernant les faux-négatifs des outils de sécurité intégrés (SAST, DAST…).  </span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:240}"> </span></p>
<p style="text-align: justify;"><span data-contrast="none">Afin de prendre une décision éclairée, une </span><b><span data-contrast="none">analyse de risques reste un bon outil pour prendre une décision quant au blocage éventuel de l’accès à ChatGPT</span></b><span data-contrast="none">. Les aspects suivants doivent être considérés : niveau de sensibilisation des utilisateurs, sensibilité de la donnée manipulée, paradigme de filtrage internet, maturité de la chaine CI/CD&#8230; Ces analyses sont bien sûr à mettre en perspective avec les potentiels gains en productivité des équipes.</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}"> </span></p>
<p>Cet article <a href="https://www.riskinsight-wavestone.com/2023/08/chatgpt-devsecops-quels-sont-les-nouveaux-risques-cybersecurite-induits-par-lutilisation-de-lia-par-les-developpeurs/">ChatGPT &amp; DevSecOps – Quels sont les nouveaux risques cybersécurité induits par l’utilisation de l’IA par les développeurs ? </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/08/chatgpt-devsecops-quels-sont-les-nouveaux-risques-cybersecurite-induits-par-lutilisation-de-lia-par-les-developpeurs/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>
		<item>
		<title>Sécurité dans l’agilité et DevSecOps : des destins liés ?</title>
		<link>https://www.riskinsight-wavestone.com/2022/09/securite-dans-lagilite-et-devsecops-des-destins-lies/</link>
					<comments>https://www.riskinsight-wavestone.com/2022/09/securite-dans-lagilite-et-devsecops-des-destins-lies/#respond</comments>
		
		<dc:creator><![CDATA[Emma Barfety]]></dc:creator>
		<pubDate>Wed, 21 Sep 2022 16:00:00 +0000</pubDate>
				<category><![CDATA[Cloud & Next-Gen IT Security]]></category>
		<category><![CDATA[Eclairage]]></category>
		<category><![CDATA[CICD]]></category>
		<category><![CDATA[DevSecOps]]></category>
		<category><![CDATA[sécurité agile]]></category>
		<guid isPermaLink="false">https://www.riskinsight-wavestone.com/?p=18767</guid>

					<description><![CDATA[<p>Faut-il obligatoirement se lancer dans le DevSecOps parce que les projets travaillent en Agile&#160;? Quelques questions doivent être posées afin d’y voir plus clair. Dans les articles précédents, nous avions beaucoup parlé de la façon dont la sécurité devait s’organiser...</p>
<p>Cet article <a href="https://www.riskinsight-wavestone.com/2022/09/securite-dans-lagilite-et-devsecops-des-destins-lies/">Sécurité dans l’agilité et DevSecOps : des destins liés ?</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;">Faut-il obligatoirement se lancer dans le DevSecOps parce que les projets travaillent en Agile&nbsp;? Quelques questions doivent être posées afin d’y voir plus clair.</p>
<p style="text-align: justify;">Dans les articles précédents, nous avions beaucoup parlé de la façon dont la sécurité devait s’organiser pour accompagner des projets agiles&nbsp;: <a href="https://www.riskinsight-wavestone.com/2019/12/cybersecurity-transformation-agile/">le changement de paradigme sécurité pour assurer le Security by design</a>, comment organiser les équipes SSI face à ces changements, les méthodologies possibles pour tout de même continuer à <a href="https://www.riskinsight-wavestone.com/2020/06/comment-conduire-un-atelier-cybersecurite-agile/">analyser les risques</a> ou les <a href="https://www.riskinsight-wavestone.com/2021/03/homologation-securite-et-agilite-numerique-cest-possible/">homologations de sécurité</a> (et un rappel global de ce à quoi ressemble la <a href="https://www.riskinsight-wavestone.com/2021/10/la-securite-dans-lagile/">sécurité dans l’agile</a>).</p>
<p style="text-align: justify;">Ces articles évoquaient surtout les <strong>changements de paradigme organisationnel et méthodologique</strong> que vivaient les équipes SSI, afin de pouvoir accompagner au mieux les projets, qui délivrent du code beaucoup plus rapidement.</p>
<h2 style="text-align: justify;">Les liens entre Agilité et DevOps</h2>
<p style="text-align: justify;">En décalant un peu le regard vers les <strong>équipes de développement</strong>, et avec des retours d’expérience terrain, il s’agit aujourd’hui de traiter plus en profondeur les <strong>solutions logicielles et les processus permettant à la sécurité de venir s’intégrer directement dans les chaines de développement</strong> et dans le quotidien des développeurs, là où méthodologies Agile et DevOps, bien qu’elles visent les mêmes objectifs d’apport de valeur aux clients, vont s’exprimer différemment.</p>
<p style="text-align: justify;">Le mouvement DevOps étant plus tardif que les méthodes Agile, les équipes de développement se sont organisées plus tôt que les opérations dans un mode itératif et rapide pour la livraison d’applications et de service. Les principes DevOps viennent pallier cet écart, en <strong>rapprochant les équipes Opérations et Développement</strong>, et en proposant encore des solutions d’accélération des livraisons, par l’automatisation forte du cycle de vie du développement logiciel, via les pipelines CI/CD. Au final, les deux approches viennent s’alimenter et se compléter, pour livrer plus vite et avec une meilleure qualité, grâce à l’automatisation d’un grand nombre de tâches, évitant ainsi des erreurs humaines.</p>
<h2 style="text-align: justify;">Et la sécurité ?</h2>
<p style="text-align: justify;">Pour revenir à notre marotte, il s’agit désormais <strong>d’automatiser la sécurité le plus possible</strong>. Au même titre que les méthodes Agile et DevOps, la Sécurité dans l’Agile et le DevSecOps sont également très liés. L’idée est en effet de rapprocher toujours plus la sécurité des équipes de développement, mais aussi de la rendre aussi rapide. Un profil clé des principes de sécurité dans l’agile est tout à fait adapté au DevSecOps&nbsp;: celui du <strong>Security Champion</strong>. Tel que décrit dans l’article «&nbsp;<a href="https://www.riskinsight-wavestone.com/2021/01/comment-structurer-les-equipes-ssi-pour-assurer-la-prise-en-compte-de-la-securite-dans-lagile-a-lechelle%e2%80%af/">Comment structurer les équipes SSI pour assurer la prise en compte de la sécurité dans l’Agile à l’échelle&nbsp;?&nbsp;</a>», c’est l’ambassadeur sécurité au sein des équipes de développement. Il fait partie intégrante de l’équipe produit et est présent à chaque sprint. Son rôle est de s’assurer que la sécurité est bien prise en compte à chaque sprint dans le développement des User Stories (en intégrant des Evil ou Security User Stories déjà écrites, ou en aidant à les rédiger). Le Security Champion peut être issu du monde des développements, et monter en compétence sur les sujets sécurité, avec l’aide de la Guilde Sécurité.</p>
<p style="text-align: justify;">Pour aller un cran plus loin, le Security Champion peut aussi aider son équipe à comprendre les solutions automatisées de sécurité, avec l’aide bien sûr d’un spécialiste de l’équipe SSI, qui l’aidera à monter en compétences sur la <strong>sécurité applicative</strong>.</p>
<p style="text-align: justify;">Cela étant dit, est-ce parce que Sécurité Agile et DevSecOps sont liés qu’il faut automatiquement se lancer dans un programme de transformation vers le DevSecOps&nbsp;?</p>
<h2 style="text-align: justify;">Quelques questions préparatoires pour se lancer dans le DevSecOps.</h2>
<p style="text-align: justify;">Dans la droite lignée de tout projet de transformation important, il convient de s’interroger sur les raisons de le faire, s’assurer d’avoir un plan <strong>et le bon sponsorship</strong>. Le DevSecOps n’échappe pas à la règle, même si les questions à se poser restent spécifiques.</p>
<p style="text-align: justify;">&nbsp;</p>
<h3 style="text-align: justify;">Définition des périmètres et objectifs</h3>
<p style="text-align: justify;">Tout d’abord, et avant de se lancer, il faut identifier&nbsp;ses <strong>leviers de motivation</strong>. Est-ce pour livrer plus vite&nbsp;? mieux&nbsp;? de façon plus sécurisée&nbsp;? Les problématiques rencontrées par les équipes Dev, Sec et Ops seront-elles résolues en rapprochant les compétences&nbsp;? Ceci afin de de prioriser les efforts et s’assurer de pouvoir «&nbsp;vendre&nbsp;» le projet aux sponsors. Ensuite, le <strong>périmètre</strong> doit être identifié, en essayant de le délimiter entre <strong>périmètre transitoire</strong> (à court et moyen termes) et <strong>périmètre cible </strong>(à long terme). On peut commencer le travail sur un portfolio applicatif, une factory pour tester, puis créer la roadmap pour déployer le modèle au périmètre total.</p>
<p style="text-align: justify;">La <strong>maturité actuelle</strong> de l’organisation en termes d’outillage et d’automatisation dans le cycle de développement des produits doit être évaluée. Une bonne connaissance des outils utilisés dans les chaines est un prérequis. Si trop de zones d’ombre persistent, il faut au préalable démarrer un <strong>inventaire des outils existants et un état des lieux des pratiques et processus en place</strong>.</p>
<p style="text-align: justify;">&nbsp;</p>
<h3 style="text-align: justify;">Présence des briques essentielles de la chaine CICD</h3>
<p style="text-align: justify;">Avant de pouvoir intégrer la sécurité dans les chaines de développement de façon automatisée, il faut d’abord s’assurer d’avoir une bonne vision de ce à quoi peut ressembler une chaine à l’état de l’art. Il est possible de se lancer dans un programme de DevSecOps sans chaines opérationnelles déjà installées, mais avoir une idée claire de la cible est clé. Voici quelques exemples de solutions&nbsp;:</p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-18768 size-full" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2022/09/Image1.png" alt="" width="929" height="480" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2022/09/Image1.png 929w, https://www.riskinsight-wavestone.com/wp-content/uploads/2022/09/Image1-370x191.png 370w, https://www.riskinsight-wavestone.com/wp-content/uploads/2022/09/Image1-71x37.png 71w, https://www.riskinsight-wavestone.com/wp-content/uploads/2022/09/Image1-768x397.png 768w" sizes="auto, (max-width: 929px) 100vw, 929px" /></p>
<p style="text-align: center;"><em>Figure 1 – les briques essentielles d’une chaine CICD (DevOps)</em></p>
<p style="text-align: justify;">L’entreprise doit être capable également de quantifier les développements réalisés en interne ou en externe, avec des agences de développements. En effet, une chaine complète sera utile pour des entreprises développant principalement en interne&nbsp;: elle est un outil indispensable pour développer vite, avec les bons outils de sécurité intégrés à la chaine. Dans le cas de développements externes, le principe est différent&nbsp;et la sécurité moins «&nbsp;facile&nbsp;» à contrôler&nbsp;: les agences ne donneront pas forcément accès à leurs chaines ou à leur code source. Elles pourront se contenter de livrer des exécutables ou des images, via des dépôts distants par exemple. Intégrer la sécurité se fait donc par des moyens détournés et plus traditionnels&nbsp;: via des Plans d’Assurance Sécurité (PAS) par exemple, ou alors en obligeant contractuellement les agences à former leurs développeur.euse.s en sécurité applicative, via des solutions logicielles de formation (par exemple CodeWarrior, qui délivre des «&nbsp;ceintures&nbsp;» en fonction des niveaux de formation atteints).</p>
<p style="text-align: justify;">Ensuite, une des idées les plus importantes est que la <strong>chaine se construit par étapes</strong>. Dans la lignée du «&nbsp;test and learn&nbsp;» cher aux méthodes Agile, une version «&nbsp;pilote&nbsp;» de la chaine peut être déployée pour une équipe produit volontaire pour la tester sur quelques semaines/mois. Le déploiement se fait ensuite progressivement, selon une feuille de route préétablie. Dans la plupart des cas rencontrés, les entreprises mettent d’abord en place une chaine DevOps, avec quelques outils d’analyse de code (le plus souvent orientés qualité), puis, une fois que la chaine est considérée comme fonctionnelle, les outils de sécurité y sont rajoutés.</p>
<p style="text-align: justify;">Cependant, il pourrait être intéressant de considérer les outils de sécurité comme partie intégrante de la chaine CICD. Ils pourraient ainsi y être intégrés au fur et à mesure, selon une feuille de route priorisée, comme proposé ci-après.</p>
<p style="text-align: justify;">Voici quelques exemples d’outils constituant la brique sécurité&nbsp;:</p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-18770 size-full" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2022/09/Image2.png" alt="" width="1225" height="344" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2022/09/Image2.png 1225w, https://www.riskinsight-wavestone.com/wp-content/uploads/2022/09/Image2-437x123.png 437w, https://www.riskinsight-wavestone.com/wp-content/uploads/2022/09/Image2-71x20.png 71w, https://www.riskinsight-wavestone.com/wp-content/uploads/2022/09/Image2-768x216.png 768w" sizes="auto, (max-width: 1225px) 100vw, 1225px" /></p>
<p style="text-align: center;"><em>Figure 2 – Exemples de solutions de sécurité à intégrer à la chaine CICD (DevSecOps)</em></p>
<p style="text-align: justify;">D’après nos retours d’expérience terrain, certains outils sont plus «&nbsp;simples&nbsp;» à mettre en œuvre et donc implémentés en priorité.</p>
<p style="text-align: justify;"><strong>Outils SAST (Static Application Security Testing)</strong></p>
<p style="text-align: justify;">Comme évoqué précédemment, ces outils sont presque toujours déjà présents dans la chaine initiale, dans leur format de test de la qualité du code. Il s’agit ici de les <strong>configurer pour aller un cran plus loin</strong> et faire de l’analyse sécurité du code statique. Ce type d’outil peut être intégré à plusieurs endroits de la chaine, dans une logique de «&nbsp;<strong>shift-left&nbsp;</strong>», c’est-à-dire d’intégration de la sécurité au plus tôt dans la chaine. Il peut être positionné directement sur les IDE (integrated development environment) des développeurs, afin de leur faire des retours « en temps réels&nbsp;» sur les erreurs pouvant introduire des vulnérabilités. Il peut également être utilisé au moment de la compilation du code.</p>
<p style="text-align: justify;">Un inconvénient de ce type d’outils est le nombre assez élevé de faux positifs en résultat. La configuration est évolutive et s’améliore avec le temps. Cependant, la gouvernance et les processus autour de l’outil doivent être pensé en amont&nbsp;: une équipe de <strong>triage des vulnérabilités</strong> peut être une solution&nbsp;; la formation des Security Champions à repérer les faux positifs également, avec l’aide d’expert en sécurité applicative (un Application Security Engineer par exemple).</p>
<p style="text-align: justify;"><strong>Outils SCA (Software Composition Analysis)</strong></p>
<p style="text-align: justify;">Ces outils devraient logiquement être installés en priorité, les développeurs faisant une grande consommation de <strong>bibliothèques open source</strong> pour développer leurs produits. Le SCA va vérifier les composants de la bibliothèque, tels que les licences, les dépendances, les vulnérabilités et potentiels <em>exploits</em>. Plusieurs attaques trouvent en effet leur origine dans une utilisation non contrôlée des librairies open source pouvant contenir des vulnérabilités critiques (comme le Log4Shell <em>exploit</em>).</p>
<p style="text-align: justify;">Cet outil peut être utilisé comme le SAST, sur les IDE ou avant la compilation du code.</p>
<p style="text-align: justify;"><strong>Outils DAST</strong></p>
<p style="text-align: justify;">Les outils DAST analysent les <em>builds</em> applicatifs&nbsp;en cours d&rsquo;exécution à la recherche de vulnérabilités de sécurité. Ils permettent la simulation du comportement d&rsquo;un attaquant malveillant à travers des pentests automatisés et détectent des vulnérabilités de sécurité usuelles telles que les OWASP 10. Ces outils peuvent être moins facile d’utilisation en mode authentifié (l’authentification est difficile en mode automatique, elle doit être effectuée manuellement avant de lancer un test). Les tests prennent aussi plus de temps qu’un scan statique, et des plages doivent être dédiées pour ne pas perturber le travail des développeurs ou la production.</p>
<p style="text-align: justify;">Ils peuvent être utilisés au moment des tests, mais aussi en production.</p>
<p style="text-align: justify;">Il faut penser très tôt à la <strong>gouvernance et aux processus</strong> à mettre en place autour de ces outils, en s’assurant notamment que les développeurs ne puissent pas passer outre les vulnérabilités détectées (en les passant en «&nbsp;faux positif&nbsp;» par exemple) et d’assurer une centralisation des vulnérabilités dans un outils unique (outil de vulnerability management par exemple), pour plus d’efficacité.</p>
<p style="text-align: justify;">&nbsp;</p>
<h3 style="text-align: justify;">Vérification de la présence des prérequis techniques facilitateurs</h3>
<p style="text-align: justify;">L’intérêt de travailler en DevSecOps peut être limité sur des applications de type progiciels non configurables et non instanciables.</p>
<p style="text-align: justify;">Côté infrastructure, <em>l’Infrastructure as Code</em> (gestion et provisionning de l&rsquo;infrastructure via le code plutôt que via des processus manuels), l’utilisation de containers ou de VM provisionnées permet d’utiliser les chaines CICD de façon plus efficace.</p>
<p style="text-align: justify;">&nbsp;</p>
<h3 style="text-align: justify;">Sans oublier toute la couche de gouvernance et de conduite du changement autour du projet</h3>
<p style="text-align: justify;">Il faut s’assurer de construire, ou d’avoir déjà, un <strong>modèle opérationnel</strong> répondant aux besoins (security champions, enabler teams, outillage, processus). Travailler en mode «&nbsp;agile à l’échelle&nbsp;» n’est pas obligatoire sur les premières itérations (en fonction du périmètre choisi).</p>
<p style="text-align: justify;">Utiliser une méthode de «&nbsp;<strong>test and learn</strong>&nbsp;» cadrée pour expérimenter est un bon moyen d’impliquer les équipes très tôt, et d’avoir des retours terrains complets et pertinents, avant de commencer le déploiement à l’échelle. Des <strong>expérimentations de cybersécurité</strong> ont été menées chez des clients, pour savoir quels types de pratiques ou d’outils mettre en œuvre. Quelques exemples&nbsp;:</p>
<ul style="text-align: justify;">
<li><strong>Purple teaming</strong>, permettant aux développeurs de voir les résultats des outils de tests d’une autre équipe et de tenter de les exploiter (permettant aux développeurs de se rendre compte de la réalité d’une attaque et de la potentielle facilité à la mener à bien),</li>
<li>Mise en œuvre de solutions comme <strong>Cloudbees</strong>, pour l’automatisation des processus de la chaine CICD,</li>
<li>Formation de Security Champions à <strong>l’interprétation des résultats</strong> des outils de sécurité.</li>
</ul>
<p style="text-align: justify;">&nbsp;</p>
<p style="text-align: justify;">Ces expérimentations font également office de conduite du changement, puisque la plupart des parties prenantes peuvent être impliquées très tôt dans le programme de transformation.</p>
<p style="text-align: justify;">&nbsp;</p>
<h2 style="text-align: justify;">En conclusion</h2>
<p style="text-align: justify;">Les chaines CICD sont une <strong>véritable opportunité pour la sécurité de s’automatiser</strong>. En intégrant les bons outils dans la chaine, les développeurs sont encadrés dans leur pratique, lancé sur des véritables «&nbsp;<em>guardrails</em>&nbsp;» de sécurité, facilitant la production d’un produit sécurisé.</p>
<p style="text-align: justify;">Au-delà de sécuriser les produits, il s’agit aussi de <strong>sécuriser la chaine elle-même</strong>, au même titre que tout composant ayant de larges accès sur le système d’information&nbsp;: il s’agit de contrôler les accès sur les différents outils qui la composent, s’assurer de la bonne gestion des secrets, du durcissement des serveurs sous-jacents, etc.</p>
<p style="text-align: justify;">Dans un prochain article, nous détaillerons nos convictions sur les piliers du DevSecOps, ou comment réussir une transformation durable et efficace (à base de shift-left, de guardrails et de responsabilisation des équipes sur la sécurité&nbsp;!).</p>
<p style="text-align: justify;">&nbsp;</p>
<p style="text-align: justify;"><strong>Des commentaires, des corrections&nbsp;? N’hésitez pas à nous contacter&nbsp;!</strong></p>
<p>Cet article <a href="https://www.riskinsight-wavestone.com/2022/09/securite-dans-lagilite-et-devsecops-des-destins-lies/">Sécurité dans l’agilité et DevSecOps : des destins liés ?</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/2022/09/securite-dans-lagilite-et-devsecops-des-destins-lies/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>La sécurité dans l&#8217;agile, interview d&#8217;Emma Barféty</title>
		<link>https://www.riskinsight-wavestone.com/2021/10/la-securite-dans-lagile/</link>
					<comments>https://www.riskinsight-wavestone.com/2021/10/la-securite-dans-lagile/#respond</comments>
		
		<dc:creator><![CDATA[Emma Barfety]]></dc:creator>
		<pubDate>Mon, 11 Oct 2021 10:00:00 +0000</pubDate>
				<category><![CDATA[Cloud & Next-Gen IT Security]]></category>
		<category><![CDATA[Interview]]></category>
		<category><![CDATA[Agilité]]></category>
		<category><![CDATA[DevSecOps]]></category>
		<category><![CDATA[Scrum]]></category>
		<guid isPermaLink="false">https://www.riskinsight-wavestone.com/?p=17014</guid>

					<description><![CDATA[<p>Emma, peux-tu nous présenter le sujet ? Historiquement&#160;l’approche Agile est un ensemble de pratiques&#160;utilisées pour des projets de développement informatique.&#160;&#160; Le&#160;Manifeste&#160;publié en 2001 propose&#160;4 grandes valeurs&#160;pour révolutionner la performance des entreprises :&#160; Ce&#160;point d’honneur mis&#160;aux interactions humaines entre équipe de développement&#160;et&#160;acteurs...</p>
<p>Cet article <a href="https://www.riskinsight-wavestone.com/2021/10/la-securite-dans-lagile/">La sécurité dans l&rsquo;agile, interview d&rsquo;Emma Barféty</a> est apparu en premier sur <a href="https://www.riskinsight-wavestone.com">RiskInsight</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<h1 class="wp-block-heading"><b><span data-contrast="none">Emma, peux-tu nous présenter le sujet</span></b><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559739&quot;:160,&quot;335559740&quot;:259}"> ?</span></h1>



<p><b><span data-contrast="auto">Historiquement&nbsp;</span></b><span data-contrast="auto">l’approche Agile est un ensemble de pratiques&nbsp;</span><b><span data-contrast="auto">utilisées pour des projets de développement informatique</span></b><span data-contrast="auto">.&nbsp;</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559739&quot;:160,&quot;335559740&quot;:259}">&nbsp;</span></p>



<p><span data-contrast="auto">Le&nbsp;Manifeste&nbsp;publié en 2001 propose&nbsp;4 grandes valeurs&nbsp;pour révolutionner la performance des entreprises :</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559739&quot;:160,&quot;335559740&quot;:259}">&nbsp;</span></p>



<div class="wp-block-image"><figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="1610" height="265" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/10/Image-1-FR.png" alt="" class="wp-image-17017" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/10/Image-1-FR.png 1610w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/10/Image-1-FR-437x72.png 437w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/10/Image-1-FR-71x12.png 71w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/10/Image-1-FR-768x126.png 768w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/10/Image-1-FR-1536x253.png 1536w" sizes="auto, (max-width: 1610px) 100vw, 1610px" /></figure></div>



<p><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559739&quot;:160,&quot;335559740&quot;:259}"> </span></p>



<p class="has-text-align-left"><span data-contrast="auto">Ce&nbsp;point d’honneur mis&nbsp;aux interactions humaines entre équipe de développement&nbsp;et&nbsp;acteurs métiers&nbsp;vise à réduire le&nbsp;</span><i><span data-contrast="auto">time to&nbsp;market</span></i><span data-contrast="auto">&nbsp;des produits ainsi développés, par opposition à des&nbsp;projets&nbsp;menés en&nbsp;cycle en V qui&nbsp;une fois livrés,&nbsp;et&nbsp;pour caricaturer,&nbsp;ne correspondaient plus aux attentes&nbsp;du métier&nbsp;qui avaient eu le temps d’évoluer.&nbsp;</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559739&quot;:160,&quot;335559740&quot;:259}">&nbsp;</span></p>



<p><span data-contrast="auto">Aujourd’hui cette pratique est&nbsp;</span><b><span data-contrast="auto">appliquée&nbsp;dans la majorité des entreprises&nbsp;à tous les niveaux</span></b><span data-contrast="auto">.&nbsp;Dans le&nbsp;</span><a href="https://stateofagile.com/#ufh-i-661275008-15th-state-of-agile-report/7027494"><span data-contrast="none">dernier&nbsp;</span><i><span data-contrast="none">State of Agile Report</span></i></a><span data-contrast="auto">, sur&nbsp;plus de 4000&nbsp;entreprises interrogées dans le monde, 95% déclarent utiliser l’agile et 65% d’entre elles le&nbsp;pratiquent depuis au moins 3 ans.&nbsp;&nbsp;Par ailleurs&nbsp;au-delà&nbsp;des domaines IT, la méthodologie est aussi utilisée&nbsp;dans les directions marketing, ressources humaines,&nbsp;ventes&nbsp;ou encore finances.&nbsp;52% des entreprises sondées&nbsp;déclarent&nbsp;qu’au moins la moitié des directions&nbsp;de leur entreprise&nbsp;travaillent&nbsp;en agile.&nbsp;C’est un réel passage à l’échelle qu’il ne faut pas louper.&nbsp;</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559739&quot;:160,&quot;335559740&quot;:259}">&nbsp;</span></p>



<p><span data-contrast="auto">Au-delà d’une méthode de management de projet&nbsp;c’est une nouvelle philosophie avec des éléments&nbsp;</span><i><span data-contrast="auto">gamifiés</span></i><span data-contrast="auto">. On&nbsp;ne&nbsp;parle plus de réunion mais de cérémonie et de rituel, et de nouveaux rôles apparaissent (product&nbsp;owner&nbsp;et&nbsp;scrum&nbsp;master par exemple).&nbsp;Le souhait est réellement&nbsp;de créer une&nbsp;</span><b><span data-contrast="auto">ambiance&nbsp;de co-construction&nbsp;et&nbsp;d’utiliser au maximum l’intelligence collective</span></b><span data-contrast="auto">&nbsp;pour améliorer les performances de l’entreprise.</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559739&quot;:160,&quot;335559740&quot;:259}">&nbsp;</span></p>



<p><span data-contrast="auto">Concernant la sécurité,&nbsp;bien&nbsp;que sous-jacente à&nbsp;la&nbsp;pensée des auteurs du manifeste, ils ne donnent&nbsp;pas&nbsp;plus d’indications que cela pour l’intégrer&nbsp;aux produits.&nbsp;L’intégration de&nbsp;la sécurité dans les projets&nbsp;(ISP)&nbsp;à la mode « cycle en V » n’aurait pas de sens dans un produit Agile ;&nbsp;l’ISP&nbsp;(le « P » pour « produits » cette fois)&nbsp;doit donc se réinventer.&nbsp;</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559739&quot;:160,&quot;335559740&quot;:259}">&nbsp;</span></p>



<h1 class="wp-block-heading"><b><span data-contrast="none">Quels sont les défis et tendances du domaine ? </span></b><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559739&quot;:160,&quot;335559740&quot;:259}">&nbsp;</span></h1>



<p><span data-contrast="auto">Un&nbsp;de nos&nbsp;défis&nbsp;est d’apporter à nos clients une&nbsp;</span><b><span data-contrast="auto">vision globale de la problématique</span></b><span data-contrast="auto">.&nbsp;Réussir à passer d’une approche traditionnelle à une approche agile nécessite plusieurs niveaux de réflexion pour la sécurité (et&nbsp;d’autres équipes support,&nbsp;telle&nbsp;la qualité,&nbsp;peuvent également être amenées&nbsp;à évoluer en ce sens).&nbsp;Il faut penser</span><b><span data-contrast="auto">&nbsp;organisation&nbsp;</span></b><span data-contrast="auto">certes mais aussi</span><b><span data-contrast="auto">&nbsp;outillage.&nbsp;</span></b><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559739&quot;:160,&quot;335559740&quot;:259}">&nbsp;</span></p>



<p><b><span data-contrast="auto">En termes d’organisation</span></b><span data-contrast="auto">, la SSI doit se repositionner comme un&nbsp;</span><b><span data-contrast="auto">service au métier</span></b><span data-contrast="auto">, pour retrouver une image de fonction support, et non plus de « gendarme ».&nbsp;Le rôle de&nbsp;</span><b><i><span data-contrast="auto">Security Champion</span></i></b><span data-contrast="auto">&nbsp;est créé : c’est un membre de la&nbsp;feature&nbsp;team (souvent un développeur)&nbsp;qui devient le point de contact privilégié des équipes SSI. Cela&nbsp;permet de recréer du lien avec&nbsp;chaque&nbsp;</span><i><span data-contrast="auto">feature&nbsp;team</span></i><span data-contrast="auto">&nbsp;tout en augmentant&nbsp;l’autonomie sur l’intégration de la sécurité. Cela ne se fait pas en un jour, et un certain nombre de&nbsp;</span><b><span data-contrast="auto">formations</span></b><span data-contrast="auto">&nbsp;doivent être créées et dispensées, pour&nbsp;repartager les enjeux de cybersécurité&nbsp;et&nbsp;de la&nbsp;connaissance (bases de la SSI, développement sécurisé, notamment).&nbsp;Au-delà des formations, cela passe aussi par l’instauration d’une Guilde Sécurité, regroupant experts SSI,&nbsp;</span><i><span data-contrast="auto">Security Champion</span></i><span data-contrast="auto">&nbsp;et toutes personnes intéressées à la sécurité, et permettant d’échanger de l’information sur les dernières actualités sécurité, les bonnes pratiques, mais aussi de partager les retours d’expérience terrain.&nbsp;Cette Guilde doit être outillée pour communiquer le plus simplement possible et pour capitaliser les informations (sur un wiki interne par exemple).</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559739&quot;:160,&quot;335559740&quot;:259}">&nbsp;</span></p>



<p><span data-contrast="auto">En tant que&nbsp;référent sécurité,&nbsp;c’est à lui que les développeurs&nbsp;peuvent&nbsp;s’adresser en cas de questions, une fois que l’équipe SSI l’aura formé.&nbsp;Il a donc une casquette assez technique.&nbsp;Les experts SSI gardent leur rôle mais adapté à l’agile ;&nbsp;on va passer d’une relation de contrôle et d’audit à une&nbsp;</span><b><span data-contrast="auto">relation de soutien au fil de l’eau, de facilitateur</span></b><span data-contrast="auto">.&nbsp;Des audits peuvent toujours être&nbsp;réalisés (tests d’intrusion, sur demande de la&nbsp;</span><i><span data-contrast="auto">feature&nbsp;team</span></i><span data-contrast="auto">&nbsp;ou à l’initiative&nbsp;des experts sécurité).&nbsp;De l’outillage méthodologique doit aussi être disponible pour aider les&nbsp;</span><i><span data-contrast="auto">Champions</span></i><span data-contrast="auto">&nbsp;dans leurs tâches et cela passe&nbsp;notamment par&nbsp;la réécriture des risques au format conversationnel. Pour&nbsp;s’adapter&nbsp;à l’utilisation&nbsp;de User&nbsp;Story par les&nbsp;</span><i><span data-contrast="auto">feature&nbsp;teams</span></i><span data-contrast="auto">, l’équipe SSI pourra s’essayer à la rédaction d’Evil&nbsp;User Story, qui correspond à une action réalisée du point de vue d’un attaquant. Par exemple :</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559739&quot;:160,&quot;335559740&quot;:259}">&nbsp;</span></p>



<div class="wp-block-image"><figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="1347" height="178" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/10/Image-2-FR.png" alt="" class="wp-image-17015" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/10/Image-2-FR.png 1347w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/10/Image-2-FR-437x58.png 437w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/10/Image-2-FR-71x9.png 71w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/10/Image-2-FR-768x101.png 768w" sizes="auto, (max-width: 1347px) 100vw, 1347px" /></figure></div>



<p><span data-contrast="auto">En face de ces risques, des User Story Sécurité, proposant des solutions de remédiation face aux EUS, avec des critères d’acceptance prêts&nbsp;à l’emploi. Tout cela peut être intégré dans une&nbsp;</span><b><span data-contrast="auto">baseline&nbsp;sécurité</span></b><span data-contrast="auto">&nbsp;(également au format&nbsp;backlog, dans un&nbsp;outil de&nbsp;product&nbsp;management, comme&nbsp;JIRA&nbsp;par exemple), proposant un socle minimum de sécurité à intégrer dans les produits.</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559739&quot;:160,&quot;335559740&quot;:259}">&nbsp;</span></p>



<p><span data-contrast="auto">Au soutien organisationnel aux équipes doit s’ajouter le&nbsp;soutien technique&nbsp;via l’optimisation&nbsp;de la chaine d’intégration et de déploiement continu (CI/CD)&nbsp;avec des outils visant à&nbsp;</span><b><span data-contrast="auto">automatiser au&nbsp;maximum</span></b><span data-contrast="auto">&nbsp;la sécurité, ce que l’on pourra appeler la&nbsp;</span><b><span data-contrast="auto">Stack Sécurité</span></b><span data-contrast="auto">&nbsp;ou&nbsp;</span><b><i><span data-contrast="auto">Security pipeline</span></i></b><span data-contrast="auto"> :&nbsp;revue de code, scans de vulnérabilité, détection de secrets,&nbsp;sécurité de l’Infrastructure as Code, etc.).&nbsp;&nbsp;Une attention particulière doit être porté à&nbsp;sa&nbsp;propre&nbsp;sécurisation, pour ne pas produire l’effet inverse…&nbsp;Dans une optique de&nbsp;</span><i><span data-contrast="auto">shift&nbsp;left</span></i><span data-contrast="auto">&nbsp;</span><i><span data-contrast="auto">security</span></i><span data-contrast="auto">, la sécurité&nbsp;est intégrée par défaut dans le produit, et ce dès le début. Elle adapte donc sa vélocité à celle de l’agile et permet de passer d’une logique de DevOps à celle de&nbsp;DevSecOps.&nbsp;</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559739&quot;:160,&quot;335559740&quot;:259}">&nbsp;</span></p>



<p><span data-contrast="auto">Un autre rôle peut être créé, celui&nbsp;</span><b><span data-contrast="auto">d’AppSec&nbsp;Manager</span></b><span data-contrast="auto">. Il fait partie cette fois de l’équipe SSI et est un expert en sécurité logicielle&nbsp;doublé d’un expert de la Stack Sécurité. Il aide les développeurs à prioriser et remédier aux vulnérabilités remontées par la Stack. Il travaille en binôme avec le&nbsp;</span><b><span data-contrast="auto">Risk Manager</span></b><span data-contrast="auto">/Expert SSI, qui lui apporte la connaissance des risques associés au produit, ce qui permet&nbsp;une analyse plus fine des vulnérabilités à traiter en priorité.&nbsp;Tout cela participe&nbsp;à créer une culture de&nbsp;</span><i><span data-contrast="auto">security&nbsp;by design</span></i><span data-contrast="auto">.</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559739&quot;:160,&quot;335559740&quot;:259}">&nbsp;</span></p>



<p><span data-contrast="auto">Les défis&nbsp;en mission ensuite sont de s’adapter au maximum aux spécificités client : côté secteur public les attentes et défis sont un peu différents. En effet les ministères sont en train de passer à l’agile mais se pose à eux la problématique des homologations de sécurité de l’ANSSI en neuf étapes. Ce processus s’intègre mal à la méthodologie agile et il faut donc trouver des biais d’adaptation.&nbsp;Une possibilité pourrait être de détailler une&nbsp;checklist de&nbsp;</span><i><span data-contrast="auto">Release</span></i><span data-contrast="auto">&nbsp;permettant&nbsp;à la&nbsp;</span><i><span data-contrast="auto">feature&nbsp;team</span></i><span data-contrast="auto">&nbsp;d’être autonome dans ses mises en production, en sachant quels éléments sont autorisés à passer en production, et lesquels doivent faire l’objet d’une vérification plus approfondie (via un&nbsp;</span><i><span data-contrast="auto">go/no go</span></i><span data-contrast="auto">&nbsp;du RSSI par exemple, ou des contrôles spécifiques).&nbsp;</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559739&quot;:160,&quot;335559740&quot;:259}">&nbsp;</span></p>



<p>&nbsp;</p>



<h1 class="wp-block-heading"><b><span data-contrast="none">Quelles sont les attentes de la part des clients ?</span></b><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559739&quot;:160,&quot;335559740&quot;:259}">&nbsp;</span></h1>



<p><span data-contrast="auto">Les clients RSSI attendent d’être rassurées sur le fait que la sécurité en mode agile ne va pas leur faire « perdre le contrôle » sur la bonne mise en œuvre de la sécurité.&nbsp;Et le modèle que nous proposons responsabilise les&nbsp;</span><i><span data-contrast="auto">feature&nbsp;teams</span></i><span data-contrast="auto">, les outille, mais la sécurité garde le contrôle en centralisant les indicateurs de performance, en&nbsp;ayant la capacité&nbsp;de réaliser des contrôles&nbsp;aléatoires/en fonction de critères prédéfinis,&nbsp;via du&nbsp;</span><i><span data-contrast="auto">bugbounty</span></i><span data-contrast="auto">&nbsp;par exemple ou une enveloppe de jours de pentesters, à répartir sur les différents produits.</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559739&quot;:160,&quot;335559740&quot;:259}">&nbsp;</span></p>



<p><span data-contrast="auto">Ensuite, en&nbsp;tant que cabinet de conseil, je pense que les clients&nbsp;attendent de nous&nbsp;le partage de&nbsp;</span><b><span data-contrast="auto">convictions</span></b><span data-contrast="auto">&nbsp;</span><b><span data-contrast="auto">et d’exemples&nbsp;très concrets</span></b><span data-contrast="auto">&nbsp;de ce&nbsp;que nous avons&nbsp;pu réaliser&nbsp;chez d’autres clients. Pour répondre à cette demande, la practice cybersécurité et confiance numérique de Wavestone a&nbsp;créé&nbsp;un certain nombre d’accélérateurs méthodologiques&nbsp;grâce à des retours terrains, prêts à être partagés&nbsp;pour être déconstruits&nbsp;et&nbsp;adaptés.&nbsp;Pouvoir mener nous-aussi la mission en mode Agile&nbsp;fait également partie des attentes, en favorisant la&nbsp;</span><b><span data-contrast="auto">co-construction</span></b><span data-contrast="auto">&nbsp;plutôt que d’apporter des livrables figés et quasi finalisés dès le premier jet. Dans cette optique de&nbsp;</span><i><span data-contrast="auto">gamification</span></i><span data-contrast="auto">&nbsp;chère à l’agile, nous proposons des ateliers de co-construction originaux basés sur l’intelligence collective, grâce à notre&nbsp;</span><i><span data-contrast="auto">asset</span></i><span data-contrast="auto">&nbsp;</span><b><span data-contrast="auto">Creadesk</span></b><span data-contrast="auto">,&nbsp;qui forme les&nbsp;consultantes et consultants&nbsp;et met à disposition des outils de travail collectif à distance.</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559739&quot;:160,&quot;335559740&quot;:259}">&nbsp;</span></p>



<h1 class="wp-block-heading"><b><span data-contrast="none">Un dernier conseil pour les lecteurs ? </span></b><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559739&quot;:160,&quot;335559740&quot;:259}">&nbsp;</span></h1>



<p><span data-contrast="auto">Mettre en place une véritable démarche&nbsp;en mode&nbsp;</span><b><i><span data-contrast="auto">test &amp;&nbsp;learn</span></i></b><span data-contrast="auto">&nbsp;est capital.&nbsp;Co-construire&nbsp;des outils est une chose, mais les tester et les vérifier sur le terrain en est une autre.&nbsp;Anticiper les problèmes est possible jusqu’à un certain point, mais les confronter directement (et les résoudre !) au&nbsp;fur et à mesure représente une valeur ajoutée énorme en mission. Cela permet d’être au contact des métiers&nbsp;et des&nbsp;feature&nbsp;teams&nbsp;directement, de leur montrer que des actions concrètes sont mises en œuvre. La démarche est agile, souple&nbsp;et évolutive.&nbsp;Les accélérateurs, les méthodologies et les outillages proposés évoluent au cours des pilotes&nbsp;et n’en deviennent que plus pertinents pour la deuxième vague de pilotes, jusqu’à ce que toutes les&nbsp;feature&nbsp;teams&nbsp;soient intégrées.</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559739&quot;:160,&quot;335559740&quot;:259}">&nbsp;</span></p>



<p><span data-contrast="auto">En parallèle, il faut retenir que la conduite du changement&nbsp;est primordiale.&nbsp;Il faut prévoir un vrai plan de communication, construire les communautés de pratique/les guildes dès les débuts des pilotes, identifier des&nbsp;</span><i><span data-contrast="auto">early&nbsp;adopters</span></i><span data-contrast="auto">&nbsp;qui seront&nbsp;des moteurs précieux du changement au sein même des équipes.&nbsp;L’agile a un impact&nbsp;réel et rapide&nbsp;dans la vie de tous les jours&nbsp;et à tous les niveaux&nbsp;d’équipe :&nbsp;accompagner ce changement est primordial.&nbsp;&nbsp;&nbsp;</span></p>
<p>Cet article <a href="https://www.riskinsight-wavestone.com/2021/10/la-securite-dans-lagile/">La sécurité dans l&rsquo;agile, interview d&rsquo;Emma Barféty</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/2021/10/la-securite-dans-lagile/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
