laplacef/workshop-data-driven-defense
GitHub: laplacef/workshop-data-driven-defense
面向IoT/IIoT网络入侵检测场景的机器学习研讨会教学代码库,提供数据分析、模型训练与评估的完整实践教程。
Stars: 0 | Forks: 0
# workshop-data-driven-defense
## 概述
本代码库包含 2024 年 *"Dia De Los Hackers"* **[太平洋黑客大会](https://www.phack.org/)** 的 **Data-Driven Defense 研讨会** 的代码和资源。本次研讨会重点关注机器学习在分析网络流量日志以进行入侵检测方面的应用。研讨会旨在介绍机器学习的核心概念,包括数据分析、预处理以及模型训练与评估,并特别聚焦于网络流量。
## 学习目标
在本次研讨会结束时,您将能够:
- 熟悉应用机器学习的技术概念。
- 针对入侵检测,对网络流量数据进行分析和预处理。
- 实现用于对网络流量日志进行分类的机器学习模型。
- 评估模型性能并解释结果。
## 材料
- [演示幻灯片](res/presentation.pdf)
- [带注释的论文](res/annotated_paper.pdf)
## 环境设置
需要 [uv](https://docs.astral.sh/uv/) 和一个 Kaggle 账号。
1. 安装依赖项(将创建一个包含 JupyterLab 的固定版本 `.venv`):
uv sync
2. 通过 Kaggle 进行身份验证。在 [kaggle.com/settings](https://www.kaggle.com/settings) 生成一个 token,然后导出它或将其保存到文件中:
export KAGGLE_API_TOKEN=
# 或者:echo > ~/.kaggle/access_token
然后打开 [Edge-IIoTset 数据集页面](https://www.kaggle.com/datasets/mohamedamineferrag/edgeiiotset-cyber-security-dataset-of-iot-iiot) 并接受其条款。
3. 下载数据并在 `db/` 目录下构建 SQLite 数据库:
uv run python deploy.py
4. 启动 notebook:
uv run jupyter lab
## Notebooks
您可以在 `notebooks` 目录中找到研讨会的 notebook。您可以在本地机器上运行这些 notebook,并使用它们来配合研讨会的内容进行学习。欢迎 fork 本代码库,以试验代码并尝试不同的方法和技术。
## 致谢
特别感谢 Edge-IIoTset 数据集的创建者,他们公开了数据以供研究和教育目的使用。强烈建议您阅读 Ferrag 等人发表的研究论文,以详细了解该数据集及其潜在应用:[Edge-IIoTset: A New Comprehensive Realistic Cyber Security Dataset of IoT and IIoT Applications for Centralized and Federated Learning](https://arxiv.org/abs/2103.00688)。
```
@ARTICLE{9751703,
author={Ferrag, Mohamed Amine and Friha, Othmane and Hamouda, Djallel and Maglaras, Leandros and Janicke, Helge},
journal={IEEE Access},
title={Edge-IIoTset: A New Comprehensive Realistic Cyber Security Dataset of IoT and IIoT Applications for Centralized and Federated Learning},
year={2022},
volume={10},
number={},
pages={40281-40306},
keywords={Industrial Internet of Things;Sensors;Temperature sensors;Computer crime;Security;Protocols;Computer security;Cybersecurity applications;IoT datasets;deep learning;federated learning;edge {computing}},
doi={10.1109/ACCESS.2022.3165809}}
```
## 许可证
本作品采用 [知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 (CC BY-NC-SA 4.0)](https://creativecommons.org/licenses/by-nc-sa/4.0/) 进行许可。请查看 [LICENSE](LICENSE.md) 文件以了解完整的条款及商业许可联系方式。
## 概述
本代码库包含 2024 年 *"Dia De Los Hackers"* **[太平洋黑客大会](https://www.phack.org/)** 的 **Data-Driven Defense 研讨会** 的代码和资源。本次研讨会重点关注机器学习在分析网络流量日志以进行入侵检测方面的应用。研讨会旨在介绍机器学习的核心概念,包括数据分析、预处理以及模型训练与评估,并特别聚焦于网络流量。
## 学习目标
在本次研讨会结束时,您将能够:
- 熟悉应用机器学习的技术概念。
- 针对入侵检测,对网络流量数据进行分析和预处理。
- 实现用于对网络流量日志进行分类的机器学习模型。
- 评估模型性能并解释结果。
## 材料
- [演示幻灯片](res/presentation.pdf)
- [带注释的论文](res/annotated_paper.pdf)
## 环境设置
需要 [uv](https://docs.astral.sh/uv/) 和一个 Kaggle 账号。
1. 安装依赖项(将创建一个包含 JupyterLab 的固定版本 `.venv`):
uv sync
2. 通过 Kaggle 进行身份验证。在 [kaggle.com/settings](https://www.kaggle.com/settings) 生成一个 token,然后导出它或将其保存到文件中:
export KAGGLE_API_TOKEN=标签:Apex, 工控网络安全, 机器学习, 物联网安全, 网络流量分析, 逆向工具