Como Exportar o Registro Unificado de Auditoria do Microsoft 365

Como Exportar o Registro Unificado de Auditoria do Microsoft 365

SOC Prime Team
SOC Prime Team linkedin icon Seguir

O portal Purview (Auditoria → Pesquisa) permite que você pesquise o Log de Auditoria Unificado e exporte os resultados para CSV. O evento completo fica em uma coluna, AuditData, como um blob JSON. Para obter um JSON limpo, um evento por linha, use o PowerShell do Exchange Online e o Search-UnifiedAuditLog. O script está abaixo. A retenção padrão das auditorias é de 180 dias; Audit (Premium) mantém por um ano por padrão.

O Log de Auditoria Unificado cobre Exchange, SharePoint, OneDrive, Teams e atividades administrativas em um só lugar. Em um comprometimento de e-mail comercial, é onde as regras de caixa de entrada, encaminhamento e downloads em massa aparecem. Prime Core tem 79 regras de detecção para dados de auditoria do Microsoft 365, mapeadas para 33 técnicas do MITRE ATT&CK. Entre elas: regras de encaminhamento que desviam e-mails (T1114.003), permissões adicionais de caixa de correio (T1098.002) e dados extraídos do SharePoint (T1213.002).

Começe Gratuitamente

Antes de começar

A auditoria está ativada? Está por padrão para a maioria dos locatários, mas verifique:

Connect-ExchangeOnline

Get-AdminAuditLogConfig | Format-List UnifiedAuditLogIngestionEnabled

True é o que você quer. Se estiver False, nada foi gravado, e ativá-lo não será retroativo.

Papéis. Você precisa da função Audit Logs ou View-Only Audit Logs. Você também precisa do módulo ExchangeOnlineManagement (Install-Module ExchangeOnlineManagement).

Latência. Os eventos não aparecem instantaneamente. A maioria aparece dentro de uma ou duas horas, alguns demoram mais. Se você está atrás de algo desta manhã, pode não ser pesquisável ainda.

Exportar com PowerShell

Search-UnifiedAuditLog retorna no máximo 5.000 registros por chamada. Com um ID de sessão e ReturnLargeSet, você pode paginar até 50.000 por pesquisa. Este loop faz isso e escreve o AuditData de cada registro, já em JSON, como uma linha:

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

O log armazena tempos em UTC. Lembre-se disso ao definir a janela.

O que procurar

OperaçãoPor que importa
New-InboxRule, Set-InboxRule, UpdateInboxRulesRegras que encaminham, movem ou excluem e-mails; verifique os parâmetros em AuditData
Set-Mailbox com ForwardingSmtpAddressEncaminhamento ao nível da caixa de correio para um endereço externo
Add-MailboxPermission, Add-RecipientPermissionAlguém ganhando acesso a outra caixa de correio
MailItemsAccessedQuais mensagens foram realmente lidas; chave para delimitar uma violação
FileDownloaded, FileSyncDownloadedFull explosõesDownload em massa do SharePoint ou OneDrive
Consentimento a um aplicativoUm aplicativo desonesto concedido acesso a e-mails ou arquivos

A sequência clássica de BEC: um login de um local novo, então, em minutos, uma regra de caixa de entrada que move respostas da equipe financeira para uma pasta obscura.

Carregar, sanitizar e revisar em LogTotal

  • Carregar. Abrir logtotal.com e soltar o arquivo .jsonl.
  • Sanitizar. 
  • Revisar.

Quando algo dá errado

SintomaCausa provávelFix
Search-UnifiedAuditLog não é reconhecidoNão conectado ao PowerShell do Exchange OnlineConectar ao ExchangeOnline primeiro
Sem resultadosAuditorias desligadas, eventos muito novos, ou fora de retençãoVerifique a ingestão; espere; verifique seu nível de auditoria
Exatamente 5.000 resultadosLimite por chamada atingido sem uma sessãoUtilize o loop de sessão acima
Parado em 50.000Limite de sessãoDivida a janela em pedaços menores
Acesso negadoFunção de auditoria ausentePeça por View-Only Audit Logs

FAQ

Isso não é o mesmo que os logs de login do Entra?

Eles se sobrepõem: o UAL tem eventos de UserLoggedIn. Mas para detalhes de autenticação (MFA, Acesso Condicional, risco), os logs de login do Entra são muito mais ricos. Exporte ambos.

E quanto à API de Atividade de Gestão?

Essa é a rota para coleta contínua em um SIEM. Para uma investigação pontual, PowerShell é mais simples.

Junte-se à plataforma Detection as Code da SOC Prime para melhorar a visibilidade das ameaças mais relevantes para o seu negócio. Para ajudá-lo a começar e gerar valor imediato, agende uma reunião agora com os especialistas da SOC Prime.