Una nuova toolbox di sicurezza per software accresce l’affidabilità dei processi esistenti
In una società guidata dalla tecnologia dell’informazione e dalla comunicazione, la protezione e la sicurezza del software sono diventate delle sfide fondamentali. A rispondere a questo appello ha pensato il progetto STANCE finanziato dall’UE, un’iniziativa multidisciplinare che ha portato a numerosi passi in avanti scientifici e tecnologici nel campo della sicurezza software. Nel corso dei suoi tre anni e mezzo di durata, il progetto ha definito, applicato e distribuito una toolbox, ossia una serie di strumenti di analisi del codice sorgente, capace di verificare le proprietà di sicurezza di applicazioni scritte in C, C++ e Java. Essenzialmente, la toolbox riunisce e coordina il lavoro degli esistenti strumenti di analisi, inclusa la piattaforma Frama-C, il verificatore VeriFast e uno strumento “fuzz” di prova per il software. Frama-C è una piattaforma di analisi software che permette la progettazione, implementazione e disseminazione di soluzioni per la verifica formale. VeriFast, d’altro canto, è un analizzatore per codici sorgente C e Java annotati con predicati scritti in logica di separazione. “L’architettura di STANCE si basa sugli strumenti di analisi citati in precedenza”, afferma il ricercatore del progetto Armand Puccetti. “Il progetto ha sviluppato numerosi plug-in per questi strumenti, consentendo loro di effettuare specifiche analisi di sicurezza, come ad esempio analisi modulari del codice.” Secondo Puccetti, questi sono degli strumenti potenti per verificare formalmente la robustezza di applicazioni sensibili dal punto di vista della sicurezza. “Il progetto STANCE ha ulteriormente ottimizzato la loro utilità creando delle metodologie al fine di combinare questi strumenti per l’uso in casi di studio nel mondo reale e all’interno del contesto della certificazione Common Criteria”, ha aggiunto. Come funziona Lo strumento di STANCE specifica gli algoritmi per rilevare classi ben definite di minacce alla sicurezza scoperte nel codice sorgente. Esso fa questo usando, estendendo e sviluppando delle tecniche note per l’analisi orientata alla sicurezza del codice sorgente, che includono interpretazioni astratte, verifiche deduttive e controllo del modello. Queste analisi vengono quindi estese mediante capacità diagnostiche, diagnosi basate sul modello e controesempi. Le analisi possono essere effettuate usando un’analisi dinamica con aggiunta di errore e generazione automatica del caso sperimentale. Dopo il completamento di questa fase iniziale, lo strumento fornisce all’utente delle fondamenta teoriche che garantiscono formalmente che un dato segmento del software non presenti alcuna falla nella sicurezza. Accrescere l’affidabilità Con questa toolbox e con i suoi metodi di supporto, il progetto STANCE è riuscito ad accrescere l’affidabilità e l’efficacia in termini di costi degli esistenti processi orientati alla sicurezza. “Come conseguenza del suo lavoro, il progetto ha modificato in modo positivo il settore della garanzia della sicurezza software, producendo un profondo impatto sui suoi aspetti legali, sociali ed economici”, afferma Puccetti. “Inoltre, tra i nuovi strumenti sviluppati nelle piattaforme Frama-C e Verifast, parecchi verranno distribuiti in open source, mentre altri rimarranno come prototipi poiché la ricerca prosegue ulteriormente.” Da un punto di vista economico, le scoperte del progetto STANCE forniranno un differenziatore strategico sul mercato per le aziende che usano il suo strumento e i suoi metodi, con benefici a lungo termine per quanto riguarda costi di sviluppo e manutenzione. In senso più ampio, il progetto ha dato alla società un nuovo standard di fiducia, una spinta di cui c’era grande bisogno per lo sviluppo delle cyber-tecnologie. “Il progetto STANCE ha contribuito alla realizzazione delle strategie politiche dell’UE fornendo i mezzi per rilevare i punti deboli della sicurezza in applicazioni software fondamentali, e questo significa che i cittadini dell’UE possono ora avere fiducia che le loro applicazioni gestite da software sono sicure”, conclude Puccetti.
Parole chiave
STANCE, toolbox, codice sorgente, C++, java, cibersicurezza, frama-c, verifast, analisi del codice, minacce, diagnostica, software, aggiornamento, vulnerabilità