8 січня тисячі користувачів популярних на GitHub бібліотек з відкритим кодом faker.js і colors.js помітили, що їх додатки почали видавати нісенітниці і ламатися. Спочатку вони подумали, що хакери зламали їх проекти, але історія виявилась цікавішою: розробник навмисно зіпсував opensource-бібліотеки, на які покладалися уражені додатки. А їх таких виявилося десятки тисяч, повідомляє Bleeping Computer.
Зокрема, бібліотеку colors завантажували з npm приблизно 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» (з англ. – свобода), а потім – дивні літери та символи.
Після публікації скомпрометованих версій, Марак Сквайрс опублікував допис, більше схожий на знущання:
“Ми звернули увагу, що у релізі 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.
Цей випадок підняв питання, наскільки масово бізнеси експлуатують відкритий код у комерційних цілях, при цьому жодним чином не підтримуючи волонтерів, які публікують свої напрацювання з метою вдосконалення критично важливих для суспільства систем. Марак Сквайрс, судячи з усього, хотів додати актуальності цій проблемі.