samartha-2601/AutoRed

GitHub: samartha-2601/AutoRed

AutoRed 是一个汽车安全红队平台,通过模拟多 ECU 的虚拟 CAN 网络,集成 CAN 攻击模拟、入侵检测防御与固件逆向分析来研究车辆网络安全。

Stars: 0 | Forks: 0

# 🚗 AutoRed:汽车红队与车辆安全平台 ![Python](https://img.shields.io/badge/Python-3.12-blue) ![C](https://img.shields.io/badge/C-GCC-green) ![CAN Bus](https://img.shields.io/badge/CAN-Bus-orange) ![SocketCAN](https://img.shields.io/badge/SocketCAN-Linux-red) ![ARM](https://img.shields.io/badge/ARM-Cross--Compiled-yellow) ![Ghidra](https://img.shields.io/badge/Ghidra-Reverse%20Engineering-purple) ![Streamlit](https://img.shields.io/badge/Streamlit-Dashboard-ff4b4b) ![AutoRed 仪表板](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/b1d235080f035959.png) ## 概述 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()` ### 风险 隐藏的功能增加了攻击面,并可能暴露未公开的功能。 ## 调试元数据暴露 恢复了: - 函数名 - 源文件名 - 构建信息 ### 风险 降低了逆向工程的难度并暴露了实现细节。 # 截图 ## 仪表板 ![仪表板](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/e6b47a39bc040005.png) ## 攻击检测 ![攻击检测](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/b1d235080f035959.png) ## Ghidra 符号树 ![Ghidra 符号树](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/4016e7cd06040010.png) ## Ghidra Process Input 分析 ![Ghidra Process Input](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/9929719dda040015.png) ## Ghidra 秘密提取 ![Ghidra 秘密](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/73ed24437a040019.png) # 学习目标 该项目展示了: - 汽车安全 - 车辆网络安全 - CAN Bus 分析 - 嵌入式软件开发 - 固件逆向工程 - 红队方法论 - 安全监控 - 入侵检测与防御 # 未来增强 - ECU fuzzing - CAN 报文认证 - 安全 OTA 模拟 - UDS 诊断 - 汽车威胁建模 - 硬件 CAN 集成 # 作者 **Samartha Suresh**
标签:CAN总线, IDS/IPS, Kubernetes, SocketCAN, 嵌入式安全, 汽车安全, 知识库安全, 逆向分析, 逆向工具