Introduction
Dans les environnements cloud modernes, la protection des identités utilisateur constitue une priorité absolue. Les politiques d'accÚs conditionnel (Conditional Access) représentent la référence pour renforcer les contrÎles d'accÚs. Cependant, de nombreuses organisations font face à un défi récurrent : leurs employés voyagent fréquemment.
Dans de tels contextes, l'application d'une politique d'accÚs conditionnel stricte limitant les connexions à un ensemble fixe de pays peut s'avérer impraticable. Néanmoins, cela ne signifie pas que vous devez rester aveugle aux activités suspectes. C'est là qu'intervient la surveillance proactive avec KQL (Kusto Query Language).
Pourquoi cette approche ?
Quand les politiques d'accÚs conditionnel ne peuvent pas bloquer certains pays, les administrateurs ont toujours besoin de visibilité sur les tentatives de connexion depuis des géographies inattendues, les attaques par force brute et les connexions réussies depuis des emplacements préoccupants.
Cas d'usage et objectifs
Lorsque l'accĂšs conditionnel ne peut ĂȘtre appliquĂ© pour bloquer complĂštement certains pays, les administrateurs nĂ©cessitent une visibilitĂ© sur :
- Les tentatives de connexion depuis des géographies inattendues
- Les comptes ciblés par des attaques de force brute ou de pulvérisation de mots de passe
- Les connexions réussies depuis des emplacements devant susciter des inquiétudes
En surveillant continuellement les tentatives de connexion en dehors de votre géographie "de confiance", vous pouvez garder une longueur d'avance et détecter les compromissions potentielles précocement.
Prérequis techniques
Avant d'exécuter cette solution, assurez-vous de disposer des éléments suivants :
Licences requises
- Entra ID P1 ou P2 : Nécessaire pour activer les journaux de connexion et les fonctionnalités avancées de protection d'identité
Infrastructure Azure
- Espace de travail Log Analytics : Centralise l'ingestion et l'interrogation des journaux de connexion
- Journaux Entra ID connectés à Log Analytics
Permissions d'accĂšs
Votre compte administrateur doit disposer au minimum des rĂŽles suivants :
- Lecteur de sécurité ou Administrateur de sécurité dans Azure AD
- Contributeur Log Analytics pour exĂ©cuter et gĂ©rer les requĂȘtes
Configuration de l'espace de travail Log Analytics
Créer l'espace de travail
Dans le portail Azure, recherchez "Log Analytics Workspaces" et sélectionnez Créer.


Configurer les paramĂštres
Renseignez les informations suivantes :
- Abonnement : Sélectionnez votre abonnement Azure
- Groupe de ressources : Choisissez ou créez un groupe de ressources
- Nom : Saisissez un nom descriptif (ex. : "SecurityLogs")
- Région : Sélectionnez la région la plus proche de votre organisation


Valider et créer
Revisez la configuration et cliquez sur Créer pour déployer l'espace de travail.
Connexion des journaux Entra ID
Accéder aux paramÚtres de diagnostic
Rendez-vous dans le centre d'administration Entra ID Ă l'adresse https://entra.microsoft.com/, puis naviguez vers Surveillance > ParamĂštres de diagnostic.

Ajouter un paramĂštre de diagnostic
Cliquez sur Ajouter un paramĂštre de diagnostic et configurez :
- Sélectionnez SignInLogs et optionnellement AuditLogs
- Cochez Envoyer vers l'espace de travail Log Analytics
- Choisissez l'espace de travail créé précédemment

Sauvegarder la configuration
Enregistrez la configuration. Les journaux SigninLogs apparaßtront dans votre espace de travail dans quelques minutes à une heure, selon l'activité.
Délai d'ingestion
Une fois configuré, vous commencerez à voir les SigninLogs dans votre espace de travail dans un délai de quelques minutes à une heure, selon l'activité de connexion.
ExĂ©cution de la requĂȘte KQL
Accéder à l'espace de travail
Dans votre espace de travail Log Analytics, sĂ©lectionnez Journaux dans le menu de gauche et fermez le hub RequĂȘtes en cliquant sur le 'X'.

Configurer le mode KQL
Sélectionnez le mode KQL dans votre espace de travail Log Analytics.

ExĂ©cuter la requĂȘte
Copiez et collez la requĂȘte KQL suivante pour filtrer les tentatives de connexion depuis des emplacements en dehors du Canada (CA) et des Ătats-Unis (US) :
1// Obtenir la liste de toutes les connexions (rĂ©ussies, Ă©chouĂ©es, rĂ©voquĂ©es, etc.) en dehors du Canada (CA) et des Ătats-Unis (US)2SigninLogs 3| where Location !in ("CA", "US") and isnotempty(Location) // Emplacement diffĂ©rent du CANADA, US4| extend LocalTime = datetime_add('hour', -5, TimeGenerated) // UTC-5 (Heure CANADA)5| project LocalTime, UserPrincipalName, UserDisplayName, Identity, ResourceDisplayName, Location, IPAddress, RiskState, ConditionalAccessStatus, ResultType, ResultSignature, ResultDescription, MfaDetail, RiskDetail6| order by LocalTime descCliquez sur ExĂ©cuter pour lancer la requĂȘte.
Personnalisation des emplacements
Vous pouvez modifier les emplacements en changeant "CA" et "US" dans la troisiÚme ligne de code et en ajoutant vos emplacements spécifiques.
Les résultats incluront des détails tels que : LocalTime, UserPrincipalName, Location, IPAddress, RiskState, ResultDescription.

Sauvegarde de la requĂȘte KQL
Sauvegarder la requĂȘte
Cliquez sur le bouton de sauvegarde et renseignez :
- Nom de la requĂȘte : "Tentatives de connexion depuis des emplacements inhabituels"
- Description : "Détection des tentatives de connexion depuis des emplacements géographiques suspects"
- Type de ressource : "Espaces de travail Log Analytics"
- Catégorie : "Audit"


Mémorisation
Conservez le nom de la requĂȘte dans un bloc-notes, car nous l'utiliserons ultĂ©rieurement pour la configuration des alertes.
Configuration des alertes automatisées
Créer une rÚgle d'alerte
Dans l'espace de travail Log Analytics, cliquez sur "..." (trois points) en haut à droite, puis sélectionnez Nouvelle rÚgle d'alerte.

Configurer la condition
Dans la section Condition :
- Nom du signal : "Recherche de journal personnalisée"
- Type de requĂȘte : Journaux agrĂ©gĂ©s
- Collez votre requĂȘte KQL dans la zone de texte
Dans la section Mesure :
- Mesure : "Lignes de tableau"
- Type d'agrégation : "Nombre"
- Granularité d'agrégation : "30 minutes"

Définir la logique d'alerte
Configurez les paramĂštres suivants :
- Opérateur : "Supérieur à "
- Valeur seuil : 0
- Agrégation temporelle : 30 minutes
- Remplacer la plage de temps de la requĂȘte : 30 min

Configurer les actions
Dans la section Action :
- Sélectionnez Actions rapides (Aperçu)
- Nom du groupe d'actions : "Notification Email Connexion Suspecte"
- Nom d'affichage : "Conn-Suspecte"
- E-mails de notification : Ajoutez les adresses e-mail qui doivent recevoir l'alerte
Personnalisez l'objet de l'e-mail d'alerte, par exemple : "Alerte - Connexion depuis un emplacement inhabituel".

Finaliser la configuration
Configurez les détails finaux :
- Abonnement Azure : Sélectionnez l'abonnement approprié
- Groupe de ressources : Choisissez le groupe de ressources
- Niveau de gravitĂ© : 2 â Avertissement
- Nom descriptif : "Tentatives de connexion depuis des emplacements inhabituels"
- RĂ©gion : Choisissez la mĂȘme rĂ©gion que vos autres ressources

Cliquez sur Créer pour finaliser et déployer la rÚgle d'alerte.

Test et validation du systĂšme
Pour valider le bon fonctionnement de votre systÚme de détection, vous pouvez simuler une connexion depuis un emplacement inhabituel. Dans l'exemple ci-dessous, une tentative de connexion avec un mot de passe incorrect depuis un VPN localisé au Royaume-Uni génÚre immédiatement une notification.

Notification par e-mail
Voici un exemple de notification e-mail envoyée au service d'assistance :

Vérification des résultats
Pour vĂ©rifier directement les rĂ©sultats de la requĂȘte :
- Retournez dans l'espace de travail Log Analytics
- Sélectionnez "Journaux" dans le menu de gauche
- Tapez le nom de votre requĂȘte KQL sauvegardĂ©e dans la barre de recherche
- Cliquez sur "Exécuter"

Les résultats détaillés s'affichent dans le tableau :

Optimisations avancées
Ajout aux favoris
Pour un accĂšs rapide Ă votre requĂȘte :
- Tapez le nom de votre requĂȘte dans la barre de recherche
- Cliquez sur l'icÎne étoile pour l'ajouter aux favoris


Exclusion d'adresses IP de confiance
Si vous souhaitez exclure certains emplacements ou adresses IP de confiance (bureaux, adresses IP approuvĂ©es), utilisez cette requĂȘte KQL modifiĂ©e :
1// Adresses IP des bureaux autorisés à exclure du déclenchement2let AllowedIPs = dynamic([ "1.1.1.1", "8.8.8.8" ]);3// Obtenir la liste de toutes les connexions en dehors de la liste de pays + liste d'IP4SigninLogs 5| where Location !in ("CA", "US") and isnotempty(Location) // Emplacement différent du CANADA, US6| where IPAddress !in~ (AllowedIPs) // exclure les adresses IP des bureaux7| extend LocalTime = datetime_add('hour', -5, TimeGenerated) // UTC-5 (Heure CANADA)8| project LocalTime, UserPrincipalName, UserDisplayName, Identity, ResourceDisplayName, Location, IPAddress, RiskState, ConditionalAccessStatus, ResultType, ResultSignature, ResultDescription, MfaDetail, RiskDetail9| order by LocalTime descPersonnalisation des IP
N'oubliez pas de remplacer les adresses IP d'exemple ("1.1.1.1", "8.8.8.8") par les adresses IP réelles de vos bureaux ou adresses de confiance.
Conclusion
Cette solution de surveillance proactive vous permet de maintenir une visibilité sur les activités de connexion suspectes tout en préservant la flexibilité nécessaire pour les employés en déplacement. En combinant KQL, Log Analytics et les alertes Azure, vous disposez d'un systÚme de détection robuste qui complÚte efficacement vos politiques d'accÚs conditionnel existantes.
La mise en place de cette surveillance continue constitue une couche de sécurité supplémentaire essentielle dans votre stratégie de protection des identités Microsoft 365.
