
Un module Powershell de forensique cloud pour exécuter des playbooks de chasse aux menaces sur les données d'Azure et d'O365

Un module PowerShell permettant d'exécuter des playbooks de chasse aux menaces sur les données d'Azure et d'O365 à des fins de criminalistique cloud.
Les rôles suivants sont requis dans Exchange Online pour avoir un accès en lecture seule au UnifiedAuditLog : View-Only Audit Logs ou Audit Logs.
Ces rôles sont attribués par défaut au groupe de rôles Compliance Management dans le centre d'administration Exchange.
REMARQUE : si vous êtes analyste en sécurité, réponse aux incidents ou chasseur de menaces et que votre organisation ne vous donne PAS l'accès lecture seule à ces journaux d'audit, vous devez sérieusement vous interroger sur sa stratégie de détection et de réponse !
Plus d'informations :
REMARQUE : votre administrateur peut vérifier ces prérequis en exécutant
Get-ManagementRoleEntry "*\Search-UnifiedAuditLog"dans le cloud shell de votre locataire Azure ou dans une instance PowerShell locale connectée à Azure.
Veuillez vous assurer que vous avez ExchangeOnlineManagement (EXOv2) installé. Vous trouverez des instructions sur le web ou rendez-vous directement sur ma petite base de connaissances the soc analyst scrolls
Import-Module .\source\AzureHunter.psd1Il vous suffit de :
Install-Module AzureHunter -Scope CurrentUser
Import-Module AzureHunter
Le journal d'audit unifié contient les activités des utilisateurs, groupes, applications, domaines et répertoires effectuées dans le centre d'administration Microsoft 365 ou dans le portail de gestion Azure. Pour une liste complète des événements Azure AD, voir la liste des RecordTypes.
Le UnifiedAuditLog est une excellente source d'informations de criminalistique cloud car il contient une multitude de données sur plusieurs types d'opérations cloud comme ExchangeItems, SharePoint, Azure AD, OneDrive, Gouvernance des données, Prévention des pertes de données, Alertes Windows Defender et événements de quarantaine, événements de renseignement sur les menaces dans Microsoft Defender pour Office 365, et la liste est encore longue !
AzureHunter implémente une logique utile pour garantir que la plus haute densité de journaux est extraite et exportée des journaux d'audit Azure & O365. Pour ce faire, nous exécutons deux opérations différentes pour chaque cycle (lot) :

Il est recommandé d'exécuter Connect-ExchangeOnline avant d'exécuter des commandes AzureHunter. Le programme vérifie la présence d'une session distante active et tente de se connecter, mais certaines versions de Powershell ne le permettent pas et vous devez le faire vous-même.
AzureHunter dispose de deux commandes principales : Search-AzureCloudUnifiedLog et Invoke-AzHunterPlaybook.
Le but de Search-AzureCloudUnifiedLog est d'implémenter une logique complexe pour garantir que le plus grand pourcentage d'enregistrements UnifiedAuditLog soit extrait d'Azure. Par défaut, elle exportera les enregistrements extraits et dédoublonnés dans un fichier CSV.
Le but de Invoke-AzHunterPlaybook est de fournir une interface flexible pour les playbooks de chasse stockés dans le dossier playbooks. Ces playbooks sont conçus pour que chacun puisse contribuer avec ses propres analyses et idées. Pour l'instant, seuls deux playbooks très simples ont été développés : AzHunter.Playbook.Exporter et AzHunter.Playbook.LogonAnalyser. L'Exporter se charge d'exporter les enregistrements après avoir appliqué des opérations de dédoublonnage et de tri aux données. Le LogonAnalyser est en mode bêta et extrait les événements dont la propriété Operations est UserLoggedIn. C'est un exemple de ce qui peut être fait avec les playbooks et de la facilité à en construire un.
Lors de l'exécution de Search-AzureCloudUnifiedLog, vous pouvez passer une liste de playbooks à exécuter par lot de journaux. Search-AzureCloudUnifiedLog transmettra le lot aux playbooks via Invoke-AzHunterPlaybook.
Enfin, Invoke-AzHunterPlaybook peut être utilisé de manière autonome. Si vous disposez d'une exportation d'enregistrements UnifiedAuditLog, vous pouvez les charger dans un tableau PowerShell et les transmettre à cette commande en spécifiant les playbooks pertinents.
Search-AzureCloudUnifiedLog -StartDate "2020-03-06T10:00:00" -EndDate "2020-06-09T12:40:00" -TimeInterval 12 -AggregatedResultsFlushSize 5000 -Verbose