Il successo del modello
open source non sta solo nel fatto che le piattaforme "libere" sono
alla base del computing moderno. Lo si vede anche nella dipendenza che quasi tutti i prodotti software oggi hanno
da uno o più componenti open source. Che siano database, librerie o framework di sviluppo. Per capire meglio questo scenario, Synopsys ha condotto
un'analisi approfondita sul codice - o meglio la codebase, quindi il complesso di codice dei vari moduli di un prodotto software - di
1.253 software commerciali.
Il risultato è che il 99% delle codebase conteneva componenti open source. Anzi, il codice "libero" rappresenta
il 70% circa del codice complessivo esaminato. Nel 2015, l'anno in cui Synopsys eseguì per la prima volta una analisi simile, questa percentuale era del 36%. Nel 2018, era del 60%. I componenti open source coinvolti sono davvero molti: in media ben
445 per codebase. Con cinque in particolare evidenza come diffusione. In ordine di popolarità: jQuery (presente in ben il 55% dei prodotti), Bootstrap (40%), Font Awesome (31%), Lodash (30%), jQuery UI (29%).
Fin qui tutto bene. Il problema, sottolinea Synopsys, è che le software house e gli sviluppatori
fanno fatica a tenere traccia dei componenti open source che usano. Realizzano di fatto un prodotto commerciale "composito" in cui idealmente ogni componente andrebbe controllato ed aggiornato periodicamente. Ma questo non viene fatto. Con centinaia di componenti coinvolti in ciascun prodotto, è un processo manuale troppo impegnativo.
Il risultato è che la maggioranza dei prodotti commerciali basati su open source
non è allineata con lo sviluppo dei componenti stessi. Gli sviluppatori cioè continuano ad usare componenti "free" senza aggiornarli alle nuove versioni. Con risultati anche spiazzanti. Nell'analisi di Synopsys, l'82% delle codebase aveva componenti open source vecchie di oltre quattro anni. E l'88% conteneva componenti che
non avevano visto sviluppi negli ultimi due anni. Componenti che quindi fanno capo a progetti di fatto defunti.
Niente aggiornamenti, niente sicurezza
Mantenere aggiornate le proprie "basi" software non è un dettaglio. O solo una ricerca di nuove funzioni di cui magari si può fare a meno. È anche e soprattutto
una questione di cyber security. Uno dei motivi principali per cui i componenti software vengono aggiornati è "tappare" eventuali loro falle di sicurezza. Continuare a usare versioni datate dei componenti software significa mantenere aperte quelle falle. E creare quindi un prodotto commerciale non sicuro.
Il webinar che ImpresaCity e Red Hat hanno realizzato sul tema dello sviluppo per team distribuiti
Synopsys segnala che il problema va aggravandosi. Il 75% delle codebase esaminate conteneva almeno un componente open source con
generiche vulnerabilità già note. Una percentuale che l'anno precedente si era fermata al 60%. Il 49% delle codebase aveva almeno una vulnerabilità
ad alto rischio (un anno fa la percentuale era del 40%).
La poca attenzione ai componenti open source si vede dalla "età" media delle vulnerabilità trovate nelle codebase:
quattro anni e mezzo circa. Il 19% delle falle rilevate è stato risolto oltre dieci anni fa. La vulnerabilità individuata più "vecchia" è stata resa pubblica ben 22 anni fa.