71
ANALISI CODICE |
SOFTWARE
EMBEDDED
59 • FEBBRAIO • 2016
assistance system), specialmente negli Stati
Uniti, in concomitanza con un certo passaggio
dai veicoli diesel a quelli ibridi ed elettrici (HEV/
EV). Si pensi ad esempio ai sistemi elettronici
che assistono il guidatore nelle operazioni
di parcheggio, nella visione notturna, nel
mantenimento della posizione nella carreggiata
o della distanza di sicurezza; o a quelli che lo
informano con dati e segnalazioni in tempo
reale in sovraimpressione sul parabrezza, come
gli ’head-up display’, sempre più presenti nei
veicoli di nuova generazione. In parallelo con la
crescita di complessità dei sistemi elettronici e
di infotainment ’in-vehicle’ cresce di giorno in
giorno anche la complessità e la vulnerabilità
del codice embedded e del software in grado di
coordinarli funzionalmente. Si tratta di rischi
di violazione che aumentano con l’espandersi
quotidiano del numero di potenziali minacce e
vettori di attacco in grado di compromettere la
cybersecurity e, di conseguenza, la safety degli
autoveicoli.
Nuova scommessa per i car maker: i test di verifica
e validazione non bastano più
Più le auto diventano ’intelligenti’, dipendenti
dall’elettronica e connesse a Internet, e più
possono insorgere ’buchi’ di sicurezza che
accrescono i rischi di hacking del codice
embedded in modalità remota. In altre parole,
per i team di sviluppo del software di sistema
e delle applicazioni automotive, non è più
sufficiente identificare al più presto i possibili
difetti del codice, durante i test di verifica e
validazione funzionale: occorre anche individuare
quanto prima nel ciclo di produzione i nuovi
problemi di security e safety introdotti dalla
continua aggiunta di quelle nuove e innovative
funzionalità software che generano valore e
puntano a differenziare un determinato modello
di autoveicolo da quello della concorrenza.
Violare via wireless le funzionalità di un
autoveicolo mentre è in movimento, consentendo
l’esecuzione in remoto di codice e alterandone
il comportamento di guida, non è banale ma è
possibile. I due noti ricercatori e hacker ’onesti’
di sistemi automotive, Charlie Miller e Chris
Valasek, - il primo con un passato da ingegnere
in Twitter, e il secondo in precedenza direttore
della vehicle security research in
IOActive- si
sono guadagnati un’assunzione in Uber, dopo
aver dimostrato la capacità di prendere il
controllo di un veicolo da remoto. E in una loro
survey individuano per diversi modelli di auto di
vari brand (Audi, Honda, Jeep, Ford, Toyota ed
altri) la potenziale superficie esposta, in termini
di vulnerabilità delle ECU (electronic control
units) ’safety critical’ e di attacchi perpetrabili
applicando tecniche che in esse iniettano da
remoto codice malevolo, penetrando ad esempio
attraverso la rete CAN (controller area network)
interna dell’autoveicolo, per riuscire a ottenere
qualche forma di controllo su alcuni componenti
In Sypris analisi del codice
automatizzata
Non solo il settore automotive può trarre
vantaggio dall’utilizzo di tool di automazione
come quelli di analisi statica del codice.
Un altro esempio si ritrova nel mondo dei
fornitori di soluzioni di sicurezza IT, ed è
quello di
Sypris Electronics ,la cui divisione
ISS (Information Security Solutions) si
focalizza su soluzioni di cybersecurity
(cifratura, gestione di chiavi elettroniche,
autenticazione silicon-based), che hanno tra
i vari utenti il governo degli Stati Uniti e vari
ambiti commerciali. Fino a poco tempo fa,
per assicurarsi che il software sviluppato
soddisfacesse gli stringenti requisiti di
qualità stabiliti, gli ingegneri dovevano
faticosamente ispezionare ’manualmente’
in modalità visuale migliaia di linee di codice,
per individuare bug eventualmente sfruttabili
dagli hacker. Tuttavia, di recente, la società
ha efficientato il processo, adottando i tool di
analisi statica del codice CodeSonar, forniti
da
GrammaTech ,che, tra le varie proprietà,
possiedono una configurabilità e flessibilità di
personalizzazione che permette di rafforzare,
a seconda delle necessità, specifiche politiche
di codifica e controlli. Utilizzando questi
tool, oggi i team di sviluppo sono in grado di
razionalizzare il processo di certificazione,
trovando i difetti del codice in anticipo lungo
il ciclo di progettazione, a procedendo con
maggior tempismo rispetto alla tabella di
marcia prevista per la consegna delle varie
soluzioni.