venkateshP-12/can-bus-simulation
GitHub: venkateshP-12/can-bus-simulation
基于 Suricata IDS 的 CAN 总线入侵检测系统,能够识别多种车载网络攻击并根据威胁评分自动执行分级安全机动。
Stars: 0 | Forks: 0
# 🚗 CAN Bus 自动驾驶车辆安全系统
一个综合性的自动驾驶车辆安全系统,能够检测 CAN Bus 攻击并执行相应的安全机动。本项目集成了 Suricata IDS 进行威胁检测,并通过车辆控制模块根据威胁自动执行分级安全措施。
## 🆕 最新动态:自动驾驶车辆安全控制
**全新!** 本项目现在包含一个完整的安全系统,具备以下功能:
- ✅ 检测 7 类 CAN Bus 威胁(洪泛、异常、传感器故障等)
- ✅ 以 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 洪泛攻击(规则 1000001)时:
1. 解析警报并将其归类为“CAN 洪泛”威胁(1 类)
2. 威胁评分升至 35/100(YELLOW 状态)
3. 安全控制器触发 SLOW_DOWN 机动
4. 车辆控制模块向制动模块 (0x100) 发送减速指令
5. 制动器施加 2 m/s² 的减速,同时监测后续威胁
如果攻击持续或升级:
- 评分升至 65/100(ORANGE 状态)→ STOP 机动
- 评分达到 85/100(RED 状态)→ FULL_STOP 紧急制动
## ✨ 特性
### 安全系统 (全新!) 🆕
- **威胁检测**:与 Suricata 集成的 7 类威胁检测系统
- **智能评分**:带有时间衰减的威胁评分算法(0-100 等级)
- **分级响应**:由威胁等级触发的 5 项安全机动
- **CAN 控制**:针对 5 个车辆模块(制动、油门、转向、感知、安全)的特定 CAN 报文
- **安全约束**:8 项物理安全限制(最大减速度、转向范围等)
- **故障保护机制**:5 项冗余安全检查,防止意外行为
- **事件报告**:包含威胁时间线的详细事件日志
### IDS 检测特性
- **实时检测**:集成 Suricata IDS 并输出 eve.json
- **10 条检测规则**:针对 CAN 专属威胁的综合规则
- **CAN 流量生成**:模拟带有各种攻击模式的 CAN 总线流量
- **日志分析**:解析并分析 Suricata 日志
- **可视化**:对检测到的警报和威胁时间线进行交互式可视化展示
### 检测到的威胁
1. **CAN 洪泛检测** - 高频重复的 CAN ID 模式(规则 1000001)
2. **异常检测** - 异常的报文序列(规则 1000002)
3. **DoS 攻击** - 零负载的可疑模式(规则 1000003)
4. **诊断洪泛** - 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:使用虚拟环境(推荐)
```
# 创建虚拟环境
python3 -m venv .venv
# 激活虚拟环境
source .venv/bin/activate # On macOS/Linux
# 或者
.venv\Scripts\activate # On Windows
# 升级 pip 并安装依赖
python3 -m pip install --upgrade pip
python3 -m pip install -r requirements.txt
```
#### 选项 B:使用 Conda/Miniforge
```
# 创建 conda 环境
conda create -n can-ids python=3.11 -y
# 激活环境
conda activate can-ids
# 从 conda-forge 安装依赖
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 依赖
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 个测试)
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 文件:
```
# 清理之前的日志并创建新的输出目录
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(告警摘要)
cat ~/Documents/MajorProject/suricata_logs/fast.log
# 按类型统计告警
grep -o '\[.*\]' ~/Documents/MajorProject/suricata_logs/fast.log | sort | uniq -c
```

#### 步骤 3:可视化结果
#### 使用 Jupyter Notebook
1. **启动 Jupyter Notebook**:
# 如果使用虚拟环境,请确保已激活
jupyter notebook
2. **打开 notebook**:
- 导航到 `visualize_fastlog.ipynb`
- 依次运行所有单元格 (Cell → Run All)
3. **交互式分析**:
notebook 提供:
- 警报频率柱状图
- 攻击的时间线可视化
- 源 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` notebook 提供了全面的可视化展示:
### 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 洪泛 | 重复 ID 模式,高频 | 15-40 | SLOW_DOWN |
| 2 | 异常 | 异常序列,意外数据 | 20-45 | SLOW_DOWN |
| 3 | 传感器故障 | 极值,数据丢失 | 25-50 | STOP |
| 4 | 诊断滥用 | OBD-II 洪泛,恶意探测 | 30-55 | STOP |
| 5 | 未授权指令 | 未知 ECU,控制异常 | 35-60 | PULL_OVER |
| 6 | OBD 滥用 | ECU 参数修改,内存访问 | 40-70 | EVASIVE |
| 7 | 未知 ECU | 未注册 ID,欺骗 | 45-75 | FULL_STOP |
### 威胁评分
威胁评分为 0-100,并带有智能聚合功能:
- **GREEN** (0-25):不采取行动,仅进行监控
- **YELLOW** (26-50):SLOW_DOWN 机动,降低速度
- **ORANGE** (51-75):STOP 机动,受控停止
- **RED** (76-100):FULL_STOP 机动,紧急停止
随着威胁解除,分数会随时间衰减(半衰期:30 秒)。
## 🚗 安全机动
系统响应威胁执行 **5 项分级安全措施**:
| 机动 | 触发条件 | 动作 | CAN 指令 | 持续时间 |
|----------|---------|--------|--------------|----------|
| SLOW_DOWN | 威胁 26-50 | 减速至 25 mph | 油门 -30%,制动 +20% | 直到威胁解除 |
| STOP | 威胁 51-75 | 受控减速 | 油门关闭,制动 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²,危险警告灯开启 | 直到停止 |
每项机动包括:
- ✅ 为每个车辆模块生成 CAN 报文
- ✅ 实时反馈验证
- ✅ 物理约束强制执行
- ✅ 用于安全保障的看门狗定时器
- ✅ 自动事件记录
## 📊 测试
运行综合测试套件:
```
# 运行全部 17 个测试
python3 code/test_safety_controller.py
# 运行特定测试类
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 | ECU ID 大于 0x700 |
| 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 解决方案**:
```
# 安装系统依赖
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. 安装依赖
pip install -r requirements.txt
# 2. 运行测试套件
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总线, NoSQL, Suricata, 入侵检测系统, 安全响应, 安全数据湖, 现代安全运营, 自动驾驶安全, 车联网安全, 车联网攻击检测, 逆向工具, 配置错误