
Threat-Hunting-Tool über Sysmon und Graphen

Grafiki ist ein Django-Projekt über Sysmon und Graphen, vorerst.
Meiner Meinung nach sind EventViewer, Elastic und sogar Kibana nicht graphisch genug. Die aktuellen Bedrohungen sind komplex, und wenn Angreifer in Graphen denken, müssen Verteidiger das auch tun.
Dies ist ein Proof of Concept, der Code wurde noch nicht debuggt, aber vielleicht könnte er für jemanden nützlich sein; ich werde ihn verbessern.
Dieses Projekt begann als EVTX-Parser für eine SQL-Datenbank, und das ist vielleicht der Kern des Projekts.
Das Projekt ist noch nicht ausgereift, obwohl es funktioniert; der Testplan ist noch nicht definiert.
Jede Meinung, gefundener Fehler, Verbesserungsvorschlag ... sind willkommen.
git clone https://github.com/lucky-luk3/Grafiki.git
cd Grafiki
sudo -- sh -c -e "echo '127.0.0.1 grafiki.local' >> /etc/hosts"
docker compose up --build &
docker exec -it -d grafiki-app-1 /init_django.sh
Gehen Sie in Ihrem Browser zu http://127.0.0.1:8000/ oder http://grafiki.local:8000/
Jagen, lernen und genießen!
Diese Anwendung kann zwei Arten von Dateien verarbeiten.

Auf dieser Seite können Sie EVTX-Dateien oder Elastic-Ereignisdateien hochladen und verarbeiten.

Diese Seite ist nützlich, um eine Bibliothek von Online-Beispieldateien zu erstellen.
Wenn Sie ein Beispiel erstellen, geben Sie die URL zur Datei an, und wenn Sie es verarbeiten, lädt die Anwendung die Ereignisdatei herunter und verarbeitet sie.

Auf dieser Seite können Sie Suchanfragen an Ihre Elastic-Instanz erstellen und einen Graphen des Ergebnisses erzeugen. Sie können Filter erstellen bezüglich:

Die Graph-Seite ist der Kern dieser Anwendung und ihre Recherche-Schnittstelle.
Auf den anderen Seiten wählen Sie Ihre Daten aus, und diese Seiten leiten Sie zur Graph-Seite weiter. Wenn Sie direkt zur Graph-Seite gehen, wird dort nichts oder die zuletzt für Sie gesuchten Daten angezeigt.
Auf dieser Seite gibt es zwei Tabs, einen für Sysmon und einen für PowerShell-Ereignisse.
Es gibt zwei Arten von Elementen: Knoten und Kanten. Knoten repräsentieren Entitäten wie Prozesse, Dateien oder Registrierungsschlüssel, und Kanten repräsentieren Aktionen wie Erstellen, Löschen oder Verbinden.

Wir sind im Kern.
Dieser Teil verwendet die Informationen in der Datenbank, um Graphen über die analysierten Ereignisse zu erstellen.
Sie können im Graphen navigieren und sich Prozesserstellung, Named Pipes-Verbindungen usw. ansehen ... aber normalerweise gibt es zu viele Informationen, um bequem zu arbeiten.
Innerhalb des Tabs befindet sich ein versteckter Bereich zu Graphen-Filtern.
In diesem Bereich können Sie mit der Graphen-Filterung von Daten arbeiten.
Sie können Knoten nach diesen Entitäten filtern:
Sie können Prozessknoten auch filtern nach: