Funzionalità e scenari per il Car Hacking. Un esempio di case study

Nell’era digitale le automobili sono sempre più connesse e dotate di funzionalità avanzate e interfacce di comunicazione, grazie all’implementazione di strumenti tecnologici di controllo e regolazione e l’uso di dispositivi interconnessi tramite tecnologie non fisiche, quali il wi-fi e il bluetooth, sistemi di navigazione e di infotainment, fino agli aggiornamenti automatici del sotfware. Questo coinvolge indistintamente sia le city car che le auto di alto livello appartenenti a una fascia alta. Auto, quindi, sempre più complete e interconnesse, grazie a complessi sistemi elettronici e computazionali che è necessario conoscere per poter poi effettuare delle corrette diagnosi e rilevare eventuali malfunzionamenti. E’ opportuno tuttavia chiedersi quanto siano effettivamente sicuri i moderni sistemi elettronici e meccanici a bordo auto e come possano essere affrontati e risolti i diversi problemi legati alla cybersecurity in ambito automobilistico, allo stesso modo di come vengono affrontati quelli in ambito informatico, e come la conoscenza delle superfici di attacco, degli access point attraverso i quali il veicolo scambia dati e di come comunicano le varie parti del veicolo, possa aiutare nel car hacking. In questo articolo tratteremo alcuni applicativi hardware e software utilizzati per la gestione del veicolo, quali Carberry e Canberry, degli shields per Raspberry Pi, il protocollo di CAN bus che governa il trasferimento dei pacchetti lungo la rete del veicolo, analizzeremo il performance tuning, tecnica altamente implementata quando si vogliono modificare i parametri progettuali di un motore e analizzeremo anche un case study di car hacking relativo alla nota casa automobilistica statunitense Chrysler.         

INTRODUZIONE

Un’automobile moderna è costituita da elementi meccanici ed elettronici quali microprocessori, cavi, unità di controllo elettriche, righe di codice, al punto da rendere i veicoli dei veri e propri computer in movimento. Le automobili moderne sono quindi altamente computerizzate e controllate elettronicamente. Ad esempio l’ECU, acronimo di Engine Control Unit, nota anche come ECM (Engine Control Module) o PCM (Powertrain Control Module), è l’unità di controllo del motore, la centralina elettronica che consente la gestione elettronica e digitale del motore, preposta all’elaborazione dei dati in entrata dall’acceleratore e che regola gli iniettori determinando così la fasatura. Nelle centraline di ultima generazione, l’acceleratore è rappresentato da un sensore di posizione. L’ECU determina la giusta quantità di combustibile che deve essere iniettata per la formazione di una miscela di combustione, viene controllata quindi la quantità di carburante che viene iniettata all’interno di ogni cilindro per ogni ciclo e conseguentemente vengono controllate e contenute le emissioni inquinanti e i consumi di carburante. Tra i parametri che vengono controllati ci sono il tempo di iniezione, la fasatura di accensione, e, non ultimo, vengono gestite le periferiche del sistema di controllo. In definitiva vengono elaborati dati relativi alla temperatura del motore, alla velocità del veicolo, alla Patm o alla fasatura della distribuzione. Il nucleo centrale della ricerca in ambito automotive è composto da due elementi chiave: da una parte si cerca di assicurare maggiori funzionalità agli utenti, quali il controllo elettronico della velocità e della stabilità, garantendo contemporaneamente anche la libertà nelle comunicazioni e la semplificazione di molte funzioni oggi rese facilmente accessibili, dall’altra si tende a ridurre drasticamente la vulnerabilità alla sicurezza legata all’uso delle nuove tecnologie come smartphone, controllo remoto e navigatori, tutti potenziali access point per il car hacking. Uno dei metodi più comunemente conosciuti per neutralizzare il rischio di un car hacking, è quello di dotare l’automobile di opportune chiavi elettroniche, una prassi che si è diffusa soprattutto nella fascia alta dei veicoli, le cosiddette auto di lusso. Ma non è certamente l’unico metodo in uso. I dati sensibili che fanno parte dell’ecosistema automobile-ambiente sono davvero molti, pensiamo ad esempio ai numerosi dati di navigazione, alle informazioni sul traffico e sulla posizione del veicolo in un dato istante temporale, ai punti di accesso, ai database contenenti informazioni sulla circolazione per la scelta del giusto percorso, alle chiamate e ai messaggi che possono essere scambiati all’interno di una vettura e tra questa e l’ambiente circostante, il tutto per aumentare il livello di comfort e di fruibilità durante la circolazione automobilistica e l’uso del veicolo da parte del guidatore. L’automobile infatti, a differenza di quanto si potesse pensare sino a solo qualche decennio fa, non viene più considerata come un’unità a sè stante, ovvero solo come un insieme di componenti meccanici che, opportunamente assemblati, garantiscono il funzionamento fisico del sistema, come le ruote, lo chassis che rappresenta l’intelaiatura portante del veicolo, il sistema di propulsione e la trasmissione. In un contesto dinamico dove tutto risulta essere interconnesso digitalmente, quindi accessibile, regolabile e controllabile, l’automobile fa parte di un intero ecosistema all’interno del quale devono essere garantite le funzionalità principali di comunicazione e interconnessione. Immaginiamo per un attimo, ad esempio, lo scenario legato ai veicoli a guida autonoma inseriti in un contesto di smart city, nel quale la centralina di bordo dell’auto si interfaccia perfettamente con semafori smart, router di connessione o telecamere. Occorre a questo punto porsi una domanda: quanto è importante la sicurezza durante la navigazione e come questa può in qualche modo essere garantita e monitorata? La risposta a questa domanda sta tutta nella conoscenza dei sistemi embedded del veicolo, presupposto necessario per poter affrontare le problematiche di gestione, controllo e monitoraggio. I veicoli sono costituiti da una rete di comunicazione che permette di interfacciarsi sia all’interno che all’esterno dell’auto. Il monitoraggio dei parametri del motore e la comprensione della natura dei problemi legati al malfunzionamento della vettura vengono resi accessibili da appositi connettori o adattatori che fungono da ponte tra una centralina e l’altra. Inoltre è da tenere in considerazione anche che lo sviluppo di alcune applicazioni dedicate, su dispositivi mobile, permette di creare un vero e proprio computer di bordo che viene collegato direttamente alla centralina dell’automobile visualizzando real time i contenuti dello smartphone sul display relativi anche ad eventuali errori provenienti dalla Engine Control Unit.

APPLICATIVI HARDWARE E SOFTWARE PER IL CAR HACKING

Esistono in commercio molte soluzioni hardware per il car hacking che consentono di operare direttamente su un veicolo, si tratta di dispositivi in grado di comunicare con il CAN bus, sia in ambito hobbistico che professionale e che consentono di effettuare lo sniffing dei pacchetti del bus CAN. Ad esempio, shield che vengono aggiunti alla scheda Arduino e che supportano il protocollo CAN, come DFRobot CAN-Bus Shield con controller STM32 con un connettore D-sub, o SparkFun SFE CAN-Bus Shield dotato di controller CAN MCP2515 con un connettore D-sub e dotato anche di un alloggiamento per schede SD, connettori per modulo LCD e un modulo GPS. Gli shield si differenziano per il tipo di controllore implementato che avrà quindi diversa velocità e memoria, ad esempio il controller STM32 è più veloce e dotato di maggiore memoria buffer rispetto al CAN MCP2515. Questi shield sono dotati di una libreria e necessitano della scrittura del codice per poter effettuare lo sniffing dei dati. Un’altra alternativa è quella di utilizzare Raspberry Pi, le cui principali implementazioni sono: Canberry con controller CAN MCP2515 e Carberry, dotato di due linee di bus CAN e due linee GMLAN, LIN e infrarosso. La scelta dei dispositivi hardware non è univoca ma dipende dal livello di applicazione che stiamo realizzando e dalla fascia di costo che si è in grado di sostenere. I dispositivi della famiglia Arduino e Raspberry Pi, ad esempio, sono strumenti open source abbastanza economici, ma ne esistono anche di molto più costosi in grado di ricevere contemporaneamente più canali. Tra i software maggiormente impiegati nel car hacking troviamo Vehicle Spy, sviluppato dalla Intrepid Control Systems (http://store.intrepidcs.com/) utile per eseguire la retroingegnerizzazione di CAN e di altri protocolli di comunicazione.

Figura 1. Canberry Pi V 2.1 – top view

 

Figura 2. Canberry Pi V 2.1 – bottom view

Canberry Pi V 2.1 è una scheda di estensione per Raspberry Pi B + e A + e rappresenta un restyling della release V 1.1. Sono presenti quattro fori di montaggio e l'identificazione EEPROM dell'hardware.

Figura 3. Carberry Pi board per Raspberry Pi 3

Carberry è uno shield per i microcomputer Raspberry Pi e funge da ponte tra l'elettronica automotive e il Raspberry. Consente lo sviluppo di applicazioni quali media center, diagnostica di veicoli, registrazione dati, gestione della flotta, localizzazione, blackbox, allarmi antifurto, carputing, Internet e molto altro. Ad esempio, si può anche creare un sistema di monitoraggio GPS semplicemente collegando Carberry alla porta OBD dell'auto e usando un'antenna GPS collegata a Raspberry Pi per creare un sistema di localizzazione del veicolo, con l’aggiunta di un modem 3G per creare un sistema di tracciamento live. E’ possibile effettuare la diagnostica dell’auto collegando Carberry alla porta OBD per ottenere dati in tempo reale come velocità, RPM (Revolutions Per Minute), livello del carburante, pressione del turbo ed eventuali errori diagnostici. Ciò consente di creare un computer diagnostico per auto e un pannello informativo sui dati in tempo reale. Un’altra interessante applicazione che riguarda l’implementazione di Carberry è quella relativa alla progettazione di un  sistema di allarme. Utilizzando infatti i sensori accelerometro e magnetometro di bordo di Carberry, è possibile riconoscere il movimento dell'auto e combinando queste informazioni con la posizione GPS, creare un sistema di allarme completo. Un’altra operazione di notevole importanza è il monitoraggio della pressione dei pneumatici calcolando la diversa velocità di rotazione delle ruote per capire se uno pneumatico è sgonfio rispetto ad altri e generare così un avviso per il conducente. Carberry è collegato a Raspberry Pi tramite la porta di espansione P1, mentre la comunicazione tra il sistema operativo di Raspberry Pi e Carberry avviene tramite la porta seriale. Lo stack di comunicazione tra Carberry e Raspberry Pi è rappresentato in figura.

Figura 4. Schema del collegamento tra Carberry e Raspberry Pi

IL CONNETTORE OBD II

Il connettore OBD II (On Board Diagnostics) è utilizzato per il collegamento diagnostico, chiamato anche DLC, acronimo di Diagnostic Link Connector (connettore del collegamento diagnostico) che svolge la funzione di comunicazione con la rete interna del veicolo interfacciandosi con le centraline elettroniche tramite differenti metodi di collegamento, che possono essere bluetooth, wi-fi o porta usb. Il connettore OBD-II è il principale strumento dei meccanici per fare analisi rapide e risolvere i problemi all'interno di un veicolo. Osservando la disposizione dei pin del connettore OBD II si può risalire alle linee di bus. I dati che un connettore OBD è in grado di mostrare sono di vario tipo e spaziano dai dati del sensore di carico motore e quelli dei sensori collegati alla centralina fino al contagiri e la tempretaura dei catalizzatori. E’ collocato in genere sotto lo sterzo dell’auto o posizionato sul cruscotto ed è una porta di collegamento al bus CAN. La diagnostica a bordo è fondamentale per l’autodiagnosi a bordo veicolo e per la segnalazione di errori e guasti. Ma cosa accade esattamente nel momento in cui si verifica un guasto al veicolo? Innanzitutto le informazioni che riguardano il guasto vengono salvate, poi viene attivato un segnale luminoso di avvertimento indicato con l'acronimo MIL (Malfunction Indicator Lamp), una spia che indica il malfunzionamento. I controlli diagnostici di routine sono gestiti dalla ECU principale del veicolo che è il modulo di controllo PCM (Powertrain Control Module) che conserva i codici di guasto come codici diagnostici DTC (Diagnostic Trouble Code). L’OBD II definisce il connettore che deve essere presente nell’abitacolo del veicolo per poter effettuare il collegamento degli strumenti OBD II compatibili ed è anche un protocollo di comunicazione, ormai obbligatorio per le auto e che esiste anche nella versione europea sotto il nome di EOBD ed è obbligatorio a partire dall’anno 2001.

Figura 5. Connettore OBD II

 

Figura 6. Lettore OBD II

IL CAN BUS

I protocolli di bus gestiscono il trasferimento dei pacchetti di dati e informazioni lungo la rete del veicolo, permettendo la comunicazione a reti e sensori sui sistemi a bus al fine di controllare il comportamento del veicolo e rilevarne eventuali anomalie. Nel settore automotive, oltre che in quello manifatturiero, viene ampiamente utilizzato il protocollo di comunicazione CAN (Controller Area Network). Il bus CAN è posizionato all'interno dei veicolo, sul connettore OBD II. Si tratta di un protocollo che viene utilizzato nei veicoli per la comunicazione dei sistemi embedded e delle unità di controllo elettronico sfruttando il trasferimento, l’invio e la ricezione delle informazioni, che avviene attraverso una coppia di fili che costituiscono il bus. Le informazioni che viaggiano sulle linee di bus [...]

ATTENZIONE: quello che hai appena letto è solo un estratto, l'Articolo Tecnico completo è composto da ben 4354 parole ed è riservato agli ABBONATI. Con l'Abbonamento avrai anche accesso a tutti gli altri Articoli Tecnici e potrai fare il download in formato PDF eBook e Mobi per un anno. ABBONATI ORA, è semplice e sicuro.

Scarica subito una copia gratis

8 Commenti

  1. tattolilm tattolilm 10 febbraio 2020
    • Giordana Francesca Brescia Giordana Francesca Brescia 13 febbraio 2020
  2. ZOPDAR ZOPDAR 10 febbraio 2020
  3. Michele Tiglio Michele Tiglio 11 febbraio 2020
    • Giordana Francesca Brescia Giordana Francesca Brescia 13 febbraio 2020
  4. arx 11 febbraio 2020
    • Giordana Francesca Brescia Giordana Francesca Brescia 13 febbraio 2020
  5. Alessandro Alessandro 16 febbraio 2020

Scrivi un commento

Seguici anche sul tuo Social Network preferito!

Send this to a friend