Mõned arendajad rikuvad avatud lähtekoodiga tarkvara

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

Getty Images

Üks hämmastavamaid asju avatud lähtekoodiga ei ole see, et see toodab suurepärast tarkvara. Asi on selles, et nii mõnigi arendaja jätab oma ego kõrvale, et luua teiste abiga suurepäraseid programme. Nüüd aga seavad käputäis programmeerijaid oma mured paljude ja potentsiaalselt kõigi avatud lähtekoodiga tarkvara hüvedest ettepoole.

Näiteks JavaScripti paketihalduri hooldaja RIAEvangelist Brandon Nozaki Miller, kirjutas ja avaldas avatud koodiga npm lähtekoodipaketi nimega peacenotwar. See ei teinud muud, kui printis lauaarvutitele rahumeeli. Siiani nii kahjutu. 

Seejärel sisestas Miller paketti pahatahtliku koodi, et kirjutada üle kasutajate failisüsteemid, kui nende arvutil oli Venemaa või Valgevene IP-aadress. Seejärel lisas ta selle oma populaarsele sõltuvusena sõlm-ipc programm ja kohene kaos! Paljud serverid ja arvutid läksid alla, kuna need värskendati uusimale koodile ja seejärel kustutati nende süsteemide draivid. 

Milleri kaitse, "See kõik on avalik, dokumenteeritud, litsentsitud ja avatud lähtekoodiga”, ei pea vastu. 

Liran Tal, Snyk Probleemi avastanud teadlane ütles: "Isegi kui mõned tajuvad tahtlikku ja ohtlikku tegu legitiimse protestiaktina, kuidas see peegeldab hooldaja tulevast mainet ja arendajate kogukonnas osaleda? Kas seda hooldajat usaldataks kunagi, et ta ei jälgiks tulevasi tegusid sellistes või veelgi agressiivsemates tegevustes ühegi projekti puhul, milles nad osalevad? 

Miller pole juhuslik vänt. Ta on loonud palju head koodi, näiteks node-ipc ja Sõlme HTTP-server. Kuid kas saate usaldada, et mõni tema kood pole pahatahtlik? Kuigi ta kirjeldab seda kui "mitte pahavara, [vaid] protestivara, mis on täielikult dokumenteeritud,” pole teised mürgiselt nõus. 

Nagu üks GitHubi programmeerija kirjutas: "Sellega juhtub see, et lääne ettevõtete turvameeskonnad, kellel pole Venemaa ega poliitikaga absoluutselt mingit pistmist, hakkavad nägema. tasuta ja avatud lähtekoodiga tarkvara tarneahela rünnakute jaoks (mida see täiesti on) ja lihtsalt hakake oma ettevõtetes tasuta ja avatud lähtekoodiga tarkvara – kõik tasuta ja avatud lähtekoodiga tarkvara – keelama. 

Nagu kirjutas teine ​​käepidemega nm17 GitHubi arendaja: "The avatud lähtekoodi usaldustegur, mis põhines arendajate heal tahtel, on nüüdseks praktiliselt kadunud ja üha enam inimesi mõistab, et ühel päeval saab nende teeki/rakendust ära kasutada selleks, et teha/ütelda, mida iganes mõni juhuslik internetiarendaja arvab. oli õige asi, mida nad tegid.”

Mõlemad annavad kehtivaid punkte. Kui te ei saa lähtekoodi kasutada, kui te ei nõustu selle tegija poliitilise seisukohaga, kuidas saate seda enesekindlalt kasutada? 

Milleri süda võib olla õiges kohas — Slava Ukraini! — aga kas pahatahtliku koormaga nakatunud avatud lähtekoodiga tarkvara on õige viis kaitsta Venemaa sissetungi Ukrainasse? Ei see ei ole. 

Avatud lähtekoodiga meetod töötab ainult seetõttu, et me usaldame üksteist. Kui see usaldus puruneb, olenemata põhjusest, katkeb avatud lähtekoodiga põhiraamistik. Nagu ütles stabiilse haru Linuxi kerneli hooldaja Greg Kroah-Hartman, kui Minnesota ülikooli üliõpilased üritasid 2021. aastal katse jaoks Linuxi tuumasse sihilikult halba koodi sisestada, ütlesid: "Nad teevad tahtlikku pahatahtlikku käitumist ja ei ole vastuvõetav ja täiesti ebaeetiline.

Inimesed on pikka aega väitnud, et avatud lähtekoodiga peaks hõlmama ka eetilisi sätteid. Näiteks 2009. a Erandlik üldine avalik litsents (eGPL), läbivaatamine GPLv2, püüdis keelata "eranditel", nagu sõjaväekasutajad ja tarnijad, oma koodi kasutamist. See ebaõnnestus. Muud litsentsid, näiteks JSON-litsents oma armsalt naiivse klausliga "tarkvara tuleb kasutada hea, mitte kurja jaoks" on endiselt olemas, kuid keegi seda ei jõusta.  

Hiljuti tutvustas aktivist ja tarkvaraarendaja Coraline Ada Ehmke avatud lähtekoodiga litsentsi, mis nõuab selle kasutajatelt moraalset tegutsemist. Täpsemalt tema Hippokratese litsents lisatud MIT avatud lähtekoodiga litsents klausel, mis ütleb: 

Üksikisikud, ettevõtted, valitsused või muud rühmad ei tohi tarkvara kasutada süsteemide või tegevuste jaoks, mis aktiivselt ja teadlikult ohustavad, kahjustavad või muul viisil ohustavad ebasoodsas olukorras olevate isikute või rühmade füüsilist, vaimset, majanduslikku või üldist heaolu. ÜRO inimõiguste ülddeklaratsiooni rikkumine.

Kõlab hästi, kuid see pole avatud lähtekoodiga. Näete, avatud lähtekoodiga on iseenesest eetiline seisukoht. Selle eetika sisaldub Vaba Tarkvara Fond (FSF)s Neli olulist vabadust. See on kõigi avatud lähtekoodiga litsentside ja nende põhifilosoofia alus. Nagu ütles avatud lähtekoodiga õigusekspert ja Columbia õiguse professor Eben Moglen, et eetilised litsentsid ei saa olla tasuta tarkvara ega avatud lähtekoodiga litsentsid: 

"Vabadus null, õigus programmi mis tahes eesmärgil käitada, on nelja vabaduse hulgas esikohal, sest kui kasutajatel pole nende käitatavate arvutiprogrammide suhtes seda õigust, pole neil lõppkokkuvõttes nende programmide suhtes üldse õigusi. Püüdlused anda luba ainult headeks kasutusteks või keelata litsentsiandja silmis halbu, rikuvad nullvabaduse kaitsmise nõuet. 

Teisisõnu, kui te ei saa oma koodi mingil põhjusel jagada, pole teie kood tõeliselt avatud lähtekoodiga. 

Veel üks pragmaatilisem argument ühel rühmal avatud lähtekoodiga tarkvara kasutamise keelamise kohta on see, et millegi, näiteks IP-aadressi, blokeerimine on väga lai pintsel. Florian Rothina, turvafirma Nextroni süsteemid" Teadustöö juht, kes arvassüsteemides tasuta tööriistade keelamine teatud keele ja ajavööndi seadetega,” otsustas lõpuks mitte teha. Miks? Sest nii tehes "keelaksime ka kriitikute ja vabamõtlejate süsteemide tööriistad kes mõistavad hukka oma valitsuste tegevuse. 

Kahjuks ei põhjusta avatud lähtekoodiga tarkvara probleeme mitte ainult inimesed, kes püüavad kasutada avatud lähtekoodiga seda kõrgemal eetilisel eesmärgil. 

Selle aasta alguses saboteeris JavaScripti arendaja Marak Squires oma ebaselgeid, kuid eluliselt olulisi avatud lähtekoodiga Javascripti teeke Colors.js ja faker.js. Tulemus? Kümned tuhanded JavaScripti programmid lendasid õhku.

Miks? See pole ikka veel täiesti selge, kuid pärast seda kustutatud GitHubi postituses kirjutas Squires: "Austusega Ma ei toeta enam Fortune 500 ( ja teised väiksemad ettevõtted ) minu tasuta tööga. Polegi palju muud öelda. Võtke seda kui võimalust saata mulle kuuekohaline aastane leping või projekteerida ja lasta kellelgi teisel selle kallal töötada. Nagu võite ette kujutada, ei tulnud see katse oma palgale väljapressimist tema jaoks nii hästi välja tuua. 

Ja siis on inimesi, kes panevad meelega pahavara oma avatud lähtekoodiga lõbu ja kasumi eesmärgil. Näiteks DevOpsi turvafirma JFrog avastas NPM-i hoidlast 17 uut JavaScripti pahatahtlikku paketti, mis sihilikult ründavad ja varastavad kasutaja Discordi märke. Neid saab seejärel kasutada Discord side ja digitaalse levitamise platvorm.

Lisaks uute pahatahtlike avatud lähtekoodiga programmide loomisele, mis näevad välja süütud ja abistavad, võtavad teised ründajad vana, mahajäetud tarkvara ja kirjutavad need ümber, et lisada krüptomüntide varastamise tagauksed. Üks selline programm oli sündmuste voog. Sellesse oli sisestatud pahatahtlik kood, et varastada bitcoini rahakotte ja kanda nende saldod Kuala Lumpuri serverisse. Aastate jooksul on olnud mitmeid sarnaseid episoode.

Iga sellise käiguga kulub usk avatud lähtekoodiga tarkvarasse. Kuna avatud lähtekoodiga on kaasaegse maailma jaoks ülioluline, on see halb trend. 

Mida me saame sellega teha? Esiteks peaksime väga hoolikalt kaaluma, millal peaksime avatud lähtekoodi kasutamise blokeerima. 

Praktilisemalt peame hakkama kasutusele võtma Linuxi sihtasutus Tarkvarapaketi andmevahetus (SPDX) ja Tarkvara materjalide loetelu (SBOM). Need koos annavad meile täpselt teada, millist koodi me oma programmides kasutame ja kust see pärineb. Siis suudame palju paremini teha teadlikke otsuseid.

Tänapäeval kasutavad inimesed sageli avatud lähtekoodi, teadmata täpselt, mida nad kasutavad, ega kontrollimata, kas sellel on probleeme. Nad eeldavad, et sellega on kõik hästi. See pole kunagi olnud tark oletus. Tänapäeval on see lausa rumal. 

Isegi kõigi nende hiljutiste muudatustega on avatud lähtekoodiga tarkvara endiselt parem ja turvalisem kui musta kasti patenteeritud tarkvara alternatiivid. Kuid me peame koodi kontrollima ja kinnitama, selle asemel, et seda pimesi usaldada. See on ainus tark tegu, mida edaspidi teha.

Seonduvad uudised:



allikas