
Ein Cloud-Forensics-PowerShell-Modul zur Ausführung von Threat-Hunting-Playbooks auf Daten aus Azure und O365.

Ein PowerShell-Modul zum Ausführen von Bedrohungsjagd-Playbooks auf Daten von Azure und O365 für Cloud-Forensik-Zwecke.
Die folgenden Rollen sind in Exchange Online erforderlich, um schreibgeschützten Zugriff auf das UnifiedAuditLog zu haben: View-Only Audit Logs oder Audit Logs.
Diese Rollen werden standardmäßig der Rollengruppe Compliance Management im Exchange Admin Center zugewiesen.
HINWEIS: Wenn Sie ein Sicherheitsanalyst, ein Incident-Responder oder ein Threat Hunter sind und Ihre Organisation Ihnen keinen schreibgeschützten Zugriff auf diese Audit-Logs gewährt, sollten Sie deren Erkennungs- und Reaktionsstrategie ernsthaft hinterfragen!
Weitere Informationen:
HINWEIS: Ihr Administrator kann diese Anforderungen überprüfen, indem er
Get-ManagementRoleEntry "*\Search-UnifiedAuditLog"in Ihrer Azure-Tenant-Cloud-Shell oder einer lokalen PowerShell-Instanz ausführt, die mit Azure verbunden ist.
Bitte stellen Sie sicher, dass ExchangeOnlineManagement (EXOv2) installiert ist. Anleitungen finden Sie im Internet oder direkt in meiner kleinen Wissensdatenbank unter the soc analyst scrolls
Import-Module .\source\AzureHunter.psd1Alles, was Sie tun müssen, ist:
Install-Module AzureHunter -Scope CurrentUser
Import-Module AzureHunter
Das UnifiedAuditLog enthält Benutzer-, Gruppen-, Anwendungs-, Domänen- und Verzeichnisaktivitäten, die im Microsoft 365 Admin Center oder im Azure-Verwaltungsportal durchgeführt wurden. Eine vollständige Liste der Azure AD-Ereignisse finden Sie in der Liste der RecordTypes.
Das UnifiedAuditLog ist eine hervorragende Quelle für Cloud-Forensik-Informationen, da es eine Fülle von Daten zu verschiedenen Arten von Cloud-Operationen enthält, wie z. B. ExchangeItems, SharePoint, Azure AD, OneDrive, Data Governance, Data Loss Prevention, Windows Defender-Benachrichtigungen und Quarantäne-Ereignisse, Threat Intelligence-Ereignisse in Microsoft Defender für Office 365, und die Liste geht weiter und weiter!
AzureHunter implementiert nützliche Logik, um sicherzustellen, dass die höchste Logdichte aus den Azure- und O365-Audit-Logs abgebaut und exportiert wird. Dazu führen wir zwei verschiedene Operationen pro Zyklus (Batch) durch:

Es wird empfohlen, Connect-ExchangeOnline auszuführen, bevor Sie AzureHunter-Befehle ausführen. Das Programm prüft auf eine aktive Remotesitzung und versucht, eine Verbindung herzustellen, aber einige PowerShell-Versionen erlauben dies nicht, und Sie müssen es trotzdem selbst tun.
AzureHunter hat zwei Hauptbefehle: Search-AzureCloudUnifiedLog und Invoke-AzHunterPlaybook.
Der Zweck von Search-AzureCloudUnifiedLog besteht darin, eine komplexe Logik zu implementieren, um sicherzustellen, dass der höchste Prozentsatz der UnifiedAuditLog-Einträge aus Azure abgebaut wird. Standardmäßig werden extrahierte und deduplizierte Einträge in eine CSV-Datei exportiert.
Der Zweck von Invoke-AzHunterPlaybook besteht darin, eine flexible Schnittstelle zu Jagd-Playbooks bereitzustellen, die im Ordner playbooks gespeichert sind. Diese Playbooks sind so konzipiert, dass jeder mit eigenen Analysen und Ideen beitragen kann. Bisher wurden nur zwei sehr einfache Playbooks entwickelt: AzHunter.Playbook.Exporter und AzHunter.Playbook.LogonAnalyser. Der Exporter kümmert sich um den Export von Einträgen nach Anwendung von Deduplizierungs- und Sortieroperationen. Der LogonAnalyser befindet sich im Beta-Modus und extrahiert Ereignisse, bei denen die Eigenschaft Operations den Wert UserLoggedIn hat. Es ist ein Beispiel dafür, was mit den Playbooks möglich ist und wie einfach es ist, eines zu erstellen.
Wenn Sie Search-AzureCloudUnifiedLog ausführen, können Sie eine Liste von Playbooks übergeben, die pro Log-Batch ausgeführt werden sollen. Search-AzureCloudUnifiedLog übergibt den Batch über Invoke-AzHunterPlaybook an die Playbooks.
Schließlich kann Invoke-AzHunterPlaybook auch eigenständig verwendet werden. Wenn Sie einen Export von UnifiedAuditLog-Einträgen haben, können Sie diese in ein PowerShell-Array laden und an diesen Befehl übergeben sowie die entsprechenden Playbooks angeben.
Search-AzureCloudUnifiedLog -StartDate "2020-03-06T10:00:00" -EndDate "2020-06-09T12:40:00" -TimeInterval 12 -AggregatedResultsFlushSize 5000 -Verbose