Esiste una protezione contro i dispositivi maligni su un bus CAN?

10

CAN (controller area network) è un autobus utilizzato in tutte le auto moderne. Puoi leggere molte informazioni sulle macchine su questo bus e credo (ma non ne sono troppo sicuro) che alcuni segnali di controllo critici (interruzioni, ad es. Per ESP?) Superino quel bus.

So molto poco della CAN:

I dispositivi che comunicano tramite il bus CAN devono inviare il loro identificativo prima di iniziare a inviare qualcos'altro. Il protocollo definisce che i dispositivi con identificatori più bassi hanno la priorità. Il protocollo ha uno "0 dominante", cioè se un dispositivo mette uno 0 sul bus e un altro mette un 1 sul bus, lo 0 è sul bus. I dispositivi ascoltano continuamente, anche quando stanno inviando. Ciò significa un dispositivo che mette il suo identificatore sul bus che ha un 1 in una certa posizione, ma legge uno 0 sa che un dispositivo con priorità più alta vuole anche usare il bus e deve fermarsi.

Cosa succede quando un attaccante invia "0" tutto il tempo sul bus? Ad esempio, potrebbe essere possibile aggiornare il software di una radio per auto per mettere "0" tutto il tempo sul bus (vedi Completo sperimentale analisi delle superfici di attacco automobilistico per molti attacchi più sofisticati) o tali protocolli di livello basso sono implementati in modo non aggiornabile (ad esempio hardware o ROM) in modo che un simile attacco non possa accadere? È possibile proteggere il bus da dispositivi dannosi / questo tipo di attacco denial-of-service?

    
posta Martin Thoma 07.05.2015 - 17:21
fonte

2 risposte

4

CAN è progettato per essere relativamente semplice e viene spesso implementato tra microcontrollori con pochissima potenza di elaborazione (che sono occupati a fare cose in cui i tempi sono importanti) e viene utilizzato per ritrasmettere i messaggi in tempo reale. Aggiungendo un po 'di crittografia e protezione DoS introdurrebbe troppa complessità e dato che sono solo due fili condivisi da tutti i controller, non penso che la protezione DoS sia nemmeno possibile in questo caso (cosa farai se un dispositivo canaglia decide di allagare il bus con spazzatura o tenere continuamente le linee dati "alto"?).

Una soluzione parziale sarebbe quella di separare la rete in più bus, come avviene nella maggior parte delle auto (tutte?), dove viene utilizzato un bus separato per elementi critici, ei gateway vengono utilizzati per trasmettere messaggi specifici tra di loro. DoS su un singolo bus non influenza l'altro.

È infatti possibile riprogrammare il firmware di qualsiasi controller:

Ci sono anche software e hardware facili da usare per questo. Questo particolare screenshot mostra un programma in grado di aggiornare il firmware dei controller motore e dei cluster di strumenti, ma sono sicuro che lo stesso vale per tutti i controller, è solo che la richiesta di software in grado di manomettere i cluster motore / strumento è più alta (per ovvi ragioni) rispetto a quelli in grado di interagire con l'airbag o con gli ABS. Sono sicuro che i criminali stanno sfruttando questi difetti e dimostra ancora una volta che la sicurezza dell'oscurità non funziona.

Se hai il tempo di decodificare il firmware originale, puoi facilmente creare la tua versione dannosa e tutto ciò di cui hai bisogno è 30 secondi di accesso al CAN bus della macchina (tramite la porta diagnostica) per installare il nuovo firmware. Ovviamente, è possibile utilizzare la radio come punto di ingresso (ad esempio, sfruttando le vulnerabilità nelle sue funzioni di decodifica MP3) per accedere al bus CAN e installare il firmware dannoso su altri controller. L'unica sicurezza è l'oscurità del protocollo che decade nel tempo.

Infine, non credo che ci sia un modo efficiente per proteggere il bus CAN - la crittografia e l'autenticazione non faranno molto - in effetti impedirà le intrusioni sul bus (come un dispositivo canaglia collegato alla porta diagnostica) ma non impedirà di compromettere un dispositivo che dovrebbe avere accesso al bus (come la radio) che sarebbe il punto di ingresso principale di un utente malintenzionato.

Informazioni sull'installazione del firmware, che richiedono una passphrase unica stampata nei documenti dell'auto prima che possa essere installato qualsiasi firmware è una buona soluzione, impedirà a un dispositivo compromesso sul bus di compromettere altri dispositivi, consentendo comunque al legittimo proprietario dell'auto per manomettere il firmware se lo desiderano (perché pagare 300 € e spesso di più al rivenditore per sostituire una chiave persa o riprogrammare un controller usato è quello che chiamerei derubare).

    
risposta data 07.05.2015 - 22:36
fonte
0

L'invio di "0", quindi, forzare il bus in uno stato dominante è un attacco alla disponibilità. Di conseguenza, ogni volta che un altro dispositivo vuole inviare, l'algoritmo di arbitraggio del bus dice di arretrare. Nessun messaggio sul bus.

Qual è la conseguenza per il veicolo? Quando si inserisce l'accensione, il modulo di sicurezza e l'unità di controllo del motore (ECU) devono parlare. Se non possono parlare, non succederà nulla. Se l'attaccante costringe a inondare un autobus ad un certo punto durante la guida, viene trattato come un bus difettoso. La tolleranza ai guasti farà in modo che il sottosistema si spenga correttamente e senza pericolo per i passeggeri.

    
risposta data 31.10.2015 - 23:16
fonte

Leggi altre domande sui tag