Някои разработчици нарушават софтуера с отворен код

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

Getty Images

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

Например, поддържащият мениджър на пакети на JavaScript RIAEvangelist, Брандън Нозаки Милър, написа и публикува пакет с изходен код npm с отворен код, наречен peacenotwar. Не направи малко, освен да отпечата съобщение за мир на настолни компютри. Засега толкова безобидно. 

След това Милър вмъкна злонамерен код в пакета, за да презапише файловите системи на потребителите, ако компютърът им има IP адрес в Русия или Беларус. След това го добави като зависимост към своята популярна възел-ipc програма и моментален хаос! Много сървъри и компютри се повредиха, когато се актуализираха до най-новия код, а след това техните системи бяха изтрити. 

Защитата на Милър, “Всичко това е публично, документирано, лицензирано и с отворен код”, не издържа. 

Лиран Тал, Сник изследовател, който разкри проблема, каза: „Дори ако умишленото и опасно действие [се] възприема от някои като легитимен акт на протест, как това се отразява на бъдещата репутация на поддържащия и дял в общността на разработчиците? Ще има ли някога доверие на този поддържащ да не последва бъдещи действия в такива или дори по-агресивни действия за проекти, в които участва?" 

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

Както един програмист на GitHub написа: „Това, което ще се случи с това е, че екипите по сигурността в западните корпорации, които нямат абсолютно нищо общо с Русия или политиката, ще започнат да виждат безплатен софтуер с отворен код като начин за атаки на веригата за доставки (което е напълно) и просто започнете да забранявате безплатния софтуер с отворен код – всички безплатни и с отворен код – в рамките на техните компании. 

Както написа друг разработчик на GitHub с дръжката nm17, „The фактор на доверие на отворен код, който се основаваше на добрата воля на разработчиците, сега на практика е изчезнал и сега все повече хора осъзнават, че един ден тяхната библиотека/приложение може да бъде използвано, за да прави/казва каквото си помисли някой случаен разработчик в интернет ' беше правилното нещо, което трябваше да направят."

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

Сърцето на Милър може да е на правилното място — Слава Украйни! — но дали софтуерът с отворен код, заразен със злонамерен полезен товар, е правилният начин да се защити инвазията на Русия в Украйна? Не, не е. 

Методът с отворен код работи само защото имаме доверие един на друг. Когато това доверие е нарушено, независимо по каква причина, тогава основната рамка на отворения код е нарушена. Както Грег Кроа-Хартман, поддържащият ядрото на Linux за стабилния клон, каза, когато студенти от Университета на Минесота умишлено се опитаха да вмъкнат лош код в ядрото на Linux за експеримент през 2021 г., каза: „Това, което правят, е умишлено злонамерено поведение и не е приемливо и напълно неетично."

Хората отдавна твърдят, че отвореният код трябва да включва и етични разпоредби. Например 2009 г Изключение Общ публичен лиценз (eGPL), ревизия на GPLv2, се опита да забрани на „изключенията“, като военни потребители и доставчици, да използват неговия код. Не успя. Други лицензи като JSON лиценз с нейната сладко наивна клауза „софтуерът ще се използва за добро, а не за зло“ все още съществува, но никой не я прилага.  

Съвсем наскоро активистът и разработчик на софтуер Коралайн Ада Емке представи лиценз с отворен код, който изисква от потребителите да действат морално. По-конкретно, тя Хипократов лиценз добавен към MIT лиценз с отворен код клауза, която гласи: 

„Софтуерът не може да се използва от лица, корпорации, правителства или други групи за системи или дейности, които активно и съзнателно застрашават, вредят или заплашват по друг начин физическото, психическото, икономическото или общото благополучие на лица или групи в неравностойно положение в нарушение на Всеобщата декларация на ООН за правата на човека“.

Звучи добре, но не е с отворен код. Виждате ли, отвореният код сам по себе си е етична позиция. Неговата етика се съдържа в Фондация за свободен софтуер (FSF)Четири основни свободи. Това е основата за всички лицензи с отворен код и тяхната основна философия. Както каза по това време юридическият експерт с отворен код и професор по право от Колумбия Ебен Моглен, че етичните лицензи не могат да бъдат свободен софтуер или лицензи с отворен код: 

"Свобода нула, правото на стартиране на програмата за каквато и да е цел, е на първо място в четирите свободи, защото ако потребителите нямат това право по отношение на компютърните програми, които изпълняват, те в крайна сметка нямат никакви права върху тези програми. Усилията да се даде разрешение само за добри употреби или да се забранят лошите в очите на лицензодателя, нарушават изискването за защита на свободата нула." 

С други думи, ако не можете да споделите кода си по някаква причина, кодът ви не е наистина с отворен код. 

Друг по-прагматичен аргумент за забрана на една група да използва софтуер с отворен код е, че блокирането на нещо като IP адрес е много широка четка. Като Флориан Рот, охранителна компания Системи Nextron' Ръководител на изследването, който смята, чедеактивиране на безплатните ми инструменти на системи с определени настройки за език и часови зони“, накрая реши да не го прави. Защо? Защото по този начин „също така бихме деактивирали инструментите на системите на критиците и свободомислещите които осъждат действията на своите правителства." 

За съжаление, не само хората, които се опитват да използват отворен код за това, което виждат като по-висока етична цел, причиняват проблеми на софтуера с отворен код. 

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

Защо? Все още не е напълно ясно, но в след изтрита публикация в GitHub, Squires написа: „С уважение, Вече няма да подкрепям Fortune 500s (и други по-малки компании) с безплатната ми работа. Няма какво друго да се каже. Възползвайте се от това като възможност да ми изпратите годишен договор с шест цифри или да разклоните проекта и да накарате някой друг да работи по него. Както може да си представите, този опит да изнудва пътя му към заплата не му се получи толкова добре. 

Освен това има хора, които умишлено поставят зловреден софтуер в своя отворен код за забавление и печалба. Например фирмата за сигурност DevOps JFrog откри 17 нови JavaScript злонамерени пакета в хранилището на NPM, които умишлено атакуват и крадат токените на Discord на потребителя. След това те могат да се използват на Платформа за комуникации и цифрово разпространение на Discord.

Освен създаването на нови злонамерени програми с отворен код, които изглеждат невинни и полезни, други нападатели вземат стар, изоставен софтуер и го пренаписват, за да включат бекдори за кражба на криптовалути. Една такава програма беше поток от събития. В него беше поставен злонамерен код, за да открадне биткойн портфейли и да прехвърли баланса им към сървър в Куала Лумпур. През годините имаше няколко подобни епизода.

С всеки такъв ход вярата в софтуера с отворен код намалява. Тъй като отвореният код е абсолютно жизненоважен за съвременния свят, това е лоша тенденция. 

Какво можем да направим по въпроса? Е, от една страна, трябва да обмислим много внимателно кога, ако изобщо, трябва да блокираме използването на код с отворен код. 

По-практично трябва да започнем да приемаме употребата на Linux Foundation Обмен на данни за софтуерен пакет (SPDX) намлява Софтуерна спецификация (SBOM). Заедно те ще ни кажат точно какъв код използваме в нашите програми и откъде идва. Тогава ще сме много по-способни да вземаме информирани решения.

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

Дори и с всички тези скорошни промени, отвореният код все още е по-добър и по-безопасен от алтернативите на собствения софтуер за черна кутия. Но трябва да проверяваме и проверяваме кода, вместо да му се доверяваме сляпо. Това е единственото умно нещо, което трябва да направите занапред.

Свързани истории:



източник