Некои програмери го прекршуваат софтверот со отворен код

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

Getty Images

Една од најневеројатните работи за софтверот со отворен код не е тоа што произведува одличен софтвер. Тоа е што толку многу програмери го оставаат своето его настрана за да создадат одлични програми со помош на други. Сега, сепак, неколку програмери ги ставаат своите грижи пред доброто на многуте и потенцијално уништувачки софтвер со отворен код за секого.

На пример, одржувачот на менаџерот на пакети на JavaScript, RIAEvangelist, Брендон Нозаки Милер, напиша и објави пакет со изворен код со отворен код npm наречен миренотвор. Не направи малку, туку отпечати порака за мир на десктоп компјутерите. Досега, толку безопасно. 

Милер потоа вметнал злонамерен код во пакетот за да ги презапише датотечните системи на корисниците доколку нивниот компјутер имал IP адреса на Русија или Белорусија. Потоа го додаде како зависност на неговата популарна јазол-ipc програма и инстант хаос! Бројни сервери и компјутери паднаа додека се ажурираа до најновиот код и потоа нивните системи беа избришани нивните дискови. 

Одбраната на Милер, “Сето ова е јавно, документирано, лиценцирано и со отворен код,“ не издржува. 

Лиран Тал, на Снајк истражувачот кој го откри проблемот рече: „Дури и ако намерниот и опасниот чин [се смета] од некои како легитимен чин на протест, како тоа се одразува на идната репутација на одржувачот и удел во заедницата на програмери? Дали некогаш повторно би му се верувало на овој одржувач да не се надоврзува на идните дејствија во такви или уште поагресивни дејствија за какви било проекти во кои учествуваат?“ 

Милер не е случаен чудак. Тој произведе многу добар код, како што е node-ipc, и Јазол HTTP сервер. Но, дали можете да верувате на кој било од неговите кодови дека не е злонамерен? Додека тој го опишува како „не малициозен софтвер, [туку] протестен софтвер кој е целосно документиран”, други отровно не се согласуваат. 

Како што напиша еден програмер на GitHub, „Она што ќе се случи со ова е дека безбедносните тимови во западните корпорации кои немаат апсолутно никаква врска со Русија или политиката ќе почнат да гледаат слободен и софтвер со отворен код како авенија за напади на синџирот на снабдување (што ова е целосно) и едноставно започнете да забранувате бесплатен и софтвер со отворен код - целиот слободен и софтвер со отворен код - во нивните компании. 

Како што напиша друг развивач на GitHub со рачката nm17, „The фактор на доверба на отворен код, која се засноваше на добрата волја на програмерите, сега практично нема, а сега, сè повеќе луѓе сфаќаат дека еден ден, нивната библиотека/апликација евентуално може да се искористат за да се направи/каже што и да помисли некој случаен развивач на интернет. беше вистинската работа што ја направија'“.

И двајцата даваат валидни точки. Кога не можете да го користите изворниот код освен ако не се согласувате со политичкиот став на неговиот создавач, како можете да го користите со доверба? 

Срцето на Милер можеби е на вистинското место - Слава Украина! - но дали софтверот со отворен код заразен со злонамерен товар е вистинскиот начин да се заштити руската инвазија на Украина? Не, не е. 

Методот со отворен код функционира само затоа што си веруваме еден на друг. Кога таа доверба е скршена, без разлика од која причина, тогаш фундаменталната рамка на софтверот со отворен код е скршена. Како што рече Грег Кроа-Хартман, одржувач на кернелот на Линукс за стабилната гранка, кога студентите од Универзитетот во Минесота намерно се обидоа да вметнат лош код во кернелот на Линукс за експеримент во 2021 година, рече: „Она што тие го прават е намерно злонамерно однесување и не е прифатливо и целосно неетичко“.

Луѓето долго време тврдат дека софтверот со отворен код треба да вклучува и етички одредби. На пример, 2009 година Исклучок Општа јавна лиценца (eGPL), ревизија на GPLv2, се обиде да им забрани на „исклучоците“, како што се воените корисници и добавувачи, да го користат неговиот код. Не успеа. Други лиценци како што се JSON лиценца со својата слатко наивна клаузула „софтверот ќе се користи за добро, а не за зло“ сè уште постои, но никој не ја спроведува.  

Неодамна, активистката и развивач на софтвер Коралина Ада Ехмке воведе лиценца со отворен код која бара од нејзините корисници да дејствуваат морално. Поточно, таа Хипократова дозвола додадени на МИТ лиценца за отворен код клаузула во која се вели: 

„Софтверот не смее да се користи од поединци, корпорации, влади или други групи за системи или активности кои активно и свесно ја загрозуваат, штетат или на друг начин ја загрозуваат физичката, менталната, економската или општата благосостојба на непривилегираните поединци или групи во прекршување на Универзалната декларација за човекови права на Обединетите нации“.

Звучи добро, но не е со отворен код. Гледате, отворен код е само по себе етичка позиција. Неговата етика е содржана во Фондацијата за слободен софтвер (ФСС)'s Четири суштински слободи. Ова е основата за сите лиценци со отворен код и нивната основна филозофија. Како правен експерт за отворен код и професор по право во Колумбија, Ебен Моглен, тогаш рече дека етичките лиценци не можат да бидат слободен софтвер или лиценци со отворен код: 

"Слобода нула, правото на извршување на програмата за која било цел е на прво место во четирите слободи затоа што доколку корисниците го немаат тоа право во однос на компјутерските програми што ги извршуваат, тие на крајот немаат никакви права во тие програми. Напорите да се даде дозвола само за добра употреба, или да се забранат лошите во очите на давачот на лиценцата, го прекршуваат барањето за заштита на слободата нула“. 

Со други зборови, ако не можете да го споделите вашиот код поради која било причина, вашиот код не е вистински отворен извор. 

Друг попрагматичен аргумент за забрана на една група да користи софтвер со отворен код е дека блокирањето на нешто како што е IP адресата е многу широка четка. Како Флоријан Рот, компанија за обезбедување Нектрон системи„Раководител на истражување, кој сметаше“оневозможување на моите бесплатни алатки на системите со одредени поставки за јазик и временска зона“, конечно одлучи да не го стори тоа. Зошто? Затоа што со тоа, “би ги оневозможиле и алатките на системите на критичари и слободоумни мислители кои ги осудуваат постапките на нивните влади“. 

За жал, не се само луѓето кои се обидуваат да користат отворен код за она што тие го гледаат како повисока етичка цел што предизвикуваат проблеми за софтверот со отворен код. 

Претходно оваа година, развивачот на JavaScript, Марак Скваерс, намерно ги саботираше неговите нејасни, но витално важни библиотеки со отворен код Javascript „colors.js“ и „faker.js“. Резултатот? Десетици илјади JavaScript програми се разнесоа.

Зошто? Сè уште не е сосема јасно, но во оттогаш избришаната објава на GitHub, Squires напиша: „Со почит, Повеќе нема да поддржувам Fortune 500s (и други помали фирми) со мојата бесплатна работа. Нема што друго да се каже. Искористете го ова како можност да ми испратите годишен договор со шест цифри или да го прекинете проектот и некој друг да работи на него“. Како што може да си замислите, овој обид да се уцени неговиот пат до плата не му успеа толку добро. 

А потоа, има луѓе кои намерно ставаат малициозен софтвер во нивниот код со отворен код за забава и профит. На пример, безбедносната фирма DevOps FФрог откри 17 нови JavaScript малициозни пакети во складиштето NPM кои намерно ги напаѓаат и крадат Discord токените на корисникот. Овие потоа може да се користат на Дискорд комуникациска и дигитална дистрибутивна платформа.

Покрај создавањето на нови малициозни програми со отворен код кои изгледаат невино и корисни, други напаѓачи земаат стар, напуштен софтвер и го препишуваат за да вклучат задни врати за крадење крипто монети. Една таква програма беше настан-стрим. Во него беше вметнат злонамерен код за да украде биткоин паричници и да ги пренесе нивните салда на сервер во Куала Лумпур. Имаше неколку слични епизоди низ годините.

Со секој таков потег, вербата во софтверот со отворен код се намалува. Бидејќи софтверот со отворен код е апсолутно витален за современиот свет, ова е лош тренд. 

Што можеме да направиме во врска со тоа? Па, за една работа, треба многу внимателно да размислиме кога, ако некогаш, треба да ја блокираме употребата на код со отворен код. 

Попрактично, мора да почнеме да ја усвојуваме употребата на Линукс Фондацијата Размена на податоци за софтверски пакети (SPDX) Софтверска сметка за материјали (SBOM). Заедно овие ќе ни кажат точно кој код го користиме во нашите програми и од каде доаѓа. Тогаш, ќе бидеме многу поспособни да донесуваме информирани одлуки.

Денес, многу често луѓето користат код со отворен код без да знаат точно што користат или да го проверат дали има проблеми. Тие претпоставуваат дека се е во ред со тоа. Тоа никогаш не било паметна претпоставка. Денес, тоа е сосема глупаво. 

Дури и со сите овие неодамнешни промени, софтверот со отворен код е сè уште подобар и побезбеден од софтверските алтернативи на заштитената црна кутија. Но, мораме да го провериме и потврдиме кодот наместо слепо да му веруваме. Тоа е единствената паметна работа што треба да се направи понатаму.

Поврзани приказни:



извор