Dia 28: Auditoria, Registos e Alertas — Microsoft 365 para Sysadmins

No dia 28 do curso Microsoft 365 para sysadmins, abordamos auditoria, registos e alertas. Saber quem fez o quê, quando e onde é fundamental em qualquer ambiente corporativo. O Microsoft 365 oferece ferramentas robustas para registar actividades, detectar anomalias e alertar automaticamente os administradores.

Neste artigo

1. Introdução à Auditoria

A auditoria no Microsoft 365 permite rastrear actividades administrativas e de utilizadores em todos os serviços — Exchange, SharePoint, Teams, Microsoft Entra ID e outros. Sem auditoria activa, é impossível investigar incidentes de segurança ou cumprir requisitos regulamentares.

O registo de auditoria deve ser activado manualmente — por defeito, a ingestão do Unified Audit Log pode não estar activa em tenants recém-criados. Verificar sempre antes de confiar nos registos.

Os três pilares da auditoria no M365 são: registar (Unified Audit Log), alertar (Alert Policies) e exportar (Diagnostic Settings para armazenamento externo). Cada pilar complementa os outros — sem registos não há alertas, e sem exportação os registos expiram.

2. Unified Audit Log

Unified Audit Log regista todas as acções realizadas no Microsoft 365 — desde alterações de configuração até acessos a documentos.

O Unified Audit Log (UAL) concentra registos de todos os serviços M365 num único repositório pesquisável. Acessível via Microsoft Purview Compliance Portal ou PowerShell (módulo ExchangeOnlineManagement).

Verificar e activar a ingestão do UAL:

Connect-ExchangeOnline
Get-AdminAuditLogConfig | Select-Object UnifiedAuditLogIngestionEnabled
Set-AdminAuditLogConfig -UnifiedAuditLogIngestionEnabled $true

Pesquisar eventos dos últimos 7 dias:

Search-UnifiedAuditLog -StartDate (Get-Date).AddDays(-7) -EndDate (Get-Date)

Filtrar por operação específica (ex.: alterações de palavras-passe):

Search-UnifiedAuditLog -StartDate (Get-Date).AddDays(-30) -EndDate (Get-Date) -Operations "Change user password" -ResultSize 100

Para pesquisa avançada com JSON detalhado, usar o cmdlet Search-UnifiedAuditLog com parâmetro -FreeText para procurar termos livres nos registos.

Entre as centenas de operações possíveis, dez concentram a maior parte do valor para uma PME:

Operation O que regista
UserLoginFailed Início de sessão falhado — indicador de tentativas de acesso indevido
UserLoggedIn Sessão iniciada com sucesso (web, mobile, clientes)
FileDownloaded Descarregamento de ficheiro do SharePoint/OneDrive — indicador de exfiltração
FileUploaded Carregamento de ficheiro para SharePoint/OneDrive
FileDeleted Eliminação de ficheiro (própria ou por outro utilizador)
MailItemsAccessed Acesso a itens de correio (Exchange) — crítico em investigações
Add-MailboxPermission Concessão de permissões sobre a caixa de outro utilizador
Add member to role. Administrador adicionado a role com privilégios (enfraquece a segurança)
UpdateInboxRule Regras de caixa alteradas — vector clássico de fraude de CEO
MFA registered Registo ou alteração de métodos MFA — verificar quem e quando

3. Alert Policies

As Alert Policies permitem configurar notificações automáticas quando ocorrem eventos específicos — como criação de regras de caixa de entrada suspeitas, eliminação massiva de e-mails ou inícios de sessão de localizações atípicas. Existem dezenas de políticas pré-configuradas no Microsoft Purview.

Listar políticas de alerta existentes via PowerShell:

Connect-ExchangeOnline
Get-Alert | Select-Object Name,Severity,Status,NotifyUser | Format-Table -AutoSize

Criar uma política personalizada para detectar alterações de permissões em caixas de correio:

New-Alert -Name "Alteração de Permissões Mailbox" -Category Permission -Severity High -Operation "Add-MailboxPermission" -NotifyUser admin@domínio.pt
Política Severidade Descrição
Regra de caixa de entrada suspeita Alta Criação de regras que reencaminham e-mails para externo
Eliminação massiva Média Mais de N mensagens eliminadas em pouco tempo
Início de sessão anómalo Alta Acesso de localização ou IP invulgar

4. Diagnostic Settings

Os Diagnostic Settings permitem exportar registos de auditoria para destinos externos — Azure Storage Account, Log Analytics Workspace ou Event Hub. Isto é essencial para retenção longa (mais de 180 dias) e para integração com SIEM.

Configurar via Microsoft Purview Compliance Portal:

  1. Navegar para Microsoft Purview > Audit > Export
  2. Seleccionar Export registo de auditorias e criar nova exportação
  3. Escolher destino: Azure Storage Account ou Log Analytics
  4. Definir período de retenção no destino

Via PowerShell ( módulo Microsoft.Graph ), criar diagnostic setting para Entra ID:

Connect-MgGraph -Scopes "AuditLog.Read.All"
New-MgDiagnosticSetting -BodyParameter @{
    displayName = "AuditLog-to-LogAnalytics"
    workspaceId = "/subscriptions/SUB_ID/resourceGroups/RG/providers/Microsoft.OperationalInsights/workspaces/LAW"
    logs = @(@{category = "AuditLogs"; enabled = $true})
}

5. Retenção de Registos

A retenção por defeito do Unified Audit Log varia consoante a licença. Para PME sem Microsoft 365 E5, o período é de 180 dias. Com E5 ou Microsoft 365 E5 Compliance, é possível activar retenção até 1 ano (ou 10 anos com licença adicional).

Licença Retenção Padrão Retenção Máxima
M365 Business Basic/Standard 180 dias 180 dias
M365 E3 180 dias 1 ano
M365 E5 1 ano 10 anos (com complemento)

Para retenção superior ao padrão, activar via Compliance Portal ou PowerShell. Sempre que possível, exportar para Azure Log Analytics para análise contínua e alertas personalizados com KQL (Kusto Query Language).

6. Monitorização PME

Para PME sem licenças E5, a monitorização eficaz combina ferramentas nativas gratuitas com boas práticas. O objectivo é cobrir o essencial sem custos adicionais.

Plano de monitorização recomendado para PME:

  • UAL activado — verificação mensal de ingestão
  • Alert Policies padrão — activar as de severidade alta pré-configuradas
  • Relatório semanal manual — exportar UAL para CSV e arquivar
  • Microsoft 365 Defender — usar o portal gratuito para ameaças de e-mail
  • Entra ID Registos de início de sessão — monitorizar inícios de sessão de risco semanalmente

Exportar registos semanalmente para ficheiro local (CSV) garante histórico mesmo com retenção limitada de 180 dias.

$logs = Search-UnifiedAuditLog -StartDate (Get-Date).AddDays(-7) -EndDate (Get-Date) -ResultSize 5000
$logs | Export-Csv -Path "C:\Audit\Semana_$(Get-Date -Format yyyyMMdd).csv" -NoTypeInformation

7. Erros Comuns e Lista de Verificação

Erros frequentes na implementação de auditoria M365:

Causa Consequência Solução
UAL não activado Sem registos de auditoria Activar com Set-AdminAuditLogConfig
Políticas de alerta desactivadas Sem notificação de incidentes Revisão trimestral de políticas
Sem exportação externa Registos expiram em 180 dias Configurar Diagnostic Settings
Permissões insuficientes Cmdlets devolvem erros Atribuir função Audit Logs no Purview

Lista de verificação para implementação de auditoria M365:

  • ✓ Unified Audit Log activado e verificado
  • ✓ Conta administrativa com permissões de auditoria (função Audit Logs)
  • ✓ Alert Policies de severidade alta activadas
  • ✓ Política de alerta personalizada para regras de caixa de entrada
  • ✓ Exportação semanal de registos para ficheiro
  • ✓ Diagnostic Settings configurado (se E5 ou com Azure)
  • ✓ Revisão trimestral de alertas e falsos positivos
  • ✓ Documentação do processo de resposta a incidentes

Artigos relacionados: Dia 22: Microsoft Defender for Business · Dia 23: Microsoft Sentinel — SIEM na Nuvem para PME · Dia 27: Conditional Access e Zero Trust no Microsoft 365.

No próximo Dia 29 continuamos com gestão de dispositivos móveis e Intune. Para documentação oficial, consultar Microsoft Purview Audit e Alert Policies no Microsoft Purview.