kanika021105/can-automotive-security
GitHub: kanika021105/can-automotive-security
一个集CAN总线攻击模拟、实时流量监控与入侵检测于一体的汽车安全测试平台,帮助用户理解并防御车辆网络中的重放攻击、消息欺骗和DoS威胁。
Stars: 0 | Forks: 0
# 🚗 CAN Bus 汽车安全测试平台
[](https://www.python.org/)
[](https://flask.palletsprojects.com/)
[](LICENSE)
[](http://makeapullrequest.com/)
## 概述
现代车辆本质上是车轮上的联网计算机。**控制器局域网 (CAN)** 是车辆中使用的通信协议,但它**缺乏身份验证**——使其容易受到各种攻击。
本项目演示了:
- **进攻安全:** 攻击者如何利用 CAN Bus 漏洞
- **防御安全:** 如何检测和响应这些攻击
- **专业仪表盘:** 实时可视化与监控
## 为什么这很重要
| 攻击类型 | 影响 | 现实案例 |
|-------------|--------|-------------------|
| **重放攻击** | 控制车辆功能 | 转向灯,解锁车门 |
| **欺骗** | 发送伪造消息 | 显示错误车速,禁用刹车 |
| **DoS 攻击** | 淹没网络 | 禁用关键 ECU |
**本项目旨在帮助您理解并防御这些威胁。**
## 功能
### 进攻安全
| 功能 | 描述 |
|---------|-------------|
| **ECU 模拟** | 模拟转向灯和车速传感器 ECU |
| **流量捕获** | 将 CAN 消息记录到日志文件 |
| **重放攻击** | 重新发送捕获的消息以控制 ECU |
### 防御安全
| 功能 | 描述 |
|---------|-------------|
| **实时监控** | 实时 CAN 流量检查 |
| **序列检测** | 通过模式识别重放攻击 |
| **即时告警** | 在检测到攻击时立即通知 |
### 仪表盘
| 功能 | 描述 |
|---------|-------------|
| **实时流量展示** | 实时 CAN 消息流 |
| **统计卡片** | 消息计数,攻击计数 |
| **实时图表** | 流量活动可视化 |
| **CAN ID 追踪** | 监控活跃的 ECU |
| **攻击告警** | 带动画的视觉告警 |
## 🛠️ 技术栈
| 层级 | 技术 |
|-------|------------|
| **CAN Bus** | SocketCAN, python-can, vcan0 |
| **后端** | Python 3, Flask, Flask-SocketIO |
| **前端** | HTML, CSS, JavaScript, Tailwind CSS |
| **实时通信** | WebSockets, Socket.IO |
| **可视化** | Chart.js |
| **操作系统** | Linux (Kali/Ubuntu) |
## 截图
### 实时仪表盘
*带实时更新的 CAN 流量实时监控*

### 检测到攻击的仪表盘
*展示实时流量、统计数据和攻击告警的专业仪表盘*

### 实时流量可视化
*展示一段时间内 CAN 流量活动的交互式图表*

### 正在进行重放攻击
*使用 canplayer 捕获并重放 CAN 流量*

### 攻击检测告警
*检测到重放攻击时的即时告警及序列详情*

### CAN 流量日志
*显示车速传感器消息的已捕获 CAN 日志文件*

### 后端处理
*带 WebSocket 支持的 Flask 后端运行中*

### 捕获与重放
*创建日志文件并执行重放攻击*

## 安装说明
### 前置条件
```
# 更新系统
sudo apt update
# 安装 CAN utilities
sudo apt install can-utils -y
# 安装 Python packages
pip3 install python-can flask flask-socketio flask-cors eventlet
```
标签:CAN总线, Flask, Python, 后端开发, 安全测试平台, 无后门, 车联网安全, 逆向工具, 防御绕过