Intégrer des journaux avec un espace de travail Log Analytics

Effectué

Vous pouvez utiliser une journalisation avancée dans Azure pour voir les utilisateurs qui se sont connectés à votre réseau, et ce qu’ils ont fait pendant qu’ils étaient connectés.

Vous avez vu comment accéder aux journaux de connexion et d’audit, et comment les utiliser pour rechercher des comportements utilisateur inattendus. Avoir accès à ces données est une première étape importante dans la protection de votre réseau, ainsi que de ses actifs et ressources. La collecte et le traitement des fichiers journaux de connexion et d’activité peuvent être laborieux. Ce processus pourrait identifier un comportement utilisateur suspect après l’événement, mais il ne répond toujours pas au besoin de votre équipe de sécurité qui est d’avoir une vue en temps réel du comportement.

Azure Monitor peut fournir les vues en temps réel et les alertes dont votre équipe de sécurité a besoin. Vous pouvez utiliser un espace de travail Log Analytics pour Azure Monitor pour conserver, stocker et visualiser les données de journal de connexion et d’activité. Pour rassurer l’équipe de sécurité de votre organisation, vous souhaitez en savoir plus sur Azure Monitor et la façon dont vous pouvez l’utiliser pour identifier un comportement de connexion suspect.

Cette unité explique comment configurer un espace de travail Log Analytics pour Azure Monitor. Vous allez ensuite découvrir comment envoyer des fichiers journaux à votre espace de travail Log Analytics. Enfin, vous allez apprendre à créer des alertes pour vous avertir en cas de comportements ou d’activités suspects d’utilisateurs. Dans un exercice ultérieur, vous pourrez essayer de le faire par vous-même.

Prérequis

Pour utiliser un espace de travail Log Analytics afin d’afficher et d’analyser les journaux Microsoft Entra, vérifiez que les éléments suivants sont disponibles ou configurés :

  • Accès à un espace de travail Log Analytics.
  • Accès aux journaux Microsoft Entra.
  • Accès aux paramètres de diagnostic Microsoft Entra.
  • Un abonnement Microsoft Entra ID P1 ou P2 ou Premium 2.
  • Un des rôles Microsoft Entra suivants :
    • Administrateur de sécurité
    • Lecteur de sécurité
    • Lecteur de rapport
    • Administrateur général

Créer un espace de travail Log Analytics

Vous savez qu’Azure collecte des données utilisateur sous la forme de fichiers journaux de connexion et d’audit, mais vous ne pouvez pas importer les données directement dans Azure Monitor. Tout d’abord, vous devez collecter les données de journal dans un espace de travail Log Analytics. Chaque espace de travail est unique et a ses propres référentiel de données et configuration. Lorsque vous configurez l’espace de travail, vous pouvez analyser les données en utilisant des recherches dans les journaux et des requêtes basées sur des tables.

La création d’un espace de travail Log Analytics est simple. Dans le portail Azure, recherchez Log Analytics pour créer une ressource d’espace de travail Log Analytics.

Capture d’écran des résultats de la recherche Log Analytics pour illustrer le concept.

Lorsque vous créez un espace de travail Log Analytics, sélectionnez ou entrez les détails de celui-ci. Veillez à créer un nouvel espace de travail, car celui-ci est propre à l’utilisateur actuellement connecté. Chaque espace de travail doit avoir un nom globalement unique parmi tous les abonnements Azure Monitor. Vous pouvez également créer des balises à utiliser pour l’espace de travail.

Le niveau tarifaire automatiquement affecté, Paiement à l’utilisation, est basé sur un coût par gigaoctet (Go).

Capture d’écran du volet Configuration de l’espace de travail Log Analytics.

Après avoir créé l’espace de travail Log Analytics, vous pouvez collecter et analyser les données d’audit et de connexion de l’utilisateur.

Tailles de stockage pour les journaux d’activité

Il est important de comprendre la quantité de stockage que votre espace de travail est susceptible de consommer. La taille d’un journal des événements de connexion standard est d’environ 4 kilooctets (ko), et le journal d’audit occupe environ 2 ko.

Pour mettre cela en perspective, si votre locataire compte 1 000 utilisateurs, votre journal d’audit générera environ 15 000 événements par jour. Il y aura un volume de stockage quotidien d’environ 30 mégaoctets (Mo) par jour, soit 900 Mo par mois. Les chiffres sont un peu plus élevés pour les journaux de connexion. En supposant qu’un locataire Azure compte 1 000 utilisateurs, les journaux de connexion généreront 34 800 événements par jour, soit environ 140 Mo par jour ou 4 Go de stockage par mois.

Envoyer des journaux à l’espace de travail Log Analytics

Maintenant que vous avez créé un espace de travail Log Analytics, vous affectez les journaux d’audit et de connexion de l’utilisateur. Toutes les données que vous voulez utiliser dans Journaux Azure Monitor doivent être stockées dans un espace de travail Log Analytics. Sur le portail Azure, accédez à votre instance Microsoft Entra. Sélectionnez l’onglet Surveillance, puis sélectionnez Paramètres de diagnostic.

Pour créer une connexion entre deux fichiers journaux et votre espace de travail Log Analytics, sélectionnez Ajouter un paramètre de diagnostic.

Capture d’écran montrant comment créer un paramètre de diagnostic.

Entrez un nom à utiliser pour le paramètre et sélectionnez les journaux que vous souhaitez envoyer à l’espace de travail.

Activez l’option Envoyer à Log Analytics, puis spécifiez ou créez un espace de travail Log Analytics.

Capture d’écran montrant le concept de création d’un paramètre de diagnostic.

Vous avez maintenant configuré un processus de streaming de données qui va envoyer des données d’audit et de connexion à l’espace de travail Log Analytics. Comme il s’agit d’un nouveau service, il faut environ 15 minutes pour que des données apparaissent dans l’espace de travail.

Analyser les fichiers journaux

Vous avez configuré votre espace de travail Log Analytics pour qu’il reçoive les données d’activité des utilisateurs. Vous pouvez à présent utiliser la puissance des journaux Azure Monitor pour afficher l’activité au sein de votre environnement. Les journaux Azure Monitor vous permettent d’interroger vos données pour identifier des tendances ou des événements spécifiques, ou de mettre en corrélation plusieurs sources de données.

Schémas des données des journaux

Les flux de données pour les journaux d’audit et de connexion sont stockés dans votre espace de travail Log Analytics dans deux tables distinctes, AuditLogs et SignInLogs. Chaque table a son propre schéma, que vous pouvez utiliser pour interroger les données.

Écrire des requêtes sur le journal d’activité

Les journaux d’audit étant stockés dans les tables de votre espace de travail, vous pouvez maintenant exécuter des requêtes sur ceux-ci. Vous pouvez écrire deux types de requête : des requêtes basées sur des tables et des requêtes de recherche. Les structures du schéma de la section précédente vous montrent tous les champs sur lesquels vous pouvez faire des requêtes.

Le langage de requête que vous utilisez est Kusto. Il est conçu pour traiter les données et retourner un jeu de résultats.

Chaque requête Kusto suit un modèle commun :

  • Une requête commence toujours par le nom de la table sur laquelle vous exécutez la requête. Ici, ce nom est SignInLogs ou AuditLogs.
  • Chaque commande est séparée par une barre verticale (|) et commence généralement sur une nouvelle ligne. Vous pouvez avoir plusieurs barres verticales dans une requête.

Sauf si vous nommez des colonnes de façon spécifique, le jeu de résultats que vous voyez contient tous les champs du schéma.

La commande where est le moyen le plus courant de filtrer les données dans votre requête. Quand vous écrivez une condition pour filtrer vos données, les expressions suivantes sont valides :

Expression Description Exemple
== Vérifier l’égalité (sensible à la casse) Level == 8
=~ Vérifier l’égalité (insensible à la casse) EventSourceName =~ "microsoft-windows-security-auditing"
!=, <> Vérifier l’inégalité (les deux expressions sont identiques) Level != 4
and or Obligatoire entre les conditions Level == 16 or CommandLine != ""

Les autres commandes de filtre courantes sont les suivantes :

Commande Description Exemple
take *n* idéal pour les petits jeux de résultats. « take » retourne n lignes du jeu de résultats sans un ordre particulier. AuditLogs | Take 10
top *n* by *field* Utilisez cette commande de filtre pour retourner les n premières lignes, triées selon le champ indiqué. AuditLogs | Top 10 by timeGenerated
sort by *field* (desc) Si vous voulez simplement trier le jeu de résultats, vous pouvez utiliser la commande sort. Vous devez spécifier le champ de tri, puis ajouter éventuellement l’instruction desc pour spécifier un modèle de tri décroissant. AuditLogs | Sort by timeGenerated desc
Where champ (expression) valeur Commande de filtrage principale. Vous nommez le champ, l’expression et la valeur du comparateur. Vous pouvez empiler plusieurs commandes Where, chacune séparée par une barre verticale. AuditLogs | where CreatedDateTime >= ago(2d)
project champs Si vous voulez restreindre le jeu de résultats pour afficher seulement des champs ou colonnes nommés, vous pouvez utiliser la commande project avec une liste de champs séparés par une virgule. AuditLogs | project timeGenerated, OperationName, ResourceGroup, Result

Vous pouvez utiliser de nombreuses autres commandes pour générer des requêtes. Pour en savoir plus sur les requêtes et les filtres, consultez les informations de référence fournies à la fin de ce module.

Exemples de requêtes de connexion

Supposons que vous souhaitiez connaître les applications les plus utilisées et demandées auxquels des utilisateurs se sont connectés au cours de la semaine dernière. Votre requête ressemblerait à cet exemple :

SigninLogs
| where CreatedDateTime >= ago(7d)
| summarize signInCount = count() by AppDisplayName
| sort by signInCount desc

Ou bien, si vous voulez voir combien de vos utilisateurs ont été marqués comme à risque au cours des 14 derniers jours, utilisez cette requête :

SigninLogs
| where CreatedDateTime >= ago(14d)
| where isRisky = true

Exemple de requête d’audit

Supposons à présent que vous vouliez connaître l’événement utilisateur le plus courant au cours de la semaine dernière. Vous utiliserez une requête comme cet exemple :

AuditLogs
| where TimeGenerated >= ago(7d)
| summarize auditCount = count() by OperationName
| sort by auditCount desc

Utiliser des classeurs ou modèles existants dans votre espace de travail Log Analytics

Vous pouvez utiliser des classeurs existants pour afficher des vues courantes de vos données d’audit et de connexion. Si vous ne trouvez pas de classeur faisant ce dont vous avez besoin, vous pouvez commencer par un modèle et modifier la requête.

Dans votre espace de travail Log Analytics dans le portail Azure, dans le menu de gauche, sous Général, sélectionnez Classeurs.

Si vous ne trouvez pas de classeur existant contenant la requête dont vous avez besoin, vous pouvez sélectionner la vignette Modèle par défaut et créer une requête.

Capture d’écran montrant comment créer un classeur à partir de la galerie.

Si vous souhaitez connaître l’événement utilisateur le plus courant de la semaine dernière, collez cette requête dans votre éditeur de requête :

AuditLogs
| where TimeGenerated >= ago(7d)
| summarize auditCount = count() by OperationName
| sort by auditCount desc

Exécutez la requête pour consulter les résultats. Lorsque vous êtes satisfait des données dont vous disposez, sélectionnez Modification terminée, puis enregistrez le classeur.

Capture d’écran montrant comment créer un classeur.

Entrez un nom descriptif, tel que Événements utilisateur courants des 7 derniers jours, sélectionnez ou entrez l’abonnement, le groupe de ressources et l’emplacement que vous souhaitez utiliser, puis enregistrez le classeur.

Pour afficher le classeur, dans le menu de gauche, sous Général, sélectionnez Classeurs. Recherchez la vignette de classeur sous Classeurs récemment modifiés.

Capture d’écran montrant comment rechercher des classeurs récemment modifiés.

Vérifiez vos connaissances

1.

Quels sont les deux types de requêtes que vous pouvez écrire pour afficher vos journaux Microsoft Entra ?

2.

Quelle commande de filtre de requête utiliseriez-vous pour obtenir n lignes dans un ordre quelconque ?