Das Purview-Portal (Audit → Suche) ermöglicht die Suche im Unified Audit Log und den Export der Ergebnisse in eine CSV-Datei. Das vollständige Ereignis befindet sich in einer Spalte, AuditData, als JSON-Blob. Um sauberes JSON zu erhalten, ein Ereignis pro Zeile, verwenden Sie Exchange Online PowerShell und Search-UnifiedAuditLog. Das Skript befindet sich unten. Die Standardaufbewahrung für Audits beträgt 180 Tage; Audit (Premium) speichert standardmäßig ein Jahr.
Das Unified Audit Log deckt Exchange, SharePoint, OneDrive, Teams und administrative Aktivitäten an einem Ort ab. Bei einem Geschäftsemail-Kompromiss ist es der Ort, an dem die Posteingangsregeln, das Weiterleiten und das Massen-Downloaden auftauchen. Prime Core hat 79 Erkennungsregeln für Microsoft 365-Auditdaten, die 33 MITRE ATT&CK-Techniken zugeordnet sind. Darunter: Weiterleitungsregeln, die E-Mails absaugen (T1114.003), zusätzliche Postfachberechtigungen (T1098.002) und Daten, die von SharePoint abgerufen wurden (T1213.002).
Bevor Sie beginnen
Ist Audit aktiviert? Es ist standardmäßig für die meisten Tenants aktiviert, aber überprüfen Sie:
Connect-ExchangeOnline
Get-AdminAuditLogConfig | Format-List UnifiedAuditLogIngestionEnabled
True ist das, was Sie wollen. Wenn es False ist, wurde nichts aufgezeichnet, und das Einschalten wird keinen Rückgang füllen.
Rollen. Sie benötigen die Rolle Audit Logs oder View-Only Audit Logs. Sie benötigen auch das ExchangeOnlineManagement-Modul (Install-Module ExchangeOnlineManagement).
Latenz. Ereignisse erscheinen nicht sofort. Die meisten erscheinen innerhalb einer oder zwei Stunden, einige dauern länger. Wenn Sie etwas von heute früh verfolgen, ist es möglicherweise noch nicht durchsuchbar.
Exportieren mit PowerShell
Search-UnifiedAuditLog gibt maximal 5.000 Einträge pro Aufruf zurück. Mit einer Sitzungs-ID und ReturnLargeSet können Sie bis zu 50.000 pro Suche durchsuchen. Diese Schleife tut dies und schreibt die AuditData jedes Eintrags, bereits JSON, als eine Zeile:
$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)
Das Protokoll speichert Zeiten in UTC. Beachten Sie das, wenn Sie das Zeitfenster festlegen.
Was man suchen sollte
| Operation | Warum es wichtig ist |
|---|---|
| New-InboxRule, Set-InboxRule, UpdateInboxRules | Regeln, die Mails weiterleiten, verschieben oder löschen; überprüfen Sie die Parameter in AuditData |
| Set-Mailbox mit ForwardingSmtpAddress | Weiterleiten auf Postfachebene an eine externe Adresse |
| Add-MailboxPermission, Add-RecipientPermission | Jemand erhält Zugriff auf ein anderes Postfach |
| MailItemsAccessed | Welche Nachrichten tatsächlich gelesen wurden; entscheidend für die Abgrenzung eines Vorfalls |
| FileDownloaded, FileSyncDownloadedFull-Bursts | Massendownload von SharePoint oder OneDrive |
| Zustimmung zu einer Anwendung | Eine bösartige App erhält Zugriff auf Mails oder Dateien |
Die klassische BEC-Sequenz: ein Anmeldeversuch von einem neuen Ort, dann innerhalb von Minuten eine Posteingangsregel, die Antworten vom Finanzteam in einen obskuren Ordner verschiebt.
Hochladen, reinigen und in LogTotal überprüfen
- Hochladen. Öffnen logtotal.com und die .jsonl-Datei einfügen.
- Reinigen.
- Überprüfen.
Wenn es schiefgeht
| Symptom | Wahrscheinliche Ursache | Fix |
|---|---|---|
| Search-UnifiedAuditLog wird nicht erkannt | Nicht mit Exchange Online PowerShell verbunden | Zuerst Connect-ExchangeOnline |
| Keine Ergebnisse | Audit deaktiviert, Ereignisse zu neu oder außerhalb der Aufbewahrungsfrist | Überprüfen Sie die Aufnahme; warten; überprüfen Sie Ihre Audit-Stufe |
| Genau 5.000 Ergebnisse | Pro-Aufruf-Limit ohne Sitzung erreicht | Verwenden Sie die oben genannte Sitzungs-Schleife |
| Bei 50.000 festgefahren | Sitzungsgrenze | Teilen Sie das Fenster in kleinere Abschnitte |
| Zugriff verweigert | Fehlende Audit-Rolle | Bitten Sie um View-Only Audit Logs |
FAQ
Ist das nicht dasselbe wie Entra-Anmeldeprotokolle?
Sie überschneiden sich: der UAL hat UserLoggedIn-Ereignisse. Aber für Authentifizierungsdetails (MFA, Conditional Access, Risiko) sind Entra-Anmeldeprotokolle deutlich umfangreicher. Exportieren Sie beide.
Was ist mit der Management Activity API?
Das ist der Weg für die kontinuierliche Sammlung in ein SIEM. Für eine einmalige Untersuchung ist PowerShell einfacher.