8 января тысячи пользователей популярных на GitHub библиотек с открытым кодом faker.js и colors.js заметили, что их приложения начали выдавать ошибки и ломаться. Сначала они подумали, что хакеры сломали их проекты, но история оказалась более интересной: разработчик намеренно испортил opensource-библиотеки, на которые возлагались пораженные приложения. А их таковых оказалось десятки тысяч, сообщает Bleeping Computer.

В частности, библиотеку colors загружали с nmp примерно 20 млн раз в неделю, ее использовали около 19 000 проектов. В свою очередь faker получал 2,8 млн загрузок еженедельно и более 2500 проектов строились на нём.

Что произошло

Как оказалось, разработчик colors и faker Марак Сквайрс сам сделал злонамеренные ревизии этих библиотек на GitHub. Он добавил «модуль нового Американского флага» в библиотеку colors.js, после чего опубликовал ее версию v1.4.44-liberty-2 на GitHub. Также Сквайрс испортил faker.js, опубликовав версию 6.6.6.

Саботированные версии заставляют программы до бесконечности выводить текст «LIBERTY LIBERTY LIBERTY» (с англ. – свобода), а затем – странные буквы и символы.

Источник: Bleeping Computer

После публикации скомпрометированных версий Марак Сквайрс опубликовал пост, который больше походил на издевательства:

«Мы обратили внимание, что в релизе v1.4.44-liberty-2 библиотеки colors имеется zalgo-баг. Знайте, что мы над этим уже работаем, чтобы поскорее исправить ситуацию».

Почему разработчик это сделал

Журналисты считают, что таким образом разработчик поплатился корпорациям, использующим наработки его и его коллег оупенсорсеров в коммерческих целях абсолютно бесплатно и ничего не отдавая сообществу взаймы.

В ноябре 2020 Марак опубликовал предупреждение о том, что он больше не намерен бесплатно работать на крупные корпорации.

«Я больше не собираюсь поддерживать компании из списка Fortune 500 (и меньше по размеру) своим бесплатным трудом, – написал он. – Можете расценивать это как возможность послать мне контракт с шестизначной зарплатой или сделать форк проекта и взять кого-нибудь другого работать над ним».

В BleepingComputer также сделали интересное наблюдение: страница README библиотеки faker в репозитории GitHub также была изменена разработчиком и теперь содержит фразу: Что на самом деле произошло с Аароном Шварцем?

Шварц был выдающимся американским программистом и предпринимателем, помогшим создать Creative Commons, RSS и Reddit, а также известным хактивистом. В 2013 году он совершил самоубийство после того, как в 2011 году его обвинили в краже документов из академической базы данных JSTOR с целью предоставления к ним свободного доступа.

Упоминание Сквайрса о Шварце потенциально может ссылаться на теории заговора вокруг его смерти, предположили в The Verge.

Реакция сообщества

Некоторые участники движения за открытый код похвалили Сквайрса за его действия, но были и осудившие поступок разработчика. Например, эксперт по безопасности информации, известный в Twitter под ником VessOnSecurity, отметил, что со стороны Марака это было просто безответственно:

«Если ты не хочешь, чтобы бизнес использовал твой бесплатный код, не публикуй бесплатный код. Саботируя свои собственные широко используемые наработки, ты вредишь не только бизнесу, но любому, кто их использует. Это приучает людей игнорировать обновления, ибо вещи могут поломаться».

Между тем площадка GitHub за действия Марака забанила его аккаунт, что в свою очередь также вызвало неоднозначную реакцию. Некоторые пользователи считают, что такие действия компании вызывают недоверие, а разработчики вправе делать с собственными наработками все, что им вздумается. Следует отметить, что у Сквайрса на GitHub опубликованы сотни проектов.

Почему это интересно

Проделка Марака произошла вскоре после громкого кейса с уязвимостью нулевого дня Log4j. Ее нашли в популярной библиотеке логирования Java Apache. Как пояснили на DOU, эксплойт позволял злоумышленникам получить полный контроль над уязвимыми серверами и задел все системы и службы, использующие библиотеку логирования Java, Apache Log4j между версиями 2.0 и 2.14.1, включая многие службы и программы, написанные на Java: облачные сервисы, такие как Steam, Apple iCloud и приложения, такие как Minecraft.

После массового использования уязвимости Log4shell сопровождающие разработчики библиотеки с открытым кодом работали без вознаграждения в праздничные дни, чтобы исправить проект, поскольку оказывалось все больше и больше CVE.

Этот случай поднял вопрос, насколько массово бизнесы эксплуатируют открытый код в коммерческих целях, при этом никоим образом не поддерживая волонтеров, публикующих свои наработки с целью усовершенствования критически важных для общества систем. Марак Сквайрс, судя по всему, хотел добавить актуальность этой проблеме.