用于实现入侵检测系统(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}
}