La rivolta nell’OpenSource passa per NPM e il Cloud

4

Abbiamo già parlato in altri articoli di come il funzionamento delle dipendenze delle librerie NPM, utilizzate da Node.js e da tutti i framework di sviluppo web come Angular o Vue.js, determini una notevole problematica di sicurezza, in quanto non solo crea un punto di fallimento, ma anche una possibile vulnerabilità per tutte le librerie che ricorsivamente vadano a sfruttare una data funzionalità condivisa che sia stata compromessa. E’ quindi molto difficile, in certi casi, andare a identificare la causa di una violazione in quanto maggiore è la specificità della funzionalità esportata, più grande sarà probabilmente il numero di librerie che vanno ad importarla.

Proprio recentemente, le librerie NPM colors e faker, rispettivamente dipendenze di 19.000 e 2500 progetti, con milioni di download settimanali, hanno subito un attacco che ha fatto sì che chiunque le utilizzasse vedesse il proprio software completamente bloccato a causa di un loop infinito, introdotto in entrambe le librerie, che andava a scrivere delle sequenze di caratteri sporchi a schermo, precedute dalle parole ‘LIBERTY LIBERTY LIBERTY’.

Tra i progetti che utilizzano le due librerie si annovera anche aws-cdk, l’SDK Open Source di sviluppo di Amazon Cloud.

Dopo l’ovvio, iniziale sconcerto, si è scoperto che l’autore della “violazione” altri non era che il maintainer di entrambe le librerie, Marak Squires. Che ha persino aperto una issue su github, trollando allegramente tutti gli utenti che, preoccupatissimi, si sono trovati con questa situazione. La ragione del suo gesto, pare, sia una ripicca nei confronti di tutto il mondo “Big Tech”:

Respectfully, I am no longer going to support Fortune 500s (and other smaller sized companies) with my free work. There isn’t much else to say. Take this as an opportunity to send me a six figure yearly contract or fork the project and have someone else work on it.

“Rispettosamente, non supporterò più aziende Fortune 500 con lavoro gratis. Non c’è molto altro da dire. Prendetela come un’opportunità per mandarmi un contratto a sei zeri, oppure fate un fork del progetto e trovate qualcun altro che ci lavori per voi”

Oltre a questo, anche il file README del progetto è stato cambiato: è apparsa la frase “Cos’è davvero capitato ad Aaaron Swartz?“, facendo chiaramente riferimento al suicidio dello sviluppatore, avvenuto dopo l’essersi trovato nel mezzo di una battaglia legale per aver usato delle tecniche di spoofing del proprio mac address per aggirare le limitazioni presenti su JSTOR per il download di milioni di file di paper accademici. Nei suoi piani, Aaron avrebbe voluto condividere i file su una rete p2p, per fare in modo che la “conoscenza fosse universale”, ma fu fermato poco prima. Aveva poi patteggiato, ma in seguito le autorità federali lo avevano accusato di una serie di altri reati collegati, alcuni pretestuosi, arrivando ad un totale di possibili trentacinque anni di carcere.

L’atto di Marak ha suscitato varie reazioni, non proprio tutte amichevoli o empatiche. Alcuni lo hanno accusato di aver completamente sbagliato nel pubblicare del codice free per poi “violarlo” e renderlo inutilizzabile, perché col suo gesto avrebbe danneggiato non solo le grandi compagnie che voleva colpire, ma anche le piccole realtà che riescono a emergere proprio grazie all’Open Source.
Altri hanno asserito che, a causa del suo gesto, gli sviluppatori saranno ancora meno motivati ad aggiornare le proprie librerie, esponendosi ad eventuali vulnerabilità pur di non rischiare che un evento di questo tipo spacchi tutto.

Senza voler giudicare o entrare nel merito dell’operato di Marak, o delle sue idee personali, a nostro avviso il vero problema è stata la reazione di GitHub, che ha sospeso l’account dello sviluppatore, impedendogli l’accesso alle altre decine e decine di progetti dei quali è maintainer o a cui partecipa.
Aggiungiamo anche il fatto che NPM.js ha riportato la libreria all’ultima versione funzionante dei due package, in completa autonomia e senza interrogarlo.

Questo fa parte dei Terms of Service di GitHub (quanti di voi li hanno letti?), e questo, come tante altre tematiche in essere sul Cloud, porta il discorso sulla vera autonomia dell’Open Source al giorno d’oggi, e nuovamente su come numerose tecnologie su cui si basa l’Internet moderno abbiano delle falle di base che, se sfruttate all’estremo, possono creare problematiche come questa. E che probabilmente, nel futuro, la decentralizzazione dei servizi sarà la chiave per riprenderne il controllo.

Sostenitore di lunga data dell’Open Source, Sysadmin ma anche programmatore, mi appassiona qualsiasi cosa nell’IT che possa permettere un’espressione di creatività. Nostalgico della filosofia dei tempi andati, ma incuriosito dalle potenzialità dei paradigmi moderni.