Создатель свободных библиотек colors.js и faker.js, умышленно испортил свои разработки, опубликованные на хостинге Github, таким образом выведя из строя тысячи использующих их сторонних приложений. По всей видимости, с помощью данного перфоманса он хотел подать мегакорпорациям, внедряющим открытый код в свои проекты, сигнал, о том, что нельзя просто пользоваться результатами чужого труда – нужно что-то отдавать взамен. Сигнал был истолкован, вероятно, не так, как того ожидал разработчик – его аккаунт на Github, представляющий высокую ценность для программиста, был оперативно заблокирован.
Сомнительная акция
Автор известных библиотек для программирования целенаправленно испортил несколько своих разработок, размещенных в открытом доступе, в знак протеста против жадности корпораций.
По сообщению портала Bleeping Computer, программист Марак Сквайрз (Marak Squires) на прошлой неделе внес вредоносные изменения в библиотеки colors.js и faker.js с открытым исходным кодом, предназначенные для платформы Node.js.
В результате крайне популярные подключаемые модули нарушили нормальную работу целого ряда ИТ-проектов, в том числе программных продуктов крупных международных корпораций, в частности, Amazon.
К примеру, из-за поправок к коду за авторством Сквайрза библиотеки «уходят в бесконечный цикл» и выводят в консоль Node.js несколько раз подряд слово “LIBERTY” (свобода в переводе с англ.; – прим. CNews), а затем последовательность символов, которая не несет смысловой нагрузки (так называемый Zalgo-текст).
Данная последовательность, по задумке автора, вероятно, должна была напоминать наблюдателю изображение флага США. На это, к примеру, указывает тот факт, что одна из правок, совершенных программистом, была озаглавлена как “Adds new American flag module”, то есть как добавляющая модуль американского флага.
Специалисты Bleeping Computer считают это сознательным шагом программиста, своего рода местью крупным корпорациям и другим коммерческим потребителям ПО с открытым исходным кодом. Те якобы бесплатно пользуются плодами труда программистов-энтузиастов, но взамен не приносят никакой реальной пользы сообществу разработчиков.
В ноябре 2020 г. Сквайрз предупредил о том, что более не собирается дотировать крупный бизнес за счет собственных трудовых затрат. По его мнению, коммерческие структуры, использующие его наработки, представленные в colors.js и faker.js, должны либо развивать собственные форки (самостоятельные проекты-ответвления, использующие кодовую базу этих двух библиотек), либо ежегодно присылать ему банковский чек на «сумму с пятью нулями» в качестве зарплаты.
Стоит отметить, что крупные технологические компания нельзя однозначно назвать нахлебниками, сидящими на шее у программистов-энтузиастов. ИТ-гиганты вносят более чем ощутимый вклад в развитие таких проектов как ядро Linux, которое лежит в основе ряда популярных операционных систем. К, примеру Intel внесла около 8% от всех изменений в Linux 5.10, а Huawei – почти 9%.
Реакция на перфоманс
Спорный шаг Сквайрза вызвал неоднозначную реакцию участников сообщества разработчиков открытого ПО. Некоторые из них сочли действия достойными похвалы, другие – безответственными.
Так, специалист по информационной безопасности под никнеймом VessOnSecutiry заявил в Twitter, что, действуя подобным образом, Сквайрз наносит ущерб всем пользователям этих библиотек, а не только крупному бизнесу. Такой подход, по его мнению, опасен, поскольку приучает людей избегать установки обновлений, в том числе закрывающих опасные уязвимости, из-за страха «что-нибудь сломать».
«Не хотите, чтобы бизнес использовал ваш свободный код – не выкладывайте его», – отметил ИБ-специалист.
По сообщению самого Сквайрза в Twitter, после предания ситуации огласке его учетная запись в Github была заблокирована за нарушение условий использования платформы. Со слов программиста, он лишился доступа к более чем сотне собственных проектов. В случае с NPM-репозиторием проекта colors.js администраторы ограничились «откатом» вредоносных правок.
Эта новость, в свою очередь, также вызывала неоднозначную реакцию комьюнити.
«Удаление собственного кода расценивается как нарушение условий использования? Что за хрень, – задается вопросом программист под псевдонимом Sergio Gomez в комментариях к твиту Сквайрза. – Нужна децентрализация хостинга исходного кода свободного ПО».
Другой разработчик, известный в Twitter под ником Piero, заметил, что странно было бы ожидать иного результата, после того как акт саботажа со стороны Сквайрза привел к выходу из строя огромного числа приложений.
Зачем нужны colors.js и faker.js
Библиотека colors.js добавляет поддержку вывода в консоль Node.js цветного и форматированного текста, faker.js предназначена для генерации большого объема произвольных данных, которые могут оказаться полезными при тестировании приложений.
За последнюю неделю при помощи менеджера пакетов NPM colors.js загрузили 23,1 млн раз. Спрос на faker.js среди программистов значительно ниже – ее скачали около 2,9 млн раз за аналогичный период времени.
Node.js – свободная среда исполнения кода, написанного на языке программирования JavaScript, вне браузера. Нередко используется при разработке скриптов для генерации динамических веб-страниц, работающих на стороне сервера. В числе корпоративных пользователей инструмента – AWS, IBM, Microsoft, Netflix, Paypal и др.
По данным npmjs.com, colors.js и faker.js задействованы в 19 тыс. и 2,5 тыс. проектов соответственно. Среди них, например, AWS Cloud Development Kit – это открытая платформа для разработки облачного ПО, принадлежащая компании Amazon.
Исходный код обеих библиотек опубликован на хостинге ИТ-проектов Github, который с июня 2018 г. принадлежит корпорации Microsoft. Примечательно, что исходники распространяются на условиях свободной лицензии MIT, которая прямо разрешает безвозмездно использовать их всем желающим без каких-либо существенных ограничений.
> За последнюю неделю при помощи менеджера пакетов NPM colors.js загрузили 23,1 млн раз. Спрос на faker.js среди программистов значительно ниже – ее скачали около 2,9 млн раз за аналогичный период времени.
23100000/7 = 3300000 23100000/7/24/60/60 = 38
а ху iть, одну несчастную библиотеку скачивают ТРИ МИЛЛИОНА РАЗ в ДЕНЬ и 40 РАЗ в СЕКУНДУ или они пиздят со статистикой, или быдлокодеры настолько обыдлились, что выкачивают библиотеку при каждом запуске своего говноскрипта, а даже не при запуске IDE.
>>11345046 Ты сейчас предложил взломать сервера гитхаба и там все снести? Если бы он просто удалил свой аккаунт на гитхабе, то нихуя не случилось бы, пакетные менеджеры крайне редко что то тянут с гитхаба напрямую, все держат свои сервера, так что там просто последняя версия лежала бы.
>>11345067 а вообще надо становиться патентным или лицензионным троллем, и прописывать в лицензию что-то типа "если вы используете мой код в коммерческом софте или сервисе, то вы обязаны платить мне доррары". как сейчас действуют GPL-ные лицензионные тролли - закидывают коммерческий софт судебными исками и требованиями опубликовать исходный код (в лицензии GPL одно из требований - предоставлять исходный код всего продукта конечному потребителю, если в продукте была использована библиотека с лицензией GPL)
>>11345074 откуда браузер в стендалон приложении? это библиотеки для nodejs же. хотя, какой-нибудь быдлокодер вполне мог наговнокодить браузерный аддон, который при каждом запуске браузера выкачивает новую версию этого скрипта.
>Такой подход, по его мнению, опасен, поскольку приучает людей избегать установки обновлений, в том числе закрывающих опасные уязвимости, из-за страха «что-нибудь сломать». Люди уже давно к этому приучены стараниями майкрософта.
>>11345099 Эти библиотеки может использовать любой js код, что логично, а значит, их можно просто в html положить, браузер сам их скачает если локально нет
>>11344988 (OP) >Библиотека colors.js добавляет поддержку вывода в консоль Node.js цветного и форматированного текста, faker.js предназначена для генерации большого объема произвольных данных, которые могут оказаться полезными при тестировании приложений. Зачем кто то это использует? Сам написать не может что ли? Это ведь найти еще надо что вот такой есть, разобраться как это все подрубить. Не проще ли свое накидать?
>>11344988 (OP) Есть же лицензии, чтобы в коммерческом ПО не использовался код. Если не ставил такую лицензию на свой код, то хуле он хотел не понятно.
>>11344988 (OP) >К, примеру Intel внесла около 8% от всех изменений в Linux 5.10, а Huawei – почти 9%. А знаете что это за правки? Драйверы и прочие фичи для поддержки их оборудования.
>>11345128 Если это вскроется, американские суд может выебать. А может и не выебать, если у программиста деньги на адвокатов кончатся раньше, чем у корпорации.
>>11344988 (OP) >ежегодно присылать ему банковский чек на «сумму с пятью нулями» в качестве зарплаты Прислал бы ему чек на 0,00001 доллар. А чё? 5 нулей жи есть.
>«Не хотите, чтобы бизнес использовал ваш свободный код – не выкладывайте его», – отметил ИБ-специалист. А вот этот господин дело говорит.
>>11344988 (OP) >бесплатно пользуются плодами труда программистов-энтузиастов, но взамен не приносят никакой реальной пользы сообществу разработчиков. Я поддерживаю инициативу. Коммерция обязана поддерживать проекты, которые сделаны для простых людей. Это же костыли для нищих, и когда крупняк пытается на костылях творить свое метаговно для нового пузыря, чтобы проскочить моменты со вкладом или оплатой работы для отладки костылей в экзоскелет, крупняка надо ставить на место. Это разрушит СПО, скорее всего, без утряски проблем, ну а так - оно загнется само, когда мамонты вымрут.
>>11344988 (OP) > таким образом выведя из строя тысячи использующих их сторонних приложений программисты, поясните, как он мог испортить уже скаченные ранее и установленные в проекты библиотеки?
>>11344988 (OP) Помню тоже один программист, который один обновляет какую-то важную свободную библиотеку, тоже вроде с node.js связана, и от которой зависят миллионы сайтов крупных компаний не могут задонить челу вообще, лутая хуллиарды, чтобы хотя бы поддержать проект. Не гоммунист, но такие жидоКабанчики должны страдать.
>>11345216 >А вот этот господин дело говорит Он бредит. Паразитизм развалил СПО, да еще и форсит этакую проблему Эверетта для СПО. Это костылик, мне, он поможет встать, а корпорация на этом выстраивает весь свой биз или проект, и не пытается помочь писаке костыля. Это же спиливание члена банкнотами.
>>11344988 (OP) >Huawei – почти Была недавно новость о том как китаезы хакнули систему. Компании плотили сотоудникам премии за контрибуцию в спо, которое они используют. Сотрудники форматировали отступы в коде и получали премии. просто мимо
>>11345283 >расширение у библиотек .js >РАСШИРЕНИЕ >У БИБЛИОТЕК Нихуя ты гений. Они могут быть и на js и на typescript и на coffeescript быть написаны.
>>11345230 Если закрытое ПО пишут индусы, у которых после апдейта публичной библиотеки софт сваливается в бесконечный цикл с выводом LIBERTY на гуй, то можно и без нарушения eula воровство кода продемонстрировать.
>>11345265 Там скачивание новой версии автоматизировано. Все программы, же использующие его разработки - это онлайн программы. ТО есть он обновил свою библиотеку, и она автоматически скачалась и установилась ВСЕМ И СРАЗУ.
>>11345249 К тому что интуль там 8% написал только для того чтобы его говно лучше работало. Это не добрые самаритяне которые создают свободный софт и тащат прогресс вперед. У них цель бабки и максимизация бабок.
>>11345300 >ТО есть он обновил свою библиотеку, и она автоматически скачалась и установилась ВСЕМ И СРАЗУ Разве это правильно так делать, что при запуске программа каждый раз лезет что-то скачивать, расходуя трафик и замедляя время загрузки
>>11345128 минимум два раза (память плохая, может больше) присутствовал при ситуации, когда кабанчики бегали и кричали, что у конкурентов свой код пижженый нашли,кричали, что уж сейчас-то взьебут в суде. если ты кабанчик и хочешь не соблюдать условия чужих лицензий - какой-нибудь погромист, который думает, что ему мало платят/обижают/заставляют работать может пойти и наябедничать на тебя.
раньше был обычай публиковать исходники с простыми ошибками «защита от дурака», нельзя было просто так взять и установить что-либо. Сейчас же сборку кода поставили на поток, между пользователем и кодом безопасность никто не проверяет, таким образом от первоначального кода зависит многое, как в примере из ОП-поста
>>11345265 Потому что ... всем похуй. Вылезет в продакшене, откатят. Нормальное тестирование кабанчику делать дороже, чем на конечных юзерах баги ловить, а если кабанчику похуй, то и кодерам похуй. Если по уму все делать, разработка бы стоила 300к в секунду.
>>11345331 >11345303 (You) ХЗ, этож жаваскрипт) кроме шуток, реально хз. Но варианты, написанные выше, когда кто-то добавил это на веб-страничку и тянет при каждом входе не выглядит невероятным
>>11345322 >Разве это правильно так делать Разве правильно делать прогу, которая уже по сложности строк сравнима с ОС? А эти браузеры с каждой минутой дописывают и дописывают по +350 строк, включая к протоколам такие вот костыли, как сабжик, и создавая лулзы безопасности. Еще пару лет и браузеры реально станут загрузочными для всех пукашек и гаджетов.
>>11345067 Считает каждый раз, когда пакет скачивается. У тебя может быть скрипт, который чистит пакеты и реинсталит их. За день разраб может такой хуйней по 10 раз заниматься, а счетчик крутит.
>>11345093 >сейчас действуют GPL-ные лицензионные тролли Какие ж это тролли? Если коммерсы стали использовать ПО с GPL лицензией в коммерческом продукте, то ССЗБ
>>11345322 Нет, просто рукожопые скудоумные кодеры подключают либы из внешних источников, что имхо ебаный позорняк. Эти ебаклаки прожили 20+ лет минимум и не осилили осознать, что "твое - это то что у тебя в кармане, и то пока не попросят предъявить". Из-за ебаной копеечной экономии трафика, всирают безапасность и надежность просто кхуям. Потому что ответственности никакой не несут, облачные дегенераты, блядь.
>>11345389 Ну вот и пусть страдают. Пиздец ебланы. Тут может быть даже так, что автор что-то поменяет и по совместимости всё по пизде уйдет. Как можно в свой проект тупо грузить хуй пойми откуда...
>>11345322 Скачивается один раз, когда проект ставишь. Версии прописаны в package.json. Упали сервисы потому что дауны перед тем, как обновить пакет, не протестировали. Обычно все обновления чем-то обоснованы. Бывает, что ставишь новый пакет, а у него зависимости падают, поэтому тут больше журнашлюхи накрутили, имхо.
>>11345398 Алло, мир делится на бэкаперов и не прошаривших за бэкап. Так вот, в боблаках требования к тз другие, и контроль другой. 1+1=либерти, либерти, либерти и рекламой облачных дилдаков.
>>11345399 тут палка о двух концах. если сохранить один раз локальную копию и не качать каждый раз самую свежую версию, то тебя взломают русские хакеры а если автор что-то поломает, то об этом напишут в твиттере другие разработчики.
>>11344988 (OP) Полностью поддерживаю разработчика. Уничтожил всю свою автоматизацию проекта не входившую в мои обязанности при увольнении. Хотя до этого сокращали штат, но зажопили мне зарплату. Видели бы вы ебло моего прямого начальника, лол.
>>11345473 _ты_ как локалхост - нахуй никому не сдался. но _твой сайт_ как сервер в интернете - взломают автоматом, натравив эксплоит под конкретную дырявую либу на весь интернет.
>>11345497 Твой сайт про 100 видов писек? Нахуй никому не сдался. А у серьёзных сайтов тем более есть дядя, который ручками всё должен обновлять и следить.
>>11345544 > Твой сайт про 100 видов писек? Нахуй никому не сдался.
ещё один. додики, никто конкретный сайт с конкретной либой не ищет, а на пахуе запускают эксплоит по всему интернету - по списку всех существующих доменов плюс 0.0.0.0/0
>>11345484 Искусственный интеллект будет критически судить вас по протоколу реального времени и без прерываний! Приговор = двойка! Исполнение будет записано на Ć. Слава абстракции! Цифре - слава!
>>11344988 (OP) У него и раньше жизнь была не сахар, а теперь вообще сдохнет в коробке под мостом. Пока топ-манагеры корпораций будут на бентли рассекать.
>>11344988 (OP) Обычная практика - очередной ЧСВшный петух, которому не хватает внимания, решил выебнуться и попереть против системы. Таких дануов пруд пруди среди мододелов на игры беседки.
>>11345434 Ващет после каждого обновления версии надо все тестировать полностью, ну или на крайняк запускать какое-то автоматическое тестирование. Но вообще я согласен с тем, что бездумные зависимости с удаленных источников это ебаное зло и тупизм. Надо все тащить в дом и там хранить у себя, а когда обновили версию - скачивать руками, устанавливать и тестировать, не наебнулось ли чего.