Zemsta programisty Open Source. Psuje swój kod i skłania do refleksji

Zemsta programisty Open Source. Psuje swój kod i skłania do refleksji10.01.2022 20:53
Źródło zdjęć: © Getty Images | Tor Lindqvist

Gorący poniedziałek dla wielu programistów. Autor bardzo popularnych bibliotek Open Source intencjonalnie wprowadził do nich poważny błąd i opublikował. Problem dotknął setek tysięcy zależnych projektów, a my zastanawiamy się, czy to tylko kolejna ciekawa historia, czy lampka ostrzegawcza dla branży.

Osoby dramatu - colors oraz faker - to pakiety NPM wykorzystywane w aplikacjach uruchamianych w środowisku Node.js, czyli na przykład takich jak serwis dobreprogramy. Biblioteka colors pozwala kolorować tekst drukowany w konsoli i jest często używana przez samych programistów w procesie debugowania czy monitorowania aplikacji. Jest niezwykle popularna, notuje 23 miliony pobrań tygodniowo. Pakiet faker zaś umożliwia generowanie losowych, nieprawdziwych danych (np. nazwisk, adresów e-mail) w celu testowania aplikacji. Jest "trochę" mniej popularny - zaledwie 2,5 miliona pobrań każdego tygodnia.

W Polsce długi weekend krótko po Nowym Roku, a na świecie niektórzy nie próżnują i wydają nowe wersje swoich bibliotek. Wśród nich Marak Squires, autor między innymi colors i faker właśnie. Programiści, których projekty korzystają z choćby jednej z tych dwóch zależności, na pewno mocno się zdziwili, gdy przyszli w poniedziałek do pracy. Przykładowo: nowy faker praktycznie przestał działać, a colors po aktualizacji wpadał w nieskończoną pętlę i drukował na ekranie napis "LIBERTY LIBERTY LIBERTY" oraz tonę przypadkowych znaków. Doprowadzał tym samym do zawieszenia aplikacji.

Jeden z użytkowników GitHuba pokazał, jak działa "zaktualizowana" wersja colors., Źródło zdjęć: © dobreprogramy | Wojciech Kowasz
Jeden z użytkowników GitHuba pokazał, jak działa "zaktualizowana" wersja colors.
Źródło zdjęć: © dobreprogramy | Wojciech Kowasz

Społeczność na tropie

Początkowo podejrzewano, że biblioteka padła ofiarą ataku. Bywało już tak wcześniej w przypadku pakietów NPM - w październiku 2021 do pakietu ua-parser-js (8 milionów pobrań tygodniowo) został wstrzyknięty złośliwy kod, który udało się opublikować jako nową wersję biblioteki i masowo zaczęli pobierać ją inni programiści. Kilka dni później podobny los spotkał bibliotekę rc (12 milionów) oraz coa (8 milionów). Szybko jednak okazało się, że tutaj powód jest inny...

Jak to bowiem w przypadku bibliotek Open Source, kod colors i fakera znajdował się na GitHubie i stamtąd był publikowany. Wystarczyła chwila, by przekonać się, że wspomnianą nieskończoną pętlę, jak i kilka innych niespodzianek, zostawił nie kto inny, a sam autor bibliotek. Odpowiedni commit został szybko namierzony, toczy się tam obecnie zresztą niemała dyskusja, podobnie jak na Reddicie. Jakkolwiek patetycznie to brzmi, wszyscy zastanawiają się - dlaczego właściwie Marak zrobił światu to, co zrobił, i jak daleko może się posunąć?

Biorąc pod uwagę sarkastyczne wypowiedzi autora oraz odkopaną przez serwis Bleeping Computer wypowiedź z listopada 2020, gdzie Marak zapowiada "koniec pracy za darmo", można domyślać się powodów. Faktem jest, że te miliony pobrań nie biorą się z niczego. Programiści z najmniejszych i największych firm na świecie korzystają bezpłatnie z tysięcy bibliotek, w tym z dzieł Maraka, w swojej codziennej pracy, czyli w budowie innych aplikacji, często bardzo rozbudowanych, o krytycznym znaczeniu, za których stworzenie sami biorą niemałe pieniądze.

Od razu jednak na myśl przychodzą dwa zdroworozsądkowe wnioski. Po pierwsze, publikując kod na bardzo liberalnej licencji MIT w GitHubie Marak godził się przecież na to, że zostanie on bezpłatnie pobrany i wykorzystany komercyjnie. W ten sposób przecież funkcjonuje społeczność Open Source. Po drugie, jeśli nie chciał kontynuować pracy nad projektem, nikt go do tego nie zmuszał - mógł po prostu skończyć go utrzymywać, mógł też oddać stery komuś innemu ze społeczności. Marak postanowił jednak, że po nim choćby potop i wszyscy muszą się o tym przekonać "na twardo".

Co ciekawe, GitHub 6 stycznia, czyli po uszkodzeniu pierwszego pakietu faker, zawiesił konto Maraka na podstawie "naruszenia zasad użytkowania serwisu", ale chyba dość wątła to była podstawa, bo decyzja została szybko cofnięta. Bądź co bądź to sam autor wprowadził zmiany w swoim własnym projekcie, a że przypadkiem używały go miliony programistów na świecie... Być może jednak to właśnie ten ban tak zirytował Maraka, że postanowił podobnie zagrać na nosie użytkownikom znacznie bardziej popularnego pakietu colors.

Co dalej? NPM przywrócił paczki do poprzednich, działających wersji. Programistom korzystającym z obu bibliotek raczej sugerowalibyśmy jednak poszukanie alternatyw, a Marakowi parę głębokich oddechów. Czy po tym "happeningu" ktoś go zatrudni i faktycznie zapłaci za jego pracę? Firmy często doceniają bezinteresowny wkład programistów w świat Open Source, ale tutaj... "życzymy powodzenia".

Abstrahując od tego konkretnego przypadku, warto przygotować się na to, że podobne sytuacje będą się powtarzać i to nie tylko w świecie programistów. Administratorzy sieciowi mogą pamiętać choćby przypadek Supronetu z 2009 roku, gdzie zwyczajna pomyłka jednej osoby w konfiguracji protokołu BGP i wpisanie parametru w złe okienko spowodowała masowe awarie internetu w sporej części świata przez blisko godzinę.

Czas na chwilę refleksji

Zarówno w świetle tej weekendowej dewastacji, jak i ataków z ubiegłego roku czy wspomnianej pomyłki administratora sprzed lat, to samo pytanie wciąż i wciąż pozostaje aktualne. Czy przypadkiem w internecie nie ufamy sobie za bardzo, polegając zbytnio na dobrych intencjach innych?

Do jazdy samochodem trzeba mieć prawo jazdy, a do tworzenia aplikacji internetowych, zarządzania infrastrukturą sieciową czy chociażby udostępniania bibliotek takich jak colors - tylko klawiaturę. Użytkownicy, programiści, administratorzy - wszyscy wierzymy na słowo w umiejętności ludzi współtworzących czy zarządzających internetem. Nie mamy jednak za bardzo możliwości ani często kompetencji do ich weryfikacji. Jednocześnie chcemy, by internet był wolny i niezależny od nacisków, polityki, czyjegoś partykularnego interesu.

Liczymy też na siłę anonimowej "społeczności", która może i ma zdolność do samonaprawy, z czasem dąży do stanu równowagi, ale jak widać jest bardzo podatna na błędy czy zwyczajną ludzką złośliwość. Z drugiej strony to właśnie takie społeczności zbudowały fundamenty dzisiejszego internetu.

Szanowna Użytkowniczko! Szanowny Użytkowniku!
×
Aby dalej móc dostarczać coraz lepsze materiały redakcyjne i udostępniać coraz lepsze usługi, potrzebujemy zgody na dopasowanie treści marketingowych do Twojego zachowania. Twoje dane są u nas bezpieczne, a zgodę możesz wycofać w każdej chwili na podstronie polityka prywatności.

Kliknij "PRZECHODZĘ DO SERWISU" lub na symbol "X" w górnym rogu tej planszy, jeżeli zgadzasz się na przetwarzanie przez Wirtualną Polskę i naszych Zaufanych Partnerów Twoich danych osobowych, zbieranych w ramach korzystania przez Ciebie z usług, portali i serwisów internetowych Wirtualnej Polski (w tym danych zapisywanych w plikach cookies) w celach marketingowych realizowanych na zlecenie naszych Zaufanych Partnerów. Jeśli nie zgadzasz się na przetwarzanie Twoich danych osobowych skorzystaj z ustawień w polityce prywatności. Zgoda jest dobrowolna i możesz ją w dowolnym momencie wycofać zmieniając ustawienia w polityce prywatności (w której znajdziesz odpowiedzi na wszystkie pytania związane z przetwarzaniem Twoich danych osobowych).

Od 25 maja 2018 roku obowiązuje Rozporządzenie Parlamentu Europejskiego i Rady (UE) 2016/679 (określane jako "RODO"). W związku z tym chcielibyśmy poinformować o przetwarzaniu Twoich danych oraz zasadach, na jakich odbywa się to po dniu 25 maja 2018 roku.

Kto będzie administratorem Twoich danych?

Administratorami Twoich danych będzie Wirtualna Polska Media Spółka Akcyjna z siedzibą w Warszawie, oraz pozostałe spółki z grupy Wirtualna Polska, jak również nasi Zaufani Partnerzy, z którymi stale współpracujemy. Szczegółowe informacje dotyczące administratorów znajdują się w polityce prywatności.

O jakich danych mówimy?

Chodzi o dane osobowe, które są zbierane w ramach korzystania przez Ciebie z naszych usług, portali i serwisów internetowych udostępnianych przez Wirtualną Polskę, w tym zapisywanych w plikach cookies, które są instalowane na naszych stronach przez Wirtualną Polskę oraz naszych Zaufanych Partnerów.

Dlaczego chcemy przetwarzać Twoje dane?

Przetwarzamy je dostarczać coraz lepsze materiały redakcyjne, dopasować ich tematykę do Twoich zainteresowań, tworzyć portale i serwisy internetowe, z których będziesz korzystać z przyjemnością, zapewniać większe bezpieczeństwo usług, udoskonalać nasze usługi i maksymalnie dopasować je do Twoich zainteresowań, pokazywać reklamy dopasowane do Twoich potrzeb. Szczegółowe informacje dotyczące celów przetwarzania Twoich danych znajdują się w polityce prywatności.

Komu możemy przekazać dane?

Twoje dane możemy przekazywać podmiotom przetwarzającym je na nasze zlecenie oraz podmiotom uprawnionym do uzyskania danych na podstawie obowiązującego prawa – oczywiście tylko, gdy wystąpią z żądaniem w oparciu o stosowną podstawę prawną.

Jakie masz prawa w stosunku do Twoich danych?

Masz prawo żądania dostępu, sprostowania, usunięcia lub ograniczenia przetwarzania danych. Możesz wycofać zgodę na przetwarzanie, zgłosić sprzeciw oraz skorzystać z innych praw wymienionych szczegółowo w polityce prywatności.

Jakie są podstawy prawne przetwarzania Twoich danych?

Podstawą prawną przetwarzania Twoich danych w celu świadczenia usług jest niezbędność do wykonania umów o ich świadczenie (tymi umowami są zazwyczaj regulaminy). Podstawą prawną przetwarzania danych w celu pomiarów statystycznych i marketingu własnego administratorów jest tzw. uzasadniony interes administratora. Przetwarzanie Twoich danych w celach marketingowych realizowanych przez Wirtualną Polskę na zlecenie Zaufanych Partnerów i bezpośrednio przez Zaufanych Partnerów będzie odbywać się na podstawie Twojej dobrowolnej zgody.