Comment exporter le journal d’audit unifié de Microsoft 365

Comment exporter le journal d’audit unifié de Microsoft 365

SOC Prime Team
SOC Prime Team linkedin icon Suivre

Le portail Purview (Audit → Rechercher) vous permet de rechercher dans le journal d’audit unifié et d’exporter les résultats en CSV. L’événement complet se trouve dans une colonne, AuditData, sous forme de blob JSON. Pour obtenir du JSON propre, un événement par ligne, utilisez Exchange Online PowerShell et Search-UnifiedAuditLog. Le script est ci-dessous. La rétention d’audit standard est de 180 jours ; l’audit (Premium) conserve une année par défaut.

Le journal d’audit unifié couvre Exchange, SharePoint, OneDrive, Teams et l’activité administrative en un seul endroit. Dans un compromis de courriel professionnel, c’est là que les règles de boîte de réception, les redirections et les téléchargements massifs apparaissent. Prime Core a 79 règles de détection pour les données d’audit Microsoft 365, mappées à 33 techniques MITRE ATT&CK. Parmi elles : les règles de transfert qui siphonnent le courrier (T1114.003), les permissions supplémentaires sur la boîte aux lettres (T1098.002) et les données extraites de SharePoint (T1213.002).

Commencez gratuitement

Avant de commencer

L’audit est-il activé ? C’est le cas par défaut pour la plupart des locataires, mais vérifiez :

Connect-ExchangeOnline

Get-AdminAuditLogConfig | Format-List UnifiedAuditLogIngestionEnabled

True est ce que vous voulez. Si c’est False, rien n’a été enregistré, et l’activer ne remplira pas rétroactivement.

Rôles. Vous avez besoin du rôle Journaux d’audit ou Journaux d’audit en lecture seule. Vous avez également besoin du module ExchangeOnlineManagement (Install-Module ExchangeOnlineManagement).

Latence. Les événements n’apparaissent pas instantanément. La plupart apparaissent dans une heure ou deux, certains prennent plus de temps. Si vous suivez quelque chose de ce matin, il se peut qu’il ne soit pas encore consultable.

Exporter avec PowerShell

Search-UnifiedAuditLog renvoie au maximum 5 000 enregistrements par appel. Avec un ID de session et ReturnLargeSet, vous pouvez parcourir jusqu’à 50 000 par recherche. Cette boucle le fait et écrit AuditData de chaque enregistrement, déjà JSON, sous forme d’une ligne :

$session = [guid]::NewGuid().ToString()

$out = "ual_2026-10-19.jsonl"

do {

$batch = Search-UnifiedAuditLog -StartDate "2026-10-19 00:00" -EndDate "2026-10-20 00:00" `

-SessionId $session -SessionCommand ReturnLargeSet -ResultSize 5000

$batch | ForEach-Object { $_.AuditData } | Add-Content $out

} while ($batch.Count -eq 5000)

Le journal stocke les heures en UTC. Gardez cela à l’esprit lors de la définition de la fenêtre.

Ce qu’il faut rechercher

OpérationPourquoi c’est important
New-InboxRule, Set-InboxRule, UpdateInboxRulesRègles qui redirigent, déplacent ou suppriment le courrier ; vérifiez les paramètres dans AuditData
Set-Mailbox avec ForwardingSmtpAddressRedirection au niveau de la boîte aux lettres vers une adresse externe
Add-MailboxPermission, Add-RecipientPermissionQuelqu’un obtenant accès à une autre boîte aux lettres
MailItemsAccessedQuels messages ont été réellement lus ; clé pour délimiter une violation
Téléchargement de fichiers, synchronisation complète de fichiers téléchargésTéléchargement en masse à partir de SharePoint ou OneDrive
Consentement à une applicationUne application malveillante a obtenu l’accès au courrier ou aux fichiers

La séquence classique de BEC : une connexion depuis un nouvel emplacement, puis en quelques minutes, une règle de boîte de réception qui déplace les réponses de l’équipe financière dans un dossier obscur.

Téléchargez, assainissez et révisez dans LogTotal

  • Télécharger. Ouvrir logtotal.com et déposez le fichier .jsonl.
  • Assainir. 
  • Réviser.

Quand cela tourne mal

SymptômeCause probableFix
Search-UnifiedAuditLog n’est pas reconnuNon connecté à Exchange Online PowerShellConnectez-vous à ExchangeOnline d’abord
Aucun résultatAudit désactivé, événements trop récents, ou hors rétentionVérifiez l’ingestion ; attendez ; vérifiez votre niveau d’audit
Exactement 5 000 résultatsLimite par appel atteinte sans sessionUtilisez la boucle de session ci-dessus
Bloqué à 50 000Limite de sessionDivisez la fenêtre en morceaux plus petits
Accès refuséRôle d’audit manquantDemandez pour Journaux d’audit en lecture seule

FAQ

N’est-ce pas la même chose que les journaux de connexion Entra ?

Ils se chevauchent : le UAL a des événements UserLoggedIn. Mais pour les détails d’authentification (MFA, accès conditionnel, risque), les journaux de connexion Entra sont beaucoup plus riches. Exportez-les tous les deux.

Et qu’en est-il de l’API d’activité de gestion ?

C’est la voie pour une collecte continue dans un SIEM. Pour une enquête ponctuelle, PowerShell est plus simple.

Rejoignez la plateforme Detection as Code de SOC Prime pour améliorer la visibilité sur les menaces les plus pertinentes pour votre entreprise. Pour vous aider à démarrer et à générer une valeur immédiate, planifiez dès maintenant une réunion avec des experts de SOC Prime.