Mobilità intelligente: privacy e sicurezza

moderni veicoli sono gestiti da una rete di elaboratori di controllo che interpretano le letture dei sensori e azionano gli attuatori. Questi processori controllano molti aspetti del comportamento dell’auto e delle funzionalità per la sicurezza, intervenendo quando necessario, ad esempio per frenare, sterzare, accendere le luci, aprire gli airbag, ottimizzare l’assetto dell’avantreno e molto altro. Tuttavia, solo piuttosto di recente queste reti si sono collegate al mondo esterno. Ciò le rende vulnerabili agli attacchi da parte dei pirati informatici, una vulnerabilità per la quale oggi non è disponibile alcuna misura di contenimento efficace. Jan Tobias Mühlberg, responsabile della ricerca di imec, spiega come imec ha raccolto la sfida. Il risultato è una nuova architettura per garantire la sicurezza dei dispositivi embedded connessi in rete, accuratamente progettata per trovare posto negli attuali ambienti, una soluzione pronta all’uso che rende sicuri non solo i veicoli intelligenti, ma anche altre infrastrutture critiche, ad esempio gli apparecchi medicali, gli edifici intelligenti o le reti elettriche.

Elettronica intelligente

“Gli apparecchi industriali complessi di oggi sono monitorati e manovrati da reti elettroniche, con sensori, attuatori ed elaboratori di controllo che scambiano in continuazione messaggi,” afferma Mühlberg. “Nelle auto questa interazione è organizzata attorno al bus Can, concepito come una rete chiusa, cablata; un’isola priva di punti di accesso ovvi per gli intrusi.” La specifica del bus Can, e quindi delle funzioni di misura e di elaborazione in rete dei segnali a bordo dei veicoli, ha circa 30 anni. In precedenza, le auto erano per lo più meccaniche. Il Can offre un modo per il numero crescente di sensori eterogenei e di elaboratori di controllo in un veicolo per inviare e ricevere messaggi in modo affidabile e puntuale senza alcuna sorta di computer centrale. Esso connette ad esempio i sensori di rotazione nelle ruote con il sistema di frenata antibloccaggio e con la trasmissione. Per gli scopi per i quali è stato progettato, come una rete a sé stante, il Can funziona alla grande. Prosegue Mühlberg: “Troverete reti simili nei sistemi di controllo industriale e nelle linee robotiche di assemblaggio. Esse sono state accuratamente progettate e collaudate per tenere conto di tutti i tipi di stati e di errori anomali, il che le ha rese molto sicure, fino a poco tempo fa.”

L’apertura verso il mondo

Le moderne automobili di alta fascia sono dotate di sistemi di infotainment e di navigazione che sono connessi sia alla rete Can sia al mondo esterno. Attraverso queste reti esterne, i componenti per l’infotainment comunicano con il telefono cellulare o le cuffie del conducente, e ricevono aggiornamenti software dai loro produttori. E con le informazioni provenienti dalla rete Can, è ad esempio possibile alzare il volume della musica quando iniziate ad accelerare, o quando procedete su un terreno accidentato. I veicoli autonomi porteranno questo ad un passo successivo e comunicheranno l’uno con l’altro e con l’infrastruttura stradale per condurre l’auto. “Così, all’improvviso, la rete Can dell’auto presenta punti di ingresso potenziali per gli intrusi. Tutte queste comunicazioni con l’esterno sono effettuate su reti Bluetooth o IP, alcune delle quali potrebbero persino connettersi a Internet. E la rete Internet, se non altro, è una rete altamente insicura”, dice Mühlberg. “Il bus Can e i suoi componenti hardware e software non sono stati progettati per operare in un simile ambiente non sicuro. La tecnologia Can, ad esempio, non è provvista di una vera e propria forma di autenticazione o di autorizzazione. Se un messaggio Can corretto dal punto di vista sintattico arriva al sistema di frenata dell’auto, i freni semplicemente danno per scontato che il messaggio sia valido e provenga da una fonte affidabile, non da qualche altra parte. In più, i processori sono progettati per essere molto piccoli, con prestazioni sufficienti per la loro funzione, poco costosi e con consumi il più possibile ridotti. Su di essi possono girare piccoli sistemi operativi e un’applicazione di comunicazione e di controllo. Ma diversamente dai processori per laptop o smartphone, essi non sono dotati di protezione della memoria o di un ambiente isolato per far girare i processi al loro interno. Ciascuna applicazione che gira su un processore, anche un’applicazione che non dovrebbe essere presente, è in grado di accedere e di riscrivere l’intera memoria del processore.” Dov’è il rischio in tutto ciò? Spiega Mühlberg: “I ricercatori hanno dimostrato che è possibile controllare da remoto un’auto accedendo al suo gateway Wi-Fi o Bluetooth. In un caso estremo in Ucraina, è stato dimostrato che è possibile assumere il controllo della rete elettrica. E i ricercatori di imec hanno anche dimostrato che è possibile violare pacemaker, carpire informazioni dai dispositivi e persino introdurre comandi potenzialmente letali. Ciò non vuol dire che simili attacchi siano semplici: essi richiedono un alto livello di sofisticazione, ingegno e pazienza. Ma a causa del grande numero di auto dotate di sistemi elettronici identici, un hacker che riesce a trovare un modo per accedere al sistema, pone una minaccia reale alla sicurezza di un numero elevato di tali sistemi.”

Zone sicure

Oggi, non è disponibile alcun sistema di contenimento in commercio. Diversamente dai processori di fascia più alta presenti nei laptop e negli smartphone, i chip dei controllori sono piccoli e sono dotati di risorse limitate. Sono privi di funzionalità per la sicurezza che sono diventate standard su altri processori, come i livelli di privilegio e la segmentazione della memoria. Sostituire tutti i processori embedded con sistemi di fascia alta non è un’opzione percorribile. “Di conseguenza, ci siamo imposti la sfida di progettare un’architettura sicura partendo da zero”, continua Mühlberg. “Un’architettura che sia idonea a rendere sicuri i sistemi embedded di oggi, come le reti Can nelle autovetture, i sistemi di controllo industriali in produzione, o i piccoli dispositivi IoT. Un simile sistema deve presentare una complessità e un costo ridotto, che è un requisito preciso del mercato.” I ricercatori hanno preso come base un microcontrollore semplice e hanno ampliato la sua struttura, aggiungendo funzioni di gestione sicure della memoria e un’unità crittografica ottimizzata per minimizzare i consumi di potenza. Il risultato è un processore che non è molto più grande e non consuma molta più energia, ma che è in grado di isolare il software critico, creando una sorta di zona sicura in cui è possibile farlo girare. Grazie a questo isolamento, il software non può essere manomesso. La sua area di elaborazione sicura è ristretta all’hardware su cui gira. Escludendo le vulnerabilità presenti in un’applicazione protetta in sé, in assenza di software, che si tratti di applicazioni o di componenti del sistema operativo, l’esecuzione sullo stesso processore di processi esterni, può scavalcare i controlli di sicurezza e leggere o sovrascrivere lo stato di esecuzione protetto.

Di chi ci si può fidare

“Ma se il processore che controlla i freni della vostra auto non può più essere violato, obbedirà ancora a un comando di frenata che proviene da una fonte non autorizzata”, ammette Mühlberg. “Di conseguenza, abbiamo limitato le fonti sicure dei messaggi a quelle che possono autenticarsi come autorizzate. Così un comando di frenata dovrebbe provenire solo da un processore sicuro, che a sua volta non può essere violato, e da un componente software autenticato. In tal modo, la rete Can di un’auto è costituita da piccole applicazioni inviolabili che si autenticano e si certificano come sicure l’una con l’altra.” Un sistema embedded viene anche contattato dall’esterno, ad esempio da un software provider che deve installare aggiornamenti; gli specialisti di imec hanno quindi messo a punto un sistema di comunicazione sicura e di attestazione da remoto. In questo modo un soggetto esterno può inviare e ricevere messaggi da e verso un modulo software specifico o da un nodo specifico, pur essendo sicuri che si tratti del modulo corretto, che non sia stato alterato, e che lo stato sia corretto.

Un’architettura per la sicurezza

Sancus, così è chiamata la soluzione, è un’architettura per la sicurezza per sistemi embedded espandibili e connessi in rete dotati di risorse limitate, che è in grado di fornire l’attestazione da remoto e solide garanzie di integrità e di autenticità con una base minima di elaborazione sicura. Essa consiste nel microprocessore esteso, nel software dedicato che gira in area sicura e in un compilatore C che genera il codice sicuro di Sancus. Sancus è un progetto in corso, e i ricercatori di imec hanno numerose questioni in sospeso che vorrebbero affrontare. Una di queste è assicurare la disponibilità e il funzionamento in tempo reale della rete. “Con la nostra innovazione, possiamo garantire che qualsiasi messaggio che giunge in un modulo sia valido” afferma Jan Tobias Mühlberg, “ma non possiamo ancora garantire che esso arrivi. Sarebbe ancora possibile per un pirata informatico inviare messaggi, che la nostra soluzione è in grado di individuare. Nella maggior parte dei casi questo forse non porterebbe a situazioni pericolose, dato che il nodo in ricezione emetterebbe un segnale di errore e arresterebbe il sistema in modo sicuro. Ma è naturalmente qualcosa di indesiderato”. Un’altra questione ha a che fare con il funzionamento in sicurezza dei moduli software sicuri. In assenza di una metodologia formale di progettazione e di linguaggi di programmazione intrinsecamente sicuri, questi moduli sono soggetti a presentare vulnerabilità che potrebbero portare e circostanze non sicure. Ma siccome siamo riusciti ad isolare piccoli moduli di codice sicuro, sarebbe ora anche possibile progettare questi ultimi in un modo più formale e privo di falle. Il gruppo di lavoro di Mühlberg è alla ricerca di opportunità di collaborazione per sviluppare soluzioni adatte alle proprie esigenze: “In occasione dell’Imec Technology Forum ad Antwerp presenteremo Sancus in uno scenario automotive o in una soluzione di contatore intelligente, un altro caso d’uso in cui i processori embedded necessitano di sicurezza. È questa un’opportunità per discutere nei dettagli tecnici di come siamo riusciti ad aggiungere un livello rigoroso di sicurezza a queste reti embedded, un problema che diventerà tanto più pressante quanto più gli autoveicoli inizieranno a comunicare con il proprio ambiente circostante”. 

Pubblica i tuoi commenti