
Electronic Cats è un’azienda messicana dedicata alla progettazione e produzione di sistemi embedded per il grande pubblico e le aziende private. Tutti i loro prodotti presentano la certificazione di hardware aperto (OSHW) e, in poche parole, possono essere replicati dai makers. Tra i dispositivi di loro creazione vi è una serie di schede Add-on pensate per ampliare o modificare le funzionalità dell'ormai famoso Flipper Zero. In particolare, in questo articolo andremo ad analizzare la scheda "Flipper Add-On: CANBus" in grado di accedere e interagire con la rete CAN Bus di un'auto.
Introduzione
Flipper Add-On: CANBus, di Electronic Cats, è una scheda che consente ai dispositivi Flipper Zero di connettersi alle reti CAN Bus. Insieme ad una apposita applicazione installata su Flipper Zero, il componente aggiuntivo può leggere le informazioni in tempo reale tramite connettore OBD-II, permettendo così la revisione delle auto. L'applicazione può, inoltre, comunicare con le reti CAN Bus "raw" per operazioni di sniffing e di iniezione di messaggi.
L'obiettivo principale di questo articolo è quello di esporre le potenziali vulnerabilità della rete CAN nei veicoli moderni, non per bypassare le funzionalità di sicurezza o ottenere l'accesso non autorizzato, ma per dimostrare come i dati e i comandi siano accessibili su questa rete non crittografata. Collegando il dispositivo Flipper Zero insieme al componente aggiuntivo, sia alla porta OBD-II di un'auto che alla rete CAN, si mostrerà quanto può essere facile recuperare informazioni critiche e interagire con i sistemi dei veicoli in tempo reale.
Attenzione: l'iniezione di messaggi nella rete CAN Bus potrebbe danneggiare il veicolo in esame! Per chi volesse sperimentare con la rete CAN Bus senza incorrere nel rischio di danni alla propria auto, si consiglia l'utilizzo di testbed di prova come RAMN. RAMN (Resistant Automotive Miniature Network) è un banco di prova ECU, delle dimensioni di una carta di credito, per lo studio e la ricerca in sicurezza dei sistemi automobilistici.
Il CAN Bus
Le auto moderne sono costruite con reti di centraline elettroniche (ECU) che controllano e monitorano quasi ogni funzione elettronica. Queste ECU fungono da computer in miniatura, ciascuno incaricato di gestire compiti specifici: controllo delle prestazioni del motore, sistemi di frenata, funzioni di trasmissione e persino impostazioni di comfort come l'aria condizionata. Le ECU comunicano tra loro su una rete denominata Controller Area Network (CAN), un protocollo solido che consente loro di scambiare dati e comandi critici in tempo reale, garantendo che l'auto funzioni come un sistema coeso.
Mentre il protocollo CAN è efficiente e affidabile, non è stato progettato con requisiti di sicurezza robusti. Una volta che un dispositivo non autorizzato accede alla rete CAN, è possibile leggere e, in alcuni casi, iniettare messaggi direttamente nella rete. Questi messaggi, se realizzati correttamente, possono controllare determinate funzioni all'interno del veicolo, dal clacson alla manipolazione della velocità o il blocco del veicolo. Sebbene le case automobilistiche abbiano implementato alcune salvaguardie, le reti CAN rimangono suscettibili al potenziale sfruttamento delle loro vulnerabilità.
OBD-II
La porta On-Board Diagnostics 2 (OBD-II) è un gateway standardizzato progettato per la diagnostica del veicolo. OBD-II è diventato un punto di ingresso versatile per accedere alle informazioni in tempo reale su vari parametri di un veicolo, leggere i codici diagnostici e persino effettuare la calibrazione delle prestazioni.
Spesso, i meccanici utilizzano questa porta per ottenere il codice di errore che il veicolo sta inviando. Ciò rende molto più rapida la risoluzione dei problemi che potrebbero aver causato l'accensione di una spia di controllo o anche problemi che non si traducono in un indicatore. Tali porte sono solitamente molto facili da raggiungere. Normalmente si trovano sotto il cruscotto, dietro il piantone dello sterzo o anche sotto il cruscotto sul lato del passeggero.
I codici PID (Parameter ID) sono codici utilizzati come strumento diagnostico per richiedere i dati di un veicolo. Per ogni codice PID vi è una certa risposta prevista. Non tutti i veicoli supportano tutti i PID e ci possono essere PID personalizzati definiti dal produttore che non sono definiti nello standard OBD-II. Ci sono 10 servizi diagnostici (modi) descritti nell'ultimo standard OBD-II, ad esempio, la modalità 0x01 contiene PID standardizzati che forniscono dati in tempo reale su velocità, RPM e livello di carburante.
I codici DTC (Diagnostic Trouble Codes), noti anche come codici di guasto del motore, vengono utilizzati per identificare e diagnosticare i malfunzionamenti in un veicolo. Quando il sistema OBD di un veicolo rileva un problema, attiva il codice di errore corrispondente. I tecnici si affidano a questi codici per diagnosticare e risolvere i problemi.
Un codice DTC si compone di una serie di cinque caratteri. Andiamo, ad esempio, ad esaminare cosa vuol dire un codice del tipo P0575.
La prima lettera indica quale delle quattro parti principali è fonte di errore:
- P = gruppo motopropulsore
- B = carrozzeria
- C = telaio
- U = rete
Il secondo carattere indica se si tratta di un codice generico OBD-II o di un codice del produttore. Infatti, se un produttore ritiene che non ci sia un codice generico che copre un difetto specifico, può aggiungerne il proprio. Uno zero indica un codice generico, mentre l'uno indica un codice produttore.
Il terzo carattere indica quale sistema del veicolo causa l'errore. I codici includono:
- 1 - Misurazione carburante e aria
- 2 - Misurazione carburante e aria (specifico malfunzionamento del circuito dell'iniettore)
- 3 - Sistema di accensione
- 4 - Controlli di emissioni ausiliari
- 5 - Controllo della velocità del veicolo e Idle Control System
- 6 - Uscite computer ausiliarie
- 7, 8, 9 - Difetti vari di trasmissione e cambio
- A, B, C - Difetti propulsione ibrida
Gli ultimi due caratteri indicano il difetto specifico e permettono di individuare esattamente dove si trova il problema e quale parte ha bisogno di attenzione.
Quindi, nel caso del codice P0575, si tratta di un errore generico del propulsore. Il guasto specifico si riferisce al controllo della velocità del veicolo o al sistema di controllo inattivo. Consultando l'elenco dei codici OBD-II, si può osservare che si tratta di un problema con il circuito di input del cruise control. Ci sono più di 5.000 codici ODB-II e specifici del produttore. I codici specifici di un produttore devono essere verificati nella documentazione ufficiale del marchio.
La scheda Flipper Add-On: CANBus
La scheda Flipper Add-On: CANBus, insieme all'app MCP2515 CAN Bus, consente di interagire con una rete CAN Bus. È possibile leggere e analizzare i messaggi, visualizzare i byte da ogni nodo della rete e acquisire messaggi per inviarli nuovamente o modificare i dati. Ciò rende l'app uno strumento eccellente per l'analisi della rete, il rilevamento degli errori e il controllo periferico.
Le caratteristiche principali della scheda si possono riassumere nelle possibilità date all'utente di:
- Leggere e visualizzare i dati sniffati dalle reti CAN Bus
- Selezionare il formato di output dei dati tra esadecimale o normale
- Esportare le sessioni di sniffing nei file LOG sulla scheda SD di Flipper
- Iniettare pacchetti di dati nella rete CAN Bus
- Salvare le strutture dei pacchetti recenti, consentendo di modificarle e iniettarle di nuovo
La Figura 1 mostra la scheda Flipper Add-On: CANBus. [...]
ATTENZIONE: quello che hai appena letto è solo un estratto, l'Articolo Tecnico completo è composto da ben 2035 parole ed è riservato agli ABBONATI. Con l'Abbonamento avrai anche accesso a tutti gli altri Articoli Tecnici che potrai leggere in formato PDF per un anno. ABBONATI ORA, è semplice e sicuro.
