
Microsoft Threat Intelligence Sicherheitstools
# MSTIC Jupyter und Python-Sicherheitstools  [](https://dev.azure.com/mstic-detections/mstic-jupyter/_build/latest?definitionId=14&branchName=main) [](https://pepy.tech/project/msticpy) Microsoft Threat Intelligence Python-Sicherheitstools. **msticpy** ist eine Bibliothek für InfoSec-Untersuchungen und -Jagd in Jupyter Notebooks. Sie bietet Funktionen zum: - Abfragen von Protokolldaten aus mehreren Quellen - Anreichern der Daten mit Bedrohungsinformationen, Geolokationen und Azure-Ressourcendaten - Extrahieren von Aktivitätsindikatoren (IoA) aus Protokollen und Entpacken codierter Daten - Durchführen anspruchsvoller Analysen wie Erkennung anomaler Sitzungen und Zeitreihenzerlegung - Visualisieren von Daten mittels interaktiver Zeitleisten, Prozessbäume und mehrdimensionaler Morph-Diagramme 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. <img src="https://assets.kitploit.com/production/public/readmes/4869/97c3e7b33ee7d0b34e5cb314f29bc107b50e55772d00da4422ad32e48b1d0b91.png" alt="Timeline" title="Msticpy Timeline Control" height="300" /> Das **msticpy**-Paket wurde ursprünglich zur Unterstützung von [Jupyter Notebooks](https://jupyter-notebook-beginner-guide.readthedocs.io/en/latest/) für [Microsoft Sentinel](https://www.microsoft.com/en-us/security/business/siem-and-xdr/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: - Erfassen und Anreichern von Daten - Analysieren von Daten - Visualisieren von Daten Wir freuen uns über Feedback, Fehlerberichte, Vorschläge für neue Funktionen und Beiträge. ## Installation Für die Kerninstallation: `pip install msticpy` oder für den neuesten Entwicklungsbuild `pip install git+https://github.com/microsoft/msticpy` ## Aktualisierung 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. ## Dokumentation Die vollständige Dokumentation finden Sie auf [ReadTheDocs](https://msticpy.readthedocs.io/en/latest/) Beispiel-Notebooks für viele der Module befinden sich im [docs/notebooks](https://github.com/microsoft/msticpy/blob/master/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. [](https://mybinder.org/v2/gh/Azure/Azure-Sentinel-Notebooks/master?filepath=A%20Tour%20of%20Cybersec%20notebook%20features.ipynb) --- ## Protokolldatenerfassung 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](https://github.com/OTRF/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. [Datenabfragen-Notebook](https://github.com/microsoft/msticpy/blob/master/docs/notebooks/Data_Queries.ipynb) ## Datenanreicherung ### Threat Intelligence-Anbieter 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](https://msticpy.readthedocs.io/en/latest/data_acquisition/TIProviders.html) und [TILookup-Nutzungsnotebook](https://github.com/microsoft/msticpy/blob/master/docs/notebooks/TIProviders.ipynb) ### Geolokationsdaten Die GeoIP-Nachschlageklassen ermöglichen Ihnen, die Geolokationen von IP-Adressen mit entweder: - GeoLiteLookup - Maxmind Geolite (siehe <https://www.maxmind.com>) - IPStackLookup - IPStack (siehe <https://ipstack.com>) <img src="https://assets.kitploit.com/production/public/readmes/4869/cfda22181d7483aad3a5f9b26a66c0cdbac4b83d6d5b17ccc5ed230225785fe2.png" alt="Folium map" title="Plotting Geo IP Location" height="200" /> [GeoIP-Nachschlage](https://msticpy.readthedocs.io/en/latest/data_acquisition/GeoIPLookups.html) und [GeoIP-Notebook](https://github.com/microsoft/msticpy/blob/master/docs/notebooks/GeoIPLookups.ipynb) ### Azure-Ressourcendaten, -Speicher und Azure Sentinel API 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](https://msticpy.readthedocs.io/en/latest/data_acquisition/AzureData.html), [Azure Sentinel APIs](https://msticpy.readthedocs.io/en/latest/data_acquisition/Sentinel.html), [Azure Storage](https://msticpy.readthedocs.io/en/latest/data_acquisition/AzureBlobStorage.html) ## Sicherheitsanalyse Dieses Unterpaket enthält mehrere Module, die bei Sicherheitsuntersuchungen und -jagden hilfreich sind: ### Erkennung anomaler Sequenzen 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](https://msticpy.readthedocs.io/en/latest/data_analysis/AnomalousSequence.html) und [Notebook für anomale Sequenzen](https://github.com/microsoft/msticpy/blob/master/docs/notebooks/AnomalousSequence.ipynb) ### Zeitreihenanalyse 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. <img src="https://assets.kitploit.com/production/public/readmes/4869/4fd2983bca85a193be350f49bdaeb72fc1d926a40242c044bda8701f0759b886.png" alt="Time Series anomalies" title="Time Series anomalies" height="300" /> [Zeitreihen](https://msticpy.readthedocs.io/en/latest/visualization/TimeSeriesAnomalies.html) ## Visualisierung ### Ereignis-Zeitleisten Zeigen Sie beliebige Protokollereignisse auf einer interaktiven Zeitleiste an. Mit der [Bokeh Visualization Library](https://bokeh.org/) 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. <img src="https://assets.kitploit.com/production/public/readmes/4869/c045bd779bafa8ae992a1d2b3741f4a71c5adaf4466d37c870c51f1cb00ade10.png" alt="Timeline" title="Msticpy Timeline Control" height="300" /> [Zeitleiste](https://msticpy.readthedocs.io/en/latest/visualization/EventTimeline.html) und [Zeitleisten-Notebook](https://github.com/microsoft/msticpy/blob/master/docs/notebooks/EventTimeline.ipynb) ### Prozessbäume Die Prozessbaumfunktionalität hat zwei Hauptkomponenten: - Prozessbaum-Erstellung – Aufnehmen eines Prozesserstellungsprotokolls von einem Host und Aufbau der Eltern-Kind-Beziehungen zwischen Prozessen im Datensatz. - Prozessbaum-Visualisierung – nimmt die verarbeitete Ausgabe und zeigt einen interaktiven Prozessbaum mit Bokeh-Diagrammen an. Es gibt eine Reihe von Dienstprogrammfunktionen zum Extrahieren einzelner und partieller Bäume aus dem verarbeiteten Datensatz. <img src="https://assets.kitploit.com/production/public/readmes/4869/30c4a7e6484a64a4f9434396b7b26a442e0ab697e26e2bd6d00f0abe754df60b.png" alt="Process Tree" title="Interactive Process Tree" height="400" /> [Prozessbaum](https://msticpy.readthedocs.io/en/latest/visualization/ProcessTree.html) und [Prozessbaum-Notebook](https://github.com/microsoft/msticpy/blob/master/docs/notebooks/ProcessTree.ipynb) ## Datenmanipulation und Hilfsfunktionen ### Pivot-Funktionen 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](https://msticpy.readthedocs.io/en/latest/data_analysis/PivotFunctions.html) und [Pivot-Funktionen-Notebook](https://github.com/microsoft/msticpy/blob/master/docs/notebooks/PivotFunctions.ipynb) ### base64unpack 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](https://msticpy.readthedocs.io/en/latest/data_analysis/Base64Unpack.html) und [Base64Unpack-Notebook](https://github.com/microsoft/msticpy/blob/master/docs/notebooks/Base64Unpack.ipynb) ### iocextract 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](https://msticpy.readthedocs.io/en/latest/data_analysis/IoCExtract.html) und [IoCExtract-Notebook](https://github.com/microsoft/msticpy/blob/master/docs/notebooks/IoCExtract.ipynb) ### eventcluster (experimentell) 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. <img src="https://assets.kitploit.com/production/public/readmes/4869/ce85802e87219053d8ac425fd3fb3d07ba8f638bcbd0078756a9f4f0bcbb1d06.png" alt="Clustering" title="Clustering based on command-line variability" height="400" /> Dies ist ein unüberwachtes Lernmodul, das mit SciKit Learn DBScan implementiert wurde. [Ereignis-Clustering](https://msticpy.readthedocs.io/en/latest/data_analysis/EventClustering.html) und [Ereignis-Clustering-Notebook](https://github.com/microsoft/msticpy/blob/master/docs/notebooks/EventClustering.ipynb) ### auditdextract 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). ### syslog_utils 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. ### cmd_line Ein Modul zur Unterstützung der Erkennung bekannter bösartiger Befehlszeilenaktivitäten oder verdächtiger Muster von Befehlszeilenaktivitäten. ### domain_utils Ein Modul zur Unterstützung der Untersuchung von Domainnamen und URLs mit Funktionen zum Validieren eines Domainnamens und zum Erstellen eines Screenshots einer URL. ### Notebook-Widgets Diese sind aus der [Jupyter ipywidgets](https://ipywidgets.readthedocs.io/)-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. <img src="https://assets.kitploit.com/production/public/readmes/4869/26d223a31e1750c7407e4e562689fbfb4c92243981b794d649f35d9dafd06836.png" alt="Time span Widget" title="Query time setter" height="100" /> <img src="https://assets.kitploit.com/production/public/readmes/4869/5491bab202c5644d32270ea256b0e6f9173346595cd7245120d35330dcfe2e8b.png" alt="Alert browser" title="Alert browser" height="300" /> --- ## Beispiel-MSTICPy-Notebooks [MSTICPy-Notebooks](https://github.com/microsoft/msticpy/blob/master/docs/notebooks/) ## Weitere Notebooks auf Azure Sentinel Notebooks GitHub [Azure Sentinel Notebooks](https://github.com/Azure/Azure-Sentinel-Notebooks) Beispiel-Notebooks: - [Tour of MSTICPy Features](https://github.com/Azure/Azure-Sentinel-Notebooks/blob/master/A%20Tour%20of%20Cybersec%20notebook%20features.ipynb) - [Account Explorer](https://github.com/Azure/Azure-Sentinel-Notebooks/blob/master/Entity%20Explorer%20-%20Account.ipynb) - [Domain and URL Explorer](https://github.com/Azure/Azure-Sentinel-Notebooks/blob/master/Entity%20Explorer%20-%20Domain%20and%20URL.ipynb) - [IP Explorer](https://github.com/Azure/Azure-Sentinel-Notebooks/blob/master/Entity%20Explorer%20-%20IP%20Address.ipynb) - [Linux Host Explorer](https://github.com/Azure/Azure-Sentinel-Notebooks/blob/master/Entity%20Explorer%20-%20Linux%20Host.ipynb) - [Windows Host Explorer](https://github.com/Azure/Azure-Sentinel-Notebooks/blob/master/Entity%20Explorer%20-%20Windows%20Host.ipynb) - [Getting started in Azure Sentinel notebooks](https://github.com/Azure/Azure-Sentinel-Notebooks/blob/master/A%20Getting%20Started%20Guide%20For%20Azure%20Sentinel%20ML%20Notebooks.ipynb) Zeigen Sie direkt auf GitHub an oder kopieren Sie den Link und fügen Sie ihn in [nbviewer.org](https://nbviewer.jupyter.org/) ein. ## Notebook-Beispiele mit gespeicherten Daten Siehe folgende Notebooks für weitere Beispiele zur Verwendung dieses Pakets in der Praxis: - [Simple Machine Learning](https://github.com/Azure/Azure-Sentinel-Notebooks/blob/master/Machine%20Learning%20in%20Notebooks%20Examples.ipynb) ## Unterstützte Plattformen und Pakete - msticpy ist plattformunabhängig - Erfordert [Python 3.10 oder höher](https://www.python.org/dev/peps/pep-0494/) - Siehe [requirements.txt](https://github.com/microsoft/msticpy/blob/main/requirements.txt) für weitere Details und Versionsanforderungen. --- ## Mitwirken Für (kurze) Entwicklerrichtlinien siehe diesen Wiki-Artikel [Contributor Guidelines](https://github.com/microsoft/msticpy/wiki/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](https://opensource.microsoft.com/codeofconduct/) übernommen. Weitere Informationen finden Sie im [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) oder wenden Sie sich an [[email protected]](mailto:[email protected]) mit weiteren Fragen oder Kommentaren.