Некаторыя распрацоўшчыкі забруджваюць праграмнае забеспячэнне з адкрытым зыходным кодам

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 г Выключэнне General Public License (eGPL), перагляд ст GPLv2, спрабаваў забараніць «выключэнням», такім як ваенныя карыстальнікі і пастаўшчыкі, выкарыстоўваць свой код. Гэта не атрымалася. Іншыя ліцэнзіі, такія як Ліцэнзія JSON з яго салодка наіўным пунктам «праграмнае забеспячэнне павінна выкарыстоўвацца для дабра, а не для зла» усё яшчэ існуе, але ніхто яго не забяспечвае.  

Зусім нядаўна актывістка і распрацоўшчык праграмнага забеспячэння Каралін Ада Эмке прадставіла ліцэнзію з адкрытым зыходным кодам, якая патрабуе ад карыстальнікаў дзейнічаць маральна. У прыватнасці, яе Ліцэнзія гіпакрата дададзена да Ліцэнзія MIT з адкрытым зыходным кодам пункт, у якім гаворыцца: 

«Праграмнае забеспячэнне не можа выкарыстоўвацца асобнымі асобамі, карпарацыямі, урадамі або іншымі групамі для сістэм або дзейнасці, якія актыўна і свядома ствараюць небяспеку, шкодзяць або іншым чынам пагражаюць фізічнаму, псіхічнаму, эканамічнаму або агульнаму дабрабыту асобаў або груп з непрывілеяваных груп у парушэнне Усеагульнай дэкларацыі правоў чалавека ААН».

Гучыць добра, але гэта не з адкрытым зыходным кодам. Разумееце, адкрыты зыходны код сам па сабе з'яўляецца этычнай пазіцыяй. Яе этыка ўтрымліваецца ў Фонд вольнага праграмнага забеспячэння (FSF)«s Чатыры асноўныя свабоды. Гэта аснова ўсіх ліцэнзій з адкрытым зыходным кодам і іх асноўнай філасофіі. Як сказаў у той час юрыдычны эксперт з адкрытым зыходным кодам і прафесар права Калумбіі Эбен Моглен, што этычныя ліцэнзіі не могуць быць свабодным праграмным забеспячэннем або ліцэнзіямі з адкрытым зыходным кодам: 

"Свабоды нуль, права на запуск праграмы для любых мэтаў, займае першае месца ў чатырох свабодах, таму што калі карыстальнікі не маюць гэтага права ў дачыненні да кампутарных праграм, якія яны запускаюць, яны ў канчатковым рахунку не маюць ніякіх правоў на гэтыя праграмы наогул. Намаганні даць дазвол толькі для добрага выкарыстання або забараніць дрэнныя ў вачах ліцэнзіяра парушаюць патрабаванне аб абароне свабоды нуля». 

Іншымі словамі, калі вы не можаце падзяліцца сваім кодам па якой-небудзь прычыне, ваш код не з'яўляецца сапраўды адкрытым зыходным кодам. 

Іншы больш прагматычны аргумент наконт забароны адной групе выкарыстоўваць праграмнае забеспячэнне з адкрытым зыходным кодам заключаецца ў тым, што блакіроўка чагосьці, напрыклад, IP-адрасу, - гэта вельмі шырокая пэндзаль. Як Фларыян Рот, ахоўная кампанія Сістэмы Nextron«Начальнік навуковых даследаванняў, які палічыў «адключэнне маіх бясплатных інструментаў у сістэмах з пэўнымі наладамі мовы і гадзіннага пояса», урэшце вырашыў гэтага не рабіць. Чаму? Таму што, робячы гэта, «мы б таксама адключылі інструменты на сістэмах крытыкаў і вальнадумцаў якія асуджаюць дзеянні сваіх урадаў». 

На жаль, не толькі людзі, якія спрабуюць выкарыстоўваць адкрыты зыходны код для таго, што яны бачаць як вышэйшую этычную мэту, выклікаюць праблемы з адкрытым зыходным кодам. 

Раней у гэтым годзе распрацоўшчык JavaScript Марак Сквайрс наўмысна сабатаваў свае незразумелыя, але жыццёва важныя бібліятэкі Javascript з адкрытым зыходным кодам «colors.js» і «faker.js». Вынік? Узарваліся дзесяткі тысяч праграм на JavaScript.

Чаму? Гэта ўсё яшчэ не зусім ясна, але ў выдаленай пасля таго часу публікацыі GitHub Сквайрс напісаў: «З павагай, Я больш не збіраюся падтрымліваць Fortune 500s (і іншыя кампаніі меншага памеру) з маёй бясплатнай працай. Больш няма чаго сказаць. Вазьміце гэта як магчымасць даслаць мне гадавы кантракт з шасцізначнымі лічбамі або форкаваць праект і прымусіць кагосьці іншага працаваць над ім». Як вы можаце сабе ўявіць, гэтая спроба шантажаваць яго шлях да заробку не спрацавала для яго так добра. 

Акрамя таго, ёсць людзі, якія наўмысна ўкладваюць шкоднаснае праграмнае забеспячэнне ў свой адкрыты зыходны код для задавальнення і прыбытку. Напрыклад, ахоўная фірма DevOps Жаба выявіў 17 новых шкоднасных пакетаў JavaScript у рэпазітары NPM, якія наўмысна атакуюць і крадуць токены Discord карыстальніка. Затым іх можна выкарыстоўваць на Платформа сувязі і лічбавага распаўсюджвання Discord.

Акрамя стварэння новых шкоднасных праграм з адкрытым зыходным кодам, якія выглядаюць нявіннымі і карыснымі, іншыя зламыснікі бяруць старое, закінутае праграмнае забеспячэнне і перапісваюць іх, каб уключыць бэкдоры для крадзяжу крыптаманет. Адной з такіх праграм быў event-stream. У яго быў устаўлены шкоднасны код для крадзяжу біткойн-кашалькоў і перадачы іх балансу на сервер Куала-Лумпура. За гэтыя гады было некалькі падобных эпізодаў.

З кожным такім крокам вера ў праграмнае забеспячэнне з адкрытым зыходным кодам зносіцца. Паколькі адкрыты зыходны код абсалютна неабходны для сучаснага свету, гэта кепская тэндэнцыя. 

Што мы можам з гэтым зрабіць? Ну, з аднаго боку, мы павінны вельмі ўважліва падумаць, калі, калі калі-небудзь, мы павінны заблакаваць выкарыстанне кода з адкрытым зыходным кодам. 

Больш практычна, мы павінны пачаць пераймаць выкарыстанне Linux Foundation Абмен данымі пакета праграмнага забеспячэння (SPDX) і Спецыфікацыя праграмнага забеспячэння (SBOM). Разам яны раскажуць нам, які менавіта код мы выкарыстоўваем у нашых праграмах і адкуль ён бярэцца. Тады мы будзем значна больш здольнымі прымаць абгрунтаваныя рашэнні.

Сёння людзі вельмі часта выкарыстоўваюць адкрыты зыходны код, не ведаючы дакладна, што яны працуюць, і не правяраючы яго на наяўнасць праблем. Яны мяркуюць, што ўсё ў парадку. Гэта ніколі не было разумным здагадкай. Сёння гэта проста глупства. 

Нават з улікам усіх гэтых апошніх змен, адкрыты зыходны код па-ранейшаму лепш і бяспечней, чым альтэрнатывы прапрыетарнага праграмнага забеспячэння чорнай скрыні. Але мы павінны правяраць і спраўджваць код замест таго, каб слепа яму давяраць. Гэта адзінае разумнае, што можна зрабіць надалей.

Звязаныя Гісторыі:



крыніца