工具
Caring Caribou 汽车 CAN 总线安全探索工具
Python 编写的汽车安全探索工具,起源于 HEAVENS 研究项目;README 称它是一种无需预先了解目标的工具,可接入任意 CAN 网络并收集其中存在哪些服务的信息。被动模块可将 CAN 流量输出到终端或 candump 格式文件,并列出总线上出现的所有仲裁 ID;UDS(ISO 14229-1)、DoIP(ISO 13400-2)和 XCP 模块则可发现响应诊断请求的 ECU,枚举其支持的服务和子服务,读取数据标识符并查询 XCP 能力。其工具库提供可复用的 ISO-TP(ISO 15765-2)和 UDS 实现,新模块可通过即插即用的模块架构加入。
使用条件与局限
- 审阅时 GitHub 上的最新版本为 0.6,发布于 2024-03-28;所审阅的 master 分支提交领先 45 个提交,其打包元数据已标为 0.7。README 介绍从源码目录安装;审阅时 PyPI 上没有 caringcaribou 项目。
- 需要 python-can 支持的 CAN 接口,并在 python-can 的 .canrc 配置文件中设置。安装指南在 Linux 上使用 PEAK PCAN-USB 适配器和 SocketCAN(指南要求内核 3.4 或更高,README 则只说需要较新的内核),在 Windows 上建议使用 Linux 虚拟机。README 要求 Python 3.7+;DoIP 模块还需要 doipclient 和 udsoncan 软件包。
- 发现和服务扫描会在所连接的总线或网络上发送诊断请求。其他模块会发送、重放或模糊测试帧,并执行侵入性诊断操作;这些不在本条目范围内,本条目只涵盖流量捕获和诊断服务发现。
- 采用 GPL-3.0 许可。附带的单元测试在虚拟 CAN 总线上针对模拟 ECU 运行。本次未捕获或发送任何 CAN 流量。
关于此条目
- 类型
- 工具
- 类别
- 协议分析工具
- 关联
- 基础工具
- 目标
- 协议
来源复核于
说明已依据一手来源复核;这不代表已运行验证、经过安全审计或确认兼容。
一手来源
- README.md GitHub · CaringCaribou/caringcaribou · 修订 092eff3
- documentation/howtoinstall.md GitHub · CaringCaribou/caringcaribou · 修订 092eff3
- documentation/howtouse.md GitHub · CaringCaribou/caringcaribou · 修订 092eff3
- documentation/dump.md GitHub · CaringCaribou/caringcaribou · 修订 092eff3
- documentation/listener.md GitHub · CaringCaribou/caringcaribou · 修订 092eff3
- documentation/uds.md GitHub · CaringCaribou/caringcaribou · 修订 092eff3
- documentation/doip.md GitHub · CaringCaribou/caringcaribou · 修订 092eff3
- documentation/xcp.md GitHub · CaringCaribou/caringcaribou · 修订 092eff3
- pyproject.toml GitHub · CaringCaribou/caringcaribou · 修订 092eff3
- caringcaribou/tests/mock/mock_ecu.py GitHub · CaringCaribou/caringcaribou · 修订 092eff3
- LICENSE GitHub · CaringCaribou/caringcaribou · 修订 092eff3
- https://github.com/CaringCaribou/caringcaribou/releases/tag/0.6