
Um módulo Powershell de Cloud Forensics para executar playbooks de caça a ameaças em dados do Azure e O365

Um módulo do Powershell para executar playbooks de caça a ameaças em dados do Azure e O365 para fins de Perícia Forense em Nuvem.
As seguintes funções são necessárias no Exchange Online para ter acesso somente leitura ao UnifiedAuditLog: View-Only Audit Logs ou Audit Logs.
Essas funções são atribuídas por padrão ao grupo de funções Compliance Management no Centro de Administração do Exchange.
NOTA: se você é um analista de segurança, respondedor a incidentes ou caçador de ameaças e sua organização NÃO está lhe dando acesso somente leitura a esses logs de auditoria, você precisa questionar seriamente qual é a estratégia de detecção e resposta deles!
Mais informações:
NOTA: seu administrador pode verificar esses requisitos executando
Get-ManagementRoleEntry "*\Search-UnifiedAuditLog"no shell de nuvem do seu inquilino Azure ou em uma instância local do powershell conectada ao Azure.
Por favor, certifique-se de que o ExchangeOnlineManagement (EXOv2) está instalado. Você pode encontrar instruções na web ou ir diretamente para meu pequeno KB sobre como fazer isso em the soc analyst scrolls
Import-Module .\source\AzureHunter.psd1Tudo o que você precisa fazer é:
Install-Module AzureHunter -Scope CurrentUser
Import-Module AzureHunter
O log de auditoria unificado contém atividades de usuário, grupo, aplicativo, domínio e diretório realizadas no centro de administração do Microsoft 365 ou no portal de gerenciamento do Azure. Para uma lista completa de eventos do Azure AD, consulte a lista de RecordTypes.
O UnifiedAuditLog é uma ótima fonte de informações forenses em nuvem, pois contém uma riqueza de dados sobre vários tipos de operações em nuvem, como ExchangeItems, SharePoint, Azure AD, OneDrive, Governança de Dados, Prevenção contra Perda de Dados, Alertas do Windows Defender e eventos de Quarentena, eventos de Inteligência de Ameaças no Microsoft Defender para Office 365 e a lista continua!
O AzureHunter implementa algumas lógicas úteis para garantir que a maior densidade de logs seja minerada e exportada dos Logs de Auditoria do Azure e O365. Para fazer isso, executamos duas operações diferentes para cada ciclo (lote):

Recomenda-se executar Connect-ExchangeOnline antes de executar qualquer comando do AzureHunter. O programa verifica se existe uma sessão remota ativa e tenta conectar, mas algumas versões do Powershell não permitem isso e você precisa fazer isso por conta própria.
AzureHunter possui dois comandos principais: Search-AzureCloudUnifiedLog e Invoke-AzHunterPlaybook.
O propósito de Search-AzureCloudUnifiedLog é implementar uma lógica complexa para garantir que a maior porcentagem de registros do UnifiedAuditLog seja minerada do Azure. Por padrão, ele exporta registros extraídos e deduplicados para um arquivo CSV.
O propósito de Invoke-AzHunterPlaybook é fornecer uma interface flexível para playbooks de caça armazenados na pasta playbooks. Esses playbooks são projetados para que qualquer pessoa possa contribuir com suas próprias análises e ideias. Até agora, apenas dois playbooks muito simples foram desenvolvidos: AzHunter.Playbook.Exporter e AzHunter.Playbook.LogonAnalyser. O Exporter cuida da exportação de registros após aplicar operações de deduplicação e ordenação aos dados. O LogonAnalyser está em modo beta e extrai eventos onde a propriedade Operations é UserLoggedIn. É um exemplo do que pode ser feito com os playbooks e como é fácil construir um.
Ao executar Search-AzureCloudUnifiedLog, você pode passar uma lista de playbooks para executar por lote de log. Search-AzureCloudUnifiedLog passará o lote para os playbooks através de Invoke-AzHunterPlaybook.
Finalmente, Invoke-AzHunterPlaybook pode ser usado de forma independente. Se você tiver uma exportação de registros do UnifiedAuditLog, pode carregá-los em um Array do Powershell e passá-los para este comando, especificando os playbooks relevantes.
Search-AzureCloudUnifiedLog -StartDate "2020-03-06T10:00:00" -EndDate "2020-06-09T12:40:00" -TimeInterval 12 -AggregatedResultsFlushSize 5000 -Verbose