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.

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; those are outside this entry, which covers traffic capture and diagnostic-service discovery only.
  • GPL-3.0. The bundled unit tests run against mock ECUs on a virtual CAN bus. No CAN traffic was captured or sent.

About this entry

Type
Tool
Category
Protocol analysis tools
Relationship
Foundation tool
Targets
Protocol

Sources reviewed

The description was reviewed against primary sources. This does not establish runtime testing, security auditing or verified compatibility.

Report an outdated entry Suggest a translation fix

Primary sources

  1. README.md GitHub · CaringCaribou/caringcaribou · Revision 092eff3
  2. documentation/howtoinstall.md GitHub · CaringCaribou/caringcaribou · Revision 092eff3
  3. documentation/howtouse.md GitHub · CaringCaribou/caringcaribou · Revision 092eff3
  4. documentation/dump.md GitHub · CaringCaribou/caringcaribou · Revision 092eff3
  5. documentation/listener.md GitHub · CaringCaribou/caringcaribou · Revision 092eff3
  6. documentation/uds.md GitHub · CaringCaribou/caringcaribou · Revision 092eff3
  7. documentation/doip.md GitHub · CaringCaribou/caringcaribou · Revision 092eff3
  8. documentation/xcp.md GitHub · CaringCaribou/caringcaribou · Revision 092eff3
  9. pyproject.toml GitHub · CaringCaribou/caringcaribou · Revision 092eff3
  10. caringcaribou/tests/mock/mock_ecu.py GitHub · CaringCaribou/caringcaribou · Revision 092eff3
  11. LICENSE GitHub · CaringCaribou/caringcaribou · Revision 092eff3
  12. https://github.com/CaringCaribou/caringcaribou/releases/tag/0.6

More in Protocols

All 29 entries in Protocols