Audit log vs unified audit log vs entra audit log
L’une des sources de confusion les plus récurrentes en réponse à incident sur Microsoft 365 réside dans la coexistence de multiples « journaux d’audit » : le Journal d’Audit Microsoft Entra ID (Entra Audit Log), le Unified Audit Log (UAL) de Microsoft Purview, et les Journaux d’Audit Spécifiques aux Composants (tels que l’Exchange Admin Audit Log historique ou l’audit de site SharePoint).
Lorsqu’un attaquant élève ses privilèges, ajoute un secret à une application ou altère des délégations de boîte aux lettres, des traces sont générées simultanément dans plusieurs plates-formes. Toutefois, ces enregistrements n’arrivent pas au même moment, ne sont pas conservés pendant la même durée, et leurs schémas de données internes ne sont pas identiques. Sélectionner la mauvaise source de données en pleine gestion de crise entraîne inévitablement des faux négatifs, des retards critiques ou la perte définitive de preuves par expiration de rétention.
1. Comparatif architectural & systèmes sources
Section intitulée « 1. Comparatif architectural & systèmes sources »Pour identifier où résident les preuves avec exactitude, l’investigateur doit remonter à la source d’enregistrement de chaque journal :
graph TD subgraph "Plan de Contrôle d'Identité" ENTRA_CORE[Moteur d'Annuaire Microsoft Entra ID] ENTRA_LOG[Journal d'Audit Entra<br/>Modifications d'Annuaire] ENTRA_STORE[(Stockage Entra Natif<br/>7 à 30 Jours)] end
subgraph "Plan d'Exécution & Stockage des Données" EXO_CORE[Exchange Online Transport & Boîtes] SPO_CORE[SharePoint / OneDrive Subsystems] EXO_LEGACY[Exchange Admin Audit Log Local] end
subgraph "Plan de Conformité & Agrégation" INGEST[Bus d'Ingestion Purview] UAL_STORE[(Unified Audit Log Store<br/>180 Jours à 1 An+)] end
ENTRA_CORE -->|Temps réel : 2-5 min| ENTRA_LOG ENTRA_LOG --> ENTRA_STORE
ENTRA_CORE -->|Réplication : 15-60 min| INGEST EXO_CORE -->|Publication : 15-45 min| INGEST SPO_CORE -->|Publication : 15-30 min| INGEST
EXO_CORE -->|Log local : Immédiat| EXO_LEGACY
INGEST --> UAL_STOREMatrice comparative des trois systèmes de journalisation
Section intitulée « Matrice comparative des trois systèmes de journalisation »| Paramètre | Journal d’Audit Entra ID | Unified Audit Log Purview (UAL) | Journaux Locaux des Composants |
|---|---|---|---|
| Périmètre d’autorité | Plan d’identité : Utilisateurs, Groupes, Apps d’entreprise, Rôles, PIM. | Activité transverse : Exchange, SharePoint, Teams, Entra ID, Power Platform. | Frontière du composant : Audit admin/boîte Exchange, audit de site SharePoint. |
| Latence d’ingestion | 2 à 5 minutes (Quasi temps réel). | 15 minutes à 24 heures (Agrégation asynchrone par lots). | Immédiate (magasin transactionnel local). |
| Rétention par défaut | Gratuit : 7 jours P1 / P2 : 30 jours | Standard : 180 jours Premium / E5 : 1 an (extensible à 10 ans) | Spécifique au composant (Exchange : 90 jours). |
| API d’extraction principale | Microsoft Graph API :/v1.0/auditLogs/directoryAudits | Office 365 Management Activity API / Graph Audit API | PowerShell Exchange Online :Search-AdminAuditLog |
| Cmdlet PowerShell | Get-MgAuditLogDirectoryAudit | Search-UnifiedAuditLog | Search-AdminAuditLog / Get-MailboxAuditLog |
| Licence requise | Entra ID Free, P1, P2 | Purview Audit (Standard / Premium) | Incluse dans la licence du composant |
2. Le phénomène de duplication et la traçabilité croisée
Section intitulée « 2. Le phénomène de duplication et la traçabilité croisée »Lorsqu’un événement administratif survient dans Entra ID — par exemple, un attaquant attribuant le rôle Exchange Administrator à un compte pirate —, cette action unique est consignée dans plusieurs systèmes avec des structures hétérogènes :
sequenceDiagram autonumber actor Attaquant as Compte Administrateur Compromis participant Entra as Moteur d'Annuaire Entra ID participant EntraLog as Journal d'Audit Entra (/auditLogs) participant UAL as UAL Purview (RecordType 15) participant Defender as Defender XDR (CloudAppEvents)
Attaquant->>Entra: Attribue "Exchange Administrator" au compte pirate Entra->>EntraLog: Écrit l'événement directoryAudit (Latence : ~2 min) Note over EntraLog: Disponible sur le portail Entra & Graph API Entra->>UAL: Publie sur le bus d'ingestion Purview (Latence : ~30 min) Note over UAL: Indexé sous le RecordType 15 dans l'UAL Entra->>Defender: Diffuse vers Advanced Hunting (Latence : ~10 min) Note over Defender: Requêtable dans CloudAppEvents (ActionType: Add member to role.)Discordance de schéma sur un même événement
Section intitulée « Discordance de schéma sur un même événement »Bien que les deux journaux décrivent rigoureusement la même opération, leur sérialisation JSON présente des différences notables :
{ "id": "Directory_a4f89d32-28e1-4c12-b891-883109aef102", "category": "RoleManagement", "correlationId": "5e12a843-ef45-42a1-9a14-8712a45930b1", "result": "success", "resultReason": "", "activityDisplayName": "Add member to role", "activityDateTime": "2026-09-15T10:14:22.124Z", "loggedByService": "Core Directory", "operationType": "Add", "initiatedBy": { "user": { "id": "3d12f890-341a-4f89-91a1-987120adfe01", "displayName": "Global Admin Compromis", "userPrincipalName": "admin@defense-corp.org", "ipAddress": "198.51.100.45" } }, "targetResources": [ { "id": "29283109-1004-4b51-9e7f-cisco-seg-sqli", "displayName": "Exchange Administrator", "type": "Role", "modifiedProperties": [ { "displayName": "Role.DisplayName", "oldValue": null, "newValue": ""Exchange Administrator"" } ] }, { "id": "4e9c7a21-82b4-4b51-9e7f-cisco-seg-sqli", "displayName": "Compte_Pirate", "type": "User", "userPrincipalName": "pirate_user#EXT#@defense-corp.onmicrosoft.com" } ]}{ "CreationTime": "2026-09-15T10:14:22", "Id": "a4f89d32-28e1-4c12-b891-883109aef102", "Operation": "Add member to role.", "OrganizationId": "72f988bf-86f1-41af-91ab-2d7cd011db47", "RecordType": 15, "ResultStatus": "Success", "UserKey": "admin@defense-corp.org", "UserType": 0, "Workload": "AzureActiveDirectory", "ClientIP": "198.51.100.45", "Actor": [ { "ID": "admin@defense-corp.org", "Type": 5 } ], "Target": [ { "ID": "Exchange Administrator", "Type": 2 }, { "ID": "pirate_user#EXT#@defense-corp.onmicrosoft.com", "Type": 1 } ], "ModifiedProperties": [ { "Name": "Role.DisplayName", "NewValue": ""Exchange Administrator"", "OldValue": "" } ]}3. Périmètres exclusifs : que trouve-t-on uniquement dans chaque journal ?
Section intitulée « 3. Périmètres exclusifs : que trouve-t-on uniquement dans chaque journal ? »Identifier les zones de visibilité exclusive évite aux équipes d’intervention de chercher des preuves dans le mauvais référentiel :
+---------------------------------------------------------------------------------------+| MICROSOFT PURVIEW UAL || || +------------------------------------+ +--------------------------------------+ || | EXCHANGE ONLINE | | SHAREPOINT / ONEDRIVE | || | - MailItemsAccessed (Bind/Sync) | | - FileDownloaded / FileAccessed | || | - New-InboxRule / Set-InboxRule | | - Partages & Invitations Anonymes | || | - SendAs / SendOnBehalf | | - Ajout d'Admins de Collection | || | - SoftDelete / HardDelete | | - Synchronisations OneDrive | || +------------------------------------+ +--------------------------------------+ || || +------------------------------------+ +--------------------------------------+ || | MICROSOFT TEAMS | | RÉPLICATION ENTRA (15) | || | - Ajout de canaux / Création Team | | - Attribution de rôles | || | - Ajout d'invités externes | | - Consentements applicatifs | || | - Déploiement de Bots / Apps | | - Secrets / Certificats Service Pr. | || +------------------------------------+ +--------------------------------------+ |+---------------------------------------------------|-----------------------------------+ | Pipeline Réplication | (Latence 15 min - 60 min) v+---------------------------------------------------------------------------------------+| JOURNAL D'AUDIT ENTRA ID || || - Télémétrie d'annuaire quasi temps réel (~2 min de latence) || - Métadonnées riches TargetResources (GUIDs d'objets, extensions de schéma) || - Activations PIM (Privileged Identity Management) & chaînes de justification || - Création, modification et suppression des politiques d'Accès Conditionnel || - Réinitialisations de mot de passe & opérations de cycle de vie |+---------------------------------------------------------------------------------------+Règles de décision DFIR incontournables
Section intitulée « Règles de décision DFIR incontournables »- Actions sur les courriels & boîtes aux lettres : présentes UNIQUEMENT dans l’UAL (
RecordType 2). Entra ID n’a aucune visibilité sur la lecture des courriels ou les règles de transfert. - Téléchargements de fichiers & partages documentaires : présents UNIQUEMENT dans l’UAL (
RecordType 6). Entra ID ne voit que l’authentification initiale à SharePoint, jamais les actions sur les fichiers. - Justifications PIM : visibles avec la plus grande fidélité dans les Journaux d’Audit Entra. L’UAL enregistre l’attribution finale du rôle, mais les métadonnées de requête PIM y sont souvent abrégées.
- Investigations historiques (> 30 jours) : pour les actions d’identité datant de plus d’un mois, les analystes doivent impérativement interroger l’UAL. Le journal Entra ID purge nativement les événements au 30e jour (même avec des licences P2).
4. Matrice de décision opérationnelle pour le triage
Section intitulée « 4. Matrice de décision opérationnelle pour le triage »En cours d’incident, appliquez cet arbitrage pour orienter vos requêtes :
| Phase de réponse | Source prioritaire | Source secondaire | Justification opérationnelle |
|---|---|---|---|
| Phase 1 : triage immédiat (0 à 4 h) Identification des élévations et modifications de comptes | Journal d’audit entra ID (Graph API) | Defender XDR (CloudAppEvents) | Latence ultra-courte (< 5 min) permettant de suivre l’attaquant en direct. |
| Phase 2 : évaluation de l’impact données Détermination des mails lus et fichiers exfiltrés | Unified audit log purview | Diagnostic de messagerie (Message Trace) | Seul l’UAL indexe MailItemsAccessed et FileDownloaded. |
| Phase 3 : détection de la persistance Apps OAuth furtives, règles de boîte, domaines fédérés | Audit entra et UAL | Scripts d’audit PowerShell | Les apps OAuth sont dans les deux ; les règles de boîte sont strictement dans l’UAL. |
| Phase 4 : investigation historique (> 30 j) Remontée à l’intrusion initiale plusieurs mois plus tôt | Unified audit log purview | Stockage froid SIEM / Log Analytics | Le journal Entra ID natif est purgé après 30 jours. |
5. Commandes d’extraction comparatives
Section intitulée « 5. Commandes d’extraction comparatives »# Connexion à Microsoft Graph avec autorisations d'auditConnect-MgGraph -Scopes "AuditLog.Read.All", "Directory.Read.All"
# Extraction des modifications de rôles sur les dernières 24h (Ultra-rapide)$startTime = (Get-Date).AddDays(-1).ToString("yyyy-MM-ddTHH:mm:ssZ")
$entraEvents = Get-MgAuditLogDirectoryAudit -Filter "activityDateTime ge $startTime and category eq 'RoleManagement'" -All
# Mise en forme structurée$entraEvents | Select-Object ActivityDateTime, ActivityDisplayName, Result, ` @{N="Initiateur"; E={$_.InitiatedBy.User.UserPrincipalName}}, ` @{N="IP_Client"; E={$_.InitiatedBy.User.IpAddress}}, ` @{N="Cible"; E={($_.TargetResources | Select-Object -First 1).DisplayName}} | ` Format-Table -AutoSizeConnect-ExchangeOnline -UserPrincipalName dfir@defense-corp.org
# Requête équivalente sur l'UAL$startDate = (Get-Date).AddDays(-1).ToUniversalTime()$endDate = (Get-Date).ToUniversalTime()
$ualEvents = Search-UnifiedAuditLog ` -StartDate $startDate ` -EndDate $endDate ` -RecordType AzureActiveDirectory ` -Operations "Add member to role.", "Consent to application." ` -ResultSize 5000 ` -Formatted
# Extraction et désérialisation de la charge JSON$ualEvents | ForEach-Object { $audit = $_.AuditData | ConvertFrom-Json [PSCustomObject]@{ DateCreation = $_.CreationTime Operation = $_.Operation Acteur = $audit.Actor[0].ID IP_Client = $audit.ClientIP Cible = ($audit.Target | ForEach-Object { $_.ID }) -join " -> " }} | Format-Table -AutoSize6. Pièges & discordances forensiques
Section intitulée « 6. Pièges & discordances forensiques »7. Maillage documentaire & liens transverses
Section intitulée « 7. Maillage documentaire & liens transverses »- 08. Architecture des journaux — Cartographie globale des plans d’audit et de télémétrie.
- 10. Analyse des journaux d’audit entra — Guide d’analyse approfondie des journaux d’annuaire.
- 13. Dissection approfondie du unified audit log (UAL) — Guide complet de requêtage et de parsing de l’UAL.
- 18. Rétention d’audit Microsoft 365 & réalités de licences — Limites de rétention et stratégies d’export vers SIEM.
- 47. Corrélation multi-sources des preuves Microsoft 365 — Méthodes de corrélation multi-couches.\n