本项目利用机器学习技术对端口扫描、拒绝服务(DoS)和恶意软件等网络攻击进行分类。输入数据采用 Netflow V9 格式,这是 Cisco 使用的标准格式。
分类使用以下模型完成:
本项目使用 Python 实现,基于 Jupyter Notebook 以及多个常用库,包括 UMAP、Pandas、NumPy、Scikit-Learn、Matplotlib 和 Seaborn。
笔记本可通过 此处 在 GitHub 上直接查看。或者,您也可以使用 NbViewer 通过 此链接 访问笔记本。
PDF 格式的 Keynote 演示文稿可通过 此处 获取。
本项目使用的数据集采用 NetFlow V9 格式(由 Cisco 记录,可参见 此处)。该数据集包含两个文件:train_net.csv 和 test_net.csv。
train_net.csv 文件提供了特定告警可能发生时的信息,而 test_net.csv 文件仅用于测试目的,不包含用于评估模型性能的目标变量。
该数据集相当庞大:
train_net.csv:约 400 万个数据包(来自 14'066 个不同的网络主机)test_net.csv:约 200 万个数据包(来自 6'186 个不同的网络主机)Maria-Elena Mihailescu, Darius Mihai, Mihai Carabas, Mikolaj Komisarek, Marek Pawlicki, Witold Holubowicz, Rafal Kozik: The Proposition and Evaluation of the RoEduNet-SIMARGL2021 Network Intrusion Detection Dataset. Sensors 21(13): 4319 (2021)