
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
Dieser Befehl wird:
AggregatedResultsFlushSize gibt die Batches von Einträgen an, die von nachgelagerten Playbooks verarbeitet werden. Wir teilen AzureHunter hier mit, den Batch von Einträgen zu verarbeiten, sobald die Gesamtanzahl 5000 erreicht. Auf diese Weise können Sie Ergebnisse im laufenden Betrieb erhalten, ohne stundenlang warten zu müssen, bis eine große Spanne von Einträgen in CSV-Dateien exportiert wird.Wir gehen davon aus, dass Sie UnifiedAuditLog-Einträge in eine CSV-Datei exportiert haben. Dann können Sie Folgendes tun:
$RecordArray = Import-Csv .\my-exported-records.csv
Invoke-AzHunterPlaybook -Records $RecordArray -Playbooks 'AzHunter.Playbook.UAL.LogonAnalyser'
Sie können mehr als ein Playbook ausführen, indem Sie sie durch Kommas trennen; sie werden sequenziell ausgeführt:
$RecordArray = Import-Csv .\my-exported-records.csv
Invoke-AzHunterPlaybook -Records $RecordArray -Playbooks 'AzHunter.Playbook.UAL.Exporter', 'AzHunter.Playbook.UAL.LogonAnalyser'
Wir gehen davon aus, dass Sie einen eDiscovery-Zusammenfassungsbericht in eine CSV-Datei exportiert haben. Dann können Sie Folgendes tun:
$eDiscoReportFile = .\eDisco-Summary-Report-PersonOfInterest.csv
Invoke-AzHunterPlaybook -Records $eDiscoReportFile -Playbooks 'AzHunter.Playbook.eDisco.SummaryReportCleaner'
Optional können wir dem Playbook Parameter wie folgt übergeben:
$eDiscoReportFile = .\eDisco-Summary-Report-PersonOfInterest.csv
Invoke-AzHunterPlaybook -Records $eDiscoReportFile -Playbooks 'AzHunter.Playbook.eDisco.SummaryReportCleaner' -PlayBookParameters @{"CsvRecordsBatchSize" = 700}
Der Parameter "CsvRecordsBatchSize" teilt dem Playbook mit, Einträge in Batches von 700 Einträgen auf die Festplatte zu schreiben.
Seit den Folgen der SolarWinds Supply Chain Compromise sind viele Tools aus den tiefen Schmieden von Cyber-Forensikern hervorgegangen, die sorgfältig von Cyber-Blacksmith-Ninjas entwickelt wurden. Diese Tools helfen Ihnen in der Regel bei der Cloud-Forensik in Azure. Meine Absicht mit AzureHunter ist es nicht, diesem überfüllten Bereich noch mehr Lärm hinzuzufügen. Allerdings sah ich mich in der Notwendigkeit, einige Lücken zu schließen, die ich in einigen der Tools in diesem Bereich beobachtet habe (ich könnte mich jedoch irren, da es eine Vielzahl von Tools gibt und ich nicht alle kenne...):
UnifiedAuditLog. Diese API ist sehr instabil und inkonsistent beim Export großer Datenmengen. Ich wollte eine Schnittstelle entwickeln, die ausfallsicher (genug) ist, um einige dieser Probleme zu adressieren, wobei ich mich ausschließlich auf das UnifiedAuditLog konzentriere, da dies das Azure-Artefakt ist, das die relevantesten und detailliertesten Aktivitätsprotokolle für Benutzer, Anwendungen und Dienste enthält.Playbooks. Ich wollte ein einfaches Framework entwickeln, das der Community hilft, neue Playbooks zu erstellen und zu teilen, um verschiedene Bedeutungen aus denselben Daten zu extrahieren.Wenn Sie jedoch nach einer funktionsreicheren und ausgereifteren Anwendung für Azure Cloud Forensics suchen, empfehle ich Ihnen, die hervorragende Arbeit der Cybersicherheitsexperten zu prüfen, die die folgenden Anwendungen erstellt haben:
Ich bin mir sicher, dass es eine umfangreichere Liste von Tools gibt, aber dies sind die, die mir eingefallen sind. Fühlen Sie sich frei, weitere vorzuschlagen.
Für weitere Informationen
Vielen Dank an alle Menschen, die dieses und andere Open-Source-Projekte unterstützen! Sie helfen Leuten wie mir, den Weg des Cyberkriegers zu gehen und der Gemeinschaft qualitativ hochwertige Werkzeuge zu liefern :)