Як експортувати об’єднаний журнал аудиту Microsoft 365

Як експортувати об’єднаний журнал аудиту Microsoft 365

SOC Prime Team
SOC Prime Team linkedin icon Стежити

Портал Purview (Аудит → Пошук) дозволяє шукати уніфікований журнал аудиту та експортувати результати у CSV. Повна подія розміщується в одному стовпці, AuditData, у вигляді JSON блобу. Щоб отримати чистий JSON, одна подія на рядок, використовуйте Exchange Online PowerShell і Search-UnifiedAuditLog. Скрипт наведено нижче. Стандартне зберігання аудиту становить 180 днів; Audit (Premium) зберігає рік за замовчуванням.

Уніфікований журнал аудиту охоплює Exchange, SharePoint, OneDrive, Teams та адміністративну активність в одному місці. При компрометації бізнес-пошти тут відображаються правила вхідних повідомлень, пересилання та масові завантаження. Prime Core має 79 правил виявлення для даних аудиту Microsoft 365, що відповідають 33 технікам MITRE ATT&CK. Серед них: правила пересилання, що відкачують пошту (T1114.003), зайві дозволи на поштову скриньку (T1098.002) та дані, отримані з SharePoint (T1213.002).

Почати безкоштовно

Перш ніж почати

Аудит увімкнено? За замовчуванням для більшості орендарів він увімкнений, але перевірте:

Connect-ExchangeOnline

Get-AdminAuditLogConfig | Format-List UnifiedAuditLogIngestionEnabled

True – це те, що потрібно. Якщо False, нічого не було записано, і увімкнення не заповнить пропуски.

Ролі. Вам потрібна роль Audit Logs або View-Only Audit Logs. Також потрібен модуль ExchangeOnlineManagement (Install-Module ExchangeOnlineManagement).

Затримка. Події не з’являються миттєво. Більшість з’являється протягом години-двох, деякі — довше. Якщо ви шукаєте щось зранку, це може ще не бути доступним для пошуку.

Експорт за допомогою PowerShell

Search-UnifiedAuditLog повертає максимум 5,000 записів за виклик. З ідентифікатором сеансу та ReturnLargeSet можна переглянути до 50,000 за пошук. Цей цикл робить це і записує AuditData кожного запису, вже у форматі JSON, як один рядок:

$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)

Лог зберігає час у форматі UTC. Пам’ятайте про це, коли встановлюєте вікно.

На що звертати увагу

ОпераціяЧому це важливо
New-InboxRule, Set-InboxRule, UpdateInboxRulesПравила, що пересилають, переміщують або видаляють пошту; перевірте параметри в AuditData
Set-Mailbox з ForwardingSmtpAddressПересилання на рівні поштової скриньки на зовнішню адресу
Add-MailboxPermission, Add-RecipientPermissionХтось отримує доступ до іншої поштової скриньки
MailItemsAccessedЯкі повідомлення фактично були прочитані; ключ до визначення межі порушення
FileDownloaded, FileSyncDownloadedFull вибухиМасове завантаження з SharePoint або OneDrive
Дозвіл на доступ до програмиШкідливій програмі надано доступ до пошти або файлів

Класична послідовність BEC: вхід з нового місця, а потім через кілька хвилин правило вхідних повідомлень, яке переміщує відповіді з фінансової команди в маловідомий каталог.

Завантажте, очистіть та перегляньте в LogTotal

  • Завантажити. Перейдіть на logtotal.com і дайте файл .jsonl.
  • Очистка. 
  • Перегляд.

Коли щось йде не так

СимптомЙмовірна причинаFix
Search-UnifiedAuditLog не розпізнаноНе підключено до Exchange Online PowerShellСпочатку підключіться до ExchangeOnline
Немає результатівАудит вимкнено, події занадто нові або за межами зберіганняПеревірте інгестию; зачекайте; перевірте ваш рівень аудиту
Рівно 5,000 результатівДосягнуто ліміту за викликом без сесіїВикористовуйте наведений вище цикл сесій
Застрягло на 50,000Обмеження сеансуРозділіть вікно на менші частини
Доступ забороненоВідсутня роль аудитуЗапитайте про роль View-Only Audit Logs

FAQ

Хіба це не те ж саме, що журнали входу Entra?

Вони перетинаються: UAL містить події UserLoggedIn. Але для деталей автентифікації (MFA, умовний доступ, ризик) журнали входу Entra значно багатші. Експортуйте обидва.

Що з API активності управління?

Це шлях для безперервного збору в SIEM. Для разового розслідування PowerShell простіший.

Приєднуйтесь до платформи Detection as Code від SOC Prime щоб покращити видимість загроз, найбільш актуальних для вашого бізнесу. Щоб допомогти вам розпочати та отримати негайну цінність, забронюйте зустріч зараз з експертами SOC Prime.