samartha-2601/AutoRed
GitHub: samartha-2601/AutoRed
AutoRed 是一个汽车安全红队平台,通过模拟多 ECU 的虚拟 CAN 网络,集成 CAN 攻击模拟、入侵检测防御与固件逆向分析来研究车辆网络安全。
Stars: 0 | Forks: 0
# 🚗 AutoRed:汽车红队与车辆安全平台








## 概述
AutoRed 是一个车辆安全测试与研究平台,旨在模拟现代汽车攻防场景。
该项目结合了:
- 多 ECU 车辆模拟
- CAN bus 通信
- 进攻性安全测试
- 入侵检测与防御
- 安全监控
- 嵌入式软件开发
- 固件逆向工程
开发 AutoRed 旨在展示汽车安全工程和车辆软件红队角色通常所需的技能。
# 功能
## 车辆模拟
模拟的电子控制单元(ECU):
- 引擎 ECU
- 车门 ECU
- 刹车 ECU
- 网关 ECU
通信通过使用 SocketCAN(`vcan0`)的虚拟 CAN 网络进行。
## 进攻性安全
### CAN 欺骗攻击
向车辆网络注入恶意 CAN 报文。
示例:
- 未授权的车门解锁命令
- ECU 冒充
- 恶意帧注入
### CAN 重放攻击
捕获合法的 CAN 流量并在稍后重放。
功能:
- 流量捕获
- 帧解析
- 报文重放
- 网关检测
## 防御性安全
### 网关 ECU
网关 ECU 监控 CAN 流量并执行:
- 报文检查
- 威胁检测
- 流量过滤
- 安全事件生成
### 入侵检测系统(IDS)
检测:
- 车门 ECU 的过度活动
- 潜在的 CAN 欺骗攻击
- 重放攻击行为
### 入侵防御系统(IPS)
自动:
- 阻断可疑的 CAN 流量
- 记录安全事件
- 提升威胁等级
## 安全监控仪表板
使用 Streamlit 构建的实时仪表板。
显示:
- 车辆遥测数据
- 威胁等级
- 活动警报
- 攻击类型
- 阻断的报文
- 安全事件时间线
## 嵌入式安全
### 原生 C 引擎 ECU
引擎 ECU 使用 Linux SocketCAN 以 C 语言实现。
技术:
- C
- GCC
- Linux CAN Sockets
- SocketCAN
这展示了底层的汽车软件开发和 CAN 帧生成。
## 固件安全
### x86 固件分析
创建了带有漏洞的 ECU 固件镜像并执行了:
- 静态分析
- 符号提取
- 秘密发现
- 漏洞评估
### ARM 固件分析
使用以下工具对 ARM 进行了固件交叉编译:
- arm-linux-gnueabi-gcc
执行了架构比较和固件检查。
## 逆向工程
使用以下工具执行了固件逆向工程:
- Ghidra
- strings
- nm
恢复了:
- `main()`
- `process_input()`
- `unlock_doors()`
- `diagnostic_mode()`
识别了:
- 硬编码的秘密
- 不安全的内存操作
- 休眠功能
- 调试元数据暴露
# 架构
```
+------------------+
| Engine ECU (C) |
+------------------+
|
+------------------+
| Door ECU |
+------------------+
|
+------------------+
| Brake ECU |
+------------------+
|
v
SocketCAN
vcan0
|
v
+------------------+
| Gateway ECU |
+------------------+
|
+-----------------+-----------------+
| |
v v
Intrusion Detection Intrusion Prevention
| |
+---------------+-------------------+
|
v
Security Logging
|
v
Streamlit Dashboard
```
# 使用的技术
## 编程语言
- Python
- C
## 汽车
- CAN Bus
- SocketCAN
- vcan
## 进攻性安全
- CAN 欺骗
- CAN 重放
- 威胁模拟
## 防御性安全
- IDS
- IPS
- 安全监控
## 嵌入式系统
- GCC
- ARM 交叉编译
- Linux CAN Sockets
## 逆向工程
- Ghidra
- strings
- nm
## 仪表板
- Streamlit
# 安全发现
## 硬编码的秘密
```
TESLA_DIAGNOSTIC_2026
```
### 风险
提取固件的攻击者可能会恢复嵌入式秘密,并有可能获得对诊断功能的访问权限。
## 不安全的内存操作
```
strcpy(buffer, user_input);
```
### 风险
可能导致基于栈的缓冲区溢出,进而引发内存损坏或任意代码执行。
## 休眠功能
恢复的函数:
- `unlock_doors()`
- `diagnostic_mode()`
### 风险
隐藏的功能增加了攻击面,并可能暴露未公开的功能。
## 调试元数据暴露
恢复了:
- 函数名
- 源文件名
- 构建信息
### 风险
降低了逆向工程的难度并暴露了实现细节。
# 截图
## 仪表板

## 攻击检测

## Ghidra 符号树

## Ghidra Process Input 分析

## Ghidra 秘密提取

# 学习目标
该项目展示了:
- 汽车安全
- 车辆网络安全
- CAN Bus 分析
- 嵌入式软件开发
- 固件逆向工程
- 红队方法论
- 安全监控
- 入侵检测与防御
# 未来增强
- ECU fuzzing
- CAN 报文认证
- 安全 OTA 模拟
- UDS 诊断
- 汽车威胁建模
- 硬件 CAN 集成
# 作者
**Samartha Suresh**
标签:CAN总线, IDS/IPS, Kubernetes, SocketCAN, 嵌入式安全, 汽车安全, 知识库安全, 逆向分析, 逆向工具