
機械学習モデルを使用してネットワークフロー内の異常を識別することを目的とした、侵入検知システム(NIDS)を実装するためのフレームワークです。
実験環境を作成するには、以下のコマンドを実行してください:
python -m venv .env
注:スクリプトがこの名前を使用して必要なライブラリをロードするため、仮想環境はこの名前である必要があります。 fl-unsup-nids/blob/anomaly-flow-baseline/utils/load_data.py 仮想環境を作成したら、以下のコマンドを使用して必要なPythonパッケージをインストールしてください:
pip install -r requirements.txt
ローカル実験を実行するには、以下のコマンドを使用します:
source experiments.sh
フェデレーテッドラーニング実験を実行するには、以下のコマンドを使用します:
source run.sh
実験を実行するには、プロジェクトのルートにあるdatasetsというフォルダにCIC-IDS2018、BoT-IoT、ToN-IoTを配置する必要があります。例:
|- anomaly-flow
|- datasets
|- NF-CSE-CIC-IDS2018-v2-DDoS.csv.gz
|- NF-BoT-IoT-v2-DDoS.csv.gz
|- NF-ToN-IoT-v2-DDoS.csv.gz
私たちのケースでは、元のデータセットからフィルタリングされた良性サンプルとDDoSサンプルのみを含む派生データセットを使用しました。
特定のデータセット用の合成データを生成するには、スクリプトmain.ipynbを使用してください。
外部モデルおよびシンプルモデルのスクリプトを実行するには、EFCアルゴリズム用のカスタムpipパッケージをインストールしてください:
chmod +x ./auxiliary_scripts/install-efc.sh
./auxiliary_scripts/install-efc.sh
フェデレーテッドラーニングを使用したマルチドメインDDoS検出のベースラインは、以下の場所で入手できます:
実験に使用したデータは、以下のサイトから入手できます:
Machine Learning-Based NIDS Datasets (Netflow V2 Datasets)
この研究の準備にあたり、以下のプロジェクトを参考にしました:
@ARTICLE{anomalyflow,
author={De Melo, Leonardo Henrique and Bertoli, Gustavo de Carvalho and Nogueira, Michele and Dos Santos, Aldri Luiz and Pereira, Lourenço Alves},
journal={IEEE Network},
title={Anomaly-Flow: A Multi-domain Federated Generative Adversarial Network for Distributed Denial-of-Service Detection},
year={2025},
volume={},
number={},
pages={1-1},
doi={10.1109/MNET.2025.3567251}
}