За пару десятилетий важность опенсорса (FOSS) кардинально выросла. Сейчас от «любительских» библиотек зачастую зависят важные части инфраструктуры, как в классическом xkcd. И эти проекты неожиданно стали критически важными для индустрии, что брутально продемонстрировал инцидент с Log4j.
Одно дело, если пишешь для души, а другое дело, когда на тебя наваливают груз ответственности за миллионы потенциально уязвимых систем. Какой человек это вынесет?
▍ На мейнтейнеров накладывают всё больше ответственности
Зависимость от опенсорса в индустрии постоянно растёт. Одновременно растут и негласные требования к мейнтейнерам. Считается само собой разумеющимся, что автор обязан обкладывать тестами и тестировать свою программу, проверять её на уязвимости и обязательно исправлять найденные баги — ради миллионов юзеров, которые используют его софт. Но почему он обязан это делать и соблюдать всё новые «требования к безопасности», которые для него принимают посторонние лица?
Коммерческие компании используют FOSS, но зачастую сами не инвестируют время и деньги в его разработку и проверку — они полагают, что этим занимается «сообщество Open Source». А сами просто берут готовый продукт и пользуются им для получения выгоды, благо свободная лицензия это позволяет.
Как помочь мейнтейнерам опенсорсных проектов? Естественно, наилучшая помощь — финансовая, в форме пожертвований или прямой поддержки (например, корпорация может предложить независимому разработчику ежемесячное вознаграждение, что-то вроде зарплаты или гранта).
Есть и другие попытки помощи. Чтобы катастрофа с Log4j не повторилась, в рамках инициативы Alpha-Omega начали искать критически важные проекты для помощи разработчикам. Или вот мейнтейнерам 1% самых важных пакетов PyPi бесплатно раздают флешки для 2FA-авторизации.
Вот такая мера по улучшению безопасности инфраструктуры.
Конечно, это несерьёзно и даже немного смешно. Попытки решить проблему понятны, но фундаментально ничего не меняется. Участие в опенсорсе накладывает на разработчиков всё больше ответственности, которую они не просили и не хотят. Ничего удивительного, что некоторые отказываются от поддержки своих проектов, просят вычеркнуть программу из списка «критических» и забыть их имена. Но им объясняют, что так не получится: если проект признали «критически важным», то это уже навсегда. Мол, товарищ, однажды вляпался в это дело — тяни до конца.
Конечно, нужна определённая смелость, чтобы бросить своё детище и послать окружающих к чёрту. Не у всех хватает решительности и наглости на такой шаг. Если разработчику кажется, что без него всё развалится, то он продолжает сжав зубы тянуть лямку, доводя себя до истощения.
Ну а что делать автору — попросить всех людей прекратить использование его библиотеки? Как вариант, советчики предлагают опубликовать новую версию с предупреждением типа
DeprecationWarning
, чтобы уведомить всех пользователей об окончании поддержки.В итоге развернулась действительно бурная дискуссия, можно ли разрешать удаление проектов из репозитория PyPi? К единому мнению так и не пришли. Но некоторые считают, что удаление своего проекта, от которого зависят другие — это «антисоциальный акт». Разумеется, он противоречит модной сейчас концепции эффективного альтруизма.
Один из ведущих разработчиков фреймворка Django Джеймс Беннетт прямо сказал: «Опубликовав проект в открытом доступе, вы [автоматически] несёте определённую ответственность, хотите вы этого или нет». (Хотя в целом список обязанностей мейнтейнера невелик и сводится к одному простому правилу: «Не быть засранцем»).
Участие в опенсорсе не даёт практически никакой финансовой выгоды — много вы видели там миллионеров? Ну понятно, что лучшие представители человечества по определению не озабочены жаждой наживы, поэтому неизвестно, где причина и следствие. Но факт остаётся фактом: финансовые стимулы в опенсорсе практически отсутствуют.
Если бросить проект нельзя, а развивать его нет сил — то некоторые выбирают компромиссный вариант, когда участие сводится к абсолютному минимуму и становится почти формальным. В этом случае даже устранение уязвимостей исключается из обязанностей мейнтейнера. Мол, кто нашёл баг — пусть сам его исправляет и присылает патч.
А что касается ответственности разработчиков, то дело доходит уже до реальных уголовных дел, и это не шутка.
▍ За участие в опенсорсе можно попасть в тюрьму
В августе 2022 года произошёл вопиющий случай — один из контрибьюторов опенсорсного некоммерческого проекта Tornado Cash, 29-летний программист Алексей Перцев, был арестован в Нидерландах, а сам проект внесли в санкционный список Минфина США.
Миксер Tornado Cash — простой смарт-контракт, который выполняет смешивание криптовалют из разных источников. Он использовался для отмывания ETH после нескольких крупных взломов, как показано на диаграмме (с указанием количества отмытых монет):
Теперь никто не гарантирует, что после Алексея облава не продолжится на других разработчиков и контрибьюторов. И вообще, что список «запрещённых» программ не вырастет.
Поскольку проект внесён в санкционный список США, он был удалён с сайта Github (который принадлежит Microsoft). По американским законам, санкции могут распространиться на любого, кто вступит во взаимодействие с объектом из списка. То есть это «вирусная» модель распространения санкций, способная распространиться как угодно далеко на другие проекты и других разработчиков.
Что это значит для индустрии свободного ПО? Если действительно дело дойдёт до судебного приговора для Перцева, то это вообще ставит под сомнение решение Верховного суда 1995 года, которое приравняло свободу написания кода к свободе слова.
Расправа над Tornado Cash должна стать показательным примером для криптоиндустрии, которую принуждают к подчинению государственным процедурам и банковским стандартам типа проверки личности (KYC) и источников происхождения средств (AML). Но по факту это угроза фундаментальным свободам и правам человека.
Общий ущерб от действий властей США очень велик. Кто-то считает этот ущерб сопутствующим и непреднамеренным, видя в нём простую глупость. В силу отсутствия профессиональных знаний политики думают, что они могут удалить некий программный код из реальности (или запретить его выполнение). Хотя на самом деле код смарт-контракта скопирован на тысячах зеркал. Даже на самом Github в первый же день был создан список форков/зеркал. Даже Фонд электронных рубежей одобрил эту идею ради свободы слова.
Однако из этого следует вывод. Теперь при участии в опенсорсных проектах разработчикам следует сохранять анонимность. Особенно если теоретически в будущем кто-то может объявить эту разработку вне закона — и задним числом начать аресты разработчиков, всех причастных к проекту за прошедшие десятилетия. Кажется, Сатоши Накамото понимал это с самого начала и сохранил анонимность.
Да, Bitcoin пока не объявили вне закона, а разработчиков Bitcoin Core не начали задерживать, как это произошло с Tornado Cash. Но такое несложно представить. И это может произойти практически с любым опенсорсным проектом, в первую очередь — с другими миксерами. Последствия облавы несложно представить: разработчики станут более анонимными, а проекты — более открытыми.
Всё это лишь увеличивает давление на мейнтейнеров и контрибьюторов опенсорсных проектов. Казалось бы, отправил коммит в какой-нибудь анализатор пакетов… Но вдруг эту программу использует КНДР для шпионажа? И вот вас вносят в список SDN, вы становитесь «врагом народа» и друзья боятся с вами здороваться, чтобы не попасть тоже под санкции. Всякое безумие возможно, если мы сейчас свернём на неправильную дорожку. Один маленький шажок способен привести к серьёзным последствиям в будущем.
Такая печальная картина представляется, если дело дойдёт до обвинительного приговора. Будем надеяться, что здравый смысл всё-таки восторжествует и этого не произойдёт. Подписи за освобождения Алексея собирают здесь.
▍ Чем заняться после программирования
Происходящие вокруг события не добавляют радости и оптимизма участникам опенсорсного движения. Ведь они поддерживают любимые проекты в свободное время, жертвуя полноценным отдыхом, поэтому уязвимы для выгорания и депрессии.
Но жизнь не заканчивается. В конце концов, есть куча интересных дел, которыми можно заняться после основной карьеры в IT. По опыту некоторых друзей, когда-то горевших программированием, после выгорания на рубеже 40–50 лет бывшие «сеньоры» любят создавать что-то материальное. У всех по-разному. Например, укладывать итальянскую плитку, строить дом, выращивать растения, плотничать (стулья и прочие деревянные изделия), рисовать, винодельничать, мастерить всякие штуки из металла и других материалов. В общем, всё такое, что можно сделать собственными руками, проявить мастерство и немножко креативности. Эта странная закономерность прослеживается с работниками и других умственных профессий, не только IT.
Конечно, необязательно навсегда уходить из профессии. Можно просто совмещать разные занятия (для снятия стресса). Иногда спасает саббатикал на год-два, чтобы полностью перезагрузиться. К счастью, увлекательных занятий в жизни огромное количество, кроме компьютера и цифровых абстракций.
Telegram-канал и уютный чат для клиентов
Комментарии (42)
amarao
14.09.2022 13:17+8На самом деле прецеденты посадки за написание софта были и раньше. Написал кейген? Ну это же другое...
На самом деле - нет. Если автор кейгена, крякера или малвари попадает под criminal prosecution, то почему автор tornado cash не попадает?
... И моё мнение - оба не попадают. Но консистентность важна, так что или/или, но для всех.
MrBrooks
15.09.2022 15:37+1Идеальное замечание. Я бы сказал, фундаментальное. Равноправие должно быть во всем.
qrdl
14.09.2022 13:18-3За участие в опенсорсе можно попасть в тюрьму
Нет, можно попасть в тюрьму за написание софта (неважно, OSS или proprietary), который предназначен для сокрытия денежных потоков, и никакого другого предназначения у этого софта нет. Это примерно как кто-то перешел улицу на красный и убил человека, а потом написали, что за переход улицы на красный могут посадить.
Я не считаю, что за это Перцева стоило арестовывать, но он явно не "белый и пушистый" - человек прекрасно понимал, что помогает осуществлять как минимум сомнительную деятельность.
ramiil
14.09.2022 14:00+15Тогда давайте сажать конструкторов оружия, ведь они знали, что их оружием будут убивать людей.
Semenych
14.09.2022 14:33+9Тут как минимум серая зона. УК предусматривает ответственность за изготовление средств совершения преступления. Если вы конструктор оружия, но не работаете на государство (или компанию имеющую лицензию), то да - посадят.
Можно обсуждать насколько это хорошо или плохо. Но происходит по факту простая штука - государство расширило перечень средств которые как оно считает относятся к орудия совершения преступления.
Как всегда никого не предупредив, внезапно.
PS: не то чтобы я это одобрял, но так государства устроены.
PPS: Вот например как это устроено с отмычками https://denis589.livejournal.com/3202.html
0xd34df00d
14.09.2022 17:43+3В США если вы без всяких лицензий изготовили оружие для себя, то не посадят, и даже за безвозмездную передачу другому человеку, скорее всего, не посадят (но там уже есть простор для интерпретаций).
Более того, за распространение чертежей оружия тоже не посадят (см. defense distributed — там никого не посадили, и периодически судятся об отношении такого распространения к Первой Поправке).
Semenych
15.09.2022 11:20Ну так я и говорю - список в разных странах разный. В Колумбии за изготовление дома незначительного количества порошка из листьев местных растений тоже наверное не посадят. Местный колорит везде присутствует.
Vilgelm
15.09.2022 06:06+3А вот скажите мне: донатить оппозиции или, скажем, на поддержку Украины — это сомнительная деятельность или нет? А ведь и для того, и для другого требуется миксер или анонимная криптовалюта, если не хочется провести ближайшие лет 8 в тюрьме.
qrdl
15.09.2022 08:55+2Это хороший аргумент. О такой стороне дела я не думал.
Vilgelm
15.09.2022 08:57+11А теперь еще подумайте над тем, что если ваш инструмент может безопасно использовать оппозиционный журналист, то сможет и условный педофил. А если условный педофил не сможет, то не сможет и оппозиционный журналист, потому что анонимность она или есть, или ее нет. И я лично предпочитаю чтобы она была, несмотря на все риски с этим связанные.
amarao
15.09.2022 16:04+2У меня даже интереснее вопрос есть. А налоги в бюджет РФ платить - это сомнительная деятельность или нет? Я вот решил, что сомнительная и лучше от этого воздержаться.
0xd34df00d
15.09.2022 16:31Не только в бюджет РФ.
amarao
15.09.2022 16:38+2Ну, бюджет Кипра у меня вызывает мелкие вопросы, но в целом они всё-таки тратят его на пользу населению, так что мои €17k в год мне OK (не то, чтобы не жалко, но я хотя бы вижу, что от них польза есть).
Shiva-TM
14.09.2022 13:34-12Linux не слишком то долго останется вот таким вот опенсорсным, количество фанатиков уже всё меньше, и всё больше тех кто хочет за свой труд не только своё имя на страничке с кодом а вполне ощутимых денег. Вопрос только когда... Нет совсем опернсорс не умрет но будет продолжать коллапсировать.
CrashLogger
14.09.2022 13:40+15В Linux уже давно участвуют такие компании, как IBM и Google, что не мешает ему оставаться опенсорсным. Открытый код - не значит, что его пишут бесплатно.
hogstaberg
15.09.2022 05:29+1Мсье явно не очень хорошо знаком с этими вашими линуксами и опенсорсами, да? Помимо уже упомянутых выше IBM и Google, хочется вспомнить и ещё одного, если не самого большого, то точно одного из самых больших контрибьюторов в опенсорс последних лет — Microsoft.
Да и вообще наблюдаемая реальность, увы, крайне сильно идёт вразрез с вашим утверждением.
qrKot
15.09.2022 08:49Linux не слишком то долго останется вот таким вот опенсорсным, количество фанатиков уже всё меньше, и всё больше тех кто хочет за свой труд не только своё имя на страничке с кодом а вполне ощутимых денег.
Opensource бесплатности ортогонален.
0xd34df00d
14.09.2022 17:40+2Если действительно дело дойдёт до судебного приговора для Перцева, то это вообще ставит под сомнение решение Верховного суда 1995 года, которое приравняло свободу написания кода к свободе слова.
Какое отношение процесс в Нидерландах имеет к решению ВС США? В США Первая Поправка, гарантирующая свободу слова (с некоторыми нюансами), есть, в Нидерландах — нет, так что я противоречий не вижу.
Происходящие вокруг события не добавляют радости и оптимизма участникам опенсорсного движения. Ведь они поддерживают любимые проекты в свободное время, жертвуя полноценным отдыхом, поэтому уязвимы для выгорания и депрессии.
Я так и не понял, почему бы просто не забить на требования других людей, которым ты ничем не обязан, и просто не писать код в свое удовольствие. Тем более, что
К счастью, увлекательных занятий в жизни огромное количество, кроме компьютера и цифровых абстракций.
не для всех.
vassabi
14.09.2022 19:40а может запилить опенсорс сразу на анонимном блокчейне?
не хочет автор поддерживать - не поддерживает, никакого давления.хочет кто-то сделать свой форк? - пожалуйста, нет препятствий.
закрыть исходники ретроспективно? (например по указанию кого-то) - мммм... нет.
отлично же, правда ?
0xd34df00d
14.09.2022 20:43+4А зачем?
Форки и сейчас можно спокойно делать. Не хочешь поддерживать — не поддерживаешь, давление — оно в голове. Исходники, особенно при наличии форков, сейчас тоже не закроешь.
Зато при анонимности будет чуть сложнее, например, потенциальному работодателю сказать, что я — молодец, и именно я сделал вот эту опенсорсную штуковину.
vassabi
15.09.2022 00:13+1наоборот, доказательство владения будет легче - оно же криптографическое, а не "а залогинься в гитхаб при мне".
K0styan
15.09.2022 16:30Нет принципиальной разницы между "вот ключ, доказывающий, что эту транзакцию в блокчейн сделал я" и "вот пароль, доказывающий, что автор коммита в Гитхабе - я".
Точнее, технически-то разница большая - в одном случае доказательство криптографическое, во втором строится на доверии механизмам Гитхаба, но с практической точки зрения доверие что тому, что другому одинаково высокое.
vassabi
15.09.2022 22:03я надеюсь вы так шутите, потому что для криптографии есть способы доказательства с нулевым разглашением
(или проще говоря - не нужно раскрывать пароль, чтобы надежно доказать, что он у тебя есть)
0xd34df00d
15.09.2022 23:10+1Интересно, сколько людей понимают ZKP?
vassabi
16.09.2022 00:25мне казалось, что он должен быть понятен всем кто понимает (например) ассиметричную криптографию
aleks_raiden
17.09.2022 00:17в сильно общем варианте - возможно, а вот понимание всяких там рекурсивных старков/снарков и отличий это уже высшеие рубежи. Как и применения, те же zkRollups
Vilgelm
15.09.2022 06:08Какое отношение процесс в Нидерландах имеет к решению ВС США?
Его арестовали по запросу США, насколько я знаю.snaiper04ek
15.09.2022 13:10+1США игнорируют свои же законы - вот новость!
Ой, они даже не игнорируют их, а пользуются эксплоитом того, что арест производится не на их территории, а запрос не равно нарушение закона, так что, тут даже закон соблюдён, свобода слова (в США) в полной безопасности. [/sarcasm]
0xd34df00d
15.09.2022 16:28Насколько я знаю, нет, и это была инициатива нидерландского судьи. По крайней мере, публичной информации об этом нет, и ещё пару недель назад обвинения ему в итоге так предъявлены пока и не были, так что вроде как ещё говорить рано.
Xander_d
14.09.2022 18:37+2Тем не менее, вопрос, поднятый в топике, важный: означает ли то, что если когда-то программист написал хорошую штуку и выложил её в общий доступ, то вдовесок он получает обязанность сопровождать её?
А если автор решил отойти от дел/получил инсульт/умер/и т.д., то на кого переходит эта обязанность?
Мне видится, что тот, кто взял на себя право присваивать статус "критичной инфраструктуры", должны получить вместе с ним и обязанность обеспечить поддержку. Уж чьими силами - пусть сами решают.
numb13
14.09.2022 21:13+7Вроде бы в лицензии GPL всё уже оговорено.
THERE IS NO WARRANTY FOR THE PROGRAM
Добрый автор просто разрешил сесть себе на шею. Или это тщеславный автор кормит своё ненасытное ЧСВ.
После пропажи автора обычно делают форк, чтобы перейти на новое железо или фреймворк, залатать дыры, добавить хотелки.
pyrk2142
14.09.2022 21:54+2Но почему он обязан это делать и соблюдать всё новые «требования к безопасности», которые для него принимают посторонние лица?
Зачастую проблема связана с желанием авторов сидеть на двух стульях. С одной стороны, хочется уважения сообщества, похвалы и всяких ништяков. С другой - хочется иметь возможность уйти в любой момент так, чтобы никто не поругал, а еще бы и сказали спасибо за все. Казалось бы, не уверен в себе, сомневаешься - повесь плашку, что это проект без планов по поддержке, баги не обязательно будут исправлены, уязвимости закрывать не хочу, будете лезть - забаню. Хотите поддержку - хотите. Но если так сделать, то уважения почему-то мало, а тысяч довольных пользователей нет. А так да, у ОперСорса растут стандарты качества, выкинуть на форум zip-архив с кодом - это уже несколько не то.
ogost
15.09.2022 04:53+3Весь смысл свободного ПО в возможности внесения изменений в это самое ПО без зависимости от автора/вендора. Автор/вендор не чинит баг/не принимает патч/не пилит фичу/потерял интерес к проекту/пропал без вести? Делайте форк, вносите свои модификации и используйте его. Ах не умеете... Наймите кого-нибудь, кто это сделает за вас! Никто не говорил, что свободное ПО должно быть бесплатным.
vassabi
15.09.2022 11:55+1справедливости ради - свободное ПО бесплатное.
а вот выпуск новых версий :
исправление ошибок
наложение заплаток,
обновление зависимостей (в том числе - поддержка новых версий ОС)
-
и добавление функциональности
- нет.
Потому что это уже не ПО, это уже сервис поддержки ПО.
То, что автор оригинальной статьи смешивает сразу несколько терминов в один (специально или ненамеренно) - это мне кажется веяньем времени (уж очень часто я такое начинаю видеть в статьях, давящих на эмоции) ..
khajiit
15.09.2022 12:58+1Ну, тогда уж, бесплатны (потому что свободны) только исходники.
Даже компиляцию и сборку пакета делать никто не обязан.
ogost
15.09.2022 13:43+1Нет, свободное ПО не обязано быть бесплатным
Про смешивание понятий автором согласен
vassabi
15.09.2022 15:20согласен с "не обязано быть бесплатным"
Тогда можно обобщить это как "иметь исходники от ПО" (и возможность там что-то самостоятельно подкрутить в коде) - это не равнозначно "иметь сервис по поддержке этого ПО".
Bakuard
15.09.2022 08:55Требования к кому-либо жертвовать своими интересами, если кто-то решил что для большинства так будет лучше - мне всегда казались чем-то диким.
algor_1
15.09.2022 11:37+2Я всё же так и не понял какие обязательства берёт на себя ментейнер, после того как какие-то (в целом, случайные) люди называют его ПО "критическим"? По-моему, почти в любой лицении на СПО содержится параграф про "отказ от обязательств".
0xd34df00d
15.09.2022 16:33В pip была история, что мейнтейнерам критического ПО надо было обязательно включать двухфакторную аутентификацию, предпочтительно через хардварные токены. Не всем мейнтейнерам это понравилось.
dekanovich
Проблема даже не в добровольцах и наркоманском законодательстве в США.
Проекты фрагментируются, создаются все более маленькиким командами и все чаще оказываюися без поддержки и обновления. Вот, обычные истории, например:
Компания Х сделала свой велосипед, выложила на GitHub, рассказала о нем на Annual Y Meeting и забыла о нем.
Компания Z делала свой форк проекта, а потом решила что это ее личный форк и закрыла исходники свежих версий.
Кажется, мы идем в светлое корпоративное будущее :)