Jotkut kehittäjät sotkevat avoimen lähdekoodin ohjelmistoja

gettyimages-1159346361-malicious-code-skull-crossbones.jpg

Getty Images

Yksi avoimen lähdekoodin hämmästyttävimmistä asioista ei ole se, että se tuottaa loistavia ohjelmistoja. Se johtuu siitä, että niin monet kehittäjät laittavat egonsa syrjään luodakseen mahtavia ohjelmia muiden avulla. Nyt kuitenkin kourallinen ohjelmoijia asettaa omat huolensa monien ja mahdollisesti tuhoavien avoimen lähdekoodin ohjelmistojen edun edelle.

Esimerkiksi JavaScriptin paketinhallinnan ylläpitäjä RIAEvangelist, Brandon Nozaki Miller, kirjoitti ja julkaisi avoimen koodin npm-lähdekoodipaketin nimeltä peacenotwar. Se ei vain tulostanut viestin rauhan puolesta pöytäkoneille. Toistaiseksi vaaratonta. 

Miller lisäsi sitten haitallisen koodin pakettiin korvatakseen käyttäjien tiedostojärjestelmät, jos heidän tietokoneella oli Venäjän tai Valko-Venäjän IP-osoite. Sitten hän lisäsi sen riippuvuutena suosituksiin solmu-ipc ohjelma ja välitön kaaos! Lukuisat palvelimet ja tietokoneet hajosivat, kun ne päivitettiin uusimpaan koodiin, ja sitten heidän järjestelmiensä asemat tyhjennettiin. 

Millerin puolustus,Tämä kaikki on julkista, dokumentoitua, lisensoitua ja avoimen lähdekoodin”, ei kestä. 

Liran Tal, snyk Ongelman paljastanut tutkija sanoi: "Vaikka jotkut pitävät tahallista ja vaarallista tekoa laillisena protestina, miten se heijastuu ylläpitäjän tulevaan maineeseen ja panostaa kehittäjäyhteisöön? Luotetaanko tähän ylläpitäjään enää koskaan, ettei se seuraa tulevia tekoja tällaisissa tai vielä aggressiivisemissa toimissa minkään hankkeen osalta, johon hän osallistuu? 

Miller ei ole satunnainen kampi. Hän on tuottanut paljon hyvää koodia, kuten node-ipc ja Solmun HTTP-palvelin. Mutta voitko luottaa siihen, että hänen koodinsa ei ole haitallinen? Vaikka hän kuvailee sitä "ei haittaohjelma, [mutta] protestiohjelma, joka on täysin dokumentoitu”, muut ovat myrkyllisen eri mieltä. 

Kuten eräs GitHub-ohjelmoija kirjoitti: "Tälle tulee tapahtumaan se, että länsimaisten yritysten turvallisuusryhmät, joilla ei ole mitään tekemistä Venäjän tai politiikan kanssa, alkavat nähdä. ilmaisia ​​ja avoimen lähdekoodin ohjelmistoja toimitusketjun hyökkäyksiä varten (mitä tämä täysin on) ja alkaa yksinkertaisesti kieltää ilmaisia ​​ja avoimen lähdekoodin ohjelmistoja - kaikki ilmaisia ​​ja avoimen lähdekoodin ohjelmistoja - yrityksissään." 

Kuten toinen GitHub-kehittäjä, jolla on kahva nm17, kirjoitti: " avoimen lähdekoodin luottamustekijä, joka perustui kehittäjien hyvään tahtoon, on nyt käytännössä poissa, ja nyt yhä useammat ihmiset ymmärtävät, että jonain päivänä heidän kirjastoaan/sovellustaan ​​voidaan mahdollisesti käyttää hyväksi tehdä/sanoa mitä tahansa joku satunnainen kehittäjä Internetissä. oli oikea asia, jonka he tekivät."

Molemmat antavat päteviä pisteitä. Kun et voi käyttää lähdekoodia, ellet ole samaa mieltä sen tekijän poliittisen kannan kanssa, kuinka voit käyttää sitä luottavaisin mielin? 

Millerin sydän saattaa olla oikeassa paikassa – Slava Ukraini! — mutta onko haitallisella hyötykuormalla saastuttama avoimen lähdekoodin ohjelmisto oikea tapa suojata Venäjän hyökkäystä Ukrainaan? Ei se ei ole. 

Avoimen lähdekoodin menetelmä toimii vain, koska luotamme toisiimme. Kun tämä luottamus murtuu, olipa syy mikä tahansa, avoimen lähdekoodin peruskehys rikkoutuu. Kuten vakaan haaran Linux-ytimen ylläpitäjä Greg Kroah-Hartman sanoi, kun Minnesotan yliopiston opiskelijat yrittivät tarkoituksella lisätä huonoa koodia Linux-ytimeen kokeilua varten vuonna 2021, sanoivat: "Se mitä he tekevät, on tahallista haitallista toimintaa ja ei ole hyväksyttävää ja täysin epäeettistä."

Ihmiset ovat pitkään väittäneet, että avoimen lähdekoodin pitäisi sisältää myös eettiset määräykset. Esimerkiksi 2009 Poikkeus Yleinen julkinen lisenssi (eGPL), versio GPLv2, yritti kieltää "poikkeuksia", kuten sotilaallisia käyttäjiä ja toimittajia, käyttämästä koodiaan. Se epäonnistui. Muut lisenssit, kuten JSON-lisenssi sen suloisen naiivi "ohjelmistoa tulee käyttää hyvään, ei pahaan" -lauseke on edelleen olemassa, mutta kukaan ei pakota sitä voimaan.  

Äskettäin aktivisti ja ohjelmistokehittäjä Coraline Ada Ehmke esitteli avoimen lähdekoodin lisenssin, joka vaatii käyttäjiään toimimaan moraalisesti. Nimenomaan häntä Hippokrateen lisenssi lisätty MIT avoimen lähdekoodin lisenssi lauseke, jossa sanotaan: 

"Yksilöt, yritykset, hallitukset tai muut ryhmät eivät saa käyttää ohjelmistoa järjestelmiin tai toimintoihin, jotka aktiivisesti ja tietoisesti vaarantavat, vahingoittavat tai muuten uhkaavat heikossa asemassa olevien henkilöiden tai ryhmien fyysistä, henkistä, taloudellista tai yleistä hyvinvointia. Yhdistyneiden Kansakuntien ihmisoikeuksien yleismaailmallisen julistuksen rikkominen."

Kuulostaa hyvältä, mutta se ei ole avoimen lähdekoodin. Näetkö, avoin lähdekoodi on sinänsä eettinen asema. Sen etiikka sisältyy Free Software Foundation (FSF)n Neljä olennaista vapautta. Tämä on perusta kaikille avoimen lähdekoodin lisensseille ja niiden ydinfilosofialle. Kuten avoimen lähdekoodin lainopillinen asiantuntija ja Columbian lakiprofessori Eben Moglen sanoi tuolloin, että eettiset lisenssit eivät voi olla ilmaisia ​​ohjelmistoja tai avoimen lähdekoodin lisenssejä: 

"Vapaus nolla, oikeus suorittaa ohjelmaa mihin tahansa tarkoitukseen, on neljässä vapaudessa ensimmäisenä, koska jos käyttäjillä ei ole tätä oikeutta suorittamiinsa tietokoneohjelmiin, heillä ei lopulta ole oikeuksia näihin ohjelmiin ollenkaan. Yritykset antaa lupa vain hyvään käyttöön tai kieltää huonot käyttöluvan myöntäjän silmissä rikkovat vaatimusta suojella nollavapautta." 

Toisin sanoen, jos et voi jakaa koodiasi jostain syystä, koodisi ei ole todella avoimen lähdekoodin. 

Toinen pragmaattisempi argumentti yhden ryhmän kieltämiseksi käyttämästä avoimen lähdekoodin ohjelmistoja on se, että esimerkiksi IP-osoitteen estäminen on erittäin laaja harja. Kuten Florian Roth, turvallisuusyhtiö Nextron SystemsTutkimusjohtaja, joka pohtipoistan ilmaiset työkaluni käytöstä järjestelmissä tietyillä kieli- ja aikavyöhykeasetuksella”, päätti lopulta olla tekemättä. Miksi? Koska tekemällä niin "poistaisimme myös työkalut arvostelijoiden ja vapaa-ajattelijoiden järjestelmistä jotka tuomitsevat hallitustensa toimet." 

Valitettavasti avoimen lähdekoodin ohjelmistoille ei aiheuta ongelmia vain ihmiset, jotka yrittävät käyttää avointa lähdekoodia korkeampaan eettiseen tarkoitukseen. 

Aiemmin tänä vuonna JavaScript-kehittäjä Marak Squires sabotoi tarkoituksella hämäriä, mutta elintärkeitä avoimen lähdekoodin Javascript-kirjastojaan "colors.js" ja "faker.js". Lopputulos? Kymmenet tuhannet JavaScript-ohjelmat räjähtivät.

Miksi? Se ei ole vieläkään täysin selvää, mutta sen jälkeen poistetussa GitHub-viestissä Squires kirjoitti: "Kunnioittavasti, En aio enää tukea Fortune 500s ( ja muut pienemmät yritykset ) ilmaisella työlläni. Ei ole paljon muuta sanottavaa. Käytä tätä mahdollisuutena lähettää minulle kuusinumeroinen vuosisopimus tai jakaa projekti ja saada joku muu työskentelemään sen parissa." Kuten saatat kuvitella, tämä yritys kiristää hänen tiensä palkkaan ei toiminut hänelle niin hyvin. 

Ja sitten on ihmisiä, jotka tarkoituksella lisäävät haittaohjelmia avoimeen lähdekoodiinsa huvin ja hyödyn vuoksi. Esimerkiksi DevOps-turvayritys JFrog löysi 17 uutta JavaScript-haittapakettia NPM-arkistosta, jotka tarkoituksella hyökkäävät käyttäjän Discord-tunnuksiin ja varastavat niitä. Näitä voidaan sitten käyttää Discord-viestintä- ja digitaalinen jakelualusta.

Sen lisäksi, että ne luovat uusia haitallisia avoimen lähdekoodin ohjelmia, jotka näyttävät viattomilta ja hyödyllisiltä, ​​muut hyökkääjät ottavat vanhoja, hylättyjä ohjelmistoja ja kirjoittavat ne uudelleen sisältämään salauskolikoiden varastamisen takaovia. Yksi tällainen ohjelma oli tapahtuma-stream. Siihen oli lisätty haitallinen koodi varastaakseen bitcoin-lompakoita ja siirtääkseen niiden saldot Kuala Lumpurin palvelimelle. Vastaavia jaksoja on ollut useita vuosien varrella.

Jokaisen tällaisen liikkeen myötä usko avoimen lähdekoodin ohjelmistoihin on kulunut. Koska avoin lähdekoodi on ehdottoman tärkeä nykymaailmalle, tämä on surkea trendi. 

Mitä voimme tehdä asialle? Ensinnäkin meidän pitäisi todellakin harkita erittäin huolellisesti, milloin meidän pitäisi estää avoimen lähdekoodin käyttö, jos koskaan. 

Käytännöllisemmin meidän on alettava omaksua käyttö Linux Foundationin Ohjelmistopaketin tiedonvaihto (SPDX) ja Ohjelmistomateriaali (SBOM). Yhdessä nämä kertovat meille tarkalleen, mitä koodia käytämme ohjelmissamme ja mistä se tulee. Silloin pystymme tekemään tietoisempia päätöksiä.

Nykyään ihmiset käyttävät usein avointa lähdekoodia tietämättä tarkalleen, mitä he käyttävät, tai tarkistamatta sitä ongelmien varalta. He olettavat, että kaikki on hyvin. Se ei ole koskaan ollut viisas oletus. Nykyään se on suorastaan ​​typerää. 

Kaikista näistä viimeaikaisista muutoksista huolimatta avoin lähdekoodi on edelleen parempi ja turvallisempi kuin mustan laatikon omat ohjelmistovaihtoehdot. Mutta meidän on tarkistettava ja vahvistettava koodi sen sijaan, että luottaisimme siihen sokeasti. Se on ainoa järkevä teko jatkossa.

Aiheeseen liittyvät tarinat:



lähde