Modern automobiles incorporate tens of electronic control units (ECUs), driven by, according to estimates, as much as 100,000,000 lines of code. They are tightly interconnected via internal networks, mostly based on the CAN bus standard. Past research showed that, even remotely, an attacker could control safety-critical inputs such as throttle, steering or brakes. One of the first time-consuming activities that a researcher has to perform when approaching to make a security analysis of an automobile is to realize which systems it has on board, how these are implemented, which ECU is responsible for performing each functionality and consider if there are known vulnerabilities that may be exploited by an attacker. Being a relative new field, the availability of tools which facilitate such kind of work is quite scarce, and always relies on brute-force or databases specific for each manufacturer or automobile model. Researchers have to do a lot of manual reverse engineering to perform those tasks. This thesis presents and analyzes a technique for performing ECU discovering on CAN networks without relying neither on brute-force nor on existing databases, but exploiting the until now underestimated functional addressing feature of UDS diagnostic protocol. We provide a methodology which is able for each discovered ECU to perform advanced information gathering and we propose a structured framework in order to implement tests for known vulnerabilities and perform automated vulnerability assessment. We traduce our approach in the implementation of the cmap tool and in order to prove its effectiveness and efficiency we perform the ECU discovery test on four modern unaltered vehicles, obtaining positive results on tree of them.
Il mondo automobilistico e continuamente soggetto a cambiamenti e miglioramenti. Dalla scelta di materiali strutturali sempre più leggeri ma capaci di assorbire una maggiore quantità di energia in caso di incidente, agli sviluppi della struttura dello pneumatico allo scopo di garantire aderenza in tutte le possibili condizioni del manto stradale; dall’evoluzione della meccanica del motore ai fini di migliori consumi di carburante senza sacrificare le prestazioni, all’applicazione di studi di aerodinamica per raggiungere contemporaneamente maggiore efficienza e deportanza. Nonostante sia imprescindibile l’apporto dato dai progressi sopracitati, l’aspetto che ha maggiormente rivoluzionato il mondo dell’automobile negli ultimi 40 anni è stata l’integrazione sempre più massiccia di elettronica e software. Partendo dai primi sistemi di iniezione del carburante e proseguendo verso i primi sistemi di antibloccaggio delle ruote in frenata (ABS), l’automobile si è dotata in maniera sempre più evidente di computer predisposti a gestire ogni suo singolo aspetto. Il risultato visibile su una moderna automobile è la disposizione di decine di centraline elettroniche di controllo (ECU), connesse tra loro tramite una o più reti interne tendenzialmente basate sul protocollo CAN, e di centinaia di milioni di righe di codice. Con l’aumento della complessità dei sistemi presenti sulle automobili le classiche tecniche di diagnosi dei problemi finora impiegate si sono rivelate inefficaci. La diagnostica in generale determina, verifica e classifica i sintomi al fine di ottenere un quadro generale che permetta di trovare la causa di un problema nel veicolo. Dunque è stato necessario svilup- pare ed introdurre nuovi strumenti elettrici ed elettronici di diagnosi, in grado di fornire informazioni sulle caratteristiche elettroniche dei vari componenti e misurazioni dei valori di parametri come la pressione dell’olio, il volume d’aria apportata al motore e le varie temperature. Oggi avanzati strumenti diagnostici sono la normalità. Lo sviluppo e l’introduzione di nuovi concetti e soluzioni di diagnosi offrono ai produttori e più in generale ai fornitori del modo automobilistico un enorme potenziale per migliorare l’efficienza della produzione e la qualità del prodotto finale. L’applicazione di tecniche avanzate di diagnosi spazia dal processo di sviluppo al controllo della qualità durante la produzione e fino all’impiego post-vendita nelle officine meccaniche. I sistemi diagnostici moderni richiedono che gli strumenti informatici siano in grado di comunicare con i vari sistemi presenti su un’automobile per eseguire le varie attività di diagnosi, generalmente basandosi sul connettore standard per automobili OBD-II. La comunicazione in sé si basa su regole formalmente definite da protocolli di diagnosi, i quali definiscono lo standard e le modalità di interazione fra il dispositivo di diagnosi e le centraline stesse, e convenzioni di implementazione adottate dai produttori. Seppur riconosciuti e statisticamente rilevanti i miglioramenti e progressi apportati a tali sistemi, l’aggiunta sempre più ingente di computer per la gestione di aspetti anche critici del veicolo ha inevitabilmente portato con sè conseguenze in materia di sicurezza informatica; problematiche tutt’altro che ignote al mondo dell’ICT, ma inedite nel mondo dell’automobilismo. Una combinazione di pressioni economiche per il rilascio sempre più solerte di nuovi prodotti sul mercato, esigenze di integrazione di componenti di diversi fornitori, adempienza alle norme di legge, l’aggiunta sempre più preponderante sulle centraline della vettura di interfacce comunicanti con il mondo esterno, una scarsa o persino totalmente assente metodologia d’approccio verso il problema della sicurezza informatica ed una frenetica ricerca del profitto necessaria per la sopravvivenza in un mercato estremamente competitivo hanno portato negli ultimi anni alla comparsa sui veicoli di vulnerabilità informatiche sempre più concretamente sfruttabili per un eventuale aggressore. Una delle prime attività che un ricercatore deve svolgere durante l’analisi di sicurezza di un veicolo è quella di identificare quali sistemi sono presente a bordo, come sono implementati, quale centralina è responsabile per ogni funzionalità e considerare se sono presenti vulnerabilità note che potrebbero essere sfruttate da un aggressore. Essendo quello della sicurezza informatica automobilistica un ambito relativamente recente, la disponibilità di strumenti che facilitino tali attività è molto limitata. I metodi implementati oggi sono generalmente basati sull’utilizzo di brute-force o basi di dati specifiche per produttore e modello automobilistico, tecniche che comportano nel primo caso problemi di tempo (in determinate circostanze il brute-force diventa impraticabile) e nel secondo caso risultano essere di difficile reperibilità e spesso riportano informazioni frammentate. I ricercatori sono quindi obbligati ad applicare ogni volta, manualmente, diverse tecniche di reverse engineering, le quali sono onerose in termini di tempo. Nel seguente lavoro di tesi viene presentata e analizzata una tecnica automatizzata per individuare le ECU presenti sulla rete CAN di un’automobile, senza l’impiego di brute-force o basi di dati esistenti. Il protocollo che abbiamo studiato approfonditamente per raggiungere gli scopi di questo lavoro è ’Unified Diagnostic Services (UDS)’, il quale è stato sviluppato e supportato per diventare un nuovo standard nell’ambito automobilistico, unificando ed estendendo le caratteristiche di due suoi predecessori: ISO 15765-3 e KWP2000. Questa tecnica sfrutta l’indirizzamento funzionale messo a disposizione dal protocollo di diagnosi UDS, caratteristica di quest’ultimo fino ad ora molto sottovalutata. Questo tipo di indirizzamento permette una comunicazione uno a molti, tra il dispositivo esterno e le varie centraline presenti sull’automobile. Oltre alla presentazione di questa tecnica proponiamo una metodologia di raccolta avanzata di informazioni per ogni centralina individuata, al fine di identificare la funzionalità svolta dalla stessa all’interno dei sistemi dell’automobile. Infine definiamo una struttura di classi e metodi volti all’implementazione di test per l’individuazione automatizzata di vulnerabilità note all’interno dei sistemi dell’auto. Al fine di comprovare la validità di quanto proposto e realizzato abbiamo individuato una nuova vulnerabilità nelle implementazioni del protocollo UDS. Tale vulnerabilità è costituita dall’accesso non protetto a servizi UDS critici ed in grado di disabilitare i normali pacchetti CAN inviati dalle centraline. Quest’operazione, come dimostrato da precedenti lavori, favorisce la realizzazione di attac- chi basati sull’immissione nella rete CAN di pacchetti contraffatti. Per permettere di rilevare la sua presenza sui sistemi automobilistici è stato realizzato un test basato sulla struttura proposta. Abbiamo trasformato il nostro approccio e le tecniche discusse nella realizzazione dello strumento cmap, un software che implementa le funzionalità di ricerca delle ECU e la struttura per la realizzazione e l’applicazione dei test di vulnerabilità note. Per comprovare l’efficacia e l’efficienza del nostro strumento abbiamo eseguito il test di individuazione delle centraline su quattro autovetture moderne e inalterate, presentando l’elenco delle ECU trovate, discutendo i risultati positivi ottenuti su tre di queste e analizzando i problemi e le limitazioni riscontrate sulla quarta vettura. Abbiamo inoltre eseguito il test per individuare la presenza della vulnerabilità discussa su un’autovettura, provando la sua correttezza e mostrando gli effetti temporanei riscontrati sui sistemi della vettura stessa.
Explorative techniques and vulnerability assessment on automotive networks
CALIN, LIVIU RAZVAN
2017/2018
Abstract
Modern automobiles incorporate tens of electronic control units (ECUs), driven by, according to estimates, as much as 100,000,000 lines of code. They are tightly interconnected via internal networks, mostly based on the CAN bus standard. Past research showed that, even remotely, an attacker could control safety-critical inputs such as throttle, steering or brakes. One of the first time-consuming activities that a researcher has to perform when approaching to make a security analysis of an automobile is to realize which systems it has on board, how these are implemented, which ECU is responsible for performing each functionality and consider if there are known vulnerabilities that may be exploited by an attacker. Being a relative new field, the availability of tools which facilitate such kind of work is quite scarce, and always relies on brute-force or databases specific for each manufacturer or automobile model. Researchers have to do a lot of manual reverse engineering to perform those tasks. This thesis presents and analyzes a technique for performing ECU discovering on CAN networks without relying neither on brute-force nor on existing databases, but exploiting the until now underestimated functional addressing feature of UDS diagnostic protocol. We provide a methodology which is able for each discovered ECU to perform advanced information gathering and we propose a structured framework in order to implement tests for known vulnerabilities and perform automated vulnerability assessment. We traduce our approach in the implementation of the cmap tool and in order to prove its effectiveness and efficiency we perform the ECU discovery test on four modern unaltered vehicles, obtaining positive results on tree of them.File | Dimensione | Formato | |
---|---|---|---|
2018_07_Calin.pdf
accessibile in internet per tutti
Descrizione: Testo della tesi
Dimensione
29.1 MB
Formato
Adobe PDF
|
29.1 MB | Adobe PDF | Visualizza/Apri |
I documenti in POLITesi sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione.
https://hdl.handle.net/10589/141804