Casi grandi e piccoli di inaffidabilità hanno colpito di recente il mondo open source: un problema che ha troppi aspetti per addossarlo solo a software house e sviluppatori
Autore: f.p.
Quando è esploso il caso Apache Log4j, da più parti si sono criticati gli sviluppatori che manutenevano il progetto perché non erano stati capaci di evitare, o comunque di rilevare, un bug che ha reso improvvisamente vulnerabili migliaia di siti. D'improvviso l'open source ha mostrato - di nuovo - un problema quasi "strutturale" di sicurezza e affidabilità. Che è giusto considerare, certo, ma senza banalizzarlo. E quindi anche senza accusare gli sviluppatori indipendenti a causa di - come ha evidenziato uno dei manutentori del progetto Log4j, Volkan Yazici - "un lavoro per il quale non siamo pagati e una funzione che non ci piace ma che abbiamo dovuto mantenere per questioni di compatibilità all'indietro". Compatibilità tra l'altro richiesta dalle aziende che usavano le librerie, non dagli sviluppatori.
Il mondo dell'open source è fatto di grandi software house ma soprattutto di migliaia di sviluppatori di talento e buona volontà che danno costantemente risultati sorprendenti, e sono questi risultati che hanno dato forza negli anni al modello dell'open source. Traghettandolo dall'essere una strana curiosità da "macinacodice" a rappresentare il cuore della moderna IT. Ma queste migliaia di sviluppatori non sono tutti impiegati a tempo pieno per sviluppare e manutenere codice "free". Alcuni sì, ma sono una quota minoritaria.
Molti sviluppatori portano avanti i loro progetti nel tempo libero, per passione, per senso della community, per favorire un gruppo magari ristretto di utenti. E non è strano che a un certo punto questi stessi sviluppatori possano chiedersi se ne valga davvero la pena. È l'annosa questione della sostenibilità dell'open source, che però oggi - proprio perché il software libero è onnipresente - viene considerata quasi solo per le sue conseguenze lato cyber security.
Di recente è stato Kent Walker, President Global Affairs & Chief Legal Officer di Google e Alphabet, a sintetizzare la base del problema. "Per troppo tempo - scrive Walker - la comunità software si è adagiata nell'idea che il software open source è genericamente sicuro grazie alla sua trasparenza e al presupposto che 'molti occhi' lo esaminino per rilevare e risolvere problemi. Ma in effetti, sebbene alcuni progetti abbiano effettivamente molti occhi addosso, altri ne hanno pochi o non ne hanno nessuno".
La soluzione al problema? Per Google è spingere le aziende private e il settore pubblico a identificare i progetti open source più importanti e considerarli alla stregua delle infrastrutture critiche nazionali. Quindi, dedicare le risorse necessarie a garantire la loro sicurezza e la loro affidabilità. Inoltre, aumentare il livello di controllo sulla sicurezza dei componenti open source che possono porre "un rischio sistemico" perché entrano a far parte di molti altri progetti più critici.
È un complesso di idee non proprio nuovo, rimanda a diverse iniziative lanciate negli anni passati per garantire un maggiore livello medio di sicurezza del software libero. Come ad esempio quelle della Open Source Security Foundation (OpenSSF). Una visione che comunque Google e molti altri grandi nomi del sofware e del cloud hanno "venduto" alla Casa Bianca, trasformando la sicurezza dell'open source in un problema nazionale. Cambierà qualcosa a breve o medio termine? Crediamo poco. Certo è facile identificare qualche decina di progetti chiave e garantire (ragionevolmente) la loro sicurezza. Ma per tutti gli altri, niente? Eppure "Il 99% del software al mondo ha almeno un po' di codice open source nel suo DNA", scrive Mike Hanley, Chief Security Officer di GitHub.
Che c'entra la sicurezza? C'entra eccome. Chi avvia un progetto open source e non ne ha ritorni economici non ha nemmeno le risorse per garantire davvero la sicurezza del suo codice. Specie se si tratta di codice rilasciato magari anni prima, per un progetto che non si ha più modo di seguire, dovendosi dedicare a progetti più nuovi e, si spera, più remunerativi. Così, partendo dalla sicurezza Mike Hanley in effetti lancia un tema più ampio che sembrerebbe superato nell'era dell'open source al centro dell'IT: quanto si guadagna davvero con il software libero? E chi riesce a farlo? Solo su GitHub ci sono 73 milioni di sviluppatori: quanti sono in perenne difficoltà, a detrimento dei loro progetti?
La situazione la spiega bene, nel suo ambito specifico, Christofer Dutz, il creatore delle librerie Apache PLC4X, molto diffuse in ambito IoT. Frutto di anni di sviluppo "volontario", le librerie, secondo lo sviluppatore, hanno portato grandi risparmi agli utenti ma pochissimi ritorni a chi le ha sviluppate e manutenute. Se, spiega Dutz, un progetto open source che permette ad esempio a un'azienda utente di risparmiare 20 milioni di euro in costi di licenza per un analogo prodotto commerciale, poi non si traduce in un business sostenibile per lo sviluppatore, allora vuol dire che davvero c'è un grosso problema di sostenibilità. Tanto che di recente Dutz ha deciso di interrompere lo sviluppo gratuito delle sue librerie.
La realtà è che le software house capaci di costruire un modello di business vincente sull'open source sono pochissime. E se consideriamo il modello di business storico dell'open source - ossia sviluppare codice libero intorno al quale vendere servizi e supporto di classe enterprise - alla fine si gira sempre intorno a un solo nome: Red Hat. Che resta sempre l'azienda-simbolo del boom open source, ma un simbolo che vale sino a un certo punto. Tanto che è rimasta famosa l'affermazione di Peter Levine, oggi partner di a16z: "non ci sarà mai più un'altra Red Hat". Infatti, le aziende che oggi fanno business sostenibile con l'open source perlopiù adottano o il modello cosidetto Open Core (un "nucleo" di codice open source rivestito di componenti proprietari a valore aggiunto), oppure l'approccio SaaS, offrendo piattaforme open source in modalità as-a-Service e puntando su un valore aggiunto operativo. Ma per fare questo ci vuole una buona forza di mercato.
Lato sicurezza le grandi software house, i provider e gli hyperscaler hanno le risorse per controllare l'affidabilità del codice open source che usano e che sviluppano, garantendone la sicurezza. Le altre aziende, anche grandi, avrebbero ugualmente la necessità e l'interesse di verificare l'affidabilità del codice o dei binari open source che si usano all'interno dei loro progetti. Ma di fatto non lo fa quasi nessuno. Perché non è semplice, ma soprattutto perché si fa prima a fidarsi implicitamente dell'affidabilità dei componenti che ricavano da repository come GitHub. E appare naturale farlo.
In parte questo ha senso, per i progetti open source di maggiore successo. Che si suppone siano i più controllati e che spesso nascono all'interno dei grandi nomi dell'IT e del cloud. Una specie di garanzia aggiuntiva di affidabilità. Ma migliaia di progetti "altri" hanno meno risorse a disposizione, anche se sono magari alla base di milioni di applicazioni. È qui che c'è molto spazio per lavorare, da un lato abilitando sistemi che garantiscano l'affidabilità di quello che viene dai repository open source, dall'altro con tecnologie che almeno aiutino le imprese a tenere costantemente traccia del software che usano.
Il primo campo è quello della protezione della supply chain del software. Che quando viene "bucata" porta a casi eclatanti come, di recente, quello di SolarWinds. Ci sono diverse possibili strade per tutelare chi adotta componenti open source, tutte genericamente richiedono un maggiore controllo sul processo di sviluppo e di "build" dei componenti stessi. La Linux Foundation, ad esempio, di recente sta puntando sul concetto delle "reproducible build": da uno stesso codice sorgente devono derivare artefatti software identici, a garanzia che non siano state introdotte modifiche arbitrarie - e malevole - o backdoor.
Le SBOM oggi sono in prima linea soprattutto perché il Governo USA le ha rese obbligatorie, sulla scia del caso Solarwinds, per tutte le realtà che intendono vendere software e servizi alle agenzie federali statunitensi. Sono però ancora un campo in via di evoluzione. Servono più strumenti per generare e aggiornare automaticamente le BOM (è il campo della SCA o Software Composition Analysis), i "linguaggi" in cui scriverle sono in via di standardizzazione, occorre una maggiore integrazione tra i tool SCA e tutto il ciclo di sviluppo, integrazione, implementazione delle applicazioni. Sino a quando questo settore non si sarà stabilizzato, il compito di controllare la supply chain software sarà ancora tutto sulle spalle dei team di sviluppo.