
Cyber-Security-GeoIP-Angriffskarte, die Syslog verfolgt und IPs/Portnummern parst, um Angreifer in Echtzeit zu visualisieren.
Ich habe derzeit nicht viel Zeit in meinem Leben, um dieses Projekt zu pflegen. Ich habe diese Herausforderung angenommen, um JavaScript zu lernen und das Python, das ich bereits kannte, zu verbessern. Ich bin mir sicher, dass ich einige Dinge in meiner Implementierung hätte anders machen können, und es würde mich nicht kränken, konstruktive Kritik von jemandem zu erhalten, der meinen Code herunterlädt und ansieht. Ich weiß, dass ich beim Arbeiten daran eine Menge gelernt habe, und ich hoffe, dass die Open-Source-Community mich weiterhin Dinge lehren wird :)
HINWEIS: Da ich dieses Projekt nicht pflege, funktionieren einige Funktionen wahrscheinlich nicht sofort – z. B. wird die Karte wahrscheinlich nicht angezeigt, weil ich nicht für einen legitimen MapBox-API-Schlüssel bezahle. Um dies zu beheben, musst du vermutlich dein eigenes MapBox-Konto erstellen und deinen eigenen Schlüssel verwenden.
Dieser GeoIP-Angriffskarten-Visualisierer wurde entwickelt, um Netzwerkangriffe auf Ihre Organisation in Echtzeit anzuzeigen. Der Datenserver verfolgt eine Syslog-Datei und extrahiert Quell-IP, Ziel-IP, Quell-Port und Ziel-Port. Protokolle werden über gängige Ports bestimmt, und die Visualisierungen variieren farblich je nach Protokolltyp. HIER KLICKEN für ein Demovideo. Dieses Projekt wäre nicht möglich ohne Sam Cappella, der einen Netzwerkverkehr-Visualisierer für den Palmetto Cyber Defense Competition 2015 erstellt hat. Ich habe seinen Code hauptsächlich als Referenz verwendet, aber ich habe einige Funktionen beim Erstellen des Anzeigeservers und der visuellen Aspekte der Webanwendung übernommen. Besonderen Dank möchte ich auch Dylan Madisetti aussprechen, der mir bei bestimmten Aspekten meiner Implementierung Ratschläge gegeben hat.
Dieses Programm basiert vollständig auf Syslog, und da alle Geräte Logs unterschiedlich formatieren, müssen Sie die Log-Parsing-Funktion(en) anpassen. Wenn Ihre Organisation ein Security Information and Event Management (SIEM) verwendet, kann dieses normalerweise Logs normalisieren, was Ihnen eine Menge Zeit beim Schreiben von Regex erspart.
Wenn Sie Fehler oder Bugs finden, lassen Sie es mich bitte wissen. Fragen und Feedback sind ebenfalls willkommen und können an [email protected] gesendet werden, oder Sie eröffnen ein Issue in diesem Repository.
Getestet unter Ubuntu 16.04 LTS.
Klonen Sie die Anwendung:
git clone https://github.com/matthewclarkmay/geoip-attack-map.git
Installieren Sie Systemabhängigkeiten:
sudo apt install python3-pip redis-server
Installieren Sie Python-Anforderungen:
cd geoip-attack-map
sudo pip3 install -U -r requirements.txt
Starten Sie den Redis-Server:
redis-server
Konfigurieren Sie die Datenbank des Data Server:
cd DataServerDB
./db-dl.sh
cd ..
Starten Sie den Data Server:
cd DataServer
sudo python3 DataServer.py
Starten Sie das Syslog-Gen-Skript im DataServer-Verzeichnis:
Öffnen Sie einen neuen Terminal-Tab (Strg+Umschalt+T unter Ubuntu).
./syslog-gen.py
./syslog-gen.sh
Konfigurieren Sie den Attack Map Server, extrahieren Sie die Flags an die richtige Stelle:
Öffnen Sie einen neuen Terminal-Tab (Strg+Umschalt+T unter Ubuntu).
cd AttackMapServer/
unzip static/flags.zip
Starten Sie den Attack Map Server:
sudo python3 AttackMapServer.py
Greifen Sie über den Browser auf den Attack Map Server zu:
Für den Zugriff über einen Browser auf einem anderen Computer verwenden Sie die externe IP des Rechners, auf dem der AttackMapServer läuft.
Bearbeiten Sie die IP-Adresse in der Datei "/static/map.js" im Verzeichnis "AttackMapServer". Von:
var webSock = new WebSocket("ws:/127.0.0.1:8888/websocket");
Zu, zum Beispiel:
var webSock = new WebSocket("ws:/192.168.1.100:8888/websocket");
Starten Sie den Attack Map Server neu:
sudo python3 AttackMapServer.py
Richten Sie den Browser auf dem anderen Computer auf:
http://192.168.1.100:8888/