Il software è meglio quando è libero!

Supponiamo che siate i felici proprietari di una favolosa automobile di ultima generazione, una di quelle super computerizzate, dotata dei più avanzati sistemi di sicurezza attiva e passiva, quindi in grado di avvisarvi se vi state avvicinando troppo al veicolo che vi precede, o se state superando il limite di velocità del tratto di strada che state percorrendo, o in grado di aiutarvi ad evitare un ostacolo improvviso. Una di quelle macchine dotate di antifurto satellitare, che permettono l’apertura delle portiere solo a un insieme di persone predefinite riconosciute tramite le impronte digitali che avete provveduto a registrare nel computer di bordo; una macchina con airbag frontali e laterali, con barre antiintrusione al titanio, con sistema antiribaltamento, e con tutte le protezioni fantascientifiche che potete immaginare.

Questa macchina costa molto, avete fatto molti sacrifici per comprarla, ma il produttore si è mostrato serio ed affidabile, pronto a richiamarvi per fornirvi tutti gli aggiornamenti software necessari a mantenere sicuro il vostro veicolo.

Ovviamente il software che gestisce questo tipo di automobili è stato sviluppato dal produttore dopo molti anni di ricerche e di test, ed è quindi tenuto segreto, protetto da brevetti, copyright e accordi di non divulgazione con chiunque vi abbia messo mano. Inoltre è assolutamente vietato provare a farne il reverse engineering per capire cosa fa o come funziona, pena una denuncia che può mettere nei guai chi provi ad “aprire il giocattolo”.

Un bel giorno il produttore del veicolo vi contatta, via email o con una lettera a casa, informandovi che è stato rilasciato un aggiornamento del software che corregge alcuni bug relativi alla memorizzazione dei canali sull’impianto stereo integrato nel cruscotto. Siete pertanto invitati a recarvi presso il concessionario di zona per installare, gratuitamente, l’aggiornamento software. Voi rileggete la lettera, fate mente locale, osservate che la vostra autoradio non ha mai dato problemi relativamente alla memorizzazione dei canali (e anche se fosse, non lo ritenete un grosso fastidio), e quindi decidete di non perdere mezza giornata per portare la macchina in officina per farla aggiornare. Passano giorni, settimane, mesi… e voi continuate ad usare felicemente la vostra automobile, consapevoli di essere al sicuro.

Poi però, un bel giorno, un ricercatore indipendente scopre che il software che gestisce quella marca di automobili è affetto da un grave bug che permette a chiunque, senza particolari strumenti e senza la necessità di disporre di informazioni riservate, di aprire la vostra macchina, entrarci dentro, farla partire e quindi rubarla senza difficoltà, magari per andare a farci una rapina in banca. Il ricercatore in questione, che è una persona per bene, invece di vendersi la scoperta ai ladri di automobili per raggranellare un po’ di soldi, informa il produttore per invitarlo a correggere al più presto la vulnerabilità scoperta. Il produttore, dal canto suo, informa il ricercatore che quel bug è stato già scoperto internamente e poi risolto con la versione di software che includeva, tra l’altro, la correzione dei problemi dell’autoradio.

Problema: è vero che il produttore ha corretto il bug, ma purtroppo ha omesso (di proposito) di informare i suoi clienti circa la gravità della vulnerabilità. I clienti, non informati, hanno trascurato l’aggiornamento ritenendolo non critico ed hanno quindi continuato ad utilizzare la versione “bacata”. Il produttore ha ritenuto di non dover informare del bug i suoi clienti perché, a detta loro, “è un bug che è stato scoperto internamente e non è stato reso noto”. Errore! Così come il ricercatore indipendente ha trovato il bug, allo stesso modo potrebbero averlo trovato in precedenza anche altri soggetti meno onesti, che non lo hanno divulgato, non lo hanno comunicato al produttore e lo hanno invece sfruttato per rubare le macchine affette. Il bug infatti riguardava tutte le versioni software precedenti l’ultimo aggiornamento rilasciato, quindi si annidava nel codice da molti anni.

A questo punto, vista la riposta ricevuta dal produttore, il ricercatore decide di rendere pubblica la sua scoperta, costringendo quindi il produttore a richiamare urgentemente tutti i clienti (tanti) che non avevano fatto l’aggiornamento, invitandoli fortemente a recarsi in officina per aggiornare al più presto la loro automobile affetta dalla gravissima vulnerabilità.

Cosa fareste se foste i proprietari di una automobile del genere? Vi fidereste ancora del produttore e delle sue comunicazioni? Continuereste a ritenerlo affidabile e meritevole del vostro denaro?

Questa “storiella” che vi ho raccontato è avvenuta realmente, ma non riguardava il software di un’automobile. Riguardava bensì il sistema operativo di un noto produttore di apparati per la sicurezza delle reti informatiche, quegli apparati che si mettono sul perimetro (o all’interno) di una rete per rilevare e bloccare le minacce provenienti da sorgenti non fidate al fine di proteggere sistemi e dati riservati. Potrebbe trattarsi dei firewall della vostra banca, della clinica che detiene tutti i vostri sensibilissimi dati (analisi cliniche, patologie, screening, diagnisi pre-impianto, ecc.) oppure potrebbero essere i firewall di un asset delicatissimo della Repubblica (un tribunale, un ministero, ecc.). o magari i firewall di una associazione che raccoglie informazioni vitali da zone del mondo in cui regimi autoritari non esitano a togliere di mezzo violentemente personaggi e giornalisti scomodi. Diciamo che gli impatti di un accesso non autorizzato a questi sistemi potrebbero essere potenzialmente devastanti, addirittura mortali.

Un firewall con sistema operativo open-source sarebbe stato più sicuro? Non è detto, ma un eventuale bug del genere avrebbe avuto maggiore possibilità di essere scoperto in tempi più brevi e la scoperta, in seguito alla correzione, non sarebbe stata tenuta nascosta. Inoltre non sarebbe stato necessario attendere per forza che fosse il produttore del software a “metterci la pezza”, perché un software open-source con licenza libera può essere modificato, corretto e migliorato da chiunque abbia le capacità per farlo.

Questo è il bello del software libero e open-source. Nessuno ti nasconde le cose, tutti possono guardare sotto il cofano per vedere come funzionano le cose e, se qualcosa non piace, possono modificarlo per adattarlo alle proprie necessità, migliorarlo, ottimizzarlo.

Il software, come l’amore, è più bello quando è libero!

Leave a Reply

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.