On the Weaponization of Open Source
"My problem is that this weaponization is killing off trust. I think the temptation of using open source projects as weapons against Russia should be resisted because it sets a dangerous precedent and may ultimately set back the open source movement and push organizations back into seeking refuge in commercial software with all its opaqueness and obscurity." https://www.computer.org/publications/tech-news/community-voices/on-the-weap...
Ciao Antonio, On Sat, 2 Apr 2022 05:41:04 +0000 Vetro' Antonio wrote:
My problem is that this weaponization is killing off trust.
sì sono in molti che si strappano le vesti quando gli informatici si accorgono di avere un potere enorme. Anche la Open Washing Initiatiative ha scritto:
Understandably, this has caused outrage. We share that outrage. Protest is an important element of free speech that should be protected. Openness and inclusivity are cornerstones of the culture of open source, and the tools of open source communities are designed for global access and participation. Collectively, the very culture and tooling of open source—issue tracking, messaging systems, repositories—offer a unique signaling channel that may route around censorship imposed by tyrants to hold their power.
Instead of malware, a better approach to free expression would be to use messages in commit logs to send anti-propaganda messages and to issue trackers to share accurate news inside Russia of what is really happening in Ukraine at the hands of the Russian military, to cite two obvious possibilities. There are so many outlets for open source communities to be creative without harming everyone who happens to load the update.
https://opensource.org/blog/open-source-protestware-harms-open-source Insomma va bene "weaponizzare" l'open source, ma non il codice! Quello serve alle aziende! Aziende che ovviamente NON VOGLIONO LEGGERE IL CODICE CHE RIVENDONO! Perché le 4 libertà non sono la ragione per cui l'open source esiste: l'open source esiste per sfruttare il lavoro non pagato di migliaia di sviluppatori. Altrimenti le aziende leggerebbero i sorgenti! Insomma tutti sanno che la Linux's law [1] è una favoletta. L'open source è pieno di backdoor, miner di criptovalute, spyware che nessuno controlla. Prendete Android! O Chrome! Ma protestare attraverso il software, farsi notare, NO! Questo sì che è DAVVERO SCANDALOSO! Mina tutta la NARRAZIONE! Incrina la PROPAGANDA! Tornate tutti ad iniettare backdoor invisibili, per pietà!!! :-D Ne va del futuro dell'open source initiative!
push organizations back into seeking refuge in commercial software with all its opaqueness and obscurity
ROFTL ! ! ! Per le aziende che non leggono il codice, l'OSS è indistinguibile dal software proprietario... eccetto per il prezzo, ovviamente. Dunque non temente. Finché potranno continuare a sfruttare impunemente il lavoro non pagato di migliaia di sviluppatori, continueranno ad usarlo. Giacomo [1] https://en.wikipedia.org/wiki/Linus%27s_law
Caro Giacomo, premetto che quando segnalo un articolo non significa che ne condivida per forza le prese di posizione. L'open source è vitale per una varietà di attori (piccole imprese, no profit, scuola, ecc), credo che il fattore fiducia/sicurezza sia importante per tutti, e che questo si sia incrinato anche per la c.d. “big corporate catture” che tu stesso hai denunciato in questa lista più volte. Detto questo, non credo sia pratico né sostenibile leggersi il codice di tutti i componenti aperti che si vogliono riusare. Invece una via di mezzo dalla cieca adozione è analizzarli con strumenti che possano verificare qualità del software, inclusa la sicurezza, e poi testarli approfonditamente. Su entrambi gli aspetti ci feci ricerca alcuni anni fa, il problema è complesso e il tema sembra ancora aperto a giudicare dalle nuove pubblicazioni che vedo nei programmi di molte conferenze. Un caro saluto antonio
Il giorno 2 apr 2022, alle ore 11:14, Giacomo Tesio <giacomo@tesio.it> ha scritto:
Ciao Antonio,
On Sat, 2 Apr 2022 05:41:04 +0000 Vetro' Antonio wrote:
My problem is that this weaponization is killing off trust.
sì sono in molti che si strappano le vesti quando gli informatici si accorgono di avere un potere enorme.
Anche la Open Washing Initiatiative ha scritto:
Understandably, this has caused outrage. We share that outrage. Protest is an important element of free speech that should be protected. Openness and inclusivity are cornerstones of the culture of open source, and the tools of open source communities are designed for global access and participation. Collectively, the very culture and tooling of open source—issue tracking, messaging systems, repositories—offer a unique signaling channel that may route around censorship imposed by tyrants to hold their power.
Instead of malware, a better approach to free expression would be to use messages in commit logs to send anti-propaganda messages and to issue trackers to share accurate news inside Russia of what is really happening in Ukraine at the hands of the Russian military, to cite two obvious possibilities. There are so many outlets for open source communities to be creative without harming everyone who happens to load the update.
https://opensource.org/blog/open-source-protestware-harms-open-source
Insomma va bene "weaponizzare" l'open source, ma non il codice! Quello serve alle aziende!
Aziende che ovviamente NON VOGLIONO LEGGERE IL CODICE CHE RIVENDONO!
Perché le 4 libertà non sono la ragione per cui l'open source esiste: l'open source esiste per sfruttare il lavoro non pagato di migliaia di sviluppatori.
Altrimenti le aziende leggerebbero i sorgenti!
Insomma tutti sanno che la Linux's law [1] è una favoletta. L'open source è pieno di backdoor, miner di criptovalute, spyware che nessuno controlla. Prendete Android! O Chrome!
Ma protestare attraverso il software, farsi notare, NO! Questo sì che è DAVVERO SCANDALOSO! Mina tutta la NARRAZIONE! Incrina la PROPAGANDA!
Tornate tutti ad iniettare backdoor invisibili, per pietà!!! :-D Ne va del futuro dell'open source initiative!
push organizations back into seeking refuge in commercial software with all its opaqueness and obscurity
ROFTL ! ! !
Per le aziende che non leggono il codice, l'OSS è indistinguibile dal software proprietario... eccetto per il prezzo, ovviamente.
Dunque non temente. Finché potranno continuare a sfruttare impunemente il lavoro non pagato di migliaia di sviluppatori, continueranno ad usarlo.
Giacomo
Il 03/04/22 19:37, Vetro' Antonio ha scritto:
[...] L'open source è vitale per una varietà di attori (piccole imprese, no profit, scuola, ecc), credo che il fattore fiducia/sicurezza sia importante per tutti, e che questo si sia incrinato
Bisognerebbe riflettere sul fatto che questa presunta "frattura" sia da ricondurre ad una reale alterazione delle dinamiche del mondo F/OSS oppure, viceversa, ad una presa di coscienze delle relative dinamiche da parte di quelle stesse categorie di attori (piccole imprese, no profit, scuola, ecc.) Dal mio punto di vista, quello che è recentemente accaduto _NON_ altera neanche di un epsilon lo scenario: il software è lo stesso. Chi lo sviluppa è lo stesso. Le forme di "controllo" di chi lo sviluppa, sono le stesse. _NON_ è cambiato nulla... salvo il fatto che qualche sviluppatore ha deciso di trasferire alcune sopravvenute acidita' di stomaco... sul codice che sviluppa. Trovo particolarmente grave, da parte di chi usa quei software [indipendentemente dal fatto che ne sia cosciente o meno], che ci si accorga solo ora che --di fatto-- si è "dipendenti" di qualcuno che non si conosce... con il quale non si ha alcun rapporto di subordinazione/contrattuale... e che, proprio per questo, .... puo' fare benissimo come gli pare! Prova ne è la numerosità di "easter-egg" noti da tempo [1]
Detto questo, non credo sia pratico né sostenibile leggersi il codice di tutti i componenti aperti che si vogliono riusare.
Non sarei cosi' tranciante. Sarà perché mi è capitato piu' volte di mettere le mani nei "sorgenti" di vari applicativi e librerie che uso... che l'idea di "guardare" e "capire", magari ex-ante... non la trovo affatto "da scartare". Chiaramente è una questione di trade-off: * se sto scrivendo il codice per supportare la tombolata del prossimo Natale, con tanto di Text-To-Speach, e quindi uso PERL e FESTIVAL... non mi preoccuperei troppo di un "bug". Mi basta una macro-occhiata ai parametri fondamentali di quello che uso [autore; eta' e versione delle librerie; data ultimo update; numero di commit; numero di contributori; etc. etc.] viceversa... * se sto contrattualizzando l'acquisto di un sistema missilistico con riconoscimento dei target, allora _VOGLIO_ avere accesso a tutto lo stack software utilizzato, fino ai disegni di tutti i PCB coinvolti ed al firmware di tutti i microcontrollori usati e di tutta la componentistica. L'obiettivo --fra gli altri-- sarebbe di verificare se --ad esempio-- chi mi vende il sistema non abbia (casualmente....) aggiunto delle feature che evitino la detonazione quando il target è nel paese del venditore (rilevato via coordinate simil-GPS, ad esempio) o, senza arrivare a tanto: * se sono una grossa software house (quelle di SOGEI? INPS? AGID? Dipartimento Innovazione?) allora _TUTTE_ le "dipendenze" dei miei software, dovrebbero stare "a casa mia" ed il processo di importazione/aggiornamento dovrebbe passare uno step di verifica esplicita. Insomma: non ti tiri giu' da Docker-Hub, GitHub o da NPM l'ultima release del componente e lo infili, senza colpo ferire, nel _TUO_ software. Quello che fai è: recupero i sorgenti, faccio il "diff", sottopongo il "diff" ad un umano e, quando questo umano preme un bottone... rimpacchetto il tutto e lo metto a disposizione per l'incorporazione. Tutto questo è tecnicamente difficile? È organizzativamente difficile? ...non credo proprio. Di fatto, è "banalità". Basta solo _VOLERLO_ fare. Ovviamente soltanto _DOPO_ che si è _SAPUTO_ che è possibile farlo... (Piccola nota a margine: questo approccio è _IMPOSSIBILE_ quando si utilizza software proprietario...)
Invece una via di mezzo dalla cieca adozione è analizzarli con strumenti che possano verificare qualità del software, inclusa la sicurezza, e poi testarli approfonditamente.
È certamente possibile automatizzare alcuni test di salubrita' del codice. E per software minimamente importanti potrebbero essere sufficienti. Non li vedo, pero', esaustivi: semplicemente rappresentano un punto sulla scala che va dal software non-critico al software super-critico: * non critico: import diretto dall'esterno, senza controllo * minimamente critico: import dall'esterno + verifica automatizzata del "diff" * critico: import dall'esterno + verifica automatizzata del "diff" + notifica del "diff" a team di "revisione" * molto critico: livello precedente, applicato anche alle componenti hardware sull'ultimo punto --che a qualcuno potrebbe apparire eccessivo o, peggio, infattibile-- faccio notare che... Amazon, a suo tempo, lo fece... e trovo' cose interessanti [2] Niente di impossibile quindi. Basta solo volerlo/doverlo fare... Bye, DV [1] https://en.wikipedia.org/wiki/Easter_egg_(media)#Software [2] https://www.bloomberg.com/news/features/2018-10-04/the-big-hack-how-china-us... recentemente ripreso e sviluppato anche qui: https://www.bloomberg.com/features/2021-supermicro/ -- Damiano Verzulli e-mail:damiano@verzulli.it --- possible?ok:while(!possible){open_mindedness++} --- "...I realized that free software would not generate the kind of income that was needed. Maybe in USA or Europe, you may be able to get a well paying job as a free software developer, but not here [in Africa]..." -- Guido Sohne - 1973-2008 http://ole.kenic.or.ke/pipermail/skunkworks/2008-April/005989.html
Ciao Antonio, ti assicuro che non intendevo attribuirti l'opinione dell'autore dell'articolo e mi scuso se in qualche modo le mie parole possono essere state fraintese in questo senso.
Detto questo, non credo sia pratico né sostenibile leggersi il codice di tutti i componenti aperti che si vogliono riusare.
Ahimé, nessuno legge le licenze. :-( ``` THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ``` https://opensource.org/licenses/MIT Clausole simili sono presenti in TUTTE le license open source (ed anche in tutte le license proprietarie!) La disponibilità dei sorgenti è ciò che caraterizza il codice open source (paradossalmente, persino di più del software libero, che è caratterizzato dalle libertà, di cui la disponibilità del software è solo precondizione dell'esercizio [1]). Se quei sorgenti non vengono studiati e nemmeno letti tale caratteristica definitoria viene completamente meno. Quindi chi installa software open source di cui non legge i sorgenti corre ESATTAMENTE gli stessi rischi che corre installando software proprietario. In particolare, software proprietario che non paga. ESATTAMENTE gli stessi rischi che corre usando il software preinstallato su Windows o il software preinstallato su Android. ESATTAMENTE gli stessi rischi che corre usando software proprietario trovato su un sito qualsiasi internet.
credo che il fattore fiducia/sicurezza sia importante per tutti
Attenzione che io non credo affatto si possa fare a meno della fiducia in un sistema cibernetico complesso. Trustless significa solo opaco e primo di responsabilità riconducibili. Io mi fido degli sviluppatori dei software liberi che utilizzo perché ci parlo, ne frequento le comunità e perché quando ho un dubbio ne leggo i sorgenti. Quando non posso e sono costretto a fidarmi, prendo precauzioni. Alcune rare volte, che posso letteralmente contare sulle dita di una mano accetto consapevolmente il rischio. Uno di questi casi è Linux, di cui ho letto molte parti, ma è che troppo vasto e complesso per una seria lettura completa. Tuttavia nel caso delle aziende, non è questione di praticità o sostenibilità: è SOLO una questione di costi e profitti. Ed esiste sempre almeno un'alternativa: non usare quel software.
Invece una via di mezzo dalla cieca adozione è analizzarli con strumenti che possano verificare qualità del software, inclusa la sicurezza, e poi testarli approfonditamente.
Sicuramente. Se le aziende effettuassero analisi statica ed investissero in sistemi di verifica formale automatizzata del software libero, avrebbero molte meno sorprese. Perché non lo fanno? Perché tanto scaricano i rischi sui clienti/utenti. E quando qualcosa va male è colpa degli sviluppatori cattivi! Tuttavia è ridicolo pensare che senza una lettura accurata sia possibile detectare uno spyware ad esempio, che viene progettato per non essere identificabile: se un software funziona da specifiche ma invia i dati degli utenti ad un ente ostile potrà facilmente aggirare i sistemi di controllo automatizzato. E qualche volta non sarà nemmeno necessario: pensa a Google Chrome che invia qualsiasi cosa venga scritta nella omnibox prima ancora che venga premuto il tasto Invio! Con il giusto marketing, anche il malware diventa una "feature"! :-D
Su entrambi gli aspetti ci feci ricerca alcuni anni fa, il problema è complesso e il tema sembra ancora aperto a giudicare dalle nuove pubblicazioni che vedo nei programmi di molte conferenze.
Leggerei volentieri la tua ricerca sul tema e tutte quelle che puoi condividere. Tuttavia permettimi di farti notare che con questo problema io ci convivo quotidianamente da 20 anni! :-D Quando dico che l'informatica è una disciplina ancora primitiva, faccio riferimento anche a questo. Ma perché così tanto software è scritto in un linguaggio ridicolo come JavaScript? Un hack di 10 giorni di un neolaureato letteralmente impossibile da sottoporre ad una verifica statica esauriente? Perché la verifica formale del software non viene mai nemmeno presa in considerazione da "piccole imprese, no profit, scuola, ecc" ? Perché la lettura dei sorgenti è "insostenibile"? Perché si pretende di esternalizzare le competenze. E l'open source permette di farlo a costo zero. Ti bastano un paio di programmatori sottopagati per costruire applicazioni apparentemente funzionanti (ma insicure, instabili etc...) perché riutilizzi componenti di altissima qualità scritti da sviluppatori che non paghi. Ma senza competenze sei vulnerabile. Il tuo software è vulnerabile. E questo resterà vero sempre: è per questo che tutti dovrebbero essere in condizione di debuggare il software che eseguono! Perché altrimenti diventano inevitabilmente ingranaggi vulnerabili! E nel momento in cui "piccole imprese, no profit, scuola, ecc" diventano dipendenti da questo sistema di sviluppo, normalizzano lo sfruttamento che lo caratterizza. Per questo l'OSI si strappa le vesti: perché ci sono sviluppatori che OSANO rendere evidente la dinamica di potere e sfruttamento su cui si basa l'informatica contemporanea! Osano vedere il bluff! Ma se invece di esternalizzare le competenze cercassimo di acquistarle? Se trattassimo il software come CULTURA? Leggere i sorgenti delle proprie dipendenze non sarebbe visto come una perdita di tempo insostenibile o poco pratica, ma come una attività fondamentale ed estremamente arricchente non solo per lo sviluppatore, ma per la comunità/azienda/scuola che lo paga! E' una fortuna che, ogni tanto, qualche sviluppatore ricordi a tutti che chi non legge i sorgenti, accetta proprio che il software faccia quel che gli pare! By design! Nella licenza! Penso (e spero) che questo tipo di proteste si diffonderà sempre di più. A poco varranno le lacrime di coccodrillo che scorrono a fiumi. Ci portiamo i mezzi di produzione saldamente ancorati al collo. Siamo pronti ad usarli. E siamo capaci. Perché non dovremmo? Giacomo [1] https://www.gnu.org/philosophy/free-sw.it.html
participants (3)
-
Damiano Verzulli -
Giacomo Tesio -
Vetro' Antonio