A cura di Amedeo Leggieri
E’ il 25 Settembre 2022 e la Commissione Europea presenta una bozza di proposta di legge chiamata Cyber Resilience Act (CRA).
La proposta di legge, che potete trovare qui, mira a standardizzare la sicurezza dei prodotti hardware e software definendo delle metriche standard di valutazione, oltre a fornire all’utente finale il grado di sicurezza del prodotto che sta utilizzando. L’idea alla base del disegno è quindi quella di rendere gli autori dei prodotti responsabili in prima persona della sicurezza dei loro software.
Vista così, questa potrebbe anche far piacere come presa di posizione, se non fosse che esiste l’open source.
Infatti, all’interno del testo non vengono fatte distinzioni tra i giganti tecnologici ed i piccoli developer, siano questi gruppi privati indipendenti o anche singoli individui che sviluppano gratuitamente parti di codice diffuse in rete per essere utilizzate gratuitamente da chiunque all’interno di altri prodotti commerciali.
Applicando dunque la bozza come è stata scritta finora, si renderebbero legalmente e finanziariamente responsabili tutti i contributori di eventuali problematiche legate ai prodotti commerciali in questione, inclusi coloro che hanno distribuito librerie gratuite utilizzate da parti terze in tali prodotti, dai quali quindi non hanno guadagnato nulla.
Ma facciamo un passo indietro per rendere più chiaro quanto potrebbe accadere se il CRA venisse approvato così com’è, spiegando in parole povere che cosa si intenda per software open source. Un software open source, per sua natura, viene sviluppato e distribuito gratuitamente così com’è. E’ quindi ridistribuibile senza limitazioni, senza supporto tecnico, senza obblighi di aggiornamento o verifica da parte di chiunque lo voglia integrare in ulteriori prodotti commerciali, il quale quindi si assume l’onere di identificare, correggere e risolvere eventuali problemi prima di rendere disponibile tali prodotti al pubblico.
Mettiamo che inventiate una libreria software che permette di inviare in rete video lunghissimi occupando pochissima banda, in modo da raggiungere zone remote del pianeta e permettere una più rapida circolazione delle informazioni, e che decidiate di rilasciare questa libreria gratuitamente in rete perché il suo impatto sociale è per voi più importante di qualunque profitto economico. Immaginiate ora che l’hosting video più grande del pianeta integri la vostra libreria nei suoi prodotti e che, data la natura open source del vostro progetto, lo faccia gratuitamente, senza nemmeno citarvi o riconoscervi una parte dei guadagni.
Ora, a distanza di anni dal rilascio del vostro progetto GRATUITO, l’hosting subisce un attacco che sfrutta una vulnerabilità del vostro codice, che avete creato da soli nella vostra stanzetta. In base al CRA, voi e il produttore del software commerciale siete egualmente responsabili di questo problema. Solo che, a differenza vostra, lui ci ha prima ha guadagnato 29,24 miliardi di dollari all’anno.
Come facilmente intuibile, quindi, la proposta di legge così come scritta è un disincentivo non solo ai produttori di software gratuiti, ma anche ai contributori esterni che magari si ritrovano a correggere un semplice bug all’interno di questi softwares (le regole dell’open source infatti “impongono” che chiunque migliori un software free lo ridistribuisca migliorato). Secondo l’articolo 16 della bozza del CRA, infatti, costoro diventerebbero egualmente responsabili per qualunque problema emerga dai prodotti che integrano al loro interno i codici da essi utilizzati e considerati legalmente perseguibili al pari degli autori finali e delle aziende che hanno sviluppato questi proditti.
ADDIO ALLE BETA?
Se così approvato, il CRA potrebbe quindi anche sancire il canto del cigno alle versioni beta come le conosciamo. Vedi, per esempio, il passaggio del disegno di legge sottostante:
In sostanza, non potranno più essere lasciati software incompleti oltre il tempo strettamente necessario ai test. Il problema però è che uno dei paradigmi di sviluppo più utilizzati nel mondo informatico è la cosiddetta continuous integration ovvero (semplificando) una serie continua di rilasci di funzionalità lungo tutta la vita di un software. Per cui, quando un progetto di sviluppo software può definirsi realmente concluso?
Le stesse domande che si è posto chi vi scrive sono arrivate dalla Python Foundation. Python è un linguaggio di programmazione alla base di molti script presenti nei software commerciali pubblicato con GNU General Public License (GPL) e che, alla luce di come è stata scritta la bozza di legge, rischia seriamente di chiudere i battenti in Europa.
La lista di reazioni contrarie al CRA è lunga ed autorevole. E include sia soggetti legati direttamente all’open source come Github (repository di codice sorgente) e Libre Office (l’alternativa free alla suite Microsoft Office) sia giganti dell’high tech come Microsoft e Huawei, le quali corrono il rischio di dover eliminare tutto il codice open source presente nei loro prodotti alla luce della serrata autoimposta dai produttori di software open source per non incorrere in sanzioni.
Se dovesse essere approvata così com’è, questa bozza diventerebbe un boomerang per ogni cittadino europeo, non solo da un punto di vista tecnologico ma anche economico. Il software free infatti è alla base di start up, pmi e prodotti utilizzati giornalmente da milioni di cittadini, che si ritroverebbero di botto ad essere la serie B tecnologica del pianeta. In questo scenario, infatti, tutti i produttori di prodotti software dovrebbero ricorrere allo sviluppo interno di tutte le parti che fino a quel momento erano gratis, con la conseguenza di un aumento dei prezzi di beni e servizi legati a quelle componenti.
Evitare questa emorragia tecnologica è quindi di fondamentale importanza. La già citata Python Foundation ha quindi lanciato una campagna che invita chiunque a scrivere al suo rappresentante di riferimento al Parlamento Europeo invitandolo a farsi portavoce delle richieste di rettifica venute dal mondo dell’open source, a partire da una netta separazione tra software commerciale e software libero.