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, 代码示例, 分类算法, 工业控制系统安全, 异常检测, 拒绝服务攻击, 控制器局域网, 数据分析, 无后门, 智能交通, 机器学习, 欺骗攻击, 汽车安全, 粒子群优化, 网络安全, 车联网安全, 逆向工具, 隐私保护