В конце прошлой неделе тысячи проектов, зависящих от опенсорсных библиотек faker и colors, которые насчитывают более 20 млн загрузок еженедельно только через npm, обнаружили, что обе библиотеки работают некорректно, тем самым влияя на работоспособность их собственных продуктов. Обе библиотеки извлекали тарабарщину вместо кода, предварявшуюся словами «LIBERTY LIBERTY LIBERTY» (англ. «Свобода, Свобода, Свобода»). В частности, проблемы возникли у всех, кто использует Amazon Cloud Development Kit.
Сначала многие предположили, что разработчика faker и colors, Марака Сквайрса (Marak Squires), попросту взломали, но вскоре стало понятно, что это не так. Автор сам испортил свой код, а в файле readme, сопровождавшем вредоносное обновление, появилось сообщение: «Что на самом деле произошло с Аароном Шварцем?». Это же сообщение он продублировал в Twitter, приложив ссылку на Reddit, где осуждалось, что Шварц был убит после того, как обнаружил детское порно на серверах Массачусетского технологического института.
"What really happened with Aaron Swartz?"https://t.co/XvtSIZlJZthttps://t.co/zyUsGDs5iL
— marak ? (@marak) January 5, 2022
Обновление Сквайрс назвал «модулем американского флага», так как тарабарщина из ASCII-символов, возникающая при запуске библиотек, должна была походить на американский флаг.
Аарон Шварц известный американский программист, писатель и активист, который покончил с собой в 2013 году при странных обстоятельствах.
При жизни Шварц приложил руку к созданию Reddit, активно боролся с цензурой в Сети (в частности, выступал против SOPA и PIPA), входил в состав группы RDF в Консорциуме Всемирной паутины (W3C).
Незадолго до смерти Шварца обвинили в том, что он скачал и намеревался выложить в открытый доступ документы из библиотеки JSTOR. Ему угрожали тридцатилетним тюремным сроком и многомиллионными штрафами. Вскоре Шварц покончил с собой, даже не оставив записки.
Вокруг смерти Шварца возникло множество самых безумных теорий, и многие до сих пор убеждены, что на самом деле с активистом поквиталось правительство.
Судя по всему, испортить код faker и colors Сквайрс решил ради мести корпорациям и коммерческим потребителям опенсорсных решений. Дело в том, что они часто полагаются на бесплатное ПО, поддерживаемое сообществом, однако, по словам Сквайрса, ничего не дают сообществу взамен. Еще в ноябре 2020 года разработчик писал, что более не собирается поддерживать корпорации и делать для них «бесплатную работу». Коммерческим организациям он советовал рассмотреть возможность создания форков или выплачивать ему шестизначную зарплату.
«Со всем уважением, я больше не собираюсь поддерживать [компании из списка] Fortune 500 (и прочие компании меньшего размера) своей бесплатной работой. Больше мне сказать нечего. Используйте эту возможность, чтобы прислать мне годовой контракт с шестизначной суммой или делайте форк проекта, чтобы над ним работал кто-то другой», — писал Сквайрс.
Поступок Сквайрса вызвал неоднозначную реакцию в сообществе. Тогда как некоторые называли его действия «смелым шагом», другие выражали недоумение и называли содеянное безответственностью, а Сквайрса – мошенником.
«Видимо, что автор colors.js злится из-за того, что ему не платят… Поэтому он решил печатать американский флаг каждый раз, когда загружается его библиотека… WTF», — писал один из пользователей.
«Если у вас есть проблемы с бизнесом, который использует ваш бесплатный код бесплатно, не публикуйте бесплатный код. Саботируя свои собственные широко используемые проекты, вы наносите вред не только крупному бизнесу, но и всем, кто их использует. Это приучает людей не обновляться, потому что что-нибудь может сломаться», — заявил эксперт компании VessOnSecurity.
Позже стало известно, что аккаунт Сквайрса на GitHub заблокирован, что вызвало еще один виток сетевых споров. Так, многие недоумевают, когда удаление или порча собственного кода стали нарушением правил GitHub, тогда как другие злорадно отмечают, что после выведения из строя тысяч чужих проектов было бы странно ждать другого исхода.
NPM has reverted to a previous version of the faker.js package and Github has suspended my access to all public and private projects. I have 100s of projects. #AaronSwartz pic.twitter.com/zFddwn631S
— marak ? (@marak) January 6, 2022