
Módulo PowerShell para coleta de logs do Office 365 e Azure

O DFIR-O365RC foi apresentado no SSTIC 2021 (Symposium sur la sécurité des technologies de l'information et des communications). Os slides e a gravação da apresentação, em francês, estão disponíveis aqui.
⚠️ Em 31 de março de 2024, a Microsoft descontinuou o método de autenticação que usávamos para o DFIR-O365RC. Isso levou ao lançamento da versão 2.0.0 em agosto de 2024, com mudanças significativas em relação à autenticação e uma reestruturação global do código. ⚠️
O módulo PowerShell DFIR-O365RC é um conjunto de funções que permite a um analista forense coletar logs relevantes para comprometimentos do Microsoft 365 e realizar investigações no Entra ID.
Os logs são gerados no formato JSON e recuperados de duas fontes de dados principais:
Essas duas fontes de dados podem ser consultadas a partir de diferentes endpoints:
| Fonte de dados / Endpoint | Retenção | Desempenho | Escopo |
|---|---|---|---|
| Unified Audit Log / Exchange Online PowerShell | 90 dias | Ruim | Todos os logs do Microsoft 365 (incluindo Entra) |
| Unified Audit Log / Purview | 180 dias | Bom | Todos os logs do Microsoft 365 (incluindo Entra) |
| Unified Audit Log / Office 365 Management API * | 7 dias | Bom | Todos os logs do Microsoft 365 (incluindo Entra) |
| Logs do Microsoft Entra / Microsoft Graph PowerShell | 30 dias | Bom | Apenas logs de entrada e auditoria do Entra |
| Logs do Microsoft Entra / Microsoft Graph REST API | 30 dias | Bom | Apenas logs de entrada e auditoria do Entra |
* A Office 365 Management API tem como objetivo analisar dados em tempo real com um SIEM. O DFIR-O365RC é uma ferramenta forense, seu objetivo não é monitorar um ambiente Microsoft 365 em tempo real.
O DFIR-O365RC buscará dados de:
Se você está investigando atividades maliciosas no Microsoft 365, o Search-O365 (do Exchange Online PowerShell) também buscará o Log de Auditoria de Caixa Postal, embora o cmdlet Search-MailboxAuditLog esteja sendo descontinuado.
Se você está investigando outros recursos do Azure, com o DFIR-O365RC:
Esta é a maneira recomendada de usar o DFIR-O365RC
Basta digitar:```bash sudo docker pull anssi/dfir-o365rc:latest sudo docker run --rm -v .:/mnt/host -it anssi/dfir-o365rc:latest
DFIR-O365RC está pronto para usar:```bash
PowerShell 7.4.2
DFIR-O365RC: PowerShell module for Microsoft 365 and Entra ID log collection
https://github.com/ANSSI-FR/DFIR-O365RC
PS /mnt/host/output>
Se deseja construir sua imagem Docker manualmente, clone o repositório e use docker compose (ou o legado docker-compose) para construir a imagem, executar o container e montar um volume (na pasta output/):```bash
sudo docker compose build dfir-o365rc
sudo docker compose run dfir-o365rc
sudo docker-compose run dfir-o365rc
### Usando PowerShell
Pode instalar o módulo no *PowerShell Desktop* e no *PowerShell Core*.
Observe que o cmdlet `Connect-ExchangeOnline` [requer o Microsoft .NET Framework 4.7.2 ou posterior](https://learn.microsoft.com/en-us/powershell/exchange/exchange-online-powershell-v2?view=exchange-ps#windows).
Para instalar o módulo da PowerShell Gallery :```powershell
Install-Module -Name DFIR-O365RC
Você também pode instalar o módulo manualmente clonando o repositório DFIR-O365RC, instalar as dependências necessárias (verifique DFIR-O365RC.psd1) e adicionar o diretório DFIR-O365RC em um dos caminhos de módulos do PowerShell.
Depois que o módulo for importado, você precisará criar um aplicativo Entra, que gerenciará o processo de coleta de logs para você.
Para fazer isso:
Crie um certificado autoassinado e obtenha a parte pública codificada em base64:
No Linux, usando o PowerShell Core ou o contêiner Docker: