Utilisation d'Azure Monitor pour collecter et analyser les journaux de sécurité

Utilisation d'Azure Monitor pour collecter et analyser les journaux de sécurité

02/01/2025

Cet article technique et pédagogique vise à guider les analystes de sécurité, les administrateurs informatiques et les ingénieurs système dans l’utilisation d’Azure Monitor pour la collecte centralisée et l’analyse efficace des journaux de sécurité dans les environnements Azure. Dans un paysage cloud en constante évolution, la visibilité sur les activités et les événements de sécurité est essentielle pour détecter les menaces, enquêter sur les incidents, garantir la conformité et maintenir une posture de sécurité robuste. Azure Monitor, avec son composant Log Analytics, fournit une plate-forme puissante pour agréger, stocker, interroger et analyser les données de journaux provenant de plusieurs sources [1].

Présentation

La prolifération des services et des ressources dans le cloud Azure génère un volume massif de données de journaux. Ces journaux contiennent des informations cruciales sur ce qui se passe dans votre environnement, depuis les tentatives de connexion réussies et échouées, les modifications de configuration, l'activité réseau et les événements de sécurité. Cependant, sans une stratégie efficace de collecte et d'analyse, ces journaux peuvent devenir un « marécage de données », rendant difficile l'identification de modèles malveillants ou la réponse rapide aux incidents [2].

Azure Monitor est un service de surveillance complet qui collecte, analyse et agit sur les données de télémétrie de vos environnements Azure et locaux. Son composant Log Analytics est un service de stockage de journaux basé sur le cloud qui vous permet de collecter des données de journaux et des métriques à partir de diverses sources, notamment les ressources Azure, les systèmes d'exploitation invités de machines virtuelles, les agents de surveillance et les services de sécurité tels que Microsoft Defender pour Cloud et Azure AD. Le Kusto Query Language (KQL) est l'outil utilisé pour interagir avec ces données, permettant des requêtes complexes et une analyse approfondie [3].

Ce guide pratique couvrira la configuration d'un espace de travail Log Analytics, la connexion de différentes sources de données de sécurité, l'utilisation de KQL pour effectuer une analyse de sécurité, la création d'alertes basées sur des modèles de journaux et la visualisation des données via des classeurs. Des instructions étape par étape, des exemples pratiques et des explications concises seront fournis afin que le lecteur puisse implémenter, tester et valider ces fonctionnalités. De plus, des conseils de sécurité, des contrôles de conformité et des meilleures pratiques seront abordés pour garantir une collecte et une analyse des journaux de sécurité efficaces, autonomes, professionnelles et fiables.

Pourquoi Azure Monitor et Log Analytics sont-ils cruciaux pour la sécurité ?

  • Centralisation des journaux : regroupe les journaux de plusieurs sources Azure et locales en un seul emplacement, simplifiant ainsi l'analyse et la corrélation des événements.
  • Analyse puissante : utilise Kusto Query Language (KQL), un langage de requête riche et flexible, pour effectuer une analyse complexe et identifier les modèles d'attaque ou les anomalies.
  • Détection des menaces : permet la création d'alertes de sécurité basées sur des requêtes KQL, informant les équipes des activités suspectes en temps réel.
  • Enquête sur les incidents : facilite l'enquête sur les incidents de sécurité en fournissant un accès rapide aux données historiques et la possibilité de corréler les événements provenant de différentes sources.
  • Conformité et audit : permet de répondre aux exigences de conformité en fournissant des pistes d'audit détaillées et la possibilité de générer des rapports de sécurité.
  • Visualisation des données : fournit des classeurs et des tableaux de bord pour afficher les tendances de sécurité, l'état de conformité et les mesures opérationnelles.

Prérequis

Pour utiliser Azure Monitor pour la collecte et l’analyse des journaux de sécurité, vous aurez besoin des éléments suivants :

  1. Abonnement Azure actif : un abonnement Azure pour créer et gérer des ressources.
  2. Accès administrateur : un compte avec le rôle de « Propriétaire », « Contributeur » ou « Contributeur Log Analytics » dans le portail Azure (https://portal.azure.com).
  3. Ressources Azure existantes : ressources Azure (machines virtuelles, réseaux, applications, etc.) que vous souhaitez surveiller.

Étape par étape : Collecte et analyse des journaux de sécurité avec Azure Monitor

Configurons un espace de travail Log Analytics et collectons les journaux de sécurité.

1. Création d'un espace de travail Log Analytics

Un espace de travail Log Analytics est un environnement unique pour stocker les données de journal.

  1. Ouvrez votre navigateur et accédez au portail Azure : « https://portal.azure.com ».
  2. Connectez-vousn avec un compte disposant des autorisations nécessaires.
  3. Dans le champ de recherche supérieur, saisissez « Espaces de travail Log Analytics » et sélectionnez-le dans les résultats.
  4. Cliquez sur « + Créer ».

  5. Bases :

    • Abonnement : Sélectionnez votre abonnement.
    • Groupe de ressources : créez un nouveau groupe de ressources (par exemple rg-loganalytics) ou sélectionnez-en un existant.
    • Nom de l'espace de travail Log Analytics : Donnez-lui un nom unique (ex : la-security-workspace).
    • Région : sélectionnez la région.
  6. Cliquez sur « Réviser + créer », puis sur Créer.

2. Connexion des sources de données de sécurité

Connectons certaines sources de données de sécurité courantes à notre espace de travail.

2.1. Connexion des journaux d'activité Azure (Azure Activity Log)

Le journal d'activité Azure fournit un enregistrement des événements du plan de contrôle dans votre abonnement Azure, y compris la création, la mise à jour et la suppression de ressources.

  1. Dans le portail Azure, accédez à votre espace de travail Log Analytics (« la-security-workspace »).
  2. Dans le volet de navigation de gauche, sous « Sources de données », sélectionnez Journaux de diagnostic.
  3. Cliquez sur « +Ajouter une configuration de diagnostic ».
  4. Sélectionnez l'abonnement que vous souhaitez surveiller.
  5. Nom de la configuration de diagnostic : Donnez-lui un nom (ex : diag-activitylog).
  6. Catégories de journaux : Cochez « ActivityLog ».
  7. Détails de la destination : Sélectionnez Envoyer à l'espace de travail Log Analytics et choisissez votre espace de travail (la-security-workspace).
  8. Cliquez sur Enregistrer.

2.2. Connexion des journaux d'audit Azure Active Directory (journaux d'audit Azure AD)

Les journaux d’audit Azure AD enregistrent les activités liées aux utilisateurs et aux annuaires, telles que les connexions, les modifications de groupe et les réinitialisations de mots de passe.

  1. Dans le portail Azure, accédez à Azure Active Directory.
  2. Dans le volet de navigation de gauche, sous « Surveillance », sélectionnez Journaux de diagnostic.
  3. Cliquez sur « +Ajouter une configuration de diagnostic ».
  4. Nom de la configuration de diagnostic : Donnez-lui un nom (ex : diag-azuread).
  5. Catégories de journaux : Vérifiez « AuditLogs » et « SignInLogs ».
  6. Détails de la destination : Sélectionnez Envoyer à l'espace de travail Log Analytics et choisissez votre espace de travail (la-security-workspace).
  7. Cliquez sur Enregistrer.

2.3. Connexion des journaux de ressources Azure (machines virtuelles)

Pour collecter les journaux de sécurité des machines virtuelles, vous pouvez installer l'agent Log Analytics.

  1. Dans le portail Azure, accédez à l'une de vos machines virtuelles.
  2. Dans le volet de navigation de gauche, sous « Surveillance », sélectionnez Paramètres de diagnostic.
  3. Cliquez sur « +Ajouter une configuration de diagnostic ».
  4. Nom de la configuration de diagnostic : Donnez-lui un nom (ex : diag-vm-security).
  5. Journaux : Vérifiez « Sécurité » (pour les journaux d'événements de sécurité Windows/Linux).
  6. Détails de la destination : Sélectionnez Envoyer à l'espace de travail Log Analytics et choisissez votre espace de travail (la-security-workspace).
  7. Cliquez sur Enregistrer.

3. Analyse des journaux de sécurité avec Kusto Query Language (KQL)

KQL est le langage utilisé pour interroger les données dans Log Analytics. Explorons quelques requêtes de sécurité courantes.

  1. Dans le portail Azure, accédez à votre espace de travail Log Analytics (« la-security-workspace »).
  2. Dans le volet de navigation de gauche, sélectionnez Journaux.
  3. La fenêtre de requête s'ouvrira. Vous pouvez commencer à taper vos requêtes KQL ici.

Exemples de requêtes KQL pour la sécurité :

  • Événements d'échec de connexion à Azure AD (dernières 24 heures) : kusto Journaux de connexion | où TimeGenerated > il y a (24h) | où TypeRésultat != 0 | résumer count() par UserDisplayName, IPAddress, ResultDescription | commander par count_desc

    • Explication : Cette requête recherche tous les événements de connexion infructueux (ResultType != 0) au cours des dernières 24 heures, les résume par utilisateur, adresse IP et description du résultat, et les trie par compte à rebours.
  • Activités administratives critiques dans le journal d'activité Azure (7 derniers jours) : kusto AzureActivité | où TimeGenerated > il y a (7j) | où OperationNameValue contient "WRITE" ou OperationNameValue contient "DELETE" | où ActivityStatusValue == "Succès" | projet TimeGenerated, Caller, OperationName, ResourceGroup, Resource, _ResourceId | commander par TimeGenerated desc

    • Explication : Cette requête identifie les opérations WRITE (création/mise à jour)et les fichiers « DELETE » dans le journal d'activité Azure au cours des 7 derniers jours, projetant les champs pertinents tels que l'heure, l'appelant et la ressource affectée.
  • Événements de sécurité de la VM (échec des tentatives de connexion sous Windows) : kusto Événement de sécurité | où EventID == 4625 // ID d'événement pour les tentatives de connexion échouées sous Windows | où TimeGenerated > il y a (24h) | résumer count() par compte, ordinateur, adresse IP | commander par count_desc

    • Explication : Cette requête recherche les événements de sécurité Windows avec EventID 4625 (échec de la tentative de connexion) au cours des dernières 24 heures, en résumant par compte, ordinateur et adresse IP.
  • Visualisation des données : après avoir exécuté une requête, vous pouvez modifier le type de visualisation (par exemple, « Pie Chart », « Bar Chart ») pour représenter les données de manière plus compréhensible.

4. Création d'alertes de sécurité

Des alertes peuvent être configurées pour avertir les équipes de sécurité lorsque des modèles spécifiques sont détectés dans les journaux.

  1. Après avoir exécuté une requête KQL identifiant un événement de sécurité que vous souhaitez surveiller, cliquez sur « + Nouvelle règle d'alerte » dans la barre d'outils supérieure.

  2. Condition : La requête KQL sera automatiquement renseignée. Configurez la « Logique d'alerte » (par exemple, « Nombre de résultats » « Supérieur à « 5 » sur une période de « 5 minutes »).

  3. Actions :
    • Cliquez sur + Ajouter un groupe d'action.
    • Créez un nouveau groupe d'action (par exemple « actiongroup-security ») ou sélectionnez-en un existant.
    • Configurez les actions souhaitées, telles que « Email/SMS/Push/Voice », « Webhook », « Automation » (pour déclencher une application logique ou un runbook).
  4. Détails : Donnez un nom à la règle d'alerte (ex : Alerta_Logins_Falhos_AzureAD), une description et définissez la gravité.
  5. Cliquez sur « Réviser + créer », puis sur Créer.

5. Utilisation de classeurs pour la visualisation de la sécurité

Les classeurs sont des canevas flexibles qui peuvent être utilisés pour analyser des données et créer des rapports visuels.

  1. Dans le portail Azure, accédez à votre espace de travail Log Analytics (« la-security-workspace »).
  2. Dans le volet de navigation de gauche, sous « Général », sélectionnez Classeurs.
  3. Cliquez sur « + Nouveau ».
  4. Vous pouvez ajouter « Texte », « Requêtes » (KQL), « Métriques » et « Paramètres » pour créer un rapport interactif.
  5. Ajoutez une requête KQL et définissez la visualisation sur un graphique. Enregistrez le classeur.

Validation et tests

Pour valider la configuration, vous devrez générer des événements de sécurité qui déclenchent vos requêtes et alertes.

  1. Scénario (échec de connexion) : tentative de connexion au portail Azure ou à une application intégrée à Azure AD à plusieurs reprises avec des informations d'identification incorrectes (supérieures à la limite définie dans votre règle d'alerte).
  2. Action attendue :
    • Les événements d'échec de connexion doivent apparaître dans les journaux Log Analytics (table « SigninLogs »).
    • L'alerte de sécurité configurée devrait se déclencher, et vous devriez recevoir une notification (email, SMS, etc.).
  3. Vérification :
    • Vérifiez les journaux dans Log Analytics avec la requête SigninLogs | où TimeGenerated > il y a (5m) | où ResultType != 0.
    • Consultez la section « Alertes de sécurité » dans Azure Monitor ou dans votre boîte de réception de courrier électronique pour connaître la notification d'alerte.

Conseils de sécurité et bonnes pratiques

  • Conservation des données : configurez la conservation des données Log Analytics en fonction des exigences de conformité de votre organisation (par exemple, 90 jours, 1 an).
  • Contrôle d'accès : implémentez un contrôle d'accès basé sur les rôles (RBAC) pour l'espace de travail Log Analytics afin de garantir que seuls les utilisateurs autorisés peuvent accéder aux journaux de sécurité et les interroger.
  • Intégration SIEM/SOAR : pour des capacités avancées de détection et de réponse aux incidents, intégrez Log Analytics à un SIEM tel que Microsoft Sentinel. Cela permet la corrélation des événements, l’automatisation des réponses et l’orchestration.
  • Optimisation des coûts : surveillez le volume de données ingérées dans Log Analytics. Utilisez des filtres de diagnostic pour collecter uniquement les journaux pertinents et éviter de collecter des données excessives afin d'optimiser les coûts.
  • Requêtes KQL efficaces : apprenez et utilisez KQL efficacement pour optimiser les performances des requêtes et réduire le temps de recherche.
  • Classeurs partagés : créez et partagez des classeurs utiles avec votre équipe pour une visualisation et une analyse collaboratives des données de sécurité.
  • Surveillance continue : examinez régulièrement les alertes générées et ajustez les règles en conséquencenécessaire pour réduire les faux positifs et garantir que les menaces réelles sont détectées.

Dépannage courant

  • Les journaux n'apparaissent pas dans Log Analytics :
    • Vérifiez que la configuration des diagnostics pour la source de données est correcte et pointe vers le bon espace de travail Log Analytics.
    • Assurez-vous que l'agent Log Analytics est installé et fonctionne correctement sur les machines virtuelles, le cas échéant.
    • Il peut y avoir un léger délai (quelques minutes) pour que les journaux apparaissent dans l'espace de travail.
    • Vérifiez les autorisations de l'identité qui envoie les journaux.
  • Les alertes ne sont pas déclenchées :
    • Vérifiez si la règle d'alerte est « Activée ».
    • Confirmez que la requête KQL dans la règle d'alerte renvoie les résultats attendus lorsqu'elle est exécutée manuellement.
    • Vérifiez la « Logique d'alerte » (seuil, fréquence) pour vous assurer qu'elle est déclenchée par les événements que vous générez.
    • Vérifiez le « Groupe d'action » pour vous assurer que les notifications sont correctement configurées et que les destinataires reçoivent les e-mails/SMS.
  • Requêtes KQL lentes ou complexes :
    • Optimisez vos requêtes en utilisant des opérateurs comme « où » et « projet » au début de la requête pour filtrer les données le plus tôt possible.
    • Évitez l'utilisation excessive d'opérateurs de « jointure » sur de grands ensembles de données.
    • Pensez à créer des fonctions KQL pour les requêtes complexes et réutilisables.
  • Faux positifs dans les alertes :
    • Ajustez la « logique d'alerte » (augmenter le seuil, ajuster la fenêtre de temps) pour réduire la sensibilité.
    • Affinez la requête KQL pour qu'elle soit plus spécifique et filtrez les événements légitimes.
    • Pensez à utiliser une liste blanche dans la requête pour ignorer les activités connues et sûres.

Conclusion

Azure Monitor et son composant Log Analytics sont des outils indispensables pour collecter et analyser les journaux de sécurité dans n'importe quel environnement Azure. En centralisant les données de journaux provenant de plusieurs sources, en permettant des requêtes puissantes avec KQL et en offrant des fonctionnalités d'alerte et de visualisation, Azure Monitor permet aux équipes de sécurité de maintenir une visibilité approfondie sur leur environnement. La mise en œuvre efficace de ces fonctionnalités est essentielle pour détecter de manière proactive les menaces, enquêter efficacement sur les incidents et garantir la conformité réglementaire. Grâce à ce guide pratique, les professionnels de la sécurité et les administrateurs informatiques seront bien équipés pour configurer, valider et gérer Azure Monitor, transformant ainsi les données brutes des journaux en informations de sécurité exploitables pour protéger leur organisation.


Références :

[1] Microsoft Apprendre. Présentation d'Azure Monitor. Disponible sur : https://learn.microsoft.com/pt-br/azure/azure-monitor/overview [2] Microsoft Apprendre. Bonnes pratiques pour les journaux Azure Monitor. Disponible sur : https://learn.microsoft.com/pt-br/azure/azure-monitor/logs/best-practices-logs [3] Microsoft Apprendre. Présentation du langage de requête Kusto (KQL). Disponible sur : https://learn.microsoft.com/pt-br/azure/data-explorer/kusto/query/ [4] Microsoft Apprendre. Collectez les journaux d'activité Azure dans l'espace de travail Log Analytics. Disponible sur : https://learn.microsoft.com/pt-br/azure/azure-monitor/essentials/activity-log?tabs=azure-portal [5] Microsoft Apprendre. Intégrez les journaux Azure AD aux journaux Azure Monitor. Disponible sur : https://learn.microsoft.com/pt-br/azure/active-directory/reports-monitoring/howto-integrate-activity-logs-with-log-analytics [6] Microsoft Apprendre. Collectez les événements et les compteurs de performances des machines virtuelles avec l'agent Log Analytics. Disponible sur : https://learn.microsoft.com/pt-br/azure/azure-monitor/agents/agent-windows [7] Microsoft Apprendre. Créez, affichez et gérez les alertes de journaux à l'aide d'Azure Monitor. Disponible sur : https://learn.microsoft.com/pt-br/azure/azure-monitor/alerts/tutorial-log-alert [8] Microsoft Apprendre. Classeurs Azure Monitor. Disponible sur : https://learn.microsoft.com/pt-br/azure/azure-monitor/visualize/workbooks-overview