
多変量統計ネットワーク監視センサーで、PCAベースの手法を使用して異常を検出し、階層的なネットワークデバイスから軽量な統計情報を集約してスケーラブルな侵入検知を実現します。
MSNM-S(Multivariate Statistical Network Monitoring-Sensor)は、PCA-MSNM や Hierarchical PCA-MSNM の研究で見られるアプローチの実用的な適合性を示しています。最初の研究はMSNMアプローチとネットワーク異常検出のための新しい多変量統計手法を提示し、2番目の研究はそれを階層的かつ構造化されたネットワークシステムで提案しています。これらの研究の背後にある主なアイデアは、多変量統計手法を使用して2つの統計量の形で有用な情報を生成することです。このような軽量な情報は、ネットワーク階層の下位から上位へと伝達されます。このようにして、ルートセンサー(例えば、ボーダールーター)はすべての統計情報を受信し、自身の統計量(Q,D)を計算できます。この統計量を監視することで、セキュリティアナリストは、統計値の一部が特定の管理限界を超えた場合に異常イベントが発生しているかどうかを判断できます。
[詳細は https://journals.sagepub.com/doi/full/10.1177/1550147720921309]
MSNM-Sは、監視対象のネットワークまたはシステム内のレベルやデバイス間で送信されるパラメータがわずか2つであるため、非常にスケーラブルで無菌的に設計されています。さらに、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 を参照するか、事前構成済みVMを MSNM-S-UBUNTU からダウンロードしてください。VMの使用をお勧めします。リポジトリをプルしてMSNM-Sプロジェクトを最新の状態にしてください。以下に、VMで事前構成された実験を実行するために必要な手順を示します:
MSNM-Ssの実行(バックエンド)
ターミナルウィンドウを開き、netflowデーモンとコレクターを起動します。
$ cd ~/msnm-sensor/scripts/netflow/
$ sudo ./activateNetflow.sh (pass: msnm1234)
ネットフローレコードを取得するために5分間待ちます。 example/scenario_4 の例でMSNM-Ssを実行およびデプロイします:
$ cd ~/msnm-sensor/scripts/
$ conda activate py27
$ ./start_experiment.sh ../examples/scenario_4/
$ ps -ef | grep msnmsensor (4つの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
ブラウザで http://localhost:8000 にアクセスします。