Star on GitHubStar1.1k stars

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.

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 140 entries in Protocols

↑↓ move↵ open⌘↵ new tab