Daži izstrādātāji piesārņo atvērtā pirmkoda programmatūru

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

Getty Images

Viena no pārsteidzošākajām atvērtā pirmkoda lietām nav tā, ka tas rada lielisku programmatūru. Tas ir tāpēc, ka tik daudzi izstrādātāji noliek savu ego, lai ar citu palīdzību izveidotu lieliskas programmas. Tomēr tagad daži programmētāji izvirza savas bažas par labu daudzajām un, iespējams, sagrauj atvērtā pirmkoda programmatūru ikvienam.

Piemēram, JavaScript pakotņu pārvaldnieka uzturētājs RIAEvangelist Brendons Nozaki Millers, uzrakstīja un publicēja atvērtā koda npm pirmkoda pakotni ar nosaukumu peacenotwar. Tas neko nedarīja, bet izdrukāja ziņojumu par mieru galddatoriem. Pagaidām tik nekaitīgs. 

Pēc tam Millers pakotnē ievietoja ļaunprātīgu kodu, lai pārrakstītu lietotāju failu sistēmas, ja viņu datoram bija Krievijas vai Baltkrievijas IP adrese. Pēc tam viņš to pievienoja kā atkarību savam populārajam mezgls-ipc programma un tūlītējs haoss! Daudzi serveri un personālie datori pazuda, kad tie tika atjaunināti uz jaunāko kodu, un pēc tam to sistēmām tika izdzēsti diskdziņi. 

Millera aizsardzība, "Tas viss ir publisks, dokumentēts, licencēts un atvērtā koda”, neiztur. 

Liran Tal, Snyk pētnieks, kurš atklāja problēmu, teica: "Pat ja daži uzskata apzinātu un bīstamu darbību kā likumīgu protesta aktu, kā tas ietekmē uzturētāja turpmāko reputāciju un ieguldījums izstrādātāju kopienā? Vai šim uzturētājam kādreiz atkal uzticētos, ka viņš nesekos turpmākajām darbībām šādās vai vēl agresīvākās darbībās nevienā projektā, kurā viņš piedalās? 

Millers nav nejaušs kloķis. Viņš ir izveidojis daudz laba koda, piemēram, node-ipc un Mezgla HTTP serveris. Bet vai varat uzticēties, ka kāds no viņa kodiem nav ļaunprātīgs? Kamēr viņš to raksturo kā "nevis ļaunprātīga programmatūra, [bet] protesta programmatūra, kas ir pilnībā dokumentēta”, citi indīgi nepiekrīt. 

Kā rakstīja kāds GitHub programmētājs: “Tas, kas notiks ar šo lietu, ir tas, ka Rietumu korporāciju drošības komandas, kurām nav nekāda sakara ar Krieviju vai politiku, sāks redzēt. bezmaksas un atvērtā koda programmatūru kā ceļu piegādes ķēdes uzbrukumiem (kas tas ir pilnībā) un vienkārši sāciet aizliegt bezmaksas un atvērtā pirmkoda programmatūru — visu bezmaksas un atvērtā pirmkoda programmatūru — savos uzņēmumos. 

Kā rakstīja cits GitHub izstrādātājs ar rokturi nm17: “The atvērtā koda uzticības faktors, kas balstījās uz izstrādātāju labo gribu, tagad praktiski vairs nav, un tagad arvien vairāk cilvēku saprot, ka kādu dienu viņu bibliotēku/lietojumprogrammu, iespējams, varēs izmantot, lai darītu/pateiktu visu, ko kāds nejaušs izstrādātājs internetā iedomājas. bija pareizā lieta, ko viņi darīja.”

Abi sniedz derīgus punktus. Ja jūs nevarat izmantot pirmkodu, ja vien nepiekrītat tā veidotāja politiskajai nostājai, kā jūs varat to izmantot droši? 

Millera sirds var būt īstajā vietā — Slava Ukraini! — bet vai atvērtā pirmkoda programmatūra, kas inficēta ar ļaunprātīgu lietderīgo slodzi, ir pareizais veids, kā aizsargāt Krievijas iebrukumu Ukrainā? Nē, tas nav. 

Atvērtā koda metode darbojas tikai tāpēc, ka mēs viens otram uzticamies. Ja šī uzticēšanās tiek salauzta neatkarīgi no iemesla, atvērtā pirmkoda pamatsistēma tiek salauzta. Kā teica Gregs Kroah-Hartman, stabilās filiāles Linux kodola uzturētājs, kad Minesotas Universitātes studenti 2021. gadā eksperimentam tīši mēģināja ievietot sliktu kodu Linux kodolā, sacīja: "Tas, ko viņi dara, ir tīša ļaunprātīga rīcība un nav pieņemams un pilnīgi neētisks.

Cilvēki jau sen ir apgalvojuši, ka atvērtajā pirmkoda sistēmā jāiekļauj arī ētikas noteikumi. Piemēram, 2009. g Izņēmums vispārējā publiskā licence (eGPL), pārskatīšana GPLv2, mēģināja aizliegt “izņēmumiem”, piemēram, militārajiem lietotājiem un piegādātājiem, izmantot savu kodu. Tas neizdevās. Citas licences, piemēram, JSON licence ar savu saldi naivo klauzulu "programmatūra jāizmanto labam, nevis ļaunam" joprojām pastāv, bet neviens to nepilda.  

Pavisam nesen aktīviste un programmatūras izstrādātāja Coraline Ada Ehmke ieviesa atvērtā pirmkoda licenci, kas liek lietotājiem rīkoties morāli. Konkrēti, viņa Hipokrāta licence pievienots MIT atvērtā koda licence klauzula, kurā teikts: 

“Programmatūru nedrīkst izmantot privātpersonas, korporācijas, valdības vai citas grupas sistēmām vai darbībām, kas aktīvi un apzināti apdraud, kaitē vai citādi apdraud trūcīgo personu vai grupu fizisko, garīgo, ekonomisko vai vispārējo labklājību. Apvienoto Nāciju Organizācijas Vispārējās cilvēktiesību deklarācijas pārkāpums.

Izklausās labi, taču tas nav atvērts avots. Redziet, atvērtais avots pats par sevi ir ētiska nostāja. Tās ētika ir ietverta Brīvās programmatūras fonds (FSF)s Četras būtiskas brīvības. Tas ir visu atvērtā pirmkoda licenču un to pamatfilozofijas pamats. Kā toreiz teica atvērtā pirmkoda juridiskais eksperts un Kolumbijas tiesību profesors Ebens Moglens, ka ētiskās licences nevar būt bezmaksas programmatūra vai atvērtā koda licences: 

"Brīvības nulle, tiesības palaist programmu jebkuram mērķim, ir pirmajā vietā no četrām brīvībām, jo, ja lietotājiem nav šo tiesību attiecībā uz viņu palaistajām datorprogrammām, viņiem galu galā nav nekādu tiesību uz šīm programmām. Centieni dot atļauju tikai labiem lietojumiem vai aizliegt sliktos licences devēja acīs pārkāpj prasību aizsargāt nulles brīvību. 

Citiem vārdiem sakot, ja kādu iemeslu dēļ nevarat kopīgot savu kodu, jūsu kods nav īsti atvērtā koda. 

Vēl viens pragmatiskāks arguments par aizliegumu vienai grupai izmantot atvērtā pirmkoda programmatūru ir tāds, ka bloķēšana, piemēram, IP adrese, ir ļoti plaša birste. Kā Florians Rots, apsardzes uzņēmums Nextron sistēmas"Pētniecības vadītājs, kurš uzskatīja "atspējojot manus bezmaksas rīkus sistēmās ar noteiktiem valodas un laika joslas iestatījumiem,” beidzot nolēma to nedarīt. Kāpēc? Jo, tā darot, "mēs arī atspējotu rīkus kritiķu un brīvdomātāju sistēmām kas nosoda savu valdību rīcību. 

Diemžēl atklātā pirmkoda programmatūras problēmas rada ne tikai cilvēki, kas mēģina izmantot atvērtā pirmkoda mērķi, ko viņi uzskata par augstāku ētisku mērķi. 

Šī gada sākumā JavaScript izstrādātājs Maraks Skvairs apzināti sabotēja savas neskaidrās, bet ļoti svarīgās atvērtā pirmkoda Javascript bibliotēkas “colors.js” un “faker.js”. Rezultāts? Desmitiem tūkstošu JavaScript programmu uzsprāga.

Kāpēc? Tas joprojām nav pilnīgi skaidrs, taču kopš tā laika dzēstā GitHub ierakstā Squires rakstīja: "Ar cieņu, Es vairs neatbalstīšu Fortune 500s ( un citiem mazākiem uzņēmumiem ) ar manu bezmaksas darbu. Nav daudz ko citu teikt. Izmantojiet to kā iespēju nosūtīt man sešciparu gada līgumu vai sadalīt projektu un likt kādam citam pie tā strādāt. Kā jūs varētu iedomāties, šis mēģinājums šantažēt ceļu uz algu viņam neizdevās tik labi. 

Un tad ir cilvēki, kuri apzināti ievieto ļaunprātīgu programmatūru savā atvērtā pirmkoda kodā, lai izklaidētos un gūtu peļņu. Piemēram, drošības firma DevOps JFrog NPM repozitorijā atklāja 17 jaunas JavaScript ļaunprātīgas pakotnes, kas apzināti uzbrūk un nozog lietotāja Discord marķierus. Pēc tam tos var izmantot uz Discord sakaru un digitālās izplatīšanas platforma.

Papildus jaunu ļaunprātīgu atvērtā pirmkoda programmu izveidei, kas izskatās nevainīgas un noderīgas, citi uzbrucēji ņem vecu, pamestu programmatūru un pārraksta to, iekļaujot kriptovalūtu monētu zagšanas aizmugures durvis. Viena no šādām programmām bija notikumu plūsma. Tajā bija ievietots ļaunprātīgs kods, lai nozagtu bitkoinu makus un pārsūtītu to atlikumus uz Kualalumpuras serveri. Gadu gaitā ir bijušas vairākas līdzīgas epizodes.

Ar katru šādu kustību ticība atvērtā pirmkoda programmatūrai tiek nolietota. Tā kā atvērtais pirmkods ir ārkārtīgi svarīgs mūsdienu pasaulei, tā ir slikta tendence. 

Ko mēs varam darīt lietas labā? Pirmkārt, mums patiešām ļoti rūpīgi jāapsver, kad mums vajadzētu bloķēt atvērtā pirmkoda izmantošanu. 

Praktiskāk, mums jāsāk pieņemt Linux fonds Programmatūras pakotnes datu apmaiņa (SPDX) un Programmatūras materiālu saraksts (SBOM). Kopā tie mums precīzi pateiks, kādu kodu mēs izmantojam savās programmās un no kurienes tas nāk. Tad mēs varēsim pieņemt pārdomātus lēmumus.

Mūsdienās cilvēki bieži izmanto atvērtā pirmkoda kodu, nezinot, ko tieši viņi izmanto, un nepārbaudot, vai tajā nav problēmu. Viņi pieņem, ka ar to viss ir kārtībā. Tas nekad nav bijis gudrs pieņēmums. Šodien tas ir galīgi muļķīgi. 

Pat ar visām šīm nesenajām izmaiņām atvērtais avots joprojām ir labāks un drošāks nekā melnās kastes patentētās programmatūras alternatīvas. Bet mums ir jāpārbauda un jāpārbauda kods, nevis akli tam jāuzticas. Tā ir vienīgā gudrā lieta, ko darīt turpmāk.

Saistītie stāsti:



avots