SinghNitin-0703/CIC-IoV-2024-CAN-Bus-Intrusion-Detection-System

GitHub: SinghNitin-0703/CIC-IoV-2024-CAN-Bus-Intrusion-Detection-System

基于机器学习的车载CAN总线入侵检测系统,用于识别拒绝服务和多种欺骗攻击。

Stars: 0 | Forks: 0

# CAN 网络分类 本项目实现了一种机器学习方法,用于检测和分类控制器局域网 (CAN) 中的入侵行为。 ## 概述 本项目的目标是分析 CAN 网络流量并识别异常,例如拒绝服务 攻击和各种欺骗 攻击 (GAS、RPM、SPEED 和 STEERING_WHEEL)。本项目使用了 **CIC IoV 2024** 数据集。 ## 项目结构 - `Notebook/CICIoV2024_ML_(Final).ipynb`: 包含数据预处理、模型训练和评估步骤的主 Jupyter Notebook。 - `decimal/`: 包含十进制 CSV 格式 CAN 网络数据文件的目录。其中包括正常/良性数据和各种攻击场景。 - `CIC_IoV_2024_Project_Report.docx`: 详述方法论和结果的最终项目报告。 ## 环境要求 本项目依赖于多个用于数据处理、机器学习和可视化的 Python 库。完整的依赖项列表可在 `requirements.txt` 中找到。 主要依赖项: - `pandas`: 数据处理和分析。 - `scikit-learn`: 机器学习算法和模型评估。 - `numpy`: 数值计算。 - `pyswarms`: 粒子群优化 (用于参数调整/优化)。 - `matplotlib` & `seaborn`: 数据可视化。 ## 快速开始 ### 1. 克隆仓库 确保您已将项目仓库下载或克隆到本地计算机。 ### 2. 设置环境 建议使用虚拟环境或 Conda 环境以避免依赖冲突。 **使用 `venv`:** ``` python -m venv venv venv\Scripts\activate # On Windows # source venv/bin/activate # 在 macOS/Linux 上 ``` ### 3. 安装依赖 使用 `pip` 安装所需的包: ``` pip install -r requirements.txt ``` ### 4. 运行 Notebook 启动 Jupyter Notebook 并打开主分析文件: ``` jupyter notebook Notebook/CICIoV2024_ML_(Final).ipynb ``` ## 数据集信息 该数据集由在正常和攻击条件下记录的 CAN 总线流量组成。数据文件位于 `decimal/` 文件夹中,包括: - `decimal_benign.csv` - `decimal_DoS.csv` - `decimal_spoofing-GAS.csv` - `decimal_spoofing-RPM.csv` - `decimal_spoofing-SPEED.csv` - `decimal_spoofing-STEERING_WHEEL.csv` ## 许可证 [如适用,请在此处添加许可证信息]
标签:Apex, CAN总线, CIC IoV 2024, DoS, IoV, NoSQL, PSO, Python, Scikit-learn, Spoofing, 代码示例, 分类算法, 工业控制系统安全, 异常检测, 拒绝服务攻击, 控制器局域网, 数据分析, 无后门, 智能交通, 机器学习, 欺骗攻击, 汽车安全, 粒子群优化, 网络安全, 车联网安全, 逆向工具, 隐私保护