ANALISI DELLA SICUREZZA DEL SOFTWARE INCORPORATO IN REWIRE
Il progetto REWIRE prevede una soluzione di cybersecurity scalabile per hardware e software open-source e open-specification per i dispositivi IoT. I partner universitari e industriali del progetto REWIRE collaboreranno alla ricerca e allo sviluppo di una catena di strumenti che garantisca l'integrazione della cybersecurity in tutto il ciclo di vita di un dispositivo su base zero-trust. Ciò comprenderà la garanzia di sicurezza dei processi a partire dall'ingresso del dispositivo in un sistema, il bootstrap, la sicurezza delle comunicazioni con altri dispositivi sulla rete REWIRE e la verifica del software/firmware, compresi gli aggiornamenti sicuri.
Bureau Veritas Cybersecurity sta ricercando e sviluppando un anello di questa catena di strumenti che garantirà che le minacce alla sicurezza possano essere efficacemente scoperte e trattate attraverso un meccanismo automatizzato di validazione e verifica del firmware, mirato al firmware dei dispositivi utilizzati nelle smart city, nei satelliti intelligenti e nell'automotive intelligente.
TECNICHE DI ANALISI BINARIA
Utilizzando tecniche di analisi binaria all'avanguardia, Bureau Veritas Cybersecurity sta sviluppando un modulo in grado di rilevare i difetti del software. Poiché i dispositivi utilizzati in questi contesti hanno generalmente un codice molto specializzato, il rilevamento di tali difetti può essere difficile. Il software si basa su alcuni componenti hardware che possono variare da dispositivo a dispositivo, e in molti casi il codice sorgente non è disponibile. Il modulo di test di Bureau Veritas Cybersecurity emula quindi il codice come se fosse in esecuzione sull'hardware originale, e nel progetto REWIRE nel suo complesso vengono prese decisioni di progettazione per l'architettura hardware dei dispositivi. Ciò consente un'analisi accurata delle falle, contribuendo a un software embedded più sicuro.
Analisi della sicurezza del software incorporato in REWIRE
Il disimballaggio del firmware avviene attraverso una combinazione di framework per l'elaborazione di file binari (come il firmware). Questi strumenti producono un file system contenente i file di configurazione, le librerie e il software eseguito sul dispositivo e, se è disponibile un'immagine firmware completa, possono includere un boot loader e un kernel.
Poiché il firmware sarà emulato, è importante che la sua integrità sia preservata e che anche i riferimenti, come i link simbolici, le librerie e i file di configurazione, siano intatti. Pertanto, in genere si esegue una fase di sanificazione per verificare se tali riferimenti sono presenti prima di emulare effettivamente il firmware.
ANALISI DEL TEMPO DI ESECUZIONE
L'analisi runtime si riferisce al momento in cui il software nel firmware è pronto per essere eseguito. Ciò può significare che viene eseguito sull'hardware, ma poiché il firmware in questione viene eseguito su vari dispositivi, con eventualmente alcune periferiche, l'analisi runtime non può fare affidamento sulla disponibilità dell'hardware. Se lo si ipotizzasse, la verifica sarebbe scarsamente scalabile, in quanto si dovrebbero utilizzare molti dispositivi. Pertanto, un'analisi runtime si basa generalmente su molte tecniche che consentono di valutare il codice bytecode senza eseguirlo sull'hardware per cui è stato compilato. Le tecniche utilizzate nell'analisi statica del codice sono l'analisi taint, che rileva eventuali modelli di vulnerabilità di iniezione nel codice sorgente, e l'esecuzione simbolica, come mezzo per analizzare un programma per determinare quali input causano l'esecuzione di ciascuna parte del programma e, quindi, potrebbero causare problemi.
L'analisi dinamica consiste tipicamente nell'esecuzione simbolica, nell'analisi taint e nel fuzzing - un metodo di test automatizzato del software che inietta input non validi, malformati o inaspettati in un sistema per rivelare difetti e vulnerabilità del software.
FUZZING GUIDATO DALLA COPERTURA
Quando si emula il firmware in questo modo, è possibile eseguire il fuzzing con grande controllo, in quanto si può verificare ogni dettaglio della CPU virtuale utilizzata per emulare il firmware. Non dovrebbe sorprendere che il modo più veloce per rilevare le vulnerabilità nel firmware sia il fuzzing guidato dalla copertura, una tecnica in cui vengono tracciati i rami del software raggiunti fornendo un determinato input e l'input che raggiunge nuovi rami viene utilizzato per ulteriori test. In questo modo, è possibile testare rapidamente un'ampia parte del software.
"Il risultato della verifica del firmware servirà come input per un theorem prover su una blockchain, che attesta il corretto funzionamento del dispositivo". I risultati del processo di verifica saranno utilizzati come input per creare un teorema sulla sicurezza del dispositivo. Inoltre, qualsiasi vulnerabilità scoperta nel processo di verifica sarà utilizzata come input per lo strumento di analisi delle minacce, che sarà anch'esso implementato all'interno del progetto REWIRE.
Maggiori informazioni
Desidera saperne di più sul progetto REWIRE? Ci contatti e le risponderemo entro un giorno lavorativo.