MSNM-S(多变量统计网络监控传感器)展示了 PCA-MSNM 和 层次化 PCA-MSNM 工作中方法的实际适用性。前者提出了 MSNM 方法和用于网络异常检测的新多变量统计方法论,而后者则将前一种方法应用于层次化结构化的网络系统中。这些工作的主要思想是利用多变量统计技术,以两种统计量的形式生成有用信息。这种轻量信息从网络层次的低层传递到高层。这样,根传感器(例如边界路由器)接收所有统计信息,从而能够计算自己的统计量(Q、D)。通过检查这些统计量,安全分析师可以确定是否发生异常事件,即某些统计值超过特定控制限时。
[详情请参阅 https://journals.sagepub.com/doi/full/10.1177/1550147720921309]
MSNM-S 被设计为极具可扩展性和无菌性,因为在受监控的网络或系统中,层级或设备之间仅发送两个参数。此外,MSNM 传感器能够通过 FCParser(特征作为计数器解析器) 特征工程方法,管理每个受监控设备上的多类型异构数据源。
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 记录。 运行并在 example/scenario_4 示例中部署 MSNM-Ss:
$ cd ~/msnm-sensor/scripts/
$ conda activate py27
$ ./start_experiment.sh ../examples/scenario_4/
$ ps -ef | grep msnmsensor (仅用于检查所有四个 MSNM-Ss 是否正在运行)
$ tail -500f ~/msnm-sensor/examples/scenario_4/borderRouter/logs/msnm.log (另一种查看 MSNM-S 工作状态的方式。如果要查看其他 MSNM-S,请替换名称。)
运行仪表盘(前端):
打开一个新的终端窗口。
$ cd ~/msnm-sensor/dashboard/
$ conda activate msnm-dashboard
$ ln -s ../examples examples
$ python manage.py runserver