Quanto è sicuro il codice sorgente nei nostri computer? Una domanda che pochi si fanno ma è una questione essenziale della sicurezza informatica dei moderni sistemi. Alla base di ogni attacco infatti c’è sempre una vulnerabilità scovata dai cyber criminali in qualche software, semplice o complesso che sia, che permette di entrare nei sistemi informatici e rubare denaro dai conti correnti, ricattare gli utenti attraverso il criptaggio dei dati personali e defacciare siti aziendali o personali.
E queste vulnerabilità sono quasi sempre racchiudibili in due grandi classi: errori di progettazione ed errori di programmazione delle applicazioni. Tra gli errori di progettazione il più comune sono l’errata implementazione di algoritmi e protocolli per l’autenticazione o la cifratura, mentre tra quelli di programmazione la fanno da padrone l’assenza di validazione degli input degli utenti.
La sicurezza informatica storicamente viene suddivisa in tre grandi branche: la sicurezza dei sistemi, la sicurezza delle reti e la sicurezza applicativa o del software. Quest’ultima in particolare è quella che si occupa di definire le buone pratiche della progettazione e programmazione sicura, creando consapevolezza nei programmatori e progettisti di sistemi informatici ed aumentando quindi il livello di sicurezza del software sviluppato. Ed è questa la branca più complessa, perché ad incidere in modo preponderante sono i comportamenti di tecnici informatici spesso esasperati dal Time To Market aziendale.
La scorsa settimana a Roma si è svolta la conferenza internazionale Owasp AppSec Europe 2016. Owasp (Open Web Application Security Project) è l’organizzazione internazionale no-profit che promuove la sicurezza delle applicazioni, in particolare quelle per il web, e nota ai più per la sua classifica delle vulnerabilità chiamata “Owasp Top Ten“. La conferenza ha visto impegnati come speaker tanti professionisti del settore, da semplici developer a senior engineer, tutti con un’unica stella polare: migliorare la sicurezza del software e rendere i nostri sistemi meno vulnerabili.
Ne è passato di tempo da quando nel 1996 un anonimo hacker pubblicò sulla famosa hackzine “Phrack” il testo sacro degli exploit intitolato “Smashing the Stack for Fun and Profit”. L’articolo descrive una tecnica di attacco chiamata “buffer overflow” che sfrutta delle vulnerabilità introdotte da una non corretta programmazione del codice C. E lo stesso articolo, sebbene mai pubblicato in riviste scientifiche di settore, viene studiato in tutte le università del mondo come esempio di software insicuro e di corrette tecniche di programmazione.
Certo di strada se n’è fatta da quando Bill Gates nel 2002, stanco delle continue vulnerabilità che venivano trovate nei software Microsoft dell’epoca, con una comunicazione senza precedenti a tutti i suoi dipendenti dal titolo “Trustworthy computing”, imponeva la sicurezza del software come elemento fondante nei processi di produzione in Microsoft. Ed è forse anche un po’ merito di quella storica e-mail se oggi tutti prendono più seriamente anche questo particolarissimo aspetto della sicurezza informatica, a partire dalla Microsoft stessa.