Tool
Caring Caribou
Python automotive security exploration tool, begun in the HEAVENS research project, that the README describes as a zero-knowledge tool to drop onto a CAN network and collect information about the services present. Passive modules dump CAN traffic to the terminal or a candump-format file and list every arbitration ID seen on the bus, while the UDS (ISO 14229-1), DoIP (ISO 13400-2) and XCP modules discover ECUs that answer diagnostic requests, enumerate their supported services and subservices, read data identifiers and query XCP capabilities. Its utilities provide reusable ISO-TP (ISO 15765-2) and UDS implementations, and new modules plug into a drop-in module architecture.
- Targets
- Protocol
- Category
- Protocol analysis tools
- Relationship
- Foundation tool
- Sources reviewed
Requirements & limits
- Latest GitHub release at review: 0.6, published 2024-03-28; the reviewed master commit is 45 commits ahead and its packaging already reports 0.7. The README installs it from the source tree; PyPI had no caringcaribou project at review.
- Needs a CAN interface supported by python-can and configured in python-can's .canrc file. The install guide uses a PEAK PCAN-USB adapter with SocketCAN on Linux (kernel 3.4 or newer there, while the README asks for a pretty modern kernel) and suggests a Linux VM on Windows. The README requires Python 3.7+; the DoIP module also needs the doipclient and udsoncan packages.
- Discovery and service scans transmit diagnostic requests on the connected bus or network. Other modules send, replay or fuzz frames and perform intrusive diagnostic operations.
- GPL-3.0. The bundled unit tests run against mock ECUs on a virtual CAN bus.
About this entry
The description was reviewed against primary sources.
Primary sources
- README.md GitHub · CaringCaribou/caringcaribou · Revision 092eff3
- documentation/howtoinstall.md GitHub · CaringCaribou/caringcaribou · Revision 092eff3
- documentation/howtouse.md GitHub · CaringCaribou/caringcaribou · Revision 092eff3
- documentation/dump.md GitHub · CaringCaribou/caringcaribou · Revision 092eff3
- documentation/listener.md GitHub · CaringCaribou/caringcaribou · Revision 092eff3
- documentation/uds.md GitHub · CaringCaribou/caringcaribou · Revision 092eff3
- documentation/doip.md GitHub · CaringCaribou/caringcaribou · Revision 092eff3
- documentation/xcp.md GitHub · CaringCaribou/caringcaribou · Revision 092eff3
- pyproject.toml GitHub · CaringCaribou/caringcaribou · Revision 092eff3
- caringcaribou/tests/mock/mock_ecu.py GitHub · CaringCaribou/caringcaribou · Revision 092eff3
- LICENSE GitHub · CaringCaribou/caringcaribou · Revision 092eff3
- https://github.com/CaringCaribou/caringcaribou/releases/tag/0.6
More in Protocols
- protodump · Tool
- CAN Commander · Tool
- Automated CAN Payload Reverse Engineering · Tool
- Deluder · Tool
- PiCCANTE · Tool
- VanBus · Tool