gouresh-madye/can-bus-simulation
GitHub: gouresh-madye/can-bus-simulation
基于 Suricata 的车载 CAN 总线入侵检测与自动驾驶安全响应系统,支持威胁检测、智能评分和分级安全机动。
Stars: 0 | Forks: 0
# 🚗 CAN Bus 自动驾驶车辆安全系统
一个全面的自动驾驶车辆安全系统,用于检测 CAN Bus 攻击并执行相应的安全机动措施。该项目集成了 Suricata IDS 进行威胁检测,并通过车辆控制模块自动执行分级安全措施来应对威胁。
## 🆕 新功能:自动驾驶车辆安全控制
**新功能!** 该项目现在包含一个完整的安全系统,具备以下功能:
- ✅ 检测 7 类 CAN Bus 威胁( floods、异常、传感器故障等)
- ✅ 以 0-100 分的范围对威胁进行评分,并进行智能聚合
- ✅ 执行 5 种分级安全机动(SLOW_DOWN, STOP, PULL_OVER, EVASIVE, FULL_STOP)
- ✅ 为车辆控制模块生成特定的 CAN 报文
- ✅ 强制执行 8 项物理安全约束
- ✅ 实现 5 种故障安全机制
**👉 [从安全系统概述开始](README_SAFETY_SYSTEM.md)** | **[快速入门 (5 分钟)](QUICKSTART.md)** | **[完整架构](ARCHITECTURE.md)**
## 📋 目录
- [系统功能](#what-this-system-does)
- [特性](#features)
- [文档](#documentation)
- [项目结构](#project-structure)
- [前置条件](#prerequisites)
- [安装说明](#installation)
- [使用方法](#usage)
- [安全系统 (新功能)](#safety-system-new)
- [IDS 检测](#ids-detection)
- [可视化](#visualization)
- [威胁检测](#threat-detection)
- [安全机动](#safety-maneuvers)
- [测试](#testing)
- [故障排除](#troubleshooting)
## 🎯 系统功能
### 自动驾驶车辆保护管道
```
CAN Bus Traffic
↓
Suricata IDS (10 Detection Rules)
↓
eve.json Alerts
↓
Safety Controller (7 Threat Classes)
↓
Threat Scoring Algorithm (0-100)
↓
Safety Decision Logic
↓
Vehicle Control Commands
↓
5 Safety Maneuvers (Graduated Response)
```
### 现实世界示例
当 Suricata 检测到 CAN flood 攻击(规则 1000001)时:
1. 警报被解析并归类为“CAN Flooding”威胁(第 1 类)
2. 威胁评分升至 35/100(黄色状态)
3. 安全控制器触发 SLOW_DOWN 机动
4. 车辆控制模块向制动模块 (0x100) 发送减速指令
5. 制动器施加 2 m/s² 的减速度,同时监控后续威胁
如果攻击持续或升级:
- 评分升至 65/100(橙色状态)→ STOP 机动
- 评分达到 85/100(红色状态)→ FULL_STOP 紧急制动
## ✨ 特性
### 安全系统 (新功能!) 🆕
- **威胁检测**:与 Suricata 集成的 7 类威胁检测系统
- **智能评分**:具有时间衰减特性的威胁评分算法(0-100 分)
- **分级响应**:由威胁等级触发的 5 种安全机动
- **CAN 控制**:针对 5 个车辆模块(制动、油门、转向、感知、安全)的特定 CAN 报文
- **安全约束**:8 项物理安全限制(最大减速度、转向范围等)
- **故障安全机制**:5 项冗余安全检查,防止意外行为
- **事件报告**:包含威胁时间线的详细事件日志
### IDS 检测特性
- **实时检测**:集成 Suricata IDS,输出 eve.json
- **10 条检测规则**:针对 CAN 特定威胁的全面规则
- **CAN 流量生成**:模拟带有各种攻击模式的 CAN Bus 流量
- **日志分析**:解析和分析 Suricata 日志
- **可视化**:检测到的警报和威胁时间线的交互式可视化
### 检测到的威胁
1. **CAN Flood 检测** - 高频重复的 CAN ID 模式(规则 1000001)
2. **异常检测** - 异常的报文序列(规则 1000002)
3. **DoS 攻击** - 零负载可疑模式(规则 1000003)
4. **诊断 Floods** - FF 负载洪泛(规则 1000004)
5. **未授权指令** - 控制帧异常(规则 1000005)
6. **OBD 滥用** - 恶意 OBD-II 访问尝试(规则 1000006)
7. **未知 ECU ID** - 检测未注册的 ECU 标识符(规则 1000007)
8. **急速转向** - 危险的转向角变化(规则 1000008)
9. **冲突控制** - 同时发生的冲突指令(规则 1000009)
10. **过制动压力** - 异常的制动压力值(规则 1000010)
## 📁 项目结构
```
can-bus-simulation/
├── code/
│ ├── vehicle_control.py # Core threat detection & control (600+ lines)
│ ├── safety_controller.py # Suricata integration & decisions (300+ lines)
│ ├── test_safety_controller.py # 17 comprehensive unit tests (400+ lines)
│ ├── generate_pcap.py # PCAP generator for CAN traffic
│ └── visualize.ipynb # Jupyter notebook for visualization
├── packets/
│ └── can_sim.pcap # Generated CAN traffic capture
├── inputdata/
│ └── simulated_can_logs.csv # Sample CAN log data
├── rules/
│ └── can.rules # 10 Suricata detection rules (enhanced)
├── suricata_logs/
│ ├── fast.log # Alert summary
│ └── eve.json # Detailed JSON logs
├── suricata.yaml # Suricata IDS configuration
├── requirements.txt # Python dependencies
├── screenshots/ # Documentation screenshots
│
├── Documentation Files:
├── README_SAFETY_SYSTEM.md # Safety system overview
├── QUICKSTART.md # 5-minute quick start guide
├── ARCHITECTURE.md # Complete system design (400 lines)
├── IMPLEMENTATION_GUIDE.md # Step-by-step implementation (300 lines)
├── COMPLETE_IMPLEMENTATION.md # Full technical specification (500 lines)
├── DELIVERY_SUMMARY.md # Project completion status
└── DOCUMENTATION_INDEX.md # Navigation guide for all docs
```
## 🔧 前置条件
### 系统要求
- **操作系统**:macOS, Linux, 或 Windows (WSL)
- **Python**:3.10 或更高版本
- **Suricata IDS**:7.0.0 或更高版本
- **Sudo 权限**:运行 Suricata 需要
### macOS 安装
```
# 安装 Homebrew(如果尚未安装)
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
# 安装 Suricata
brew install suricata
# 验证安装
suricata --version
```
### Linux (Ubuntu/Debian) 安装
```
# 添加 Suricata PPA
sudo add-apt-repository ppa:oisf/suricata-stable
sudo apt-get update
# 安装 Suricata
sudo apt-get install suricata
# 验证安装
suricata --version
```
## 📦 安装说明
### 1. 克隆或下载项目
```
cd ~/Documents/MajorProject
```
### 2. 安装 Python 依赖
#### 选项 A:使用虚拟环境(推荐)
```
# 创建 virtual environment
python3 -m venv .venv
# 激活 virtual environment
source .venv/bin/activate # On macOS/Linux
# 或者
.venv\Scripts\activate # On Windows
# 升级 pip 并安装 dependencies
python3 -m pip install --upgrade pip
python3 -m pip install -r requirements.txt
```
#### 选项 B:使用 Conda/Miniforge
```
# 创建 conda environment
conda create -n can-ids python=3.11 -y
# 激活 environment
conda activate can-ids
# 从 conda-forge 安装 dependencies
conda install -c conda-forge pandas matplotlib seaborn jupyter -y
```
#### 选项 C:系统级安装
```
python3 -m pip install --upgrade pip
python3 -m pip install -r requirements.txt
```
## 🚀 使用方法
### 安全系统 (新功能) 🆕
#### 快速入门 (5 分钟)
```
# 1. 安装 Python dependencies
pip install -r requirements.txt
# 2. 使用测试警报运行 safety controller
python3 -c "
from code.safety_controller import SafetyController
# 创建 controller
controller = SafetyController()
# 处理样本威胁
alerts = [
{'alert': {'category': 'CAN Flood Detected'}, 'threat_score': 30},
{'alert': {'category': 'Anomaly Detection'}, 'threat_score': 25},
]
for alert in alerts:
controller.process_ids_alert(alert)
# 查看事件报告
print(controller.generate_incident_report())
"
# 3. 运行完整测试套件 (17 tests)
python3 code/test_safety_controller.py
```
有关详细设置,请参阅 **[QUICKSTART.md](QUICKSTART.md)** 或 **[IMPLEMENTATION_GUIDE.md](IMPLEMENTATION_GUIDE.md)**。
#### 理解安全系统
**架构**:[ARCHITECTURE.md](ARCHITECTURE.md)
- 包含 5 个车辆模块的系统设计
- 7 类威胁检测
- 5 种安全机动序列
- CAN 报文规范
**实现**:[IMPLEMENTATION_GUIDE.md](IMPLEMENTATION_GUIDE.md)
- 组件集成
- 4 个测试场景及代码示例
- 自定义指南
- 事件报告
**完整规范**:[COMPLETE_IMPLEMENTATION.md](COMPLETE_IMPLEMENTATION.md)
- 详细的威胁标准
- CAN 报文字节级规范
- 安全约束
- 现实世界攻击场景
### IDS 检测
### IDS 检测
#### 步骤 1:生成 CAN 流量
```
python3 generate_pcap.py
```
**输出**:创建包含模拟 CAN 流量(包括各种攻击向量)的 `packets/can_sim.pcap`。
#### 步骤 2:运行 Suricata IDS
执行 Suricata 以分析生成的 PCAP 文件:
```
# 清理以前的日志并创建新的 output 目录
sudo rm -rf ~/Documents/MajorProject/suricata_logs && \
mkdir ~/Documents/MajorProject/suricata_logs
# 运行 Suricata 分析
sudo suricata -r ~/Documents/MajorProject/packets/can_sim.pcap \
-c ~/Documents/MajorProject/suricata.yaml \
-S ~/Documents/MajorProject/rules/can.rules \
-l ~/Documents/MajorProject/suricata_logs \
--runmode=single -vv
```
**参数说明:**
- `-r`:从 PCAP 文件读取
- `-c`:Suricata 配置文件
- `-S`:自定义规则文件
- `-l`:日志输出目录
- `--runmode=single`:单线程模式,用于获得一致的结果
- `-vv`:用于调试的详细输出
**预期输出:**
- `suricata_logs/fast.log` - 人类可读的警报摘要
- `suricata_logs/eve.json` - JSON 格式的详细日志
- 显示检测到的警报的控制台输出

#### Suricata 日志
运行 Suricata 后,检查生成的日志:
```
# 查看 fast.log(alert 摘要)
cat ~/Documents/MajorProject/suricata_logs/fast.log
# 按类型统计 alert 数量
grep -o '\[.*\]' ~/Documents/MajorProject/suricata_logs/fast.log | sort | uniq -c
```

#### 步骤 3:可视化结果
#### 使用 Jupyter Notebook
1. **启动 Jupyter Notebook**:
# 如果使用虚拟环境,请确保已激活
jupyter notebook
2. **打开笔记本**:
- 导航到 `visualize_fastlog.ipynb`
- 依次运行所有单元格 (Cell → Run All)
3. **交互式分析**:
笔记本提供:
- 警报频率条形图
- 攻击的时间线可视化
- 源 IP 与目标 IP 热力图
- 统计摘要
#### 使用 Python 脚本(替代方案)
如果您更喜欢在不使用 Jupyter 的情况下运行分析:
```
python3 -c "
import pandas as pd
import re
from datetime import datetime
# 读取并解析 fast.log
with open('suricata_logs/fast.log', 'r') as f:
lines = [l.strip() for l in f if l.strip()]
pattern = re.compile(
r'(?P\d{2}/\d{2}/\d{4}-\d{2}:\d{2}:\d{2}\.\d+).*\[(?P\d+):(?P\d+):(?P\d+)\]\s+(?P.*?)\s+\[\*\*\]'
)
records = []
for line in lines:
match = pattern.search(line)
if match:
records.append(match.groupdict())
df = pd.DataFrame(records)
print('\n📊 Alert Summary:')
print(df['alert'].value_counts())
print(f'\n🔢 Total Alerts: {len(df)}')
print(f'📡 Unique Source IPs: {df[\"alert\"].nunique()}')
"
```
## 📊 可视化
`visualize_fastlog.ipynb` 笔记本提供了全面的可视化:
### 1. 警报频率分析
- 显示每种警报类型计数的条形图
- 识别最常见的攻击向量
### 2. 时间线可视化
- 所有检测到的警报的按时间顺序视图
- 帮助识别攻击模式和时间
### 3. 网络热力图
- 源 IP 与目标 IP 矩阵
- 可视化通信模式
- 高亮显示可疑连接
### 示例输出
```
Parsed 78 alerts, skipped 0 lines.
📈 Summary of Alerts:
CAN Anomaly - ID 0x200 abnormal sequence 22
CAN Flood Detected - ID 0x100 pattern 21
CAN Diagnostic Flood - FF Payload 15
CAN Unknown ECU ID (>0x700) Detected 13
CAN Unauthorized Command - Control Frame 10
CAN DoS Suspicious - Zero Payload 4
Unique Source IPs: 5
Unique Destination IPs: 5
```
## 🛡️ 威胁检测
安全系统检测并响应 **7 类威胁**:
| 类别 | 名称 | 示例 | 威胁评分 | 响应 |
|-------|------|----------|---------------|----------|
| 1 | CAN Flooding | 重复 ID 模式,高频 | 15-40 | SLOW_DOWN |
| 2 | 异常 | 异常序列,意外数据 | 20-45 | SLOW_DOWN |
| 3 | 传感器故障 | 极端值,数据丢失 | 25-50 | STOP |
| 4 | 诊断滥用 | OBD-II floods,恶意探测 | 30-55 | STOP |
| 5 | 未授权指令 | 未知 ECU,控制异常 | 35-60 | PULL_OVER |
| 6 | OBD 滥用 | ECU 参数更改,内存访问 | 40-70 | EVASIVE |
| 7 | 未知 ECU | 未注册 ID,欺骗 | 45-75 | FULL_STOP |
### 威胁评分
威胁按 0-100 分进行评分,并具有智能聚合功能:
- **绿色** (0-25):无动作,仅监控
- **黄色** (26-50):SLOW_DOWN 机动,降低速度
- **橙色** (51-75):STOP 机动,受控停止
- **红色** (76-100):FULL_STOP 机动,紧急停止
评分会随着威胁的解决而随时间衰减(半衰期:30 秒)。
## 🚗 安全机动
系统执行 **5 种分级安全措施** 以应对威胁:
| 机动 | 触发条件 | 动作 | CAN 指令 | 持续时间 |
|----------|---------|--------|--------------|----------|
| SLOW_DOWN | 威胁 26-50 | 减速至 25 mph | 油门 -30%,制动 +20% | 直到威胁消除 |
| STOP | 威胁 51-75 | 受控减速 | 油门 OFF,制动 2 m/s² | 直到停止 |
| PULL_OVER | 威胁 76-85 | 靠边停车 | 转向 ±20°,制动 3 m/s² | 直到停止 |
| EVASIVE | 威胁 86-95 | 躲避障碍物 | 转向 ±40°,油门 +50% | 2-3 秒 |
| FULL_STOP | 威胁 96-100 | 紧急停车 | 制动 10 m/s²,双闪 ON | 直到停止 |
每个机动包括:
- ✅ 为每个车辆模块生成 CAN 报文
- ✅ 实时反馈验证
- ✅ 物理约束强制执行
- ✅ 用于安全的看门狗计时器
- ✅ 自动事件记录
## 📊 测试
运行全面的测试套件:
```
# 运行全部 17 tests
python3 code/test_safety_controller.py
# 运行特定 test class
python3 code/test_safety_controller.py TestVehicleControlModule
# 运行并显示详细输出
python3 -v code/test_safety_controller.py
```
**测试覆盖范围**(17 个测试):
- ✅ 报文解析(3 个测试)
- ✅ 威胁检测(6 个测试)
- ✅ 威胁评分(1 个测试)
- ✅ 状态转换(4 个测试)
- ✅ 机动执行(3 个测试)
- ✅ Suricata 集成(2 个测试)
## 📊 检测规则
### 规则格式
`rules/can.rules` 中的每条 CAN 检测规则都遵循以下结构:
```
alert udp any any -> any any (msg:"Alert Message";
content:"pattern"; sid:XXXXXX; rev:X; priority:3;)
```
### 当前规则集
| SID | 警报类型 | 威胁类别 | 描述 |
| ------- | ------------------------ | ------------ | --------------------------- |
| 1000001 | CAN Flood Detected | 1 | 重复 ID 模式 |
| 1000002 | CAN Anomaly | 2 | 异常序列 |
| 1000003 | CAN DoS Suspicious | 3 | 零负载攻击 |
| 1000004 | CAN Diagnostic Flood | 4 | FF 负载洪泛 |
| 1000005 | CAN Unauthorized Command | 5 | 控制帧异常 |
| 1000006 | CAN OBD Abuse | 6 | OBD-II 参数滥用 |
| 1000007 | CAN Unknown ECU ID 7 | 大于 0x700 的 ECU ID |
| 1000008 | CAN Rapid Steering | 2 | 危险的转向变化 |
| 1000009 | CAN Conflicting Controls | 5 | 同时发生的冲突 |
| 1000010 | CAN Excessive Brake | 3 | 异常压力值 |
### 添加自定义规则
编辑 `rules/can.rules` 以添加新的检测模式:
```
# 示例:检测特定 CAN ID
alert udp any any -> any any (msg:"CAN Custom ID 0x300 Detected";
content:"|03 00|"; sid:1000010; rev:1; priority:2;)
```
## 🖼️ 截图
### Suricata 实现

### 生成的日志

## 🔍 故障排除
### 常见问题
#### 1. Suricata 权限被拒绝
**错误**:`Permission denied when accessing PCAP`
**解决方案**:
```
# 使用 sudo 运行
sudo suricata -r ...
# 或者修改文件权限
chmod 644 ~/Documents/MajorProject/packets/can_sim.pcap
```
#### 2. Python 包安装失败
**错误**:`Failed building wheel for matplotlib`
**macOS 解决方案**:
```
# 安装系统 dependencies
xcode-select --install
brew install pkg-config freetype libpng
# 重试安装
python3 -m pip install -r requirements.txt
```
**替代方案**:使用 conda/miniforge(参见安装部分)
#### 3. 找不到 Suricata
**错误**:`suricata: command not found`
**解决方案**:
```
# macOS
brew install suricata
# Linux
sudo apt-get install suricata
# 验证
which suricata
```
#### 4. 日志文件为空
**问题**:`suricata_logs/fast.log` 为空
**解决方案**:
1. 检查 PCAP 文件是否存在且有内容
2. 验证规则文件路径是否正确
3. 使用 `-vv` 标志运行 Suricata 以获取详细输出
4. 检查 Suricata 版本兼容性
#### 5. Jupyter Notebook 内核问题
**错误**:内核错误或导入失败
**解决方案**:
```
# 重装 kernel
python3 -m ipykernel install --user --name=can-ids
# 使用特定 kernel 启动 Jupyter
jupyter notebook --kernel=can-ids
```
### 调试模式
以最大详细程度运行 Suricata 进行故障排除:
```
sudo suricata -r ~/Documents/MajorProject/packets/can_sim.pcap \
-c ~/Documents/MajorProject/suricata.yaml \
-S ~/Documents/MajorProject/rules/can.rules \
-l ~/Documents/MajorProject/suricata_logs \
--runmode=single -vvv --log-level=debug
```
## 📚 文档指南
本项目包含面向不同读者的全面文档:
| 文档 | 目的 | 时间 | 最适合 |
|----------|---------|------|----------|
| [README_SAFETY_SYSTEM.md](README_SAFETY_SYSTEM.md) | 高层概述 | 5-10 分钟 | 了解系统 |
| [QUICKSTART.md](QUICKSTART.md) | 快速设置与参考 | 5-15 分钟 | 快速上手 |
| [ARCHITECTURE.md](ARCHITECTURE.md) | 完整的系统设计 | 20-30 分钟 | 了解设计 |
| [IMPLEMENTATION_GUIDE.md](IMPLEMENTATION_GUIDE.md) | 分步实现 | 20-30 分钟 | 实践学习 |
| [COMPLETE_IMPLEMENTATION.md](COMPLETE_IMPLEMENTATION.md) | 完整技术规范 | 45-60 分钟 | 深入理解技术细节 |
| [DELIVERY_SUMMARY.md](DELIVERY_SUMMARY.md) | 项目状态与指标 | 15-20 分钟 | 项目概览 |
| [DOCUMENTATION_INDEX.md](DOCUMENTATION_INDEX.md) | 导航指南 | 5-10 分钟 | 查找所需内容 |
**👉 从这里开始**:[README_SAFETY_SYSTEM.md](README_SAFETY_SYSTEM.md) 或 [QUICKSTART.md](QUICKSTART.md)
**完整文档导航**:参见 [DOCUMENTATION_INDEX.md](DOCUMENTATION_INDEX.md)
## 🎯 预期结果
成功完成所有步骤后,您应该拥有:
✅ 能够防御 7 类威胁的自动驾驶车辆安全系统
✅ 具有智能评分 (0-100) 的实时威胁检测
✅ 通过 CAN 指令自动执行 5 种安全机动
✅ 包含威胁时间线的事件报告
✅ 17 个验证所有安全机制的单元测试
✅ 攻击模式的统计分析
## 📚 其他资源
- **安全系统**:[README_SAFETY_SYSTEM.md](README_SAFETY_SYSTEM.md) - 自动驾驶车辆保护系统概述
- **快速入门**:[QUICKSTART.md](QUICKSTART.md) - 5 分钟设置和常见任务
- **架构**:[ARCHITECTURE.md](ARCHITECTURE.md) - 包含 9 个部分的完整系统设计
- **实现**:[IMPLEMENTATION_GUIDE.md](IMPLEMENTATION_GUIDE.md) - 分步集成指南
- **完整规范**:[COMPLETE_IMPLEMENTATION.md](COMPLETE_IMPLEMENTATION.md) - 全面的技术规范
- **Suricata 文档**:[Suricata 官方文档](https://suricata.readthedocs.io/)
- **CAN Bus 协议概述**:[CAN Bus 维基百科](https://en.wikipedia.org/wiki/CAN_bus)
- **编写 Suricata 规则**:[Suricata 规则指南](https://suricata.readthedocs.io/en/latest/rules/)
## 🤝 贡献
欢迎通过以下方式增强本项目:
- 添加新的威胁检测模式
- 创建额外的安全机动
- 增强威胁评分算法
- 扩展测试套件
- 改进可视化技术
- 添加模拟器集成(CARLA, LGSVL)
- 实现机器学习异常检测
## 📄 许可证
本项目仅用于教育和研究目的。
## 🎯 关键统计数据
| 指标 | 数值 |
|--------|-------|
| 威胁类别 | 7 |
| 安全机动 | 5 |
| 检测规则 | 10 |
| 安全约束 | 8 |
| 故障安全机制 | 5 |
| 车辆控制模块 | 5 |
| 威胁评分范围 | 0-100 |
| 单元测试 | 17 |
| 代码行数 | 1,400+ |
| 文档行数 | 1,950+ |
## 🚀 快速入门摘要
### 安全系统用户:
```
# 1. 安装 dependencies
pip install -r requirements.txt
# 2. 运行 test suite
python3 code/test_safety_controller.py
# 3. 尝试一个简单示例(见 QUICKSTART.md)
```
### IDS 用户:
```
# 1. 生成流量
python3 code/generate_pcap.py
# 2. 运行 Suricata
sudo suricata -r packets/can_sim.pcap \
-c suricata.yaml \
-S rules/can.rules \
-l suricata_logs \
--runmode=single -vv
# 3. 可视化
jupyter notebook code/visualize.ipynb
```
## 📖 学习路径
**路径 1:执行摘要(15 分钟)**
1. [README_SAFETY_SYSTEM.md](README_SAFETY_SYSTEM.md) (5 分钟)
2. [QUICKSTART.md](QUICKSTART.md) 概述 (5 分钟)
3. [DELIVERY_SUMMARY.md](DELIVERY_SUMMARY.md) (5 分钟)
**路径 2:技术概述(1 小时)**
1. [README_SAFETY_SYSTEM.md](README_SAFETY_SYSTEM.md) (5 分钟)
2. [QUICKSTART.md](QUICKSTART.md) (10 分钟)
3. [ARCHITECTURE.md](ARCHITECTURE.md) (30 分钟)
4. [COMPLETE_IMPLEMENTATION.md](COMPLETE_IMPLEMENTATION.md) 第 1-2 部分 (15 分钟)
**路径 3:完整实现(2 小时)**
1. [QUICKSTART.md](QUICKSTART.md) (15 分钟)
2. [ARCHITECTURE.md](ARCHITECTURE.md) (30 分钟)
3. [IMPLEMENTATION_GUIDE.md](IMPLEMENTATION_GUIDE.md) (30 分钟)
4. 代码审查 (30 分钟)
5. 运行测试 (15 分钟)
**🎉 欢迎来到 CAN Bus 自动驾驶车辆安全系统!**
如需详细指导,请从 [README_SAFETY_SYSTEM.md](README_SAFETY_SYSTEM.md) 或 [QUICKSTART.md](QUICKSTART.md) 开始。
有关文档导航,请参见 [DOCUMENTATION_INDEX.md](DOCUMENTATION_INDEX.md)。
标签:CAN总线, DoS攻击检测, ECU, FTP漏洞扫描, Jupyter, NoSQL, Suricata, 云计算, 入侵检测系统, 威胁情报, 安全数据湖, 安全编排, 开发者工具, 开源安全, 异常检测, 故障安全, 汽车黑客, 流量生成, 物理安全, 现代安全运营, 网络安全, 自动驾驶安全, 规则引擎, 车联网, 车载网络安全, 逆向工具, 防御系统, 隐私保护