
Многомерный статистический сенсор мониторинга сети, который обнаруживает аномалии с помощью методов на основе PCA, агрегируя легковесную статистику от иерархических сетевых устройств для масштабируемого обнаружения вторжений.
MSNM-S (Multivariate Statistical Network Monitoring-Sensor) показывает практическую применимость подходов, описанных в работах PCA-MSNM и Hierarchical PCA-MSNM. Первая представляет подход MSNM и новую многомерную статистическую методологию для обнаружения сетевых аномалий, в то время как вторая предлагает предыдущий подход в иерархических и структурированных сетевых системах. Основная идея этих работ заключается в использовании многомерных статистических методов для генерации полезной информации в виде двух статистик. Такая легкая информация передается от нижних уровней к верхним в сетевой иерархии. Таким образом, корневой сенсор (например, пограничный маршрутизатор) получает всю статистическую информацию и может вычислять свои собственные статистики (Q, D). Анализируя эти статистики, аналитик безопасности может определить, происходят ли аномальные события, когда некоторые значения статистик превышают определенные контрольные пределы.
[Подробнее на https://journals.sagepub.com/doi/full/10.1177/1550147720921309]
MSNM-S разработан для максимальной масштабируемости и асептичности, поскольку между уровнями или устройствами в мониторируемой сети или системе передаются всего два параметра. Кроме того, MSNMSensor способен обрабатывать множественные и разнородные типы источников данных на каждом мониторируемом устройстве благодаря подходу инженерии признаков FCParser (Feature as a Counter Parser).
MSNSensor работает на Python 3 и был успешно протестирован на Ubuntu версии 16.04 и выше. Также должны быть установлены следующие зависимости:
Создание изолированного окружения Python, вероятно, лучший способ запуска приложения. Поэтому я рекомендую создать его перед установкой зависимостей. Среда Anaconda может вам помочь, и если вы решите ее использовать, выполните следующие команды:
$ conda create -n msnm-dev python=3.7
$ conda activate msnm-dev
Выполнение предыдущей команды установит все необходимое.
(msnm-dev) $ pip install -r requirements.txt
Пожалуйста, ознакомьтесь с инструкциями в examples или скачайте предварительно настроенную виртуальную машину по ссылке MSNM-S-UBUNTU. Мы рекомендуем использовать ВМ. Не забудьте обновить репозиторий, чтобы получить последнюю версию проекта MSNM-S. Ниже приведены необходимые шаги для запуска предварительно настроенного эксперимента в ВМ:
Запуск MSNM-Ss (бэкенд)
Откройте окно терминала и активируйте демон и сборщик netflow.
$ cd ~/msnm-sensor/scripts/netflow/
$ sudo ./activateNetflow.sh (pass: msnm1234)
Подождите 5 минут, чтобы получить записи netflow. Запустите и разверните MSNM-Ss в примере scenario_4:
$ cd ~/msnm-sensor/scripts/
$ conda activate py27
$ ./start_experiment.sh ../examples/scenario_4/
$ ps -ef | grep msnmsensor (just to check if all the four MSNM-Ss are running)
$ tail -500f ~/msnm-sensor/examples/scenario_4/borderRouter/logs/msnm.log (another way to see how the MSNM-S is working. Replace the name of the MSNM-S if you want to see the others.)
Запуск панели управления (фронтенд):
Откройте новое окно терминала.
$ cd ~/msnm-sensor/dashboard/
$ conda activate msnm-dashboard
$ ln -s ../examples examples
$ python manage.py runserver
Перейдите по адресу http://localhost:8000