EagleEye - sistema IDS host-based e monitoraggio di rete
Questo progetto ha bisogno di molto lavoro per essere pronto all'uso, dato che è il mio progetto di laurea, quindi non è user-friendly, solo per utenti esperti, versione beta, e l'ho pubblicato/realizzato solo per scopi educativi!

- EagleEye è composto da due parti:
- Client (Scritto in Golang)
- Scopo: Catturare ogni pacchetto sul dispositivo ed estrarre i dettagli importanti nei protocolli più noti, poi infine inviare tutti i dati raccolti al master se online!
- Utilizzo: Dovrebbe essere installato su ogni dispositivo che vuoi monitorare (es: i dispositivi dei dipendenti per le aziende).
- Master: (Scritto in Python e Bootstrap)
- Scopo: Ricevere ogni pacchetto inviato dai client, visualizzarlo organizzato nella tabella di monitoraggio della GUI, mostrare le informazioni sui dispositivi connessi come utente di sistema corrente/info di sistema, confrontare i dati catturati con i modelli di minaccia già scritti in precedenza, e infine avvisare l'utente master di possibili minacce alla sicurezza nella rete, come farebbe un tipico sistema IDS!
- Utilizzo: Dovrebbe essere eseguito su un server nella stessa rete dei client (es: un server gestito dal reparto IT o dal team di blue hacking dell'azienda, forse).
Per maggiori informazioni, dovrai leggere riguardo ai sistemi IDS (Intrusion Detection System) e ai loro tipi. Ti consiglio la guida NIST.
Schermate
GUI principale


Tabella di monitoraggio
Nota: i pulsanti nella tabella ti danno la possibilità di esportare la tabella come (CSV, Excel, PDF), copiare i dati della tabella negli appunti e stampare i dati della tabella se vuoi.
Ricerca nella tabella di monitoraggio
Ricerca semplice
Ricerca dettagliata
Come puoi vedere, la ricerca qui ti dà la possibilità di cercare qualsiasi cosa rappresentata nella tabella.
Tabella dei dispositivi connessi
Quando un nuovo client si è connesso al client
Nota: la tabella viene aggiornata automaticamente ogni 5 secondi o al refresh della pagina!
Tabella delle minacce
Quando viene rilevata una minaccia
Dettagli su eventuali minacce rilevate + riferimento al clic


Notifica desktop per le minacce
Nota: la tabella viene aggiornata automaticamente ogni 5 secondi o al refresh della pagina!
Istruzioni di installazione
Il Client
Requisiti
- Supporta attualmente solo il sistema Windows (A causa dei dati prelevati dal registro, è necessario cambiarlo).
- Le seguenti istruzioni
Istruzioni di installazione
- Assicurati di avere Golang installato.
- Installa la libreria gopacket usando questo comando:
go get github.com/google/gopacket
- Scarica e installa npcap da qui.
- Cambia le seguenti variabili nel codice in base alle tue esigenze:
- Riga 57: Cambia la variabile url con l'url del tuo Master attuale
- Riga 59: Cambia la variabile device con l'interfaccia di rete su cui vuoi ascoltare, per Windows ti servirà questo articolo!
- Riga 66: Cambia la variabile filter con il filtro che vuoi nella cattura dei pacchetti di rete o lasciala vuota com'è (se vuoi catturare tutti i pacchetti). La sintassi del filtro è bpf, la stessa usata nella ricerca di Wireshark, puoi impararla da questa guida. Ho lasciato anche alcuni esempi nei commenti, se qualcuno vuole usarla.
- Nel CMD naviga fino alla directory del client, ovviamente.
- Ora puoi eseguire il client come script con questo comando:
go run main.go
- Per compilare/buildare, puoi usare il seguente comando:
go build -o client.exe main.go, forse potresti aver bisogno di questa guida.
- Se hai fatto tutto questo, vai a farti una vita amico 😆 (Scherzo)
Il Master
Requisiti
- Qualsiasi sistema operativo.
- Le seguenti istruzioni, è molto più facile del client, non preoccuparti LOL!
Istruzioni di installazione
- Assicurati di avere Python 3 installato (versione 3.5 o successiva) e pip.
- Nel CMD naviga fino alla cartella del master, poi installa i requisiti usando questo comando:
pip install -r requirements.txt o python -m pip install -r requirements.txt
- Se sei su Windows e la stampa colorata nel CMD è importante per te, esegui questo comando:
pip install -r coloring-requirements.txt o python -m pip install -r coloring-requirements.txt
- Ora alcune variabili da cambiare in base alle tue esigenze 😆
- Riga 21: Cambia la variabile host_port con la porta su cui vuoi servire (Default:8000)
- Riga 23: Cambia la variabile serve_localhost impostandola a True se vuoi eseguire il master solo su localhost (Default:True)
- Riga 24: Cambia la variabile view_browser impostandola a True se vuoi che il master apra automaticamente l'url di servizio nel browser (Default:True)
- Ora puoi eseguire il master con
python interface.py
- Divertiti :)