Felietony

Pokasował w Rosji i Białorusi dane. Postąpił bez litości

Jakub Szczęsny
Pokasował w Rosji i Białorusi dane. Postąpił bez litości
15

Z jednej strony ta wieść mnie ucieszyła. Z drugiej, poważnie zmartwiła. Pojawiła się strona trzecia i byłem już lekko przerażony. Otwartoźródłowa biblioteka stała się narzędziem protestu w rękach jej autora i ten dodał do niej kod usuwający dane na komputerach programistów. Nie chodzi tutaj o coś niszowego - mówimy o pakiecie, który może się pochwalić milionami pobrań tygodniowo. Rosjanie i Białorusini na pewno musieli srogo przekląć przy maszynach.

Bo sama sprawa nie jest taka zerojedynkowa. Autor biblioteki node.ipc zwyczajnie odrobinę "nie podumał", dodając do niej funkcję typowego wipera. Bo o ile wyrządzenie szkody Rosjanom i Białorusinom na komputerach można na pierwszy rzut oka zaliczyć do działań chwalebnych, tak nie można zapominać że świat nie składa się z bieli i czerni. To, co znalazło się w usuwającym dane dodatku do biblioteki node.ipc mogło dotknąć osoby, które działają na Białorusi i w Rosji - ale jednak działają w opozycji do swoich reżimów. Co więcej, istnieją firmy z Zachodu, które mają swoje serwery na Białorusi, nie mają one zbyt wiele wspólnego z reżimami. I nagle taka biblioteka robi na nim czystkę. Ałć.

Autor node.ipc dwa tygodnie temu wdrożył w swojej bibliotece zestaw funkcji, które nadpisują pliki na komputerze - zastępując je emotką. Co więcej, Brandon Nozaki Miller (dalej mówimy o autorze biblioteki) ukrył w zręczny sposób części odpowiadające za usuwanie danych - po to, aby użytkownicy mający problemy z pakietem nie mogli wizualnie dopatrzyć się żadnych nieprawidłowości. Każdy system, na którym zostanie wywołany pakiet npm - jeżeli zostanie wykryta geolokalizacja wskazująca na obecność maszyny na Białorusi oraz w Rosji - zostanie wystawiony na ogromne zagrożenie.

Warto pamiętać, że autor node.ipc odpowiada za utrzymanie również wielu innych bibliotek - niektóre są w relacji zależności z innymi pakietami otwartoźrodłowymi. Relacje w środowisku deweloperów opierają się na wzajemnym zaufaniu, które mimo "rażonego obiektu" mogły zostać wystawione na próbę. Nikt, kto używa bibliotek Pana Nozaki Millera nie ma pewności, że za chwilę nie wdroży on złośliwych porcji kodu do swoich innych tworów. Wiele osób wskazuje, że w takiej sytuacji trudno jest mówić o jakimkolwiek zaufaniu.

Można mówić w tej sytuacji, że tak mogą mówić tylko ruskie onuce i tak dalej - ale w tym konkretnym przypadku działa wycelowane są nie tak, jak trzeba. Wycelowane za szeroko. Jak zapewne wiecie, Moi Kochani - nie kryję się z nienawiścią do obecnej "osi zła", którą reprezentują "sami wiecie kto". I w sumie to mógłbym się cieszyć z tego, co się stało. Rosjanom i Białorusinom zrzedły miny. Pytałem o sprawę polskich deweloperów, którzy sprawę znają. Po serii "xD" wysyłanych mi na Slacku - w geście radości z powodu danych, które poszły w Rosji i Białorusi w ПИЗДЕЦ, nadeszły i nieco refleksyjne opinie. Że przecież idea open-source to również wzajemne zaufanie, którego teraz Panu Nozaki Millerowi będzie brakować ze strony społeczności.

Autor blyatware'u może mieć problemy prawne

Wyobraźcie sobie, że jesteście organizacją która ma serwer na Białorusi i działa nad omijaniem tamtejszej cenzury. I wszystko idzie w niwecz, bo korzystano z tej biblioteki. A wiecie, że tak właśnie się stało? Posłużę się cytatem ze Snippet Host poszkodowanych:

Ze względu na cenzurę internetu w tym kraju (na Białorusi), jeden z serwisów internetowych służących do bezpiecznego kontaktu z nami był umieszczony na serwerach znajdujących się na Białorusi. Zwykle 20. dnia każdego miesiąca tworzymy kopię zapasową otrzymanej zawartości na zewnętrznym serwerze, ponieważ jest to rozsądne, biorąc pod uwagę ilość otrzymywanych przez nas wiadomości, ale od rozpoczęcia inwazji 24 lutego ruch w naszym serwisie internetowym wzrósł ponad pięćdziesięciokrotnie. Podczas jednego z zadań na serwerze produkcyjnym został zaktualizowany pakiet zawierający moduł node-ipc, co spowodowało wykonanie Twojego kodu i usunięcie ponad 30 000 wiadomości i plików opisujących zbrodnie wojenne popełnione na Ukrainie przez rosyjską armię i urzędników państwowych.

Dziennikarze sądzą, że doszło do zainicjowania swego rodzaju ruchu "protestware", co ma być rzecz jasna odpowiedzią na zbrodnie putinowskiego reżimu. No, tak. Ale protestować, to trzeba umieć. W tej konkretnej sytuacji ucierpiał ktoś, kto ucierpieć nie powinien, bo działa w tych zbrodniczych krajach i zajmuje się de facto walką po jasnej stronie mocy. No, ale geolokalizacja powiedziała "Białoruś" i wszystko poszło w ciężką cholerę. Organizacja zapowiada działania prawne:

Osobiście, ja i moi koledzy jesteśmy absolutnie zdruzgotani. Mogę tylko powiedzieć, że wasze małe machlojki wyrządziły nam więcej szkód niż Putin czy Łukaszenka mogliby kiedykolwiek wyrządzić. Z zawodowego punktu widzenia, nasz adwokat zasugerował wniesienie oskarżenia na szczeblu federalnym i prawdopodobnie będziemy postępować w ten sposób.

Protestware to nie tylko node.ipc - coś podobnego znaleziono w pakiecie es5-ext, w postinstall.js wydanym 7 marca, dodano kod sprawdzający geolokalizację. Jeżeli serwer znajduje się w Rosji - kod generuje "wezwanie do pokoju". Z jednej strony nie jest to nic złego. Z drugiej jednak - to przecież nie jest rola tego oprogramowania - ono ma działać zgodnie z założeniami i nic ponad to.

Moim skromnym zdaniem, otwartoźródłowcy piszący rzeczy, z których korzystają inni programiści (a to obecnie zupełnie normalne) - powinni robić to, co do nich należy. I protestować w taki sposób, który nie spowoduje nieprzewidzianych szkód lub przekroczenia idei wzajemnego zaufania. Na tym zakończę, Moi Drodzy. Trzymajcie się tam.

Hej, jesteśmy na Google News - Obserwuj to, co ważne w techu