Niektorí vývojári kazia softvér s otvoreným zdrojovým kódom

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

Getty Images

Jednou z najúžasnejších vecí na open-source nie je to, že produkuje skvelý softvér. Je to tak, že toľko vývojárov odložilo svoje ego nabok, aby vytvorili skvelé programy s pomocou iných. Teraz však hŕstka programátorov uprednostňuje svoje vlastné obavy pred dobrom mnohých a potenciálne ničí open-source softvér pre každého.

Napríklad správca správcu balíkov JavaScriptu RIAEvangelist, Brandon Nozaki Miller, napísal a zverejnil balík zdrojových kódov npm s otvoreným kódom s názvom peacenotwar. Urobilo to málo, okrem toho, že vytlačilo správu o mieri na stolné počítače. Zatiaľ tak neškodné. 

Miller potom do balíka vložil škodlivý kód, aby prepísal súborové systémy používateľov, ak ich počítač mal ruskú alebo bieloruskú IP adresu. Potom to pridal ako závislosť k svojmu obľúbenému uzol-ipc program a okamžitý chaos! Početné servery a počítače vypadli, keď sa aktualizovali na najnovší kód a potom boli ich systémy vymazané. 

Millerova obrana, “Toto všetko je verejné, zdokumentované, licencované a s otvoreným zdrojom“nevydrží. 

Liran Tal, Snyk výskumník, ktorý problém odhalil, povedal: „Aj keď úmyselný a nebezpečný čin [je] niektorými vnímaný ako legitímny akt protestu, ako sa to odrazí na budúcej reputácii správcu a podiel v komunite vývojárov? Dalo by sa tomuto správcovi ešte niekedy dôverovať, že nebude nadväzovať na budúce činy v takýchto alebo ešte agresívnejších akciách pre akékoľvek projekty, na ktorých sa zúčastňuje? 

Miller nie je náhodný kľuk. Vytvoril veľa dobrého kódu, ako napríklad node-ipc a Server HTTP uzla. Môžete však dôverovať niektorému z jeho kódu, že nie je škodlivý? Aj keď to opisuje ako „nie malware, ale protestware, ktorý je plne zdokumentovaný“ iní jedovato nesúhlasia. 

Ako napísal jeden programátor GitHub: „Čo sa s tým stane, je, že bezpečnostné tímy v západných korporáciách, ktoré nemajú absolútne nič spoločné s Ruskom alebo politikou, začnú vidieť bezplatný a open-source softvér ako cesta pre útoky na dodávateľský reťazec (čo toto úplne je) a jednoducho začnite zakazovať bezplatný a open source softvér – všetok bezplatný a open source softvér – v rámci svojich spoločností.“ 

Ako napísal ďalší vývojár GitHub s rukoväťou nm17: „The faktor dôvery open source„ bola správna vec, ktorú urobili.“

Obaja robia platné body. Keď nemôžete použiť zdrojový kód, pokiaľ nesúhlasíte s politickým postojom jeho tvorcu, ako ho môžete používať s dôverou? 

Millerovo srdce môže byť na správnom mieste — Slava Ukraini! — je však softvér s otvoreným zdrojovým kódom infikovaný škodlivým nákladom tým správnym spôsobom, ako ochrániť ruskú inváziu na Ukrajinu? Nie, nie je. 

Metóda open source funguje len preto, že si navzájom dôverujeme. Keď je táto dôvera narušená, bez ohľadu na to, z akej príčiny, potom je základný rámec open-source narušený. Ako povedal Greg Kroah-Hartman, správca linuxového jadra stabilnej vetvy, keď sa študenti z University of Minnesota v roku 2021 zámerne pokúsili vložiť zlý kód do linuxového jadra pre experiment, povedal: „To, čo robia, je úmyselné škodlivé správanie a je neprijateľné a úplne neetické."

Ľudia dlho tvrdili, že open-source by mal zahŕňať aj etické ustanovenia. Napríklad rok 2009 Výnimka General Public License (eGPL), revízia GPLv2, sa pokúsil zakázať „výnimkám“, ako sú vojenskí používatelia a dodávatelia, používať jej kód. Nepodarilo sa to. Iné licencie, ako napr licencia JSON s jeho sladko naivnou klauzulou „softvér sa má používať na dobro, nie na zlo“ stále existuje, ale nikto to nepresadzuje.  

Nedávno predstavila aktivistka a vývojárka softvéru Coraline Ada Ehmke licenciu s otvoreným zdrojom, ktorá od používateľov vyžaduje, aby konali morálne. Konkrétne ona Hippokratova licencia pridané do MIT open-source licencia klauzula, ktorá hovorí: 

„Softvér nesmú používať jednotlivci, korporácie, vlády ani iné skupiny na systémy alebo činnosti, ktoré aktívne a vedome ohrozujú, poškodzujú alebo inak ohrozujú fyzické, duševné, ekonomické alebo všeobecné blaho znevýhodnených jednotlivcov alebo skupín v porušenie Všeobecnej deklarácie ľudských práv Organizácie Spojených národov“.

Znie to dobre, ale nie je to open source. Vidíte, open-source je sám o sebe etickou pozíciou. Jeho etika je obsiahnutá v Free Software Foundation's (FSF), s Štyri základné slobody. Toto je základom všetkých licencií s otvoreným zdrojovým kódom a ich základnej filozofie. Ako v tom čase povedal odborník na právo open source a profesor práva z Kolumbie Eben Moglen, že etické licencie nemôžu byť slobodným softvérom alebo licenciami s otvoreným zdrojom: 

"Sloboda nula, právo spustiť program na akýkoľvek účel, je na prvom mieste medzi štyrmi slobodami, pretože ak používatelia nemajú toto právo v súvislosti s počítačovými programami, ktoré spúšťajú, v konečnom dôsledku nemajú na tieto programy žiadne práva. Snahy udeliť povolenie len na dobré účely alebo zakázať tie zlé v očiach poskytovateľa licencie porušujú požiadavku na ochranu slobody nula.“ 

Inými slovami, ak nemôžete z akéhokoľvek dôvodu zdieľať svoj kód, váš kód nie je skutočne open source. 

Ďalším pragmatickejším argumentom o zákaze jednej skupiny používať softvér s otvoreným zdrojovým kódom je, že blokovanie niečoho, ako je adresa IP, je veľmi širokým štetcom. Ako Florian Roth, bezpečnostná spoločnosť Nextron SystemsVedúci výskumu, ktorý uvažoval „vypnutie mojich bezplatných nástrojov v systémoch s určitým nastavením jazyka a časového pásma,“ rozhodol sa nakoniec nie. prečo? Pretože týmto konaním „nástroje by sme zakázali aj na systémoch kritikov a voľnomyšlienkárov ktorí odsudzujú konanie ich vlád." 

Bohužiaľ, nie sú to len ľudia, ktorí sa snažia používať open source na to, čo považujú za vyšší etický účel, čo spôsobuje problémy open-source softvéru. 

Začiatkom tohto roka vývojár JavaScriptu Marak Squires zámerne sabotoval svoje nejasné, ale životne dôležité open source knižnice JavaScriptu „colors.js“ a „faker.js.“ Výsledok? Desiatky tisíc programov JavaScript vybuchli.

prečo? Stále to nie je úplne jasné, ale v odvtedy vymazanom príspevku na GitHub Squires napísal: „S úctou, Už nebudem podporovať Fortune 500 ( a iné menšie firmy ) s mojou bezplatnou prácou. Viac nie je čo povedať. Berte to ako príležitosť poslať mi šesťcifernú ročnú zmluvu alebo rozložiť projekt a nechať na ňom pracovať niekoho iného.“ Ako si viete predstaviť, tento pokus vydierať si cestu k výplate mu až tak nevyšiel. 

A potom sú tu ľudia, ktorí zámerne vkladajú malvér do svojho open source kódu pre zábavu a zisk. Napríklad bezpečnostná firma DevOps JFrog objavil v úložisku NPM 17 nových škodlivých balíčkov JavaScriptu, ktoré zámerne napádajú a kradnú používateľove tokeny Discord. Tie je potom možné použiť na Discord komunikačná a digitálna distribučná platforma.

Okrem vytvárania nových škodlivých programov s otvoreným zdrojovým kódom, ktoré vyzerajú nevinne a užitočne, iní útočníci berú starý, opustený softvér a prepisujú ho tak, aby obsahoval zadné vrátka na krádeže krypto mincí. Jedným z takýchto programov bol event-stream. Do nej bol vložený škodlivý kód na krádež bitcoinových peňaženiek a prevod ich zostatkov na server Kuala Lumpur. Podobných epizód bolo v priebehu rokov niekoľko.

S každým takýmto krokom sa viera v open-source softvér opotrebováva. Keďže open-source je pre moderný svet absolútne nevyhnutný, je to mizerný trend. 

Čo s tým môžeme urobiť? No, po prvé, mali by sme naozaj veľmi pozorne zvážiť, kedy, ak vôbec, by sme mali zablokovať používanie open-source kódu. 

Praktickejšie povedané, musíme začať používať Linux Foundation's Výmena dát softvérového balíka (SPDX) a Softvérový kusovník (SBOM). Spoločne nám presne povedia, aký kód používame v našich programoch a odkiaľ pochádza. Potom budeme oveľa viac schopní robiť informované rozhodnutia.

Ľudia dnes často používajú kód s otvoreným zdrojovým kódom bez toho, aby presne vedeli, čo spúšťajú, alebo nekontrolujú, či v ňom nie sú problémy. Predpokladajú, že je s tým všetko v poriadku. To nikdy nebol rozumný predpoklad. Dnes je to vyslovene hlúposť. 

Dokonca aj so všetkými týmito nedávnymi zmenami je open source stále lepší a bezpečnejší ako alternatívy proprietárneho softvéru v čiernej skrinke. Musíme však kód skontrolovať a overiť namiesto toho, aby sme mu slepo dôverovali. Je to jediná múdra vec, ktorú treba urobiť dopredu.

Súvisiace príbehy:



zdroj