
Mappa degli attacchi di cybersecurity geoIP che segue i syslog e analizza indirizzi IP/numero di porta per visualizzare gli attaccanti in tempo reale.
Non ho molto tempo nella mia vita in questo momento per mantenere questo progetto. Ho intrapreso questa sfida come mezzo per imparare JavaScript e per migliorare il Python che già conoscevo. Sono sicuro che ci siano diverse cose che avrei potuto fare diversamente nella mia implementazione, e non mi offendo se ricevo critiche costruttive da qualcuno che scarica e visualizza il mio codice. So di aver imparato tantissimo lavorando a questo progetto, e spero che la comunità open source continui a insegnarmi cose :)
NOTA: Poiché non mantengo questo progetto, ci sono alcune funzionalità che probabilmente non funzionano immediatamente, ad esempio la mappa probabilmente non verrà visualizzata perché non pago per una chiave API MapBox legittima. Per risolvere questo problema, probabilmente dovrai creare il tuo account MapBox e utilizzare la tua chiave.
Questo visualizzatore di mappe di attacchi geoip è stato sviluppato per visualizzare in tempo reale gli attacchi di rete alla tua organizzazione. Il server dati segue un file syslog e analizza l'IP di origine, l'IP di destinazione, la porta di origine e la porta di destinazione. I protocolli sono determinati tramite le porte comuni e le visualizzazioni variano di colore in base al tipo di protocollo. CLICCA QUI per un video dimostrativo. Questo progetto non sarebbe stato possibile senza Sam Cappella, che ha creato un visualizzatore di traffico di rete per competizioni di difesa informatica per la Palmetto Cyber Defense Competition 2015. Ho principalmente usato il suo codice come riferimento, ma ho preso in prestito alcune funzioni durante la creazione del server di visualizzazione e degli aspetti visivi dell'app web. Vorrei anche ringraziare Dylan Madisetti per avermi dato consigli su alcuni aspetti della mia implementazione.
Questo programma si basa interamente su syslog e, poiché tutti i dispositivi formattano i log in modo diverso, dovrai personalizzare le funzioni di parsing dei log. Se la tua organizzazione utilizza un sistema di gestione delle informazioni e degli eventi di sicurezza (SIEM), probabilmente può normalizzare i log per risparmiarti un sacco di tempo nello scrivere regex.
Se trovi errori o bug, per favore fammelo sapere. Domande e feedback sono i benvenuti e possono essere inviati a [email protected], oppure apri un problema in questo repository.
Testato su Ubuntu 16.04 LTS.
Clona l'applicazione:
git clone https://github.com/matthewclarkmay/geoip-attack-map.git
Installa le dipendenze di sistema:
sudo apt install python3-pip redis-server
Installa i requisiti Python:
cd geoip-attack-map
sudo pip3 install -U -r requirements.txt
Avvia il server Redis:
redis-server
Configura il database del Data Server:
cd DataServerDB
./db-dl.sh
cd ..
Avvia il Data Server:
cd DataServer
sudo python3 DataServer.py
Avvia lo script Syslog Gen, all'interno della directory DataServer:
Apri una nuova scheda del terminale (Ctrl+Shift+T, su Ubuntu).
./syslog-gen.py
./syslog-gen.sh
Configura il Attack Map Server, estrai le bandiere nella posizione corretta:
Apri una nuova scheda del terminale (Ctrl+Shift+T, su Ubuntu).
cd AttackMapServer/
unzip static/flags.zip
Avvia il Attack Map Server:
sudo python3 AttackMapServer.py
Accedi al Attack Map Server dal browser:
Per accedere tramite browser da un altro computer, utilizza l'IP esterno della macchina su cui è in esecuzione AttackMapServer.
Modifica l'indirizzo IP nel file "/static/map.js" nella directory "AttackMapServer". Da:
var webSock = new WebSocket("ws:/127.0.0.1:8888/websocket");
A, per esempio:
var webSock = new WebSocket("ws:/192.168.1.100:8888/websocket");
Riavvia il Attack Map Server:
sudo python3 AttackMapServer.py
Sull'altro computer, punta il browser a:
http://192.168.1.100:8888/