
Sensor de monitoramento de rede estatístico multivariado que detecta anomalias usando técnicas baseadas em PCA, agregando estatísticas leves de dispositivos de rede hierárquicos para detecção escalável de intrusões.
MSNM-S (Multivariate Statistical Network Monitoring-Sensor) mostra a adequação prática das abordagens encontradas nos trabalhos PCA-MSNM e Hierarchical PCA-MSNM. O primeiro apresenta a abordagem MSNM e uma nova metodologia estatística multivariada para detecção de anomalias em redes, enquanto o segundo propõe a primeira em sistemas de rede hierárquicos e estruturados. A ideia principal por trás desses trabalhos é o uso de técnicas estatísticas multivariadas para gerar informações úteis na forma de duas estatísticas. Essa informação leve vem dos níveis inferiores para os superiores em uma hierarquia de rede. Dessa forma, o sensor raiz (por exemplo, um roteador de borda) recebe todas as informações estatísticas, podendo calcular suas próprias estatísticas (Q,D). Ao inspecionar essas estatísticas, um analista de segurança pode determinar se eventos anômalos estão ocorrendo quando alguns dos valores estatísticos estão acima de certos limites de controle.
[Veja detalhes em https://journals.sagepub.com/doi/full/10.1177/1550147720921309]
MSNM-S é concebido para ser extremamente escalável e asséptico, pois apenas dois parâmetros são enviados entre níveis ou dispositivos na rede ou sistema monitorado. Além disso, o MSNMSensor é capaz de gerenciar múltiplas fontes de dados de tipos heterogêneos em cada dispositivo monitorado graças à abordagem de engenharia de recursos FCParser (Feature as a Counter Parser).
O MSNSensor funciona com python 3 e foi testado com sucesso no Ubuntu a partir da versão 16.04. Além disso, as seguintes dependências devem ser instaladas.
Criar um ambiente de execução python é provavelmente a melhor maneira de executar a aplicação. Portanto, recomendo que você crie um antes de fazer a instalação dos requisitos. O ambiente Anaconda pode ajudar e, se você decidir usá-lo, execute os seguintes comandos:
$ conda create -n msnm-dev python=3.7
$ conda activate msnm-dev
Executar o comando anterior instalará tudo o que é necessário.
(msnm-dev) $ pip install -r requirements.txt
Consulte as instruções em examples ou baixe a VM pré-configurada em MSNM-S-UBUNTU. Recomendamos que você use a VM. Lembre-se de puxar o repositório para obter o projeto MSNM-S atualizado. A seguir, você pode ver as etapas necessárias para executar o experimento pré-configurado na VM:
Executando os MSNM-Ss (backend)
Abra uma janela de terminal e ative o daemon e o coletor netflow.
$ cd ~/msnm-sensor/scripts/netflow/
$ sudo ./activateNetflow.sh (senha: msnm1234)
Aguarde 5 minutos para obter registros netflow. Execute e implante os MSNM-Ss no exemplo example/scenario_4:
$ cd ~/msnm-sensor/scripts/
$ conda activate py27
$ ./start_experiment.sh ../examples/scenario_4/
$ ps -ef | grep msnmsensor (apenas para verificar se todos os quatro MSNM-Ss estão em execução)
$ tail -500f ~/msnm-sensor/examples/scenario_4/borderRouter/logs/msnm.log (outra forma de ver como o MSNM-S está funcionando. Substitua o nome do MSNM-S se quiser ver os outros.)
Executando o dashboard (frontend):
Abra uma nova janela de terminal.
$ cd ~/msnm-sensor/dashboard/
$ conda activate msnm-dashboard
$ ln -s ../examples examples
$ python manage.py runserver
Navegue para http://localhost:8000