
Microsoft Threat Intelligence Sicherheitstools
Microsoft Threat Intelligence Python-Sicherheitstools.
msticpy ist eine Bibliothek für InfoSec-Untersuchungen und -Jagd in Jupyter Notebooks. Sie bietet Funktionen zum:
Es enthält auch einige zeitsparende Notebook-Werkzeuge wie Widgets zum Festlegen von Abfragezeitgrenzen, Auswählen und Anzeigen von Elementen aus Listen und Konfigurieren der Notebook-Umgebung.

Das msticpy-Paket wurde ursprünglich zur Unterstützung von Jupyter Notebooks für Microsoft Sentinel entwickelt. Obwohl Azure Sentinel immer noch ein großer Schwerpunkt unserer Arbeit ist, erweitern wir die Datenabfrage-/Erfassungskomponenten, um Protokolldaten aus anderen Quellen zu ziehen (derzeit werden Splunk, Microsoft Defender for Endpoint und Microsoft Graph unterstützt, aber wir arbeiten aktiv an der Unterstützung von Daten anderer SIEM-Plattformen). Die meisten Komponenten können auch mit Daten aus beliebigen Quellen verwendet werden. Pandas DataFrames werden als universelles Ein- und Ausgabeformat fast aller Komponenten verwendet. Es gibt auch einen Datenanbieter, der die Verarbeitung von Daten aus lokalen CSV-Dateien und eingelegten DataFrames erleichtert.
Das Paket adressiert drei zentrale Bedürfnisse für Sicherheitsermittler und -Jäger:
Wir freuen uns über Feedback, Fehlerberichte, Vorschläge für neue Funktionen und Beiträge.
Für die Kerninstallation:
pip install msticpy
oder für den neuesten Entwicklungsbuild
pip install git+https://github.com/microsoft/msticpy
Um msticpy auf die neueste öffentliche Nicht-Beta-Version zu aktualisieren, führen Sie Folgendes aus:
pip install --upgrade msticpy
Hinweis: Es ist empfehlenswert, Ihre msticpyconfig.yaml zu kopieren und außerhalb Ihres msticpy-Ordners auf der Festplatte zu speichern und in einer Umgebungsvariablen zu referenzieren. Dies verhindert, dass Sie Ihre Konfigurationen jedes Mal verlieren, wenn Sie Ihre msticpy-Installation aktualisieren.
Die vollständige Dokumentation finden Sie auf ReadTheDocs
Beispiel-Notebooks für viele der Module befinden sich im docs/notebooks-Ordner und in begleitenden Notebooks.
Sie können auch die am Ende dieses Dokuments referenzierten Beispiel-Notebooks durchsuchen, um einige der Funktionen im Kontext zu sehen. Sie können einige der Paketfunktionen in dieser interaktiven Demo auf mybinder.org ausprobieren.
QueryProvider ist eine erweiterbare Abfragebibliothek, die auf Microsoft Sentinel/Log Analytics, Microsoft XDR, Splunk, OData und andere Protokolldatenquellen abzielt. Es bietet auch spezielle Unterstützung für Mordor-Datensätze und die Verwendung lokaler Daten.
Integrierte parametrisierte Abfragen ermöglichen das Ausführen komplexer Abfragen mit einem einzigen Funktionsaufruf. Fügen Sie Ihre eigenen Abfragen mit einem einfachen YAML-Schema hinzu.
Die TILookup-Klasse kann IoCs über mehrere TI-Anbieter hinweg nachschlagen. Integrierte Anbieter sind AlienVault OTX, IBM XForce, VirusTotal und Azure Sentinel.
Die Eingabe kann ein einzelner IoC-Beobachtungswert oder ein pandas DataFrame sein, das mehrere Beobachtungswerte enthält. Je nach Anbieter benötigen Sie möglicherweise ein Konto und einen API-Schlüssel. Einige Anbieter erzwingen auch Drosselung (insbesondere für kostenlose Stufen), was die Durchführung von Massenabfragen beeinträchtigen könnte.
TIProviders und TILookup-Nutzungsnotebook
Die GeoIP-Nachschlageklassen ermöglichen Ihnen, die Geolokationen von IP-Adressen mit entweder:

GeoIP-Nachschlage und GeoIP-Notebook
Das AzureData-Modul enthält Funktionen zum Anreichern von Daten zu Azure-Host-Details mit zusätzlichen Host-Details, die über die Azure-API verfügbar gemacht werden. Das AzureSentinel-Modul ermöglicht Ihnen das Abfragen von Incidents, das Abrufen von Detektor- und Jagdabfragen. AzureBlogStorage ermöglicht Ihnen das Lesen und Schreiben von Daten aus Blob-Speicher.
Azure Resource APIs, Azure Sentinel APIs, Azure Storage
Dieses Unterpaket enthält mehrere Module, die bei Sicherheitsuntersuchungen und -jagden hilfreich sind:
Erkennen Sie ungewöhnliche Ereignissequenzen in Ihren Office-, Active Directory- oder anderen Protokolldaten. Sie können Sitzungen extrahieren (z. B. Aktivitäten, die vom selben Konto initiiert wurden) und ungewöhnliche Aktivitätssequenzen identifizieren und visualisieren. Zum Beispiel das Erkennen eines Angreifers, der eine E-Mail-Weiterleitungsregel im Postfach einer Person einrichtet.
Anomale Sitzungen und Notebook für anomale Sequenzen
Zeitreihenanalyse ermöglicht es Ihnen, ungewöhnliche Muster in Ihren Protokolldaten unter Berücksichtigung normaler saisonaler Variationen zu identifizieren (z. B. das regelmäßige Auf und Ab von Ereignissen über Tagesstunden, Wochentage usw.). Sowohl Analyse als auch Visualisierung heben ungewöhnliche Verkehrsflüsse oder Ereignisaktivitäten für jeden Datensatz hervor.

Zeigen Sie beliebige Protokollereignisse auf einer interaktiven Zeitleiste an. Mit der Bokeh Visualization Library ermöglicht das Zeitleisten-Steuerelement die Visualisierung eines oder mehrerer Ereignisströme, das interaktive Zoomen in bestimmte Zeitslots und das Anzeigen von Ereignisdetails für geplottete Ereignisse.

Zeitleiste und Zeitleisten-Notebook
Die Prozessbaumfunktionalität hat zwei Hauptkomponenten:
Es gibt eine Reihe von Dienstprogrammfunktionen zum Extrahieren einzelner und partieller Bäume aus dem verarbeiteten Datensatz.

Prozessbaum und Prozessbaum-Notebook
Ermöglicht die Nutzung von MSTICPy-Funktionalität auf „entitätszentrierte" Weise. Alle Funktionen, Abfragen und Lookups, die sich auf einen bestimmten Entitätstyp beziehen (z. B. Host, IpAddress, Url), werden als Methoden dieser Entitätsklasse zusammengefasst. Wenn Sie also etwas mit einer IP-Adresse tun möchten, laden Sie einfach die IpAddress-Entität und durchsuchen Sie deren Methoden.
Pivot-Funktionen und Pivot-Funktionen-Notebook
Base64- und Archiv-Extraktor (gz, zip, tar). Es wird versucht, base64-codierte Zeichenfolgen zu identifizieren und zu decodieren. Wenn das Ergebnis wie einer der unterstützten Archivtypen aussieht, wird der Inhalt entpackt. Die Ergebnisse jeder Decodierung/Entpackung werden auf weitere base64-Inhalte bis zu einer angegebenen Tiefe überprüft.
Base64-Decodierung und Base64Unpack-Notebook
Verwendet reguläre Ausdrücke, um nach IoC-Mustern (Indikatoren für Kompromittierung) zu suchen – IP-Adressen, URLs, DNS-Domänen, Hashes, Dateipfade. Die Eingabe kann eine einzelne Zeichenfolge oder ein pandas DataFrame sein.
IoC-Extraktion und IoCExtract-Notebook
Dieses Modul dient dazu, eine große Anzahl von Ereignissen in Cluster unterschiedlicher Muster zusammenzufassen. Hochvolumige sich wiederholende Ereignisse können oft die Sicht auf einzigartige und interessante Elemente erschweren.

Dies ist ein unüberwachtes Lernmodul, das mit SciKit Learn DBScan implementiert wurde.
Ereignis-Clustering und Ereignis-Clustering-Notebook
Modul zum Laden und Decodieren von Linux-Audit-Protokollen. Es fasst Nachrichten mit derselben Nachrichten-ID zu einzelnen Ereignissen zusammen, decodiert hexadezimal codierte Datenfelder und führt eine ereignisspezifische Formatierung und Normalisierung durch (z. B. für Prozessstartereignisse werden die Befehlszeilenargumente des Prozesses zu einer einzelnen Zeichenfolge zusammengesetzt).
Modul zur Unterstützung einer Untersuchung eines Linux-Hosts, bei dem nur Syslog-Protokollierung aktiviert ist. Enthält Funktionen zum Zusammenstellen von Host-Daten, Clustern von Anmeldeereignissen und Erkennen von Benutzersitzungen mit verdächtigen Aktivitäten.
Ein Modul zur Unterstützung der Erkennung bekannter bösartiger Befehlszeilenaktivitäten oder verdächtiger Muster von Befehlszeilenaktivitäten.
Ein Modul zur Unterstützung der Untersuchung von Domainnamen und URLs mit Funktionen zum Validieren eines Domainnamens und zum Erstellen eines Screenshots einer URL.
Diese sind aus der Jupyter ipywidgets-Sammlung erstellt und gruppieren gemeinsame Funktionalitäten, die bei InfoSec-Aufgaben nützlich sind, wie Listenauswahl, Abfragezeitgrenzeneinstellungen und Ereignisanzeige in einem einfach zu verwendenden Format.


Beispiel-Notebooks:
Zeigen Sie direkt auf GitHub an oder kopieren Sie den Link und fügen Sie ihn in nbviewer.org ein.
Siehe folgende Notebooks für weitere Beispiele zur Verwendung dieses Pakets in der Praxis:
Für (kurze) Entwicklerrichtlinien siehe diesen Wiki-Artikel Contributor Guidelines
Dieses Projekt begrüßt Beiträge und Vorschläge. Die meisten Beiträge erfordern, dass Sie einer Contributor License Agreement (CLA) zustimmen, die erklärt, dass Sie das Recht haben, uns die Rechte zur Nutzung Ihres Beitrags zu gewähren, und dies auch tun. Einzelheiten finden Sie unter https://cla.microsoft.com.
Wenn Sie einen Pull-Request einreichen, wird ein CLA-Bot automatisch feststellen, ob Sie eine CLA bereitstellen müssen, und den PR entsprechend kennzeichnen (z. B. Label, Kommentar). Folgen Sie einfach den Anweisungen des Bots. Sie müssen dies nur einmal für alle Repos tun, die unser CLA verwenden.
Dieses Projekt hat den Microsoft Open Source Code of Conduct übernommen. Weitere Informationen finden Sie im Code of Conduct FAQ oder wenden Sie sich an [email protected] mit weiteren Fragen oder Kommentaren.