
Sensore di monitoraggio di rete statistico multivariato che rileva anomalie utilizzando tecniche basate su PCA, aggregando statistiche leggere da dispositivi di rete gerarchici per il rilevamento scalabile di intrusioni.
MSNM-S (Multivariate Statistical Network Monitoring-Sensor) mostra l'idoneità pratica degli approcci trovati in PCA-MSNM e in Hierarchical PCA-MSNM lavori. Il primo presenta l'approccio MSNM e una nuova metodologia statistica multivariata per il rilevamento di anomalie di rete, mentre il secondo propone il precedente in sistemi di rete gerarchici e strutturati. L'idea principale alla base di questi lavori è l'uso di tecniche statistiche multivariate per generare informazioni utili sotto forma di due statistiche. Tale informazione leggera proviene da livelli inferiori a livelli superiori in una gerarchia di rete. In questo modo, il sensore radice (ad esempio, un router di confine) riceve tutte le informazioni statistiche essendo in grado di calcolare le proprie statistiche (Q,D). Ispezionando queste statistiche, un analista di sicurezza può determinare se si stanno verificando eventi anomali quando alcuni valori delle statistiche sono al di sopra di determinati limiti di controllo.
[Vedi i dettagli su https://journals.sagepub.com/doi/full/10.1177/1550147720921309]
MSNM-S è concepito per essere estremamente scalabile e asettico poiché vengono inviati solo due parametri tra livelli o dispositivi nella rete o sistema monitorato. Inoltre, il MSNMSensor è in grado di gestire fonti di dati multiple e di tipo eterogeneo su ciascun dispositivo monitorato grazie all'approccio di feature engineering FCParser (Feature as a Counter Parser).
MSNSensor funziona con python 3 ed è stato testato con successo su Ubuntu versione 16.04 e successive. Inoltre, devono essere installate le seguenti dipendenze.
Creare un ambiente di esecuzione python è probabilmente il modo migliore per eseguire l'applicazione. Quindi ti consiglio di crearne uno prima di installare i requisiti. L'ambiente Anaconda può aiutarti e, se decidi di usarlo, esegui i seguenti comandi:
$ conda create -n msnm-dev python=3.7
$ conda activate msnm-dev
Eseguire il comando precedente installerà tutto il necessario.
(msnm-dev) $ pip install -r requirements.txt
Consulta le istruzioni in examples o scarica la VM preconfigurata da MSNM-S-UBUNTU. Ti consigliamo di utilizzare la VM. Ricorda di eseguire il pull del repository per ottenere il progetto MSNM-S aggiornato. Di seguito, puoi vedere i passaggi necessari per eseguire l'esperimento preconfigurato nella VM:
Esecuzione degli MSNM-Ss (backend)
Apri una finestra di terminale e attiva il demone netflow e il collector.
$ cd ~/msnm-sensor/scripts/netflow/
$ sudo ./activateNetflow.sh (pass: msnm1234)
Attendi 5 minuti per ottenere i record netflow. Esegui e distribuisci gli MSNM-Ss nell'esempio example/scenario_4:
$ cd ~/msnm-sensor/scripts/
$ conda activate py27
$ ./start_experiment.sh ../examples/scenario_4/
$ ps -ef | grep msnmsensor (solo per verificare se tutti e quattro gli MSNM-Ss sono in esecuzione)
$ tail -500f ~/msnm-sensor/examples/scenario_4/borderRouter/logs/msnm.log (un altro modo per vedere come funziona l'MSNM-S. Sostituisci il nome dell'MSNM-S se vuoi vedere gli altri.)
Esecuzione della dashboard (frontend):
Apri una nuova finestra di terminale.
$ cd ~/msnm-sensor/dashboard/
$ conda activate msnm-dashboard
$ ln -s ../examples examples
$ python manage.py runserver
Vai su http://localhost:8000