The Controller Area Network (CAN) is a serial communication protocol that has become a de-facto standard in the automotive industry. The basics of the protocol have been developed in the 1980s and, similarly to other protocols from that era of computing, it has been designed with little concern for security. In particular, the CAN protocol has been discovered to be vulnerable to bit injection attacks, through which an adversary can disable devices connected on the bus by injecting bits at specific moments. Such attacks can be used to target safety subsystems or more generically to disrupt the normal behavior of a vehicle, and are stealthier than other types of attacks. Bit injection attacks are possible under the assumption that the attacker can manipulate the bus at a bit level. In reality, manipulating a high-speed bus at such a low level is a challenging task to carry out on resource-constrained microcontrollers, such as those found inside automotive networks: current techniques either rely on external hardware or require very precise timings. Consequently, such attacks are generally considered feasible only in scenarios where the attacker has physical access to the bus, which makes them considerably less harmful, since physical attacks scale poorly and expose the attacker to higher risks. In this work, we overcome these limitations by proposing a new set of techniques to manipulate the CAN data link layer, exploiting the fact that, in modern microcontrollers, many different peripherals are generally attached to the same physical pins. We demonstrate that, through these techniques, we are able to reliably read and inject bits on the CAN bus from the software layer of unmodified microcontrollers. Our approach is more reliable than existing ones and does not require any physical access to targeted device, which means it can be executed on a remotely compromised device to perform bit injection attacks. Given the generality of the underlying mechanism, we have collected such techniques into a multi-platform, extensible framework called CANPass, with the aim of easing the development of such techniques and facilitating the research on this topic.

Il protocollo CAN (Controller Area Network) è un protocollo di comunicazione seriale nato negli anni '80 per soddisfare le crescenti esigenze del settore automobilistico, ed è diventato lo standard di fatto per interconnettere centraline elettroniche all'interno di ogni tipo di veicoli. Nel tempo il suo utilizzo è cresciuto fino ad arrivare al di fuori di questo settore: è infatti oggi utilizzato anche all'interno dei sistemi elettronici di navi, di impianti di controllo industriale e persino nel settore aerospaziale. Il motivo del suo successo risiede nella capacità di realizzare collegamenti tra un grande numero di dispositivi, anche su distanze relativamente ampie, usando solo due segnali e mantenendo un'alta immunità al rumore elettromagnetico. Tuttavia, come molti protocolli di comunicazione progettati in quel periodo, non è stato pensato per essere al sicuro da attacchi informatici. Il CAN bus è infatti un protocollo broadcast, cioè ogni pacchetto inviato viene ricevuto indiscriminatamente da tutti i dispositivi connessi. Questo aspetto, unito all'assenza di cifratura dei messaggi e di qualsiasi misura di autenticazione, rende il protocollo CAN vulnerabile a una serie di attacchi informatici che mettono in pericolo, di conseguenza, i sistemi che ne fanno uso. Una delle prime dimostrazioni di questo problema è stata data dai ricercatori Charlie Miller e Chris Valasek, che, nel 2015, sono riusciti a spegnere remotamente il motore di una Jeep Cherokee che viaggiava a piena velocità su un'autostrada americana. Questo attacco è stato reso possibile proprio dall'assenza di sicurezza del protocollo CAN, che interconnette tutta l'elettronica interna delle automobili ed è accessibile tramite una semplice porta diagnostica, chiamata porta OBD, presente per legge in tutte le macchine in circolazione negli Stati Uniti. Da allora, la ricerca sulla sicurezza informatica delle moderne automobili si è sviluppata enormemente, mettendone in luce l'estesa superficie di attacco e le molte vulnerabilità. Un particolare tipo di attacchi che è possibile condurre sul protocollo CAN sono gli attacchi di tipo bit-injection, che sfruttano regole di basso livello del protocollo per produrre errori di comunicazione difficilmente distinguibili dai guasti reali. La possibilità di iniettare errori sul bus in momenti arbitrari della trasmissione di altre centraline dà la possibilità a un attaccante di disturbare la comunicazione sul bus e, in certi casi, addirittura selettivamente interrompere le operazioni di uno specifico dispositivo collegato, sfruttando i meccanismi di gestione degli errori definiti dal protocollo stesso. Per condurre questi attacchi, l'attaccante deve però essere in grado di manipolare i segnali del bus a livello di singoli bit, e in modo molto preciso. Se, infatti, negli ordinari microcontrollori la comunicazione è gestita da un dispositivo separato, chiamato CAN controller, che si occupa di rispettare le regole imposte dal protocollo, nel caso degli attacchi bit-injection deve essere possibile violare alcune di queste regole. Per questo motivo, l'esecuzione di questi attacchi su dei normali microcontrollori richiede di aggirare il CAN controller per accedere direttamente ai livelli logici del bus via software. I metodi utilizzati finora per fare ciò soffrono di pesanti limitazioni: o necessitano di hardware esterno per essere utilizzati, oppure sono scarsamente affidabili se eseguiti su dispositivi con potenza limitata. Questo, di fatto, limita gli scenari in cui tali attacchi sono considerati possibili e, in particolare, riduce la possibilità che questi attacchi vengano eseguiti usando l'hardware già presente nelle centraline. Conseguentemente, questi attacchi sono al momento considerati improbabili in uno scenario di compromissione remota, ovvero una situazione in cui un attaccante abbia la possibilità di modificare remotamente il software, ma non l'hardware, di una centralina connessa al CAN bus di un veicolo. Questa tesi si pone l'obiettivo di superare queste limitazioni. In particolare, proponiamo una nuova serie di tecniche che sfruttano il fatto che, sui microcontrollori moderni, più periferiche hardware sono generalmente collegate agli stessi segnali fisici. Se questo conflitto tra più periferiche si verifica sui pin dedicati al CAN bus, le periferiche connesse ad essi possono essere usate per inviare e ricevere bit sul CAN bus in momenti arbitrari, bypassando completamente il CAN controller. Il nostro approccio risulta essere più affidabile dei metodi correnti usati per iniettare e leggere singoli bit sul CAN bus e può essere implementato totalmente via software anche su microcontrollori poco potenti, il che rende possibili attacchi di basso livello al CAN bus anche in scenari di compromissione remota. Data la varietà di soluzioni che derivano da questo approccio, abbiamo riunito le tecniche proposte in un framework estendibile e multi-piattaforma, con l'intento di facilitarne l'utilizzo e incentivare la ricerca in questo ambito.

CANPass : an extensible framework for bypassing CAN peripherals on unmodified microcontrollers

De FAVERI TRON, ALVISE
2020/2021

Abstract

The Controller Area Network (CAN) is a serial communication protocol that has become a de-facto standard in the automotive industry. The basics of the protocol have been developed in the 1980s and, similarly to other protocols from that era of computing, it has been designed with little concern for security. In particular, the CAN protocol has been discovered to be vulnerable to bit injection attacks, through which an adversary can disable devices connected on the bus by injecting bits at specific moments. Such attacks can be used to target safety subsystems or more generically to disrupt the normal behavior of a vehicle, and are stealthier than other types of attacks. Bit injection attacks are possible under the assumption that the attacker can manipulate the bus at a bit level. In reality, manipulating a high-speed bus at such a low level is a challenging task to carry out on resource-constrained microcontrollers, such as those found inside automotive networks: current techniques either rely on external hardware or require very precise timings. Consequently, such attacks are generally considered feasible only in scenarios where the attacker has physical access to the bus, which makes them considerably less harmful, since physical attacks scale poorly and expose the attacker to higher risks. In this work, we overcome these limitations by proposing a new set of techniques to manipulate the CAN data link layer, exploiting the fact that, in modern microcontrollers, many different peripherals are generally attached to the same physical pins. We demonstrate that, through these techniques, we are able to reliably read and inject bits on the CAN bus from the software layer of unmodified microcontrollers. Our approach is more reliable than existing ones and does not require any physical access to targeted device, which means it can be executed on a remotely compromised device to perform bit injection attacks. Given the generality of the underlying mechanism, we have collected such techniques into a multi-platform, extensible framework called CANPass, with the aim of easing the development of such techniques and facilitating the research on this topic.
LONGARI, STEFANO
POLINO, MARIO
ING - Scuola di Ingegneria Industriale e dell'Informazione
7-ott-2021
2020/2021
Il protocollo CAN (Controller Area Network) è un protocollo di comunicazione seriale nato negli anni '80 per soddisfare le crescenti esigenze del settore automobilistico, ed è diventato lo standard di fatto per interconnettere centraline elettroniche all'interno di ogni tipo di veicoli. Nel tempo il suo utilizzo è cresciuto fino ad arrivare al di fuori di questo settore: è infatti oggi utilizzato anche all'interno dei sistemi elettronici di navi, di impianti di controllo industriale e persino nel settore aerospaziale. Il motivo del suo successo risiede nella capacità di realizzare collegamenti tra un grande numero di dispositivi, anche su distanze relativamente ampie, usando solo due segnali e mantenendo un'alta immunità al rumore elettromagnetico. Tuttavia, come molti protocolli di comunicazione progettati in quel periodo, non è stato pensato per essere al sicuro da attacchi informatici. Il CAN bus è infatti un protocollo broadcast, cioè ogni pacchetto inviato viene ricevuto indiscriminatamente da tutti i dispositivi connessi. Questo aspetto, unito all'assenza di cifratura dei messaggi e di qualsiasi misura di autenticazione, rende il protocollo CAN vulnerabile a una serie di attacchi informatici che mettono in pericolo, di conseguenza, i sistemi che ne fanno uso. Una delle prime dimostrazioni di questo problema è stata data dai ricercatori Charlie Miller e Chris Valasek, che, nel 2015, sono riusciti a spegnere remotamente il motore di una Jeep Cherokee che viaggiava a piena velocità su un'autostrada americana. Questo attacco è stato reso possibile proprio dall'assenza di sicurezza del protocollo CAN, che interconnette tutta l'elettronica interna delle automobili ed è accessibile tramite una semplice porta diagnostica, chiamata porta OBD, presente per legge in tutte le macchine in circolazione negli Stati Uniti. Da allora, la ricerca sulla sicurezza informatica delle moderne automobili si è sviluppata enormemente, mettendone in luce l'estesa superficie di attacco e le molte vulnerabilità. Un particolare tipo di attacchi che è possibile condurre sul protocollo CAN sono gli attacchi di tipo bit-injection, che sfruttano regole di basso livello del protocollo per produrre errori di comunicazione difficilmente distinguibili dai guasti reali. La possibilità di iniettare errori sul bus in momenti arbitrari della trasmissione di altre centraline dà la possibilità a un attaccante di disturbare la comunicazione sul bus e, in certi casi, addirittura selettivamente interrompere le operazioni di uno specifico dispositivo collegato, sfruttando i meccanismi di gestione degli errori definiti dal protocollo stesso. Per condurre questi attacchi, l'attaccante deve però essere in grado di manipolare i segnali del bus a livello di singoli bit, e in modo molto preciso. Se, infatti, negli ordinari microcontrollori la comunicazione è gestita da un dispositivo separato, chiamato CAN controller, che si occupa di rispettare le regole imposte dal protocollo, nel caso degli attacchi bit-injection deve essere possibile violare alcune di queste regole. Per questo motivo, l'esecuzione di questi attacchi su dei normali microcontrollori richiede di aggirare il CAN controller per accedere direttamente ai livelli logici del bus via software. I metodi utilizzati finora per fare ciò soffrono di pesanti limitazioni: o necessitano di hardware esterno per essere utilizzati, oppure sono scarsamente affidabili se eseguiti su dispositivi con potenza limitata. Questo, di fatto, limita gli scenari in cui tali attacchi sono considerati possibili e, in particolare, riduce la possibilità che questi attacchi vengano eseguiti usando l'hardware già presente nelle centraline. Conseguentemente, questi attacchi sono al momento considerati improbabili in uno scenario di compromissione remota, ovvero una situazione in cui un attaccante abbia la possibilità di modificare remotamente il software, ma non l'hardware, di una centralina connessa al CAN bus di un veicolo. Questa tesi si pone l'obiettivo di superare queste limitazioni. In particolare, proponiamo una nuova serie di tecniche che sfruttano il fatto che, sui microcontrollori moderni, più periferiche hardware sono generalmente collegate agli stessi segnali fisici. Se questo conflitto tra più periferiche si verifica sui pin dedicati al CAN bus, le periferiche connesse ad essi possono essere usate per inviare e ricevere bit sul CAN bus in momenti arbitrari, bypassando completamente il CAN controller. Il nostro approccio risulta essere più affidabile dei metodi correnti usati per iniettare e leggere singoli bit sul CAN bus e può essere implementato totalmente via software anche su microcontrollori poco potenti, il che rende possibili attacchi di basso livello al CAN bus anche in scenari di compromissione remota. Data la varietà di soluzioni che derivano da questo approccio, abbiamo riunito le tecniche proposte in un framework estendibile e multi-piattaforma, con l'intento di facilitarne l'utilizzo e incentivare la ricerca in questo ambito.
File allegati
File Dimensione Formato  
2021_10_DeFaveriTron.pdf

accessibile in internet per tutti

Dimensione 4.33 MB
Formato Adobe PDF
4.33 MB Adobe PDF Visualizza/Apri

I documenti in POLITesi sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione.

Utilizza questo identificativo per citare o creare un link a questo documento: https://hdl.handle.net/10589/180235