Alcuni sviluppatori stanno sporcando il software open source

gettyimages-1159346361-codice-maligno-skull-crossbones.jpg

Getty Images

Una delle cose più sorprendenti dell'open source non è che produce un ottimo software. È che così tanti sviluppatori mettono da parte il loro ego per creare grandi programmi con l'aiuto di altri. Ora, tuttavia, una manciata di programmatori sta anteponendo le proprie preoccupazioni al bene dei molti software open source potenzialmente distruttivi per tutti.

Ad esempio, il manutentore del gestore di pacchetti di JavaScript RIAEvangelist, Brandon Nozaki Miller, ha scritto e pubblicato un pacchetto di codice sorgente npm a codice aperto chiamato peacenotwar. Non ha fatto altro che stampare un messaggio di pace sui desktop. Finora, così innocuo. 

Miller ha quindi inserito codice dannoso nel pacchetto per sovrascrivere i file system degli utenti se il loro computer aveva un indirizzo IP russo o bielorusso. Lo ha poi aggiunto come dipendenza al suo popolare nodo-ipc programma e caos istantaneo! Numerosi server e PC si sono interrotti durante l'aggiornamento al codice più recente e quindi i loro sistemi hanno cancellato le unità. 

La difesa di Miller,"Questo è tutto pubblico, documentato, concesso in licenza e open source”, non regge. 

Liran Tal, il Snyk il ricercatore che ha scoperto il problema ha affermato: "Anche se l'atto deliberato e pericoloso [è] percepito da alcuni come un atto legittimo di protesta, come si riflette sulla futura reputazione del manutentore e partecipare alla comunità degli sviluppatori? Ci si potrebbe fidare di nuovo di questo manutentore per non dare seguito ad atti futuri in azioni simili o anche più aggressive per i progetti a cui partecipano? 

Miller non è un pazzo a caso. Ha prodotto molto codice buono, come node-ipc e Nodo HTTP Server. Ma puoi fidarti che il suo codice non sia dannoso? Mentre lo descrive come "non malware, [ma] protestware che è completamente documentato”, altri velenosamente non sono d'accordo. 

Come ha scritto un programmatore GitHub, "Quello che accadrà con questo è che i team di sicurezza delle società occidentali che non hanno assolutamente nulla a che fare con la Russia o la politica inizieranno a vedere software gratuito e open source come via per gli attacchi alla catena di approvvigionamento (che è totalmente) e inizia semplicemente a vietare il software gratuito e open source - tutto software gratuito e open source - all'interno delle loro aziende". 

Come ha scritto un altro sviluppatore GitHub con l'handle nm17, “The fattore di fiducia dell'open source, che era basato sulla buona volontà degli sviluppatori ora è praticamente sparito, e ora sempre più persone si stanno rendendo conto che un giorno la loro libreria/applicazione può essere sfruttata per fare/dire qualunque cosa pensasse qualche sviluppatore casuale su Internet ' era la cosa giusta da fare.'”

Entrambi fanno punti validi. Quando non puoi usare il codice sorgente se non sei d'accordo con la posizione politica del suo creatore, come puoi usarlo con sicurezza? 

Il cuore di Miller potrebbe essere nel posto giusto: Slava Ukraini! — ma il software open source infettato da un payload dannoso è il modo giusto per proteggere l'invasione russa dell'Ucraina? No non lo è. 

Il metodo open source funziona solo perché ci fidiamo l'uno dell'altro. Quando quella fiducia viene infranta, non importa per quale causa, il framework fondamentale dell'open source viene infranto. Come ha detto Greg Kroah-Hartman, il manutentore del kernel Linux per il ramo stabile, quando gli studenti dell'Università del Minnesota hanno deliberatamente cercato di inserire codice errato nel kernel Linux per un esperimento nel 2021, "Quello che stanno facendo è un comportamento dannoso intenzionale e non è accettabile e totalmente immorale”.

Le persone hanno a lungo sostenuto che l'open source dovrebbe includere anche disposizioni etiche. Ad esempio, quelli del 2009 Eccezione General Public License (eGPL), una revisione del GPLv2, ha cercato di vietare ad "eccezioni", come utenti e fornitori militari, di utilizzare il suo codice. E 'fallito. Altre licenze come il Licenza JSON con la sua clausola dolcemente ingenua "il software deve essere usato per il bene, non per il male" ancora in circolazione, ma nessuno la fa rispettare.  

Più recentemente, l'attivista e sviluppatore di software Coraline Ada Ehmke ha introdotto una licenza open source che richiede ai suoi utenti di agire moralmente. Nello specifico, lei Licenza ippocratica aggiunto al Licenza open source MIT una clausola che afferma: 

"Il software non può essere utilizzato da individui, società, governi o altri gruppi per sistemi o attività che mettono in pericolo, danneggiano o minacciano attivamente e consapevolmente il benessere fisico, mentale, economico o generale di individui o gruppi svantaggiati in violazione della Dichiarazione universale dei diritti umani delle Nazioni Unite”.

Suona bene, ma non è open source. Vedete, l'open source è di per sé una posizione etica. La sua etica è contenuta nel Free Software Foundation (FSF)'S Quattro libertà essenziali. Questa è la base di tutte le licenze open source e della loro filosofia di base. Come l'esperto legale open source e professore di diritto della Columbia Eben Moglen, ha affermato all'epoca che le licenze etiche non possono essere software libero o licenze open source: 

"Libertà zero, il diritto di eseguire il programma per qualsiasi scopo, viene prima nelle quattro libertà perché se gli utenti non hanno tale diritto rispetto ai programmi per computer che eseguono, alla fine non hanno alcun diritto su tali programmi. Gli sforzi per concedere il permesso solo per usi buoni, o per proibire quelli cattivi agli occhi del licenziante, violano l'obbligo di proteggere la libertà zero". 

In altre parole, se non puoi condividere il tuo codice per qualsiasi motivo, il tuo codice non è veramente open-source. 

Un altro argomento più pragmatico sul divieto a un gruppo di utilizzare software open source è che il blocco su qualcosa come un indirizzo IP è un pennello molto ampio. Come Florian Roth, società di sicurezza Sistemi Nextron' Responsabile della Ricerca, che ha ritenuto “disabilitando i miei strumenti gratuiti sui sistemi con determinate impostazioni di lingua e fuso orario", alla fine ha deciso di non farlo. Come mai? Perché così facendo, “disabiliteremmo anche gli strumenti sui sistemi di critici e liberi pensatori che condannano le azioni dei loro governi”. 

Sfortunatamente, non sono solo le persone che cercano di utilizzare l'open source per quello che vedono come uno scopo etico superiore a causare problemi al software open source. 

All'inizio di quest'anno, lo sviluppatore JavaScript Marak Squires ha deliberatamente sabotato le sue oscure, ma di vitale importanza, le librerie Javascript open source "colors.js" e "faker.js". Il risultato? Decine di migliaia di programmi JavaScript sono esplosi.

Come mai? Non è ancora del tutto chiaro, ma in un post su GitHub cancellato da allora, Squires ha scritto: "Con rispetto, Non supporterò più Fortune 500 (e altre aziende di piccole dimensioni) con il mio lavoro gratuito. Non c'è molto altro da dire. Cogli questa come un'opportunità per mandarmi un contratto annuale a sei cifre o forcella il progetto e chiedi a qualcun altro di lavorarci sopra". Come puoi immaginare, questo tentativo di ricattarsi per ottenere uno stipendio non ha funzionato così bene per lui. 

E poi ci sono persone che mettono deliberatamente malware nel loro codice open source per divertimento e profitto. Ad esempio, la società di sicurezza DevOps JFrog scoperto 17 nuovi pacchetti JavaScript dannosi nel repository NPM che attaccano e rubano deliberatamente i token Discord di un utente. Questi possono quindi essere utilizzati sul Comunicazione Discord e piattaforma di distribuzione digitale.

Oltre a creare nuovi programmi open source dannosi che sembrano innocenti e utili, altri aggressori stanno prendendo vecchi software abbandonati e li riscrivono per includere backdoor per il furto di criptovalute. Uno di questi programmi era il flusso di eventi. Aveva un codice dannoso inserito al suo interno per rubare portafogli bitcoin e trasferire i loro saldi su un server di Kuala Lumpur. Ci sono stati diversi episodi simili nel corso degli anni.

Con ciascuna di queste mosse, la fiducia nel software open source si indebolisce. Poiché l'open source è assolutamente vitale per il mondo moderno, questa è una pessima tendenza. 

Cosa possiamo fare al riguardo? Bene, per prima cosa, dovremmo considerare con molta attenzione quando, se mai, dovremmo bloccare l'uso del codice open source. 

Più praticamente, dobbiamo iniziare ad adottare l'uso di Linux Foundation Scambio di dati del pacchetto software (SPDX) ed Distinta base software (SBOM). Insieme, questi ci diranno esattamente quale codice stiamo usando nei nostri programmi e da dove proviene. Quindi, saremo molto più in grado di prendere decisioni informate.

Oggi, molte persone usano il codice open source senza sapere esattamente cosa stanno eseguendo o verificando la presenza di problemi. Presumono che vada tutto bene. Non è mai stata un'ipotesi intelligente. Oggi è proprio sciocco. 

Anche con tutti questi recenti cambiamenti, l'open source è ancora migliore e più sicuro delle alternative software proprietarie black-box. Ma dobbiamo controllare e verificare il codice invece di fidarci ciecamente. È l'unica cosa intelligente da fare per il futuro.

Storie correlate:



Fonte