
Simulatore di veicoli su bus CAN per esercitarsi in attacchi offensivi alla sicurezza automobilistica. Emula più ECU per consentire lo sniffing, l'iniezione e la manipolazione di messaggi CAN in un ambiente di laboratorio controllato.
Benvenuti nel repository del Simulatore di Auto per Workshop EvilDoggie! Questo strumento replica l'ambiente CAN Bus dell'auto utilizzato nella sessione Black Hat Arsenal 2025. Sviluppato da Faraday Security, il simulatore emula multiple Unità di Controllo Elettronico (ECU) in un veicolo, consentendo ai ricercatori di praticare attacchi offensivi al CAN Bus con EvilDoggie in un ambiente controllato.
Il simulatore supporta sia le interfacce seriali che SocketCAN, consentendo un'integrazione fluida con l'hardware Doggie per sniffare, iniettare e manipolare messaggi CAN. È progettato per scopi educativi nella sicurezza automobilistica, concentrandosi su sfide come lo spoofing del VIN, lo sblocco delle portiere, la confusione del cruise control, l'attivazione/disattivazione dell'airbag, la disconnessione dell'ABS e altro ancora, come dettagliato nelle guide del workshop allegate.
Questo simulatore open-source è concesso in licenza MIT e fa parte del più ampio ecosistema Doggie/EvilDoggie. Per i dettagli completi su firmware e hardware, visita il repository principale.
Fare riferimento alla documentazione del Workshop evilDoggie per una guida completa del workshop.

Per eseguire il simulatore hai bisogno di 2 Doggies (uno per TX e uno per RX), sono consigliati 3 Doggies—uno come attaccante (EvilDoggie) e due come ECU simulate—per garantire che i messaggi si propaghino su un bus fisico reale.
Crea un ambiente virtuale Python per isolare le dipendenze:
python3 -m venv doggie_venv
source doggie_venv/bin/activate
Installa i pacchetti richiesti da requirements.txt:
python3 -m pip install -r requirements.txt
Installa il pacchetto del simulatore localmente:
python3 -m pip install -e .
Avvia il simulatore utilizzando le interfacce seriali o SocketCAN. Per una configurazione a 2 Doggies, collega due Doggies al tuo sistema (ad esempio via USB) e identifica le loro porte (ad esempio /dev/ttyUSB0 e /dev/ttyUSB1). Usa l'opzione --serial per connessioni seriali o --socketcan per interfacce CAN virtuali.
Esempio con interfacce seriali (regola porte e baudrate secondo necessità):
python3 -m doggie_lab --serial /dev/ttyUSB0@921600 /dev/ttyUSB1@921600 --speed 500000
--serial TX_PORT RX_PORT: Specifica le porte seriali e i baudrate (ad esempio /dev/ttyUSB0@115200 /dev/ttyUSB1@115200).--speed SPEED: Imposta la velocità del CAN Bus in bit al secondo (default: 500000).Per SocketCAN (interfacce virtuali):
python3 -m doggie_lab --socketcan can0 can1 --speed 500000
--socketcan TX_CAN RX_CAN: Usa interfacce SocketCAN (ad esempio can0 can1).Esegui python3 -m doggie_lab --help per tutte le opzioni.
Per test rapidi senza hardware, puoi simulare una singola interfaccia CAN virtuale su Linux usando SocketCAN. Questo è ideale per sniffing o iniezione di base ma non replicherà i comportamenti del bus fisico necessari per sfide avanzate.
Configurazione di un'interfaccia CAN virtuale:
sudo modprobe vcan.sudo ip link add dev vcan0 type vcan e sudo ip link set up vcan0.--socketcan vcan0 vcan0 (usando la stessa interfaccia per il loopback TX/RX).Tuttavia, per tutte le sfide del workshop, i Doggies fisici sono essenziali per osservare le interazioni reali del bus, come la propagazione degli errori e la contesa. Usa almeno 3 Doggies: due per la simulazione dell'ECU (TX/RX) e uno come attaccante EvilDoggie collegato al bus fisico condiviso.
requirements.txt (ad esempio python-can, tkinter per l'interfaccia utente).Questo simulatore è solo per ricerca e formazione. Non utilizzarlo su veicoli reali. I contributi sono benvenuti—apri issue o PR per miglioramenti!
Questo progetto è concesso in licenza MIT. Vedi il file LICENSE per i dettagli.