Egyes fejlesztők elrontják a nyílt forráskódú szoftvereket

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

Getty Images

Az egyik legcsodálatosabb dolog a nyílt forráskóddal kapcsolatban nem az, hogy nagyszerű szoftvereket hoz létre. Sok fejlesztő félreteszi az egóját, hogy nagyszerű programokat hozzon létre mások segítségével. Most azonban néhány programozó a saját aggodalmát a sok és mindenki számára potenciálisan tönkretevő nyílt forráskódú szoftver haszna elé helyezi.

Például a JavaScript csomagkezelő karbantartója, a RIAEvangelist, Brandon Nozaki Miller, írt és közzétett egy nyílt kódú npm forráskód-csomagot peacenotwar néven. Nem sokat tett, csak egy üzenetet nyomtatott az asztali számítógépek békéjéért. Eddig ártalmatlan. 

Miller ezután rosszindulatú kódot illesztett a csomagba, hogy felülírja a felhasználók fájlrendszerét, ha számítógépük orosz vagy fehérorosz IP-címmel rendelkezik. Aztán hozzátette, mint függőséget a népszerűségéhez csomópont-ipc program és azonnali káosz! Számos szerver és számítógép leállt, amikor a legújabb kódra frissítették, majd a rendszerükből törölték a meghajtókat. 

Miller védelme,Mindez nyilvános, dokumentált, licencelt és nyílt forráskódú”, nem állja meg a helyét. 

Liran Tal, a Snyk A problémát feltáró kutató azt mondta: „Még akkor is, ha egyesek a szándékos és veszélyes cselekedetet legitim tiltakozásnak tekintik, hogyan tükrözi ez a fenntartó jövőbeni hírnevét és érdekelt a fejlesztői közösségben? Megbízható-e valaha is ez a fenntartó, hogy ne kövesse nyomon a jövőbeni ilyen vagy még agresszívabb akciókat olyan projektek esetében, amelyekben részt vesz? 

Miller nem véletlenszerű hajtókar. Sok jó kódot készített, mint például a node-ipc és Node HTTP Server. De megbízhat abban, hogy valamelyik kódja nem rosszindulatú? Miközben ezt így írja le „nem rosszindulatú program, [hanem] tiltakozó szoftver, amely teljesen dokumentált”, mások mérgesen nem értenek egyet. 

Ahogy az egyik GitHub programozó írta: „Mi fog történni ezzel az az, hogy a nyugati vállalatok biztonsági csapatai, amelyeknek semmi közük Oroszországhoz vagy politikához, látni fogják. ingyenes és nyílt forráskódú szoftverek az ellátási lánc támadásaihoz (ami ez teljesen így van), és egyszerűen kezdjék el az ingyenes és nyílt forráskódú szoftvereket – az összes ingyenes és nyílt forráskódú szoftvert – betiltani a vállalataikon belül.” 

Ahogy egy másik, nm17 fogantyúval rendelkező GitHub fejlesztő írta: „A nyílt forráskódú bizalmi tényező, ami a fejlesztők jóakaratán alapult, mára gyakorlatilag eltűnt, és egyre többen jönnek rá, hogy egy napon a könyvtárukat/alkalmazásukat kihasználhatják arra, hogy bármit megtegyenek/mondjanak ki, amit egy véletlenszerű fejlesztő gondol az interneten. helyes volt, amit tettek.”

Mindkettő érvényes pontokat ad. Ha nem használhatja a forráskódot, hacsak nem ért egyet a készítőjének politikai álláspontjával, hogyan használhatja magabiztosan? 

Lehet, hogy Miller szíve jó helyen jár – Slava Ukraini! — de vajon a rosszindulatú rakomány által megfertőzött nyílt forráskódú szoftverek a megfelelő módja annak, hogy megvédjük Oroszország ukrajnai invázióját? Nem ez nem. 

A nyílt forráskódú módszer csak azért működik, mert megbízunk egymásban. Ha ez a bizalom megszakad, függetlenül attól, hogy milyen okból, akkor a nyílt forráskódú alapvető keret megtörik. Ahogy Greg Kroah-Hartman, a stabil ág Linux kernel karbantartója mondta, amikor a Minnesotai Egyetem hallgatói szándékosan rossz kódot próbáltak beilleszteni a Linux kernelbe egy kísérlet során 2021-ben, ezt mondta: „Amit csinálnak, az szándékos rosszindulatú viselkedés. nem elfogadható és teljesen etikátlan."

Az emberek régóta érvelnek amellett, hogy a nyílt forráskódnak tartalmaznia kell az etikai rendelkezéseket is. Például a 2009-es Kivételes általános nyilvános licenc (eGPL), a GPLv2, megpróbálta megtiltani a „kivételeknek”, például katonai felhasználóknak és beszállítóknak a kódja használatát. Elbukott. Egyéb licencek, mint pl JSON licenc az édesen naiv „a szoftvert jóra kell használni, nem rosszra” kitétel még mindig létezik, de senki sem kényszeríti ki.  

A közelmúltban Coraline Ada Ehmke aktivista és szoftverfejlesztő nyílt forráskódú licencet vezetett be, amely megköveteli a felhasználóktól, hogy erkölcsösen cselekedjenek. Pontosabban őt Hippokratészi engedély hozzáadva a MIT nyílt forráskódú licenc záradék, amely kimondja: 

„A szoftvert egyének, vállalatok, kormányok vagy más csoportok nem használhatják olyan rendszerekre vagy tevékenységekre, amelyek aktívan és tudatosan veszélyeztetik, károsítják vagy más módon veszélyeztetik hátrányos helyzetű egyének vagy csoportok fizikai, mentális, gazdasági vagy általános jólétét. az ENSZ Emberi Jogok Egyetemes Nyilatkozatának megsértése."

Jól hangzik, de nem nyílt forráskódú. Látod, a nyílt forráskód önmagában etikus álláspont. Etikáját tartalmazza a Free Software Foundation (FSF)„s Négy alapvető szabadság. Ez az alapja minden nyílt forráskódú licencnek és alapvető filozófiájának. Amint a nyílt forráskódú jogi szakértő és a Columbia jogász professzora, Eben Moglen elmondta, hogy az etikus licencek nem lehetnek ingyenes szoftverek vagy nyílt forráskódú licencek: 

"A szabadság nulla, a program bármilyen célú futtatásának joga, a négy szabadság közül az első helyen áll, mert ha a felhasználóknak nincs meg ez a joguk az általuk futtatott számítógépes programok tekintetében, akkor végső soron egyáltalán nem rendelkeznek jogokkal ezekhez a programokhoz. Az a törekvés, hogy az engedélyt csak jó célra adják meg, vagy az engedélyes szemében a rosszat tiltsák meg, sérti a nulladik szabadság védelmének követelményét." 

Más szóval, ha valamilyen okból nem tudja megosztani a kódját, akkor a kódja nem igazán nyílt forráskódú. 

Egy másik pragmatikusabb érv a nyílt forráskódú szoftverek egy csoportjának megtiltásával kapcsolatban az, hogy valami, például az IP-cím blokkolása nagyon tág ecset. Mint Florian Roth, biztonsági cég Nextron rendszerekA kutatás vezetője, aki úgy vélte,ingyenes eszközeim letiltása a rendszereken bizonyos nyelvi és időzóna-beállításokkal” – végül úgy döntött, hogy nem. Miért? Mert ezzel „a kritikusok és szabadgondolkodók rendszerein is letiltjuk az eszközöket amelyek elítélik kormányaik tetteit.” 

Sajnos nem csak azok az emberek okoznak gondot a nyílt forráskódú szoftvereknek, akik a nyílt forráskódot olyan célokra próbálják használni, amelyeket magasabb etikai célnak látnak. 

Az év elején Marak Squires JavaScript-fejlesztő szándékosan szabotálta homályos, de életbevágóan fontos nyílt forráskódú Javascript-könyvtárait, a „colors.js” és „faker.js”-t. Az eredmény? JavaScript-programok tízezrei robbantak fel.

Miért? Még mindig nem teljesen világos, de egy azóta törölt GitHub-bejegyzésben Squires ezt írta: „Tisztelettel! Többé nem fogom támogatni a Fortune 500-at ( és más kisebb méretű cégek ) ingyenes munkáimmal. Nem nagyon lehet mást mondani. Használja ki ezt a lehetőséget, hogy küldjön nekem egy hat számjegyű éves szerződést, vagy vegye fel a projektet, és valaki más dolgozzon rajta.” Elképzelhető, hogy ez a kísérlet, hogy megzsarolja a fizetéshez vezető utat, nem jött be neki olyan jól. 

És vannak olyanok, akik szándékosan rosszindulatú programokat helyeznek el nyílt forráskódjukba szórakozás és profitszerzés céljából. Például a DevOps biztonsági cég JFrog 17 új JavaScript rosszindulatú csomagot fedezett fel az NPM-tárban, amelyek szándékosan támadják meg és lopják el a felhasználó Discord tokenjeit. Ezek ezután használhatók a Discord kommunikációs és digitális terjesztési platform.

Amellett, hogy új rosszindulatú, nyílt forráskódú programokat hoznak létre, amelyek ártatlannak és segítőkésznek tűnnek, más támadók elveszik a régi, elhagyott szoftvereket, és átírják azokat, hogy kriptoérmelopó hátsó ajtókat tartalmazzanak. Az egyik ilyen program az eseményfolyam volt. Rosszindulatú kódot illesztettek bele, hogy bitcoin pénztárcákat lopjanak el, és egyenlegüket egy Kuala Lumpuri szerverre vigyék át. Több hasonló epizód is volt az évek során.

Minden ilyen lépéssel megkopik a nyílt forráskódú szoftverekbe vetett hit. Mivel a nyílt forráskód létfontosságú a modern világ számára, ez egy silány trend. 

Mit tehetünk ellene? Nos, egyrészt nagyon alaposan meg kell fontolnunk, hogy mikor blokkoljuk le a nyílt forráskód használatát. 

Gyakorlatiasabban el kell kezdenünk a használatát Linux Alapítvány Szoftvercsomag adatcsere (SPDX) és a Szoftveranyagjegyzék (SBOM). Ezek együtt pontosan megmondják, hogy milyen kódot használunk a programjainkban, és honnan származik. Akkor sokkal jobban tudunk megalapozott döntéseket hozni.

Manapság az emberek gyakran használnak nyílt forráskódot anélkül, hogy tudnák, hogy pontosan mit is futtatnak, vagy hogy nem ellenőriznék a problémákat. Azt hiszik, hogy minden rendben van vele. Ez soha nem volt okos feltételezés. Ma ez egyenesen ostobaság. 

Mindezen közelmúltbeli változtatások ellenére is a nyílt forráskód még mindig jobb és biztonságosabb, mint a feketedobozos szabadalmaztatott szoftverek alternatívái. De ellenőriznünk kell a kódot, ahelyett, hogy vakon bíznánk benne. Ez az egyetlen okos dolog a továbbiakban.

Kapcsolódó történetek:



forrás