Przejdź do treści

Pieśni o Bezpieczeństwie Sieci
blog Michała "ryśka" Woźniaka

Newag przyznaje: hakerzy z Dragon Sector nie modyfikowali oprogramowania w Impulsach

Ten tekst został napisany na zlecenie OKO.press i tam oryginalnie opublikowany.

Poprawne uznanie autorstwa tego tekstu to: "Michał 'rysiek' Woźniak, Fundacja Ośrodek Kontroli Obywatelskiej „OKO”", powinno też zawierać odnośnik do oryginalnego tekstu w portalu OKO.press.

We środę 28. sierpnia ruszył proces o naruszenie praw autorskich, wytoczony przez Newag firmie Serwis Pojazdów Szynowych oraz ekspertom z grupy Dragon Sector, którzy ujawnili aferę z dziwnymi blokadami pociągów Impuls. Producent Impulsów domaga się prawie sześciu milionów złotych zadośćuczynienia. Przyznaje przy tym, że hakerzy nie modyfikowali oprogramowania zainstalowanego w pociągach.

Pod koniec 2023 roku Onet i Zaufana Trzecia Strona doniosły o sprawie blokujących się pociągów pasażerskich Impuls. Ja opisałem temat dla OKO.press w grudniu. Newagowskie składy od lat doświadczały podejrzanych awarii. Unieruchamiały one pojazdy często po serwisie przez niezależne od Newagu warsztaty serwisowe, takie jak firma Serwis Pojazdów Szynowych (SPS).

Dokonana przez zatrudnionych przez SPS hakerów, ekspertów od systemów wbudowanych, analiza oprogramowania wgranego na kontrolery zainstalowane w pojazdach wskazuje na celowo zaimplementowane blokady, załączające się, gdy spełnione są konkretne warunki. Warunki te wydają się być dobrane w taki sposób, by blokady włączały się w pojazdach, które były serwisowane przez niezależne od Newagu warsztaty serwisowe.

Wnioski z tej analizy uznane zostały za wiarygodne przez Zespół Reagowania na Incydenty Bezpieczeństwa Komputerowego NASK.

W wyniku analizy, hakerom z grupy Dragon Sector udało się zablokowane składy uruchomić. Wyjaśnili też, w jaki sposób tego dokonali, i dlaczego Impulsy się blokowały.

Newag zaprzecza

Newag kategorycznie zaprzecza, że ma z blokadami cokolwiek wspólnego.

Ale nie podaje żadnego przekonywającego wyjaśnienia, skąd w produkowanych przezeń pojazdach Impuls – i tylko w nich! – eksploatowanych przez szereg różnych przewoźników na terenie całego kraju znalazły się takie funkcje blokujące. “Mamy 23 typy pojazdów i w żadnym się nie spotkaliśmy z takim zjawiskiem jak w tym pojeździe” – powiedział na spotkaniu pod koniec lutego w Sejmie Piotr Wakuła, dyrektor biura eksploatacyjno-technicznego Kolei Mazowieckich.

Newag odmawia też odpowiedzi na pytanie, w jaki sposób był w stanie zablokowane pojazdy uruchamiać. Moje pytanie rzecznik spółki zbył: “Nasze działania sprowadzały się przywrócenia prawidłowego poziomu integralności tych systemów (diagnostyka, weryfikacja i walidacja).” Na prośbę o uszczegółowienie nie odpisał.

Ta “diagnostyka, weryfikacja i walidacja” powtarzała się też jak mantra na spotkaniach parlamentarnego zespołu ds. walki z wykluczeniem transportowym, i nie usatysfakcjonowała tam ani przewoźników, ani przedstawicielek i przedstawicieli parlamentu.

Zamiast wyjaśnienia sprawy, spółka pozywa hakerów z grupy Dragon Sector oraz firmę SPS o naruszenie praw autorskich do oprogramowania zainstalowanego w Impulsach. Oraz domaga się od ABW “objęcia specjalnym nadzorem” wszystkich osób które uczestniczyły w konferencji Oh My Hack!, na której członkowie grupy Dragon Sector zaprezentowali swoje ustalenia.

Skąd w oprogramowaniu blokady?

Kilka miesięcy temu zapytałem Newag o to, skąd w oprogramowaniu Impulsów znalazły się opisane w analizie ekspertów z Dragon Sector blokady. W odpowiedzi rzecznik prasowy spółki, Łukasz Mikołajczyk, podważał w ogóle fakt ich istnienia:

“Nie posiadamy wiedzy czy opisywane w mediach blokady w ogóle kiedykolwiek istniały. (…) Możemy jedynie raz jeszcze podkreślić, że w posiadanym przez nas kodzie źródłowym tego rodzaju rozwiązania nie występują.” – czytam w odpowiedzi, nadesłanej 4. kwietnia.

Ale już parę akapitów dalej w tym samym dokumencie rzecznik Newagu mało subtelnie insynuuje, że to sami eksperci z Dragon Sector takie blokady do oprogramowania Impulsów wprowadzili:

Istnieje teoria, zgodnie z którą SPS Mieczkowski postanowił poradzić sobie z przeszkodą braku specyfikacji technicznej w inny sposób i wynajął hakerów, żeby zakończyć czynności utrzymaniowe pojazdów bez konieczności zakupu licencji od NEWAG.

Gdyby to ta historia okazała się prawdziwa znaczyłoby to, że hakerzy włamali się do oprogramowania pojazdów IMPULS, mimo, iż nie posiadali kodu źródłowego i nie znając systemu wprowadzili takie zmiany w oprogramowaniu, które doprowadziły do tego, że pociągi „wariują”.

Wielokrotnie próbowałem dopytać, czyja to teoria, i czy zdaniem spółki Newag to specjaliści z Dragon Sector zaimplementowali w oprogramowaniu te blokady. Odpowiedzi do dziś nie uzyskałem. Ale podobne twierdzenia Newag zamieścił w swoim oświadczeniu z grudnia 2023 r.:

W naszej ocenie prawda może być zupełnie inna – że np. to konkurencja ingerowała w oprogramowanie. Powiadomiliśmy w tej sprawie właściwe służby. Zresztą nie pierwszy raz powiadamiamy organy ściągania, iż w nasze oprogramowanie modyfikowane jest bez naszej autoryzacji.

A mimo to w pozwie Newagu o naruszenie praw autorskich możemy przeczytać, że:

W ramach podjętych (przez ekspertów z Dragon Sector – przyp. red.) działań nie doszło do zainstalowania zmienionego Oprogramowania

Skąd ta nagła zmiana frontu?

Wyrok C‑13/20

Od początku afery z Impulsami ich producent podkreśla, że jego zdaniem eksperci z Dragon Sector naruszyli jego prawa autorskie do oprogramowania zainstalowanego w kontrolerach tych pociągów. Musieli bowiem to oprogramowanie skopiować z pamięci trwałej kontrolerów, po czym je zdekompilować w celu analizy, na co Newag firmie SPS ani zatrudnionym przez nią hakerom pozwolenia nie udzielił.

Prawo autorskie pozwala jednak dokonać inżynierii wstecznej oprogramowania w określonych sytuacjach. Potwierdza to wyrok wyrok C-13/20 wydany przez Trybunał Sprawiedliwości Unii Europejskiej w sprawie Top System. Chodziło w niej też o rzekome naruszenie praw autorskich związane z dekompilacją oprogramowania w celu naprawy jego błędów.

Trybunał orzekł, że:

…uprawniony nabywca programu komputerowego może dokonać dekompilacji całości lub części tego programu w celu poprawienia błędów mających wpływ na jego funkcjonowanie, również w przypadku gdy poprawienie polega na wyłączeniu funkcji zakłócającej prawidłowe funkcjonowanie aplikacji, której program ten jest częścią.

I że uzyskanie odpowiedniej licencji od producenta oprogramowania nie jest w takim wypadku niezbędne.

Przyznając, że specjaliści z Dragon Sector nie wprowadzili zmian w oprogramowaniu Impulsów Newag próbuje twierdzić, że nie “naprawili” oni samego oprogramowania, a co za tym idzie wyrok C-13/20 nie ma zastosowania.

“DS (Dragon Sector – przyp. red.) stwierdzili, że przyczyną unieruchomienia Pojazdów Impuls 45WE był rzekomo parametr znajdujący się w pamięci Sterownika Selectron. Po jego zmianie udawało się uruchomić Pojazdy Impuls 45WE. Nie jest to jednak naprawa, ponieważ nie stwierdzono awarii” – czytamy w pozwie.

“Ani DS, ani SPS nie dokonali żadnej ‘naprawy’ Oprogramowania NEWAG IP”

“Ani DS, ani SPS nigdy nie wykazali żadnych błędów w Oprogramowaniu NEWAG IP.”

Skoro oprogramowanie nie zostało “naprawione”, to zdaniem Newagu “dekompilacja programu nie była potrzebna do uruchomienia Pojazdów Impuls 45WE.” A skoro nie była potrzebna, to działania podjęte w tym celu rzekomo nie spełniały kryteriów wyroku C-13/20 i stanowiły naruszenie praw autorskich producenta oprogramowania.

Pamięć pamięci nierówna

Jednocześnie jednak Newag z upodobaniem powtarza, że wynajęci przez SPS specjaliści “ingerowali w system sterowania”, sugerując, że może to być zgoła niebezpieczne. Jak to pogodzić z twierdzeniami o tym, że nie zmienili oni zainstalowanego na kontrolerach oprogramowania?

Kontrolery użyte w Impulsach mają trzy rodzaje pamięci:

  • FLASH
    tu znajduje się kod maszynowy oprogramowania i systemu operacyjnego uruchomionego na kontrolerze;
  • NVRAM
    zapisywane są w nim ustawienia i inne dane, które powinny być zachowane nawet jeśli wyłączone zostanie zasilanie kontrolerów;
  • RAM
    pamięć operacyjna, w niej przechowywane są dane potrzebne podczas działania oprogramowania; przechowuje dane tak długo, jak długo kontroler jest zasilany.

Ten podział nie jest niczym wyjątkowym. W zasadzie identycznie wygląda architektura pamięci domowego routera WiFi.

Gdy restartujemy takie urządzenie, tracone są dane w pamięci RAM, ale nie ustawienia przechowywane w NVRAM, ani oprogramowanie w pamięci FLASH. Zmieniając ustawienia w interfejsie użytkownika zmieniamy wartości przechowywane w pamięci NVRAM, ale nie dokonujemy żadnych zmian w samym oprogramowaniu zainstalowanym w pamięci FLASH.

W celu uruchomienia składów Impuls hakerzy z Dragon Sector modyfikowali odpowiednie zmienne w pamięci NVRAM. A więc “ingerowali w system sterowania”. Nie wprowadzali jednak żadnych zmian do oprogramowania w pamięci FLASH, choćby dlatego, że wymagałoby to przeprowadzenia odpowiedniej certyfikacji jego nowej wersji zanim pociągi wyjadą znów na tory.

Tam zaś, gdzie uruchomienie pociągu wymagałoby zmian w oprogramowaniu – bo np. warunek blokady polegał wyłącznie na konkretnej dacie zawartej w oprogramowaniu, nie wartościach zmiennych w pamięci NVRAM – pociągów nie udało się naprawić. Jak w przypadku pociągu 31WE-015, który co roku blokuje się 21. listopada i 21. grudnia, po czym sam się uruchamia 1. grudnia i 1. stycznia.

Gimnastyka intelektualna

Ta linia argumentacji Newagu to dość karkołomna gimnastyka intelektualna.

Po pierwsze, trudno, żeby hakerzy z Dragon Sector “wykazali błędy” oprogramowania, skoro zgodnie z ich analizą funkcjonalność blokowania się Impulsów dodana była w tym oprogramowaniu celowo.

Po drugie, ta argumentacja opiera się na bardzo wąskim rozumieniu pojęcia “naprawy”. Z punktu widzenia przewoźników zablokowane Impulsy były przecież “zepsute”, a uruchomienie ich stanowiło “naprawę awarii” – nawet jeśli ta naprawa nie wymagała zmian w zainstalowanym na sterownikach pociągów oprogramowaniu (bo wystarczyła zmiana wartości odpowiednich zmiennych w pamięci NVRAM).

Po trzecie, Newag twierdzi, że skoro modyfikacje nie dotyczyły samego oprogramowania (a tylko wartości zmiennych w pamięci NVRAM), to dekompilacja tego oprogramowania nie była niezbędna. To trochę tak, jakby twierdzić, że skoro naprawa naszego samochodu polegała na dokręceniu jednej śrubki, to nie wymagała zrozumienia, jak działa cały silnik. Ale jak bez tej wiedzy mielibyśmy wiedzieć, że to akurat tę śrubkę trzeba dokręcić?..

Oczywiście nie jest to jedyna linia argumentacji użyta przez Newag w pozwie przeciwko ekspertom i SPS – dogłębna analiza całego ponad 160-stronicowego dokumentu to zadanie dla prawników. Ja skupiam się tu tylko na aspektach zahaczających o kwestie techniczne.

Pytania bez odpowiedzi

Bez jednoznacznej odpowiedzi – przynajmniej ze strony Newagu – pozostaje jednak wciąż kluczowe pytanie, czemu Impulsy się blokowały? Czemu 31WE-015 staje co roku między 21. listopada a 1. grudnia, po czym ponownie między 21. grudnia a 1. stycznia?

Eksperci z Dragon Sector przedstawili spójne, wiarygodne, i poparte danymi wyjaśnienie: oprogramowanie w sterownikach pociągów zawiera funkcje blokujące, załączające się przy spełnieniu konkretnych warunków. Na przykład w 31WE-015 ten warunek to konkretna data, która wydaje się pokrywać z planowanym na listopad 2021 r. przeglądem przez niezależny od Newagu serwis.

W innych wypadkach warunkiem włączenia się blokady była między innymi pozycja GPS pociągu zawierająca się w konkretnych obszarach – pokrywających się z lokalizacją niezależnych zakładów serwisowych.

Natomiast producent pociągów lawiruje i kluczy. Z jednej strony twierdzi, że nie wie nic o blokadach w oprogramowaniu (“w posiadanym przez nas kodzie źródłowym tego rodzaju rozwiązania nie występują”). Z drugiej insynuuje, że zaimplementowali je sami hakerzy z Dragon Sector. By wreszcie przyznać, że jednak nie modyfikowali oni oprogramowania zainstalowanego w pociągach (a więc nie mogli tych blokad sami zaimplementować).

Dziwne komunikaty o naruszeniu praw autorskich

W swojej “białej księdze” Newag zaznacza też:

Ingerując w systemy sterowania hakerzy wiedzieli, że dopuszczają się naruszeń majątkowych praw autorskich grupy NEWAG ze względu na wyświetlane przez system komunikaty.

Zapytałem rzecznika spółki o to, jakie były warunki wymagane do tego, by taki komunikat został wyświetlony. W odpowiedzi otrzymałem informację, że: “nie znamy tych warunków gdyż nie jesteśmy ich autorami.”

Podsumowując:

  • rzecznik spółki nie miał problemu z kategorycznym stwierdzeniem, że w kodzie oprogramowania Impulsów nie ma żadnych blokad;
  • ale nie jest w stanie określić, w jakich wypadkach pojawiały się komunikaty o naruszeniu praw autorskich w kabinie maszynisty;
  • mimo, że Newag na te komunikaty sam się powołuje w swoich materiałach.

Z dostępnych informacji wynika, że komunikat o naruszeniu praw autorskich najwyraźniej wyświetlał się wtedy, gdy pojazd poruszał się mimo, że spełniony był jeden z warunków blokady – postój powyżej 21 dni.

System zarządzający wyświetlaczami w kabinie maszynisty jest odrębny od kontrolerów, na których działało oprogramowanie z blokadami unieruchamiającymi Impulsy. Teoretycznie więc producent mógłby zaimplementować ten komunikat, nie mając pojęcia o blokadach.

Jeżeli jednak Newag – jak twierdzi – nie miał z blokadami nic wspólnego, to czemu fakt, że pociąg nie jest przez nie unieruchomiony mimo, że spełniony jest jeden z ich warunków, miałby zdaniem spółki świadczyć o naruszeniu jej praw autorskich? I jak to się stało, że warunek zaimplementowany w obu tych systemach w tym samym pojeździe był identyczny: 21 dni postoju?..

I wreszcie: jeżeli blokady znalazły się w oprogramowaniu Impulsów bez wiedzy i zgody ich producenta, to można by się raczej spodziewać współpracy z hakerami z Dragon Sector, w celu jak najszybszego ustalenia, kto, kiedy i w jaki sposób to zmienione oprogramowanie tam umieścił. Newag przecież niejednokrotnie podkreślał, że cała sprawa negatywnie odbija się na wizerunku firmy i wartości jej akcji.

Zamiast jednak próbować sprawę szybko wspólnie wyjaśnić, spółka pozywa ekspertów do sądu, domagając się milionowego odszkodowania.

SLAPPem w ekspertów?

“Z przedstawionego w mediach opisu sprawy wynika, że możemy mieć w tym przypadku do czynienia z tzw. SLAPPem – czyli strategicznym powództwem zmierzającym do stłumienia debaty publicznej.” – mówi mi Krzysztof Izdebski, prawnik z Fundacji im. Stefana Batorego.

Polega on na tym, że najczęściej w stosunku do osób, które identyfikują i ujawniają nieprawidłowości, podmiot, który prawdopodobnie się do nich przyczynił składa pozew, który ma wywołać efekt mrożący. Dla samym pozwanych, ale również wszystkich innych, którzy chcieli by pójść w ich ślad.

“UE przyjęła niedawno dyrektywę, która ma chronić przed takimi zjawiskami.” – zaznacza mój rozmówca – “W preambule wskazuje się m.in. że”skutkiem takich postępowań może być opóźnienie lub w ogóle uniemożliwienie publikacji informacji na temat sprawy leżącej w interesie publicznym".

W owym interesie jest zatem aby dziennikarze i organizacje społeczne bacznie przyglądały się tej sprawie i weryfikowały czy faktycznie mamy do czynienia ze SLAPPem i z próbą tłumienia wolności wypowiedzi i prawa do prawdy.

Podczas środowej rozprawy, Newag zawnioskował o utajnienie całego procesu. Sąd wniosek odrzucił.

Konieczne licencje

Bulwersująca afera z Impulsami uwypukla jeszcze jeden, szerszy problem: konieczność zadbania o odpowiednie licencje na oprogramowanie będące elementem różnych usług publicznych (w tym komunikacji publicznej).

Oprogramowanie jest dziś kluczową częścią większości urządzeń, w tym środków transportu, z których na co dzień korzystamy. To niedopuszczalne, by prawa autorskie producenta oprogramowania ograniczały możliwość ustalenia przyczyn awarii pociągu i jej naprawienia przez przewoźnika lub firmę przezeń do tego wynajętą! To niepojęte, by eksperci, którzy takiej analizy dokonali i uruchomili zablokowane składy, byli ciągani po sądach za rzekomy brak odpowiedniej licencji.

Z punktu widzenia pasażerów i przewoźników kwestia praw autorskich jest przecież zupełnie drugorzędna w porównaniu z pytaniem, kto zaimplementował te blokady w pociągach regularnie przewożących tysiące ludzi, i kupionych w dużej mierze za publiczne pieniądze. Oraz jak szybko zablokowane składy mogą wrócić do normalnej eksploatacji.

Możliwym rozwiązaniem jest, aby oprogramowanie będące elementem systemów czy urządzeń finansowanych z publicznych pieniędzy musiało być udostępniane na wolnej licencji, z dostępnym kodem źródłowym. Albo przynajmniej wymóg, by instytucje eksploatujące urządzenia i systemy nabyte przy udziale środków publicznych uzyskiwały również pełną dokumentację, kod źródłowy, i odpowiednią licencję pozwalającą na modyfikację oprogramowania, w tym przez podmioty trzecie, którym takie prace byłyby zlecone.

Nie tylko usunęłoby to niepewność prawną i zagrożenie procesami o naruszenie praw autorskich w takich sytuacjach, ale również ułatwiłoby audyty bezpieczeństwa. Oraz umożliwiłoby rozwój i ulepszanie tego oprogramowania (w tym naprawianie błędów) przez niezależne firmy – również w przypadku, gdy oryginalny producent zbankrutował lub nie jest zainteresowany rozwojem oprogramowania dla starszych modeli sprzętu.

Skoro ufamy e-bankowości, możemy zaufać e-wyborom?

Ten tekst został napisany na zlecenie OKO.press i tam oryginalnie opublikowany.

Poprawne uznanie autorstwa tego tekstu to: "Michał 'rysiek' Woźniak, Fundacja Ośrodek Kontroli Obywatelskiej „OKO”", powinno też zawierać odnośnik do oryginalnego tekstu w portalu OKO.press.

Wysuwanie wniosków na temat bezpieczeństwa (nie tylko cyfrowego) e-wyborów na podstawie naszego zaufania do e-bankowości prowadzi na manowce. Bezpieczeństwo elektronicznych transakcji finansowych opiera się na narzędziach i procesach, które w dużej mierze nie mają zastosowania w kontekście głosowania przez Internet. I mierzy się z innymi rodzajami zagrożeń.

W debacie publicznej na temat wyborów przez Internet regularnie pojawia się twierdzenie, że skoro ufamy bankowości internetowej w kontekście naszych pieniędzy, to możemy zaufać bezpieczeństwu e-wyborów.

Na przykład w wypowiedzi dla portalu Cyberdefense24, wiceminister cyfryzacji Michał Gramatyka ujął to tak:

Bezpieczeństwem bym się nie przejmował, bo jeśli możemy teraz bezpiecznie korzystać z systemów bankowych, a to dotyczy naszych pieniędzy, to myślę, że spokojnie też zaakceptujemy głosowanie przez internet.

Choć na pierwszy rzut oka brzmi to sensownie, zwłaszcza z ust wiceministra cyfryzacji, to niestety jest błędne. Zabezpieczenie wyborów powszechnych w formie elektronicznej to zasadniczo inny problem, niż bezpieczeństwo elektronicznych operacji finansowych. I znacznie trudniejszy do rozwiązania.

Nie tylko środki techniczne

“Bezpieczeństwo bankowości elektronicznej opiera się na bardzo wielu poziomach różnego rodzaju zabezpieczeń”, a środki techniczne są tylko niewielką ich częścią, mówi mi prof. Jacky Mallett, profesorka cyber-bezpieczeństwa na Uniwersytecie Reykjavíku. Prof. Mallett jest też ekspertką w zakresie bankowości, była członkinią rady nadzorczej islandzkiego banku centralnego, Seðlabanki Íslands.

Banki zarządzają ryzykiem transakcji, w tym tych zleconych przez nas przez Internet, nie tylko odpowiednio projektując swoją infrastrukturę, wdrażając szyfrowany protokół HTTPS czy wymagając logowania dwuskładnikowego, ale przede wszystkim za pomocą procedur, audytów, bieżącej analizy operacji i zagrożeń, czy wreszcie ubezpieczenia siebie i zgromadzonych środków od szkód związanych z incydentami bezpieczeństwa.

Wiele z tych narzędzi i procedur jest zwyczajnie niedostępnych lub nieskutecznych w kontekście e-wyborów i zagrożeń z nimi związanych. Spytana o to, jak duża część rozwiązań technicznych i nietechnicznych, stosowanych do zabezpieczenia e-bankowości, miała by zastosowanie w kontekście wyborów przez Internet, prof. Mallett odpowiada krótko: “jeśli mówimy o głosowaniu tajnym, w zasadzie nic”.

Analiza danych

W odróżnieniu od naszych głosów, transakcje bankowe nie są tajne. Ma to absolutnie zasadnicze znaczenie.

Instytucje finansowe zaangażowane w daną operację (np. przelew czy płatność kartą) wiedzą, kto ją zlecił, na jaką kwotę, na czyje konto. Nie oznacza to, że nasze transakcje są publiczne: instytucje finansowe mają obowiązek chronić nasze dane, w tym dane dotyczące naszych transakcji. Ale same mają do tych danych (w tym danych historycznych) dostęp, mogą je więc analizować. Na podstawie tej analizy mogą wychwytywać – i na bieżąco blokować – podejrzane transakcje.

Czasem powoduje to niedogodności: zablokowana może być zupełnie niewinna transakcja, która jest niespodziewana w kontekście historii danego konta. Na przykład wypłata z bankomatu z konta osoby, która pierwszy raz wybrała się na zagraniczną wycieczkę. Ale oznacza to też, że jeśli w jakiś sposób wyciekną on-line dane naszej karty, trudniej będzie z nich skorzystać cyberprzestępcom np. z Chin, Rosji czy Stanów Zjednoczonych.

Realnie zwiększa to więc bezpieczeństwo e-bankowości. A nie ma odpowiednika w przypadku pytania o bezpieczeństwo e-wyborów – głosy są tajne, nie ma żadnej “historii” głosowania, którą można by analizować w kontekście konkretnego aktu głosowania przez daną osobę. Co najwyżej można analizować bieżący ruch sieciowy czy zapytania do serwerów systemu wyborczego, ale w porównaniu z możliwością analizy historii transakcji konkretnej osoby na przestrzeni lat czy dekad to bardzo ograniczone narzędzie.

Sami nie zauważymy

Do historii naszych operacji finansowych mamy też oczywiście dostęp sami, w tym długo po ich przeprowadzeniu. To obserwacja może banalna, ale naprawdę ważna.

We własnym zakresie możemy wszak wyłapać transakcje bankowe, które wydają się nam podejrzane – na przykład nie pamiętamy ich zlecenia, nie zgadza się kwota lub odbiorca. W naszym interesie jest poinformowanie banku, a w interesie banku - zbadanie sprawy, i ewentualne zadbanie o to, by utracone środki zostały nam zwrócone.

W kontekście e-wyborów takiej możliwości nie mamy. Nasz głos musi być tajny, nie może być więc możliwości powiązania konkretnego głosu z konkretną osobą. Nie ma jak umożliwić nawet nam samym sprawdzenia, czy nasz głos został indywidualnie poprawnie zarejestrowany i policzony, bez porzucenia zasady tajności głosowania.

Naprawienie szkody

Gdy okaże się, że dana operacja finansowa faktycznie była efektem jakichś nieprawidłowości, istnieje możliwość naprawienia szkody, w postaci zwrotu części lub całości utraconych środków. Nawet, jeśli upłynęły od niej tygodnie czy miesiące. I to niezależnie od tego, czy chodzi o zupełnie “nie elektroniczne” oszustwo, błąd banku lub wykorzystywanych przezeń systemów, czy o złośliwe przełamanie zabezpieczeń technicznych lub użycie skradzionej karty kredytowej.

Banki i inne instytucje finansowe oczywiście ubezpieczają się od tego typu sytuacji. Ostatecznie, jeśli nasze środki zostały skradzione bez naszej winy, w wyniku przełamania jakichś technicznych zabezpieczeń, i nie ma możliwości ich odzyskania przez bank, nadal możemy oczekiwać, że środki zostaną nam zwrócone właśnie z ubezpieczenia. Oczywiście takie śledztwo może potrwać nawet kilka miesięcy, ale w końcu nasza szkoda może zostać zostać naprawiona.

Trudno tu wyobrazić sobie jakikolwiek odpowiednik w kontekście e-wyborów. Zliczanie głosów i ogłoszenie wyniku to kwestia godzin lub dni. Nie ma czasu na dogłębne śledztwo w przypadku podejrzenia przełamania zabezpieczeń.

A nawet gdyby, to jak miałoby wyglądać naprawienie szkody? Zwłaszcza, jeśli ustalenie, co się stało, zajmie tygodnie czy miesiące ze względu na bizantyjskie wręcz (w porównaniu do papierowego procesu wyborczego) skomplikowanie systemów obsługujących e-wybory. Parlament dawno zaprzysiężony, prezydent dawno już podpisał pierwsze akty prawne… Nowe wybory? Jak by to się przełożyło na zaufanie do procesu wyborczego?

Czas

Instytucje finansowe nieprzerwanie doświadczają ataków i nieprzerwanie na nie reagują. Oznacza to mnóstwo okazji do obserwacji i analizy zachowania atakujących, po czym spokojnego wyciągania wniosków, stopniowego dostosowywania infrastruktury, procedur, i innych zabezpieczeń do zmieniających się zagrożeń, strategii ataku i warunków.

“Infrastruktura usług finansowych zmienia się relatywnie powoli. Jest nieustannie chroniona i poddawana ewaluacji przez zespoły zajmujące się jej utrzymaniem przez długie okresy czasu.” – wyjaśnia James Eaton-Lee, ekspert w zakresie bezpieczeństwa cyfrowego mający doświadczenie w sektorze finansowym – “Wiele okrzepłych banków wciąż korzysta z systemów wdrożonych pierwotnie w latach 70. ubiegłego wieku, które dziś są dogłębnie zrozumiane [przez odpowiedzialne za nie zespoły techniczne – przyp.red.], i które przez dekady były testowane, audytowane, i certyfikowane dziesiątki lub setki razy.”

To oznacza, że ryzyko nieznanych błędów bezpieczeństwa czających się w tych systemach jest bardzo niskie.

W przypadku e-wyborów, potencjalny atakujący ma miesiące na przygotowanie ewentualnego ataku. Dokładnie zna też datę, kiedy atak musi nastąpić. Instytucje odpowiedzialne za przeprowadzenie wyborów nie mają jednak możliwości długoterminowego zbierania danych dotyczących zachowania systemów, za które odpowiadają, w sytuacji ich pełnego obciążenia.

Innymi słowy, trudno te systemy wystarczająco dobrze przetestować zawczasu (o czym przekonaliśmy się już podczas wyborów samorządowych w 2014r.).

“Infrastruktura wyborcza jest tymczasowa.” – kontynuuje mój rozmówca – “Jest tworzona od zera w świecie pełnym zagrożeń, a margines błędu jest bardzo mały: wyniki wyborów podawane są w ciągu kilku dni, nie tygodni czy miesięcy. Nie ma możliwości długotrwałego monitoringu i re-ewaluacji skuteczności zabezpieczeń.”

Inny rodzaj ryzyka

Zdecydowana większość cyfrowych ataków, z którymi mierzą się instytucje finansowe, to próby kradzieży dość niewielkich (w porównaniu do wszystkich środków zarządzanych przez daną instytucję) sum z kont klientów. Czasem zdarza się większy, dobrze przygotowany atak mający na celu wyprowadzenie znacznych środków.

Ale naprawdę trudno dziś o atak na e-bankowość, który mógłby zachwiać całym systemem bankowym. “Przez ostatnie 15 lat różne firmy świadczące usługi finansowe doświadczyły potężnych problemów, ale nie przełożyło się to na długotrwałe zachwianie zaufaniem do tego sektora” – zauważa Eaton-Lee.

Tymczasem udany atak na proces wyborczy to nie zmiana kilku głosów, a zmiana ich wyniku – lub przynajmniej skuteczne podważenie zaufania w ten wynik. Dotyka więc wszystkie osoby głosujące na danym obszarze.

Jeśli instytucja finansowa wykryje naprawdę niebezpieczny, szeroko zakrojony atak, może sobie pozwolić nawet na wyłączenie atakowanych systemów. Ale trudno sobie wyobrazić decyzję o nagłym wyłączeniu systemu e-głosowania w czasie trwających wyborów, ze względu na trwający atak.

Wymogi co do zabezpieczeń

To wszystko nie oznacza to, że instytucje finansowe nie stosują zabezpieczeń technicznych, jak szyfrowany protokół HTTPS, czy wymóg logowania wieloskładnikowego (i szereg innych, bardziej zaawansowanych narzędzi wewnątrz własnej infrastruktury). Wręcz przeciwnie – nie tylko je stosują, ale wręcz wymagają niektórych z nich od swoich klientów.

Banki mają dość dużą swobodę w tworzeniu zasad dotyczących na przykład tego, z jakich urządzeń musimy korzystać, by móc zainstalować ich aplikacje mobilne lub korzystać z niektórych e-usług. Muszą oczywiście wyważyć kwestie bezpieczeństwa i ryzyka z jednej strony, oraz wygody użycia i tego, jak wiele osób dany wymóg wykluczy, z drugiej.

Ostatecznie sprowadza się to jednak do kalkulacji biznesowej: czy większe będą koszty związane ze skutecznymi atakami, koniecznością naprawiania szkód finansowych klientów i wyższymi kosztami ubezpieczenia – czy też zysk utracony z powodu przejścia klientów do mniej restrykcyjnej konkurencji?

To kolejna ważna różnica względem e-wyborów: relacja klienta do jego banku jest zasadniczo czym innym, niż relacja obywatelki do instytucji państwowych. W przypadku e-bankowości, korzystamy z komercyjnej usługi i co do zasady możemy zmienić usługodawcę. W przypadku e-wyborów, realizujemy nasze podstawowe prawo jako obywateli i obywatelek. I nie mamy wyboru jeśli chodzi o “dostawcę” tej “usługi”.

Wykluczenie pewnej grupy klientów i klientek przez bank ze względu na (powiedzmy) system operacyjny, z którego korzystają, ma więc zupełnie inny ciężar gatunkowy, niż wykluczenie z tego samego powodu grupy osób głosujących przez instytucje państwowe. Kolejne narzędzie ograniczania ryzyka jest więc niedostępne lub przynajmniej znacznie trudniejsze do zastosowania w przypadku e-wyborów.

Wybory koniecznie tajne

Nietrudno zauważyć, że wymóg tego, by wybory były tajne, mocno komplikuje jakiekolwiek próby zabezpieczenia wyborów w formie elektronicznej. Nie możemy jednak zrezygnować z tego wymogu – otworzyło by to znacznie więcej możliwości nieuprawnionego wpływania na wynik wyborów.

Jeżeli mielibyśmy możliwość sprawdzenia, na przykład za pomocą aplikacji do głosowania na naszym urządzeniu, czy nasz e-głos został poprawnie zarejestrowany i policzony – również w sensie tego, na którą partię lub kandydatkę nasz głos oddaliśmy – otwierałoby to drogę m.in. do wymuszania lub kupowania głosów.

Przemocowy partner, mający zdecydowane zdanie, na kogo powinniśmy zagłosować, mógłby zażądać okazania mu przez nas takiego dowodu głosowania. A nieco zbyt ambitny burmistrz mógłby obiecać wypłatę za oddanie nań głosu, również pod warunkiem wylegitymowania się takim dowodem.

To oczywiście możliwe również w przypadku wyborów papierowych. Jest to jednak znacznie mniej niezawodne, z punktu widzenia osoby wymuszającej bądź kupującej głos, niż możliwość sprawdzenia oddanego głosu w hipotetycznej oficjalnej aplikacji do głosowania.

Zaufanie jest kluczowe

“Zabezpieczenie przed fałszerstwami wyborczymi jest w pewnym sensie wbudowane w papierowy system wyborczy w tym sensie, że wybory są wspólnym projektem społecznym, ręcznie wdrażanym na poziomie lokalnym, z ręcznie zliczanymi głosami, itd.” – podkreśla prof. Mallett – “Możliwość zaangażowania się w ten proces, w tym w roli członków lokalnych komisji wyborczych, jest kluczowym elementem budowania szacunku i zrozumienia praktyk demokratycznych.”

W przypadku e-wyborów, trudno sobie wyobrazić rolę lokalnych komisji wyborczych czy mężów zaufania. Trudniej więc o niezależną, rozproszoną, społeczną kontrolę procesu wyborczego. A taka kontrola jest niezbędna, to jedno z niewielu skutecznych narzędzi pomagających zadbać o bezpieczeństwo i rzetelność wyborów.

“Osobiście uważam, że e-wybory są wielkim błędem. Po pierwsze dlatego, że ważne jest, by w proces wyborczy byli zaangażowani i by go doświadczyli przynajmniej niektórzy członkowie i członkinie danej społeczności. Po drugie, ponieważ osobiście nigdy bym nie zaufała elektronicznemu systemowi głosowania.” – podsumowuje.

Z usług bankowości elektronicznej prof. Mallett korzysta bez obaw.

Telegram nie jest ani "bezpieczny", ani "szyfrowany"

Ten tekst został napisany na zlecenie OKO.press i tam oryginalnie opublikowany.

Poprawne uznanie autorstwa tego tekstu to: "Michał 'rysiek' Woźniak, Fundacja Ośrodek Kontroli Obywatelskiej „OKO”", powinno też zawierać odnośnik do oryginalnego tekstu w portalu OKO.press.

Telegram to popularny – zwłaszcza na Wschodzie – komunikator internetowy. Promuje się jako “szyfrowany”, “prywatny” i “bezpieczny”. Jeden z jego twórców (a zarazem prezes zarządu firmy będącej operatorem tej usługi), Pavel Durov, od lat regularnie mniej lub bardziej jednoznacznie sugeruje, że inne komunikatory narażają nasze rozmowy i naszą prywatność na niebezpieczeństwo.

To dość siermiężna, ale niestety zadziwiająco skuteczna strategia odwracania uwagi od faktycznych problemów z bezpieczeństwem i prywatnością Telegrama. A tych jest niemało.

Co jest szyfrowane?

Na stronie internetowej komunikatora znajdziemy informację, że “wiadomości są silnie szyfrowane”. Podobnie Telegram promuje się m.in. w mediach społecznościowych. To mocno sugeruje, że wiadomości wymieniane za pomocą tego komunikatora są dostępne tylko dla ich nadawców i odbiorców – i że nikt poza nimi nie może odczytać. Takie szyfrowanie nazywane jest “end-to-end” (z ang. “od końca do końca”), i dokładnie tego powinniśmy dziś oczekiwać, gdy słyszymy, że jakieś narzędzie komunikacji jest “szyfrowane”.

W kontekście Telegrama jest to jednak bardzo mylące.

Dla rozmów komunikator ten ma dwa tryby. Domyślnie wiadomości szyfrowane są między naszym urządzeniem, a serwerami Telegrama. Firma nazywa to “czatami w chmurze”. Wysyłane przez nas wiadomości są szyfrowane, ale tylko między nami a jej infrastrukturą, po czym między tą infrastrukturą a odbiorcą wiadomości. Podobnie wiadomości, które odbieramy.

To zdecydowanie nie jest szyfrowanie end-to-end. Operator usługi, a więc firma Pavla Durova, ma pełny dostęp do treści i metadanych naszych rozmów, w tym do przesyłanych plików, wykorzystujących ten tryb. Tryb, podkreślam, wykorzystywany domyślnie dla wszystkich czatów prywatnych i grupowych.

Drugim, opcjonalnym trybem, są tak zwane “sekretne czaty”. W tym trybie wiadomości są faktycznie szyfrowane end-to-end, i dostęp do nich powinniśmy mieć wyłącznie my i nasi rozmówcy. Niestety, “sekretny czat” trzeba włączyć oddzielnie dla każdego kontaktu. A rozmowy w tym trybie działają wyłącznie pomiędzy konkretnymi urządzeniami – jeśli uruchomimy “sekretny czat” dla danego kontaktu korzystając z Telegrama w naszym telefonie, nie będziemy mogli tej rozmowy kontynuować np. z laptopa.

“Sekretne czaty” nie są też dostępne dla grup ani kanałów. Innymi słowy, żadne grupy ani kanały na Telegramie nie są szyfrowane end-to-end. Do ich treści – oraz do metadanych, w tym kim są ich członkowie, kiedy dana wiadomość została wysłana i przez kogo, itp. – pełny dostęp ma operator Telegrama. A zatem i wszelkie służby, które mogą firmę zmusić lub nakłonić do udostępnienia informacji.

Szyfrowanie szyfrowaniu nierówne

Dobra wiadomość jest taka, że MTProto, czyli stworzony przez zespół Telegrama i wykorzystywany zarówno w zwykłych rozmowach jak i w “sekretnych czatach” protokół szyfrowanej komunikacji, nie ma obecnie żadnych znanych błędów bezpieczeństwa.

Jest też jednak wiadomość zła: społeczność osób zajmujących się kryptologią wydaje się być zgodna, że to, w jaki sposób ten protokół jest zaprojektowany, generalnie nie budzi zaufania. Przy projektowaniu i implementacji protokołów szyfrowania bardzo łatwo o nieoczywiste błędy, a protokół Telegrama wydaje się mieć sporo miejsc, w których takie błędy mogą się czaić.

Podobne obawy sprawdziły się w przypadku poprzedniej wersji tego protokołu.

Osoby zajmujące się kryptologią wskazały, gdzie mogą się czaić problemy. Reakcja twórców komunikatora była, mówiąc delikatnie, mało przyjazna. Ostatecznie okazało się, że faktycznie ta pierwsza wersja protokołu miała poważne błędy. W tym jeden określony przez eksperta jako “najbardziej wyglądający na tylną furtkę (ang. backdoor; błąd umieszczony celowo) spośród wszystkich błędów, które kiedykolwiek widział”. Czas pokaże, czy historia powtórzy się z nową, obecnie stosowaną wersją MTProto.

Czy więc Telegram korzysta z szyfrowania? Tak. Czy możliwe jest korzystanie z szyfrowania end-to-end za jego pomocą? Tak, ale w bardzo ograniczonym zakresie, tylko jeśli pamięta się, by je włączyć, i przy użyciu protokołu, któremu kryptolog by nie zaufał.

Twierdzenie na tej podstawie, że “Telegram jest szyfrowany”, jest jak twierdzenie, że pizza jest zdrową żywnością, bo jest na niej plaster pomidora.

Co z prywatnością?

To nie jedyna sytuacja, w której materiały promocyjne Telegrama mogą wprowadzać w błąd lub zgoła mijają się z prawdą. W sekcji często zadawanych pytań na stronie internetowej komunikatora możemy przeczytać, że:

(…) [M]ożemy zagwarantować, że żaden pojedynczy rząd lub grupa podobnie myślących krajów nie będzie w stanie naruszać prywatności i wolności słowa. Telegram może być zmuszony do przekazania danych tylko wtedy, gdy problem jest na tyle poważny i uniwersalny, że może zostać poddany analizie przez kilka różnych systemów prawnych na całym świecie.

Do dnia dzisiejszego ujawniliśmy 0 bajtów danych użytkowników stronom trzecim, w tym rządom.

A jednak gdy pod koniec 2022r. sąd w Indiach nakazał firmie udostępnić dane – w tym numery telefonów, adresy e-mail, oraz adresy IP – w związku z rozpatrywaną sprawą, firma te dane dostarczyła. Problemów z uzyskaniem danych konkretnych osób korzystających z komunikatora najwyraźniej nie mają też niemieckie służby.

Mało tego, sam protokół MTProto umożliwia śledzenie osób korzystających z Telegrama poprzez obserwację ruchu w sieci. Każda wiadomość wysłana za jego pomocą zawiera bowiem nieszyfrowany element identyfikujący konkretne urządzenie użytkownika (w specyfikacji ten element to auth_key_id).

Wystarczające możliwości do śledzenia w ten sposób konkretnych osób korzystających z tego komunikatora ma na kontrolowanym przez siebie terytorium m.in. Rosja (dzięki systemowi SORM). I najwyraźniej korzystała z tego w Chersoniu przeciw ukraińskim partyzantom. Nietrudno sobie wyobrazić, jakie mogło to mieć konsekwencje.

Wiele też wskazuje na to, że Telegram może dzielić się ze służbami nawet treścią komunikacji odbywającej się poza (rzadko używanymi) “sekretnymi czatami”. Rosyjscy aktywiści i aktywistki przekonali się o tym na własnej skórze.

Podejrzany marketing

W innych przypadkach obietnice składane w materiałach promocyjnych Telegrama są łamane, a same materiały są odpowiednio modyfikowane.

Na przykład jeszcze w 2020r. w sekcji często zadawanych pytań można było znaleźć pytanie o to, czy w komunikatorze kiedykolwiek pojawią się reklamy – wraz z jednoznaczną odpowiedzią: “Nie”.

W 2021r. Telegram wprowadził reklamy “w niektórych publicznych kanałach”. Pytanie zostało zmodyfikowane. Dziś brzmi: “Czy w moich prywatnych czatach i grupach będziecie wyświetlać reklamy?”

Sama w sobie ta zmiana jest oczywiście niewielka. Ale pojawia się pytanie, czy firma podchodzi podobnie do innych obietnic składanych w swojej dokumentacji – na przykład dotyczących sprzedaży danych osób korzystających z komunikatora. Danych, których zbiera sporo.

Czarny PR

Nie powinno więc pewnie dziwić stosowanie przez firmę i samego Pavla Durova strategii odwracania uwagi i obmawiania konkurencji.

Parę tygodni temu związane z Telegramem konta na platformie dawniej znanej jako Twitter ostro zaatakowały komunikator Signal. Nie pierwszy zresztą raz. Na przykład w 2017r. Durov stwierdził publicznie, że spodziewa się ujawnienia tylnej furtki w Signalu w ciągu pięciu lat – i gotów jest założyć się o to o milion dolarów.

Dziennikarz technologiczny Max Eddy próbował przyjąć ten zakład, ale Durov nie odpowiedział.

Telegram a Signal

Żadnej tylnej furtki w Signalu nigdy nie znaleziono. W odróżnieniu do telegramowego MTProto, protokół szyfrowania Signala szeroko uważany jest za przykład tego, jak należy projektować bezpieczne protokoły szyfrowania end-to-end.

Cała komunikacja odbywająca się za pomocą Signala jest szyfrowana end-to-end – po prostu nie da się wysłać na Signalu nieszyfrowanej wiadomości. Szyfrowane end-to-end są więc też grupy, naklejki, czy rozmowy głosowe i wideo. A mimo to nie ma problemu z korzystaniem z kilku urządzeń.

Signal zarządzany jest przez organizację non-profit; operatorem Telegrama jest zwykła firma, ale obiecuje, że nie robi tego dla zysku.

Operator Signala nie przechowuje też żadnych metadanych, poza datą i czasem utworzenia konta oraz datą i czasem ostatniej komunikacji konta z serwerami aplikacji. I może to udowodnić – publikuje bowiem wszystkie żądania udostępnienia danych osób korzystających wraz ze swoimi odpowiedziami. Na przestrzeni lat nie spotkałem się z niczym, co by podważało te informacje.

Nie piszę tego tylko po to, by promować Signala (choć nietrudno się domyślić, że uważam ten komunikator za znacznie bezpieczniejszy). Chcę pokazać, że da się stworzyć narzędzie pozbawione wad Telegrama, i faktycznie spełniające jego obietnice dotyczące szyfrowania, prywatności i bezpieczeństwa.

Czy Telegram jest bezpieczny?

Pytanie, czy dane narzędzie komunikacyjne jest “bezpieczne”, jest pytaniem złożonym. Bardzo dużo zależy od konkretnych potrzeb, od kontekstu, w którym będzie używane, od celu jego użycia. Jednak w przypadku Telegrama trudno znaleźć sytuacje, w których korzystanie z niego jest najbezpieczniejszym dostępnym wyjściem. I łatwo znaleźć takie, w których korzystanie z niego jest po prostu niebezpieczne.

Nie ma narzędzi idealnych. We wszystkich komunikatorach, w tym w Signalu, znajdowano błędy. Ich protokoły ewoluowały z czasem, by uwzględnić słuszną często krytykę. Ale sposób, w który Telegram oraz Pavel Durov na krytykę reagują i jak z rozmysłem odwracają uwagę, nie buduje zaufania.

Bezpieczeństwo jakiegoś narzędzia opiera się nie tylko na kwestiach czysto technicznych (które w przypadku Telegrama i tak zdecydowanie kuleją). Bardzo ważne jest też to, w jaki sposób o silnych i słabych stronach danego narzędzia informowane są osoby z niego korzystające. Jak wygląda interfejs? Czy utrudnia popełnienie błędu, na przykład wysłanie nieszyfrowanej wiadomości zamiast wiadomości szyfrowanej?

Telegram od lat wprowadza ludzi w błąd, naginając znaczenie terminów takich, jak “szyfrowany komunikator” – i trudno tu oprzeć się wrażeniu, że robi to celowo. Współpracuje ze służbami mimo zapewnień, że tego nie robi. A jego interfejs użytkownika wydaje się być zaprojektowany tak, by osób korzystających z tego błędu nie wyprowadzać.

To niebezpieczne. Pracowałem z dziennikarzami i dziennikarkami komunikującymi się ze swoimi źródłami za pomocą Telegrama. Wielokrotnie widziałem, jak bledli, gdy tłumaczyłem co “szyfrowany” naprawdę oznacza w kontekście tego narzędzia. Ufając zapewnieniom ze strony Telegrama narażali swoje źródła na niebezpieczeństwo.

Telegram z pewnością zdaje sobie z tego sprawę – od lat nie raz był o tym informowany. Poważnych zmian jednak nie widać.

W walce z dezinformacją nie ma prostych rozwiązań

Angielska wersja niniejszego wpisu została pierwotnie opublikowana przez Institute of Network Cultures, w ramach publikacji “Dispatches from Ukraine: Tactical Media Reflections and Responses”. Była również sprawdzona pod kątem językowym przez Chloë Arkenbout, i poddana korekcie przez Laurence’a Scherza.


Walka z dezinformacją i rozpowszechnianiem niesprawdzonych informacjami (ang. “misinformation”) jest problemem ważnym, aktualnym, trudnym… i zdecydowanie nie nowym. Różne formy propagandy, manipulacji i tendencyjnego dziennikarstwa istniały na przestrzeni wieków, i wykorzystywane były — celowo bądź nie, z cnych bądź niecnych pobudek — by sterować dyskursem publicznym i podjudzać społeczne wzburzenie. Kwestia ta stała się dziś rzecz jasna bardziej pilna. Uważam jednak, że wiele z proponowanych dotychczas rozwiązań błędnie identyfikuje sedno problemu.

Weźmy choćby termin “fake news” (ang. “fałszywe nowiny”). Mimo, że wydawać się może terminem nowym, użyty został już w roku 1890. Dosłownie oznacza “wiadomości, które nie są prawdziwe”, choć oczywiście został wypaczony przez nadużywanie w celu celowej dyskredytacji faktycznie rzetelnych doniesień jako fałszywych bądź zmanipulowanych — do tego stopnia, że sam fakt jego użycia może budzić wątpliwości co do rzetelności korzystającej z niego osoby.

Co uważane jest za “fałsz” zależy od punktu widzenia.

Kwestia zaufania

Oczywiście możliwe jest zdefiniowanie, czym jest mylna informacja i dezinformacja. Tyle, że każda taka definicja opierać się będzie na czymś, czego nie da się łatwo zweryfikować: na relacji danego doniesienia medialnego do prawdy, czy na intencjach jego autora bądź osoby je rozpowszechniającej.

Ma to zasadnicze znaczenie w przypadku tematów mocno zniuansowanych, złożonych, wymagających specjalistycznej wiedzy, zwłaszcza gdy dotykają dużą liczbę osób mających wiele do stracenia, a co za tym idzie — generują dużo emocji. Debata publiczna związana z pandemią COVID-19 jest tu zatrważającym przykładem. Niezależnie od tego ile ktoś “własnego riserczu” by nie zrobił, o ile nie ma się głębokiej wiedzy medycznej i szerokiego wykształcenia naukowego, ostatecznie kwestia sprowadza się do pytania: “komu ufasz?” Część z nas zaufała naukowcom i lekarkom, część nie (i do dziś im nie ufa).

I choć pełne konsekwencje pandemii wciąż jeszcze trudne są do oszacowania, to jasne jest, że rozpowszechnianie niesprawdzonych informacji i kampanie dezinformacyjne jej dotyczące miały konkretny koszt, liczony w ludzkich życiach i możliwym do uniknięcia cierpieniu.

Kuszące jest zatem, aby domagać się cenzury i innych sankcji wymierzonych w osoby rozpowszechniające niesprawdzone informacje oraz zaangażowane w kampanie dezinformacyjne. W wielu krajach powstały już nawet przepisy przewidujące kary grzywny i więzienia. Na przykład w Turcji i Rosji. Nikogo pewnie nie zdziwi fakt, że organizacje dziennikarskie są tym poważnie zaniepokojone.

Zwłaszcza rosyjski przykład jest tu istotny. Z jednej strony Federacja Rosyjska upiera się, by wojnę w Ukrainie nazywać “specjalną operacją wojskową”, i bezczelnie kłamie na temat poniesionych w niej przez rosyjskie siły strat i popełnionych przez nie zbrodni wojennych. Z drugiej strony Kreml namaszcza się na arbitra tego, co jest prawdą, a co fałszem, i zmusza organizacje medialne do rozpowszechniania propagandowych kłamstw, wykorzystując w tym celu regulacje dotyczące “fake-newsów”.

Celem dilerów dezinformacji nie jest samo promowanie konkretnych narracji. Szerszym zmierzeniem jest podważenie zaufania do wszelkich źródeł informacji. Wszak jeśli nikt nie jest godny zaufania, to dilerzy dezinformacji są nie mniej “rzetelni”, niż ktokolwiek inny. Celem ataku jest zaufanie samo w sobie.

Znajdujemy się zatem w sytuacji (zdawałoby się) bez wyjścia:

Z jednej strony, pandemia, wojna w Europie Wschodniej i kryzys klimatyczny są złożonymi, wywołującymi silne emocje zagadnieniami, które dotykają nas wszystkich. Mogą więc być łatwo wykorzystane przez osoby tworzące i rozpowszechniające dezinformację bądź niesprawdzone informacje, co szybko urasta do rangi zagrożenia egzystencjalnego, pilnie wymagającego reakcji.

Z drugiej strony, proponowane rozwiązania mogą pod wieloma względami mieć skutki gorsze, niż problem, który próbują rozwiązać. Regulacje “przeciw fake-newsom” umożliwić mogą osobom o nieczystych intencjach cenzurowanie rzetelnego, ale niewygodnego dla nich, dziennikarstwa, a co za tym idzie dać im kontrolę nad debatą publiczną. Znamy to z przykładu brytyjskich regulacji dotyczących zniesławienia. Uciekanie się do cenzury w walce z dezinformacją i niesprawdzonymi informacjami jest, krótko mówiąc, niebezpieczne.

Uważam, że skupiamy się na niewłaściwych aspektach problemu. Zamiast próbować prawnie zakazać rozpowszechniania dezinformacji i niesprawdzonych informacji, powinniśmy zastanowić się, czemu tak szybko i szeroko się rozpowszechniają (i kto na tym korzysta). Powinniśmy szukać lepszych sposobów finansowania rzetelnych mediów. Powinniśmy też zadbać o to, by przyszłe pokolenia dostały narzędzia intelektualne pozwalające im przejrzeć na wskroś wykorzystywane w wojnie informacyjnej uprzedzenia, oszustwa i sztuczki retoryczne.

Złożony problem

Niepotwierdzone informacje i dezinformacja rozchodzą się błyskawicznie, ponieważ najbardziej dziś popularne narzędzia komunikacyjne zbudowane zostały w taki sposób, że promują je bardziej, niż rzetelne, wyczerpujące, zniuansowane reportaże.

Washington Post donosi, że “Facebook zaprogramował algorytmy decydujące o tym, co osoby z niego korzystające widzą na swoich kontach, tak, by bazował na emotkach reakcji i silniej promował treści bardziej emocjonalne i prowokacyjne — w tym treści, które wywołują gniew”.

W połączeniu z faktem, że “[pracujący w Facebooku] specjaliści od analizy danych potwierdzili w 2019 roku, że wpisy, na które użytkownicy reagowali emotką złości, nieproporcjonalnie częściej niż inne zawierały niepotwierdzone informacje, były toksyczne, opierały się na niskiej jakości źródłach”, wyłania się obraz narzędzia skrojonego idealnie na potrzeby rozpowszechniania dezinformacji i niepotwierdzonych informacji. Co gorsza, z im większą złością użytkowniczki i użytkownicy platformy reagują na dany wpis, tym bardziej jest rozpowszechniany. Im więcej zdenerwowanych komentujących wykazuje w komentarzach jego fałszywość, tym silniej i szerzej algorytm go promuje.

Można by to nazwać “premią od oburzenia”; zyskuje na niej zwłaszcza dezinformacja. Powiązana jest rzecz jasna z tzw. “żółtym dziennikarstwem” (ang. “yellow journalism”), skupiającym się nie na rzetelnych, podpartych dowodami doniesieniach, a na taniej sensacji. Tyle tylko, że tabloidy z początku XX wieku nie miały możliwości korzystać z globalnego systemu komunikacji w zasadzie stworzonego do promocji dokładnie tego rodzaju żerujących na emocjach treści.

Nie twierdzę, że Facebook został celowo zaprojektowany w taki sposób, by był wymarzonym narzędziem umyślnego rozpowszechniania dezinformacji. Mógł to być (i zapewne był) niewinny błąd, nieprzewidziana konsekwencja tego, jak w zamierzeniach jego twórców miał działać algorytm promocji wpisów.

Tyle, że w dużych systemach nawet małe błędy sumują się, amplifikują, stając się z upływem czasu coraz poważniejszymi problemami. Facebook zaś jest gigantycznym systemem, obecnym w naszej codziennej rzeczywistości od niemal dwóch dekad. Trafnie ujął to fikcyjny Senator Soaper: “błądzić jest rzeczą ludzką, ale żeby naprawdę spaprać sprawę potrzebny jest komputer”.

Oczywiście rozwiązanie nie sprowadza się tu po prostu do zakazania Facebookowi i operatorom innych platform społecznościowych tego typu interwencji w popularność wpisów. Tak naprawdę potrzebujemy (między innymi) przejrzystości algorytmicznej, która pozwoliła by nam zrozumieć jak i dlaczego dana treść jest promowana.

Ważniejsze jednak jest zdecentralizowanie naszych przestrzeni debaty publicznej on-line. Sytuacja, w której konsumujemy (i publikujemy) większość informacji za pośrednictwem dwóch lub trzech globalnych firm, mających pełną kontrolę nad naszą dietą informacyjną oraz możliwościami organizacji medialnych dotarcia do odbiorców, jest nie do zaakceptowania. Zmonopolizowane, zcentralizowane media społecznościowe to monokultury, w który wirusy umysłu mogą się swobodnie rozprzestrzeniać.

Warto zauważyć, że te monopolistyczne monokultury (na poziomie organizacyjnym i technologicznym) są bardzo kuszącym celem dla każdego, kto chciałby umyślnie wykorzystać słabości algorytmu promocji wpisów. Jest on przecież tylko oprogramowaniem, a każde oprogramowanie zawiera błędy. Każdy, kto znajdzie sposób wykorzystania ich w celu promocji własnych wpisów, uzyska możliwość dotarcia do niezwykle licznego grona odbiorców. Nie powinno zatem dziwić, że większość globalnej dezinformacji dotyczącej szczepionek pochodziło z kont dwunastu osób.

Centralizacja otwiera możliwość kupienia sobie sieci społecznościowej przez miliarderów. Jest też związana z nieumiejętnością (bądź niechęcią) rozwiązania problemu nękania i ekstremizmu przez operatorów wielkich sieci społecznościowych. To wszystko wynika wprost z faktu, że garstka korporacji skupionych na zyskach kontroluje codzienną komunikację kilku miliardów ludzi. To zbyt wielka władza skupiona w rękach zbyt niewielu firm, zwłaszcza, że najwyraźniej nie potrafią się nią one odpowiedzialnie posługiwać.

Alternatywy istnieją. Fediverse, zdecentralizowana sieć społecznościowa, nie jest kontrolowana przez żadną pojedynczą firmę (i nie funkcjonują na niej żadne nieprzejrzyste algorytmy kontrolujące, kto zobaczy jakie wpisy). Nie musi też tworzyć jednego zestawu reguł obowiązujących globalnie (zadanie zgoła niemożliwe, jak przyznał sam były prezes Twittera, Jack Dorsey). Zdecentralizowana forma tej sieci (składa się z tysięcy komunikujących się ze sobą serwerów, zarządzanych przez różne osoby i grupy, z różnymi zasadami moderacji) znacza, że łatwiej może radzić sobie z nadużyciami i nękaniem. A ponieważ nie jest kontrolowana przez żadną firmę, problematyczne konta są blokowane, bez obawy o odpływ znacznej liczby użytkowniczek i użytkowników (co dla popularnych platform oznacza spadek cen akcji).

Możemy więc przynajmniej zacząć od założenia konta na fediwersie (idąc w ślady tysięcy osób, które migrowały tam z Twittera po ofercie jego kupna przez Elona Muska). Możemy też domagać się, by grodzone ogródki społecznościowe zmuszone zostały do otwarcia swoich protokołów, dzięki czemu przestalibyśmy być zakładnikami ich operatorów. Podobnie jak możliwość przeniesienia numeru pomiędzy operatorami telefonicznymi ułatwia nam zmiane operatora bez utraty kontaktu z naszymi znajomymi, tak samo możliwość komunikowania się pomiędzy różnymi sieciami społecznościowymi umożliwiłaby przeniesienie się organizacjom medialnym poza grodzone ogródki bez utraty możliwości dotarcia do ich odbiorców.

Finansowanie mediów

Z przynajmniej trzech powodów organizacjom rozpowszechniającym dezinformacje jest łatwiej utrzymać się finansowo, niż rzetelnym organizacjom dziennikarskim i fact-checkingowym (“weryfikującym fakty”, z ang. “fact-checking”).

Po pierwsze, nierzadko finansowane są one przez podmioty, którym w zasadzie nie zależy na zysku. Po drugie, mają znacznie mniejsze wydatki: nie muszą pokrywać kosztów reporterów w terenie i śledztw dziennikarskich, utrzymywać osób zajmujących się weryfikacją gotowych do publikacji artykułów, ani wydawać pieniędzy na inne podobne cele, które są zarówno niezbędne, jak i kosztowne w rzetelnej organizacji dziennikarskiej. Po trzecie, w odróżnieniu od zniuansowanego dziennikarstwa, dezinformacji łatwiej jest generować kliknięcia, a co za tym idzie wpływy z reklam — dzięki wspomnianej “premii od oburzenia”.

Tymczasem finansowe pole manewru poważnych organizacji medialnych zawężane jest ze wszystkich stron. W niemałym stopniu przez te same platformy, które kontrolują zasięg ich wpisów czy dostarczają reklamy (i za nie płacą) wyświetlane na ich stronach internetowych.

Wiele organizacji, zwłaszcza tych mniejszych, finansowanych głównie z grantów i pieniędzy publicznych, czuje, że nie ma wyjścia innego, niż płacenie Facebookowi za “zasięgi”, w celu promocji swoich treści na tej platformie. Jako rzetelne organizacje dziennikarskie nie bardzo mogą przecież oprzeć się na “premii od oburzenia”.

Innymi słowy, środki finansowe, które przeznaczone były na pensje dziennikarek i dziennikarzy pracujących dla niewielkich, często mierzących się z szeregiem innych wyzwań, organizacji medialnych, idą zamiast tego do kieszeni największych firm technologicznych na świecie. Firm, które celowo zbudowały swoje usługi w oparciu o model zamykania użytkowniczek i użytkowników w grodzonych ogródkach, do których łatwo dołączyć, ale z których bardzo trudno uciec — co teraz wykorzystują do ściągania opłat za “zasięgi”. Ekonomista mógłby to nazwać “rentą monopolistyczną

Zaś operator największego systemu reklamy internetowej — Google — wykorzystuje swoją podobnie niemal monopolistyczną pozycję by pobierać opłaty stanowiące coraz większy procent przychodów z wyświetlanych na stronach reklam, pozostawiając coraz mniej środków w budżetach organizacji medialnych polegających na sieci reklamowej giganta.

Wszystko to oznacza, że wraz z upływem czasu coraz trudniej jest tworzyć i publikować wysokiej jakości, podparte solidnymi dowodami materiały. Centralizacja jest tu znów istotną częścią problemu, daje bowiem kilku wielkim firmom technologicznym możliwość kontrolowania globalnego przepływu informacji i pobierania na dej podstawie współczesnego cyfrowego myta.

Możliwą odpowiedzią są reklamy kontekstualne, nieprofilowane — według niektórych badań reklama profilowana pozwala zwiększyć przychody tylko w niewielkim stopniu w porównaniu z innymi formami reklamy. Jednocześnie usunięcie pobierającego rentę ekonomiczną pośrednika zostawić może więcej pieniędzy w kieszeni wydawców. Warto też rozważyć finansowanie publiczne wspierane podatkiem nałożonym na mega-platformy.

Kompetencje medialne

I wreszcie: musimy zadbać o to, by odbiorcy mediów byli w stanie zrozumieć, co czytają, oraz fakt, że autorzy danego przekazu medialnego mogą mieć interes w tym, by skonstruowany był on w taki a nie inny sposób. Konieczna do tego jest solidna edukacja medialna w szkołach.

Logika i retoryka dawno już zostały w zasadzie usunięte z programu nauczania, pewnie jako niespecjalnie przydatne na rynku pracy. Błędy logiczne i demagogia omawiane są rzadko lub wcale. A przecież niesprawdzone informacje i dezinformacja opierają się na błędach logicznych. Nie powiem nic odkrywczego mówiąc, że szkoły powinny wykształcać umiejętność krytycznego myślenia, ale powiedzieć to trzeba.

Czas też pochylić się nad tym, w jaki sposób szkoły uczą, by dostosować je do zmieniających się realiów. System edukacji wciąż zakłada świat, w którym informacja jest trudno dostępna, a główną trudnością jest jej pozyskanie (stąd nacisk na zapamiętywaniu dat i faktów). A przecież przynajmniej od dekady (jak nie dłużej) informacja jest łatwo dostępna, wręcz w nadmiarze. Główną trudnością jest dziś filtrowanie informacji, i decydowanie, którym jej źródłom ufać.

Skupmy się na istotnych aspektach problemu

“Każdy złożony problem ma rozwiązanie, które jest jednocześnie proste, bezpośrednie, przekonujące — i błędne”, stwierdził H. L. Mencken. Dobrze to opisuje próby znalezienia “prostych” rozwiązań problemu dezinformacji i niepotwierdzonych informacji, polegających na uznaniu ich (jakkolwiek by ich nie zdefiniować) za “nielegalne”.

Zasoby dostępne społeczności dziennikarskiej i skupionej wokół organizacji fact-checkingowych są ograniczone. Nie stać nas na trwonienie ich na nieskuteczne rozwiązania — a tym bardziej na sprzeczanie się na temat propozycji rozwiązań, które są jednocześnie wysoce kontrowersyjne, i szeroko uznawane za niebezpieczne.

By móc skutecznie zmierzyć się z tym wyzwaniem, musimy zauważyć, że centralizacja — platform społecznościowych, brokerów reklamy internetowej, własności mediów, kontroli nad naszą codzienną komunikacją, i wielu innych obszarów związanych z rynkiem medialnym — i niskie kompetencje medialne w społeczeństwie są jego kluczowymi przyczynami. Na nich wypada się skupić.

Otworzą się wtedy przed nami konkretne możliwości. Pomysły wspomniane wyżej są tylko szkicami, możliwych rozwiązań jest oczywiście znacznie więcej.

Programiści WiOO i aktywiści otwartej sieci też są ludźmi

Trudno mi uwierzyć, że muszę o tym pisać, ale:
Programiści rozwijający wolne i otwarte oprogramowanie oraz aktywiści otwartej sieci, bezinteresownie utrzymujący niezależnie usługi sieciowe, też są ludźmi.

Wygląda na to, że ten fakt jest wyjątkowo trudny do przetrawienia dla naukowców (w tym, najwyraźniej, również osób odpowiedzialnych za etyczną ocenę proponowanych badań). Ostatnie zamieszanie związane z Princeton-Radboud Study on Privacy Law Implementation (“Badanie wdrożenia regulacji związanych z prywatności, prowadzone przez Princeton-Radboud”) dobrze to ilustruje.

“To nie jest badanie skupiające się na ludziach”

Pomysł badania wydaje się prosty: weźmy listę “popularnych” stron internetowych (według listy Tranco, stworzonej z myślą o badaniach naukowych), wyślijmy wiadomości e-mail na związane z domenami tych stron adresy, które (jak można się spodziewać) są obserwowane przez ich administratorów w kontekście zapytań związanych z prywatnością (np. privacy@example.com), i użyjmy odpowiedzi do oszacowania stanu wdrożenia CCPA i RODO. Brzmi dobrze!

Było jednak z tym badaniem kilka problemów:

Wyobraźmy sobie teraz, że prowadzimy mały, niezależny serwis mediów społecznościowych, i dostajemy maila (brzmiącego, jakby został wysłany przez prawnika), który powołuje się na regulacje prawne dotyczące prywatności, o których nawet nie słyszeliśmy. Wiadomość kończy się tym zdaniem:

Oczekuję odpowiedzi bez zbędnej zwłoki, najwyżej w ciągu 45 dni od otrzymania niniejszej wiadomości, zgodnie z Sekcją 1798.130 Kodeksu Postępowania Cywilnego Stanu Kalifornia.

Czas dzwonić do prawnika? To może szybko wygenerować spore koszty. Czy można tę wiadomość po prostu zignorować? To się może skończyć jeszcze bardziej kosztownym procesem sądowym. Więc zaczynamy się martwić, nie spać po nocach, w związku z czymś, co brzmi całkiem poważnie, ale ostatecznie okazuje się po prostu czymś, co jakiś badacz uznał za “badanie nie skupiające się na ludziach”.

Odczłowieczanie

FAQ tego badania konsekwentnie mówi o “witrynach internetowych”, i “kontaktowaniu się z witrynami internetowymi”, i tak dalej, tak jakby to oznaczało, że nie dotknie to żadnych osób zajmujących się ich administrowaniem i odpowiadaniem na te e-maile. Na przykład (tłumaczenie i pogrubienie moje):

Co jeśli strona zignoruje e-mail, który jest częścią tego badania?

Nie wiadomo nam o żadnych negatywnych konsekwencjach braku odpowiedzi ze strony witryny internetowej na e-mail wysłany w ramach niniejszego badania. Nie będziemy wysyłać ponagleń dotyczących wiadomości, na które witryny internetowe nie odpowiedziały, i nie będziemy publikować nazw witryn w kontekście konkretnych odpowiedzi w naszym badaniu.

Niestety, nikt tego nie powiedział administratorce małej instancji niezależnych mediów społecznościowych, która być może nadal martwi się (lub nawet wydaje pieniądze na prawnika) tymi wiadomościami. Ale bez obaw, Princeton University Institutional Review Board uznało, że “to nie jest badanie prowadzone na ludziach”. Wszystko gra!

To nie jest pierwszy raz, gdy takie odczłowieczanie ma miejsce. Jakiś czas temy badacze z University of Minnesota przeprowadzili badanie, które polegało na proponowaniu zmian kodu jądra Linuksa celowo zawierających błędy.

Nalegali, że “studiowali tylko proces rozwoju”, jakoś umknął im fakt, że ten proces oparty jest na pracy konkretnych osób, z których wiele wkłada własny, prywatny czas wolny i energię w pracę nad jądrem Linuksa. Deweloperzy nie byli zadowoleni.

Ostatecznie badacze musieli przeprosić za brak empatii wobec programistów pracujących nad jądrem Linuksa i szacunku dla ich czasu.

Dygresja: branie “otwartości” na poważnie

Osobiście wydaje mi się, że jest to powiązane z szerszym problemem tego, jak wiele osób nie traktuje społeczności skupionych na (szeroko pojętej) otwartości poważnie.

W przypadku badania uniwersytetu Princeton, szereg osób administrujących instancjami Fediverse dostało te wiadomości. Badanie University of Minnesota dotknęło deweloperów jądra Linuksa. W obu przypadkach ich trud (zarządzanie serwerami niezależnych mediów społecznościowych; rozwój wolnego oprogramowania) nie były najwyraźniej uznane jako poważne czy istotne – nawet jeśli ich efekt (np. jądro Linuksa) uznany za poważny był.

Dostrzegam to w innych sytuacjach: ludzie dużo narzekają na Big Tech i “Platformy”, ale na sugestię, że Fediverse może być sensowną alternatywą (w sensie usługi, ale też w sensie modelu finansowania), reagują protekcjonalnym machnięciem ręki. Obserwuję to od lat również w kontekście wolnego oprogramowania.

A tymczasem publicznie wyautowany sprawca nadużyć, Facebook, zmienia sobie nazwę na Meta, i natychmiast wszyscy grzecznie debatują o tym, jak mądra i błyskotliwa jest to zmiana.

Badacz człowiekowi wilkiem?

Nieumiejętność rozpoznania przez badaczy człowieczeństwa w twórcach wolnego oprogramowania czy osobach administrujących małymi, niezależnymi witrynami czy usługami jest martwiąca. Jeszcze bardziej martwiący jest fakt, że nawet ciała zajmujące się oceną potencjalnych problemów etycznych badań naukowych popełniają ten sam błąd.

Natomiast marnowanie, w celu przeprowadzenia tego typu nieprzemyślanych badań, cennych zasobów (czasu, energii) aktywistycznych administratorek i administratorów czy twórców wolnego oprogramowania jest po prostu hańbą. Zraża do badaczy grupę osób głęboko zaangażowanych w kwestie prywatności, i to w momencie, w którym badania dotyczące prywatności i praw cyfrowych są absolutnie kluczowe.

Czemu podoba mi się pomysł Zarządzania Zależnościami w Oparciu o Kontrakt (CBDM)

Jakiś tydzień temu @tomasino opublikował opis swojego pomysłu dotyczącego zarządzania zależnościami w oparciu o kontrakt (w oryginale: Contract-Based Dependency Management, CBDM), i skłamałbym, gdybym powiedział, że mi się on nie podoba.

Jest to po prostu lepszy model zarządzania zależnościami niż SemVer czy jakikolwiek inny system wersjonowania oprogramowania. Ale nie tylko! CBDM:

  • dostarcza twórcom oprogramowania dodatkowej dobrej motywacji do utrzymywania rozbudowanych zestawów testów;
  • daje twórcom oprogramowania dobry powód, by pomagać w utrzymaniu rozbudowanych zestawów testów projektom, na których się ich własny projekt opiera;
  • pozwala uzyskać jasną i jednoznaczną odpowiedź na pytanie, czy dana funkcjonalność albo dany aspekt zachowania danej zależności jest oficjalnie wpierany przez twórców tej zależności;
  • dostarcza jasną i jednoznaczną informację, jeśli jakaś funkcjonalność czy aspekt zachowania danej zależności uległ zmianie;
  • jeśli aktualizacja zależności w jakiś sposób negatywnie wpłynie na projekt od niej zależny, CBDM pozwala jednoznacznie ustalić, kto nawalił.

Czym jest Zarządzania Zależnościami w Oparciu o Kontrakt (CBDM)?

Zasadniczo pomysł sprowadza się do polegania na wynikach testów jednostkowych, zamiast na numerach wersji, podczas decydowania czy nowa wersja zależności jest kompatybilna z zależnym od niej oprogramowaniem. Testy te powinny oczywiście testować te funkcjonalności i aspekty zachowania danej zależności, na których polega zależny od niej projekt.

Innymi słowy, zamiast patrzeć na numery wersji, patrzmy na testy jednostkowe dla danej zależności (oraz wyniki ich uruchomienia).

Tomasino nurkuje w ten temat głębiej w swoim wpisie, naprawdę warto go przeczytać.

Co jest nie tak z numerami wersji?

Numery wersji bardzo często nie są godną zaufania metodą ustalania, czy coś się aby nie zepsuje po aktualizacji. Sam SemVer to przecież nic innego niż próba spowodowania, by były bardziej godne zaufania w tym kontekście.

Problem jednak polega na tym, że niemożliwe jest wyrażenie wszystkich wymiarów możliwych zmian w danym projekcie oprogramowania za pomocą zestawu zaledwie kliku liczb. Mało tego, pewnie zmiany mogą być uznane za mało istotne lub w ogóle nieistotne, kosmetyczne, przez twórców danego pakietu oprogramowania, a jednocześnie mogą być wystarczająco duże, by spowodować poważne komplikacje dla zależnych od niego projektów, wykorzystujących jakąś specyficzną jego cechę.

Stąd się biorą specyfikacje, a wraz z nimi niekończące się debaty o tym, czy konkretna zmiana łamie specyfikację, czy też nie.

CBDM w praktyce

Załóżmy, że rozwijam jakiś projekt, nazwijmy go AProject. Używa on (i zależy od) biblioteki, powiedzmy: LibBee. Twórcy LibBee są bohaterami, na których nie zasługujemy, i utrzymują dla LibBee bardzo rozbudowany system testów.

Jako twórca AProjekt definiuję zależność od LibBee nie jako:

LibBee ver x.y.z

…ale jako:

LibBee, (lista konkretnych testów z całego zestawu testów LibBee, które muszą być niezmienione, i mieć wynik pozytywny)

(Zostawmy na razie temat tego, jak dokładnie taka lista testów zależności miałaby wyglądać.)

Ta lista testów nie zawiera wszystkich testów LibBee – w istocie, nie powinna zawiera ich wszystkich, jako że to by oznaczało, że w zasadzie przypinamy na sztywno becną wersję LibBee (zakładając pełne pokrycie kodu tej biblioteki testami; wrócimy do tego). Co jednak ważne, powinna ona zawierać testy sprawdzające wszystkie funkcjonalności i aspekty zachowania LibBee, na których mój AProject polega.

Ta lista testów tworzy kontrakt. Jeżeli kontrakt ten jest spełniony przez dowolną nowszą (czy starszą) wersję LibBee, to oznacza, że mogę bezproblemowo zaktualizować moją zależność w AProject. Po aktualizacji wszystko powinno nadal działać, jak należy.

A jeśli aktualizacja LibBee mimo wszystko spowoduje problemy w AProject?

Napisałem “powinno”, bo oczywiście ludzie popełniają blędy. Jeśli aktualizacja LibBee spowoduje problemy w AProject mimo tego, że kontrakt jest spełniony (to znaczny, mimo tego, że testy wymienione w kontrakcie nie uległy zmianie, oraz że dają wynik pozytywny), to istnieje tylko jedna opcja: AProject polegał na jakiejś funkcjonalności lub jakims aspekcie zachowania LibBee, który nie był ujęty w kontrakcie.

To oznacza, że jasnym jest, kto odpowiada za ten nieprzewidzialny problem: ja. Ja, jako twórca AProject, nie upewniłem się, że kontrakt faktycznie testuje wszystko, na czym polega mój projekt. W ten sposób unikamy długiej, męczącej dyskusji pomiędzy mną a twórcami LibBee, dotyczącej tego, kto nawalił. Uzupełniam więc kontrakt o dane brakująch testów i skupiam się na naprawieniu problemu.

Tym samym AProject uzyskał lepszy, pełniejszy kontrakt zależności, a mój czas (i cenny czas developerów LibBee) nie został zmarnowany na wzajemnych oskarżeniach.

Tyle wygrać!

A jeśli dany test nie istnieje w zależności?

Jeśli korzystam w AProject z jakiejś funkcjonalności LibBee, na którą po prostu nie ma napisanego testu, mam doskonały powód, by go dopisać, i wysłać twórcom LibBee jako mój wkład w rozwój biblioteki, z której korzystam.

Jeśli mój dopisany test zostanie zaakceptowany przez twórców LibBee i włączony do zestawu testów tej biblioteki, daje mi to jasny sygnał, że funkcjonalność, z której korzystam, jest oficjalnie wspierana. Mogę zatem dodać informację o tym teście do mojego kontraktu zależności w AProject. LibBee uzyskała nowy test i ma lepsze pokrycie kodu testami, kompletnie za darmo. Mój projekt ma pełniejszy kontrakt zależności, co oznacza, że mogę się nie martwić o aktualizacje LibBee.

Tyle wygrać!

A jeśli mój test zostanie odrzucony?

Jeśli twórcy LibBee odrzucą mój test, jest to bardzo jasny sygnał, że AProject polega na jakiejś funkcjonalności albo jakimś aspekcie zachowania, które nie są oficjalnie wspierane.

Z jednej strony, mogę wtedy zdecydować, że trudno, ryzykuję korzystanie z nieoficjalnie wspieranej funkcjonalności. Dodam wtedy mój test do kontraktu, ale sam test umieszczę bezpośrednio w AProject. Pozwoli mi to weryfikować nowe wersje LibBee zanim zaktualizuję tę zależność. Z drugiej strony, mogę zdecydować, że to zbyt ryzykowne, i przepisać AProject tak, by nie polegał na niewspieranej funkcjonalności.

W każdym razie wiem, w co się pakuję, a twórcy LibBee wiedzą, że nie będę ich winił jeśli zmienią ten konkretny aspekt działania ich biblioteki – zostałem przecież ostrzeżony, i mam swój test jako dowód.

Więc znów: tyle wygrać!

Czas obalić numery wersji?

Nie, w żadnym razie. Numery wersji są nadal przydatne, choćby po to, by wiedzieć, że dana zależność została zaktualizowana. W zasadzie warto nadal z nich korzystać również w celu zarządania zależnościami, podając wspierane numery wersji zależności nawet jeśli mamy już kontrakt, w celu płynnego przejścia z zarządzania zależnościami w oparciu o numery wersji do CBDM.

Numery wersji sprawdzają się nieźle na poziomie ludzkim, te zgodne z SemVer niosą ze sobą dość dobrze zdefiniowany zestaw informacji. Po prostu nie są w stanie wyrazić wszystkiego, na czym by nam zależało w dobrym systemie zarządzania zależnościami. Zgodzi się z tym każdy, kto zarządzał większym projektem z dużą liczbą zależności.

Gdzie jest haczyk?

Zawsze jest jakiś haczyk!

Trzy kluczowe rzeczy są dość trudne do dobrego zdefiniowania:

  1. W jaki sposób “identyfikuje się test”?
  2. Jak sprawdzić, że “test nie uległ zmianie”?
  3. Jak “dodaje się test do kontraktu”?

Odpowiedzi na pytania 1. i 2. prawie na pewno zależą od jeżyka programowania, a pewnie i od systemu, w którym piszemy testy. I prawie na pewno odpowiedzi na te pytania zdefiniują w dużej mierze odpowiedź na pytanie ostatnie.

Z gruba ciosany pomysł:

  1. Test identyfikowany jest jego nazwą (praktycznie każdy system testów jednostkowych pozwala “nazywać” testy, często nawet tego wymagając).
  2. Jeśli kod źródłowy testu zmienił się w jakikolwiek sposób, test uznaje się za zmieniony. Prawdopodobnie miałoby sens odpalanie jakiegoś lintera, tak, by zmiany w znakach niedrukowalnych nie powodowały uznania testów za zmienione.
  3. Jeśli identyfikujemy testy na podstawie ich nazwy, używanie nazwy testu w kontrakcie wydaje się najsensowniejsze.

Pomysł CBDM, moim zdaniem, ma mnóstwo sensu. Rozwój oprogramowania staje się coraz bardziej oparty na testach (i bardzo dobrze!), czemu przy okazji nie użyć ich do rozwiązania problemu piekła zależności?

Ściągawka z kultury hakerskiej dla mediów (i nie tylko)

Ten tekst został napisany na zlecenie OKO.press i tam oryginalnie opublikowany.

Poprawne uznanie autorstwa tego tekstu to: "Michał 'rysiek' Woźniak, Fundacja Ośrodek Kontroli Obywatelskiej „OKO”", powinno też zawierać odnośnik do oryginalnego tekstu w portalu OKO.press.

Obfite okraszanie przekazów medialnych dotyczących kwestii bezpieczeństwa informacji, włamań, wycieków, i cyberataków słowami “haker”, “zhakować”, i podobnymi, jest problematyczne:

  1. Utrudnia rzetelne zdanie sprawy z przyczyn danego wydarzenia, a w efekcie niemal uniemożliwia rzeczową debatę publiczną.
  2. Demonizuje kreatywną społeczność majsterkowiczów i majsterkowiczek, artystek i artystów, badaczek i badaczy systemów informatycznych, czy osób zajmujących się bezpieczeństwem informacji.

Utrudniona debata publiczna

Włamanie na konto pocztowe Michała Dworczyka świetnie ilustruje problem pierwszy.

Tytuły w stylu “Atak hakerski na Dworczyka” czy “Rząd zhakowany” stawiają Dworczyka i rząd w roli ofiar, które zostały “zaatakowane” przez jakichś domniemanych ale nieznanych (i przez to strasznych) “hakerów”, na których tym samym przenoszona jest odpowiedzialność.

Jak wyglądałaby debata publiczna, gdyby tytuły brzmiały “Wyciek tajnych danych z niezabezpieczonego konta Dworczyka” albo “Rządowe maile na prywatnej skrzynce pocztowej”? Być może skupiłaby się na fakcie, że Michał Dworczyk zachował się w sposób skrajnie nieodpowiedzialny. Być może też zastanawialibyśmy się, dlaczego osoby publiczne używają prywatnych kont pocztowych do oficjalnej komunikacji – czy próbują coś ukryć?

To nie są hipotetyczne dywagacje, przecież po publikacji informacji o wycieku maili częścią rządowego przekazu dnia byli “hakerzy z Rosji”

Problem jest szerszy: za każdym razem, gdy okazuje się, że jakieś usieciowione urządzenie nie zostało wystarczająco zabezpieczone przez producenta (od żarówek, przez samochody, po sex-zabawki), media piszą o “hakowaniu” i “hakerach”, zamiast skupić się na dostawcach wadliwego, niebezpiecznego produktu. W efekcie, mnóstwo energii idzie w debatowanie, jak “zabezpieczyć się przed hakerami”.

Z jednej strony nie rozwiązuje faktycznych problemów (rząd unikający korzystania z bezpiecznej infrastruktury państwowej, oficjele nie stosujący podstawowych zabezpieczeń, producenci sprzedający niebezpieczne produkty).

Z drugiej: tworzone są regulacje prawne (jak amerykańska CFAA), które osoby utalentowane technicznie i ciekawe traktują jak groźnych przestępców i terrorystów. To prowadzi do sytuacji, w których ktoś znajduje problem bezpieczeństwa w dużej firmie, informuje tę firmę, po czym zostaje oskarżony o “włamanie”.

Społeczność hakerska

Spora część tych utalentowanych technicznie osób nazwałaby siebie “hakerami”. Z drugiej strony, nie wszyscy hakerzy i hakerki są osobami technicznymi. Haker to ktoś ciekawy świata, myślący niesztampowo, lubiący przekraczać granice i dzielić się wiedzą: informacja chce być wolna.

Haker nie musi być informatykiem. Świetnymi przykładami hakerów z polskiego podwórka są Pomysłowy Dobromir, Antonisz, Adam Słodowy. Doskonale ilustrują kreatywne podejście do rozwiązywania problemów, pragnienie pomagania innym.

Polska społeczność hakerska koncentruje się wokół hakerspejsów. Większość z nich ma formę prawną (zwykle jest to stowarzyszenie lub fundacja), członkinie i członków, siedzibę, zarząd. Polscy hakerzy i hakerki brali udział w debatach publicznych, na masową skalę produkowali pro bono przyłbice antycovidowe dla osób pracujących na pierwszej linii pandemii, organizowali setki godzin warsztatów z cyberbezpieczeństwa. Stali się też przedmiotem pracy naukowej z dziedziny socjologii.

Globalnie hakerki i hakerzy są podobnie aktywni: biorą udział w konsultacjach społecznych, używają drukarek 3d do produkcji brakujących części zamiennych respiratorów dla szpitali, czy pomagają protestującym w czasie Arabskiej Wiosny obchodzić blokady internetu.

Trudno podać datę początkową ruchu hakerskiego – już Ada Lovelace jak najbardziej się w nim mieści – ale często wymienia się Tech Model Railroad Clubna MIT jako ważne miejsce i czas (przełom lat 40. i 50. XX w.) dla narodzin współczesnej kultury hakerskiej. Pierwsi współcześni hakerzy byli modelarzami kolejowymi. W tym czasie w PRL-u nazywaliśmy ich “majsterkowiczami”.

Wraz z popularyzacją komputerów osobistych i Internetu kultura hakerska się rozpowszechniła i nieco rozmyła. Powstały hakerspejsy, czyli “kluby hakera”: przestrzenie, w których hakerzy i hakerki mogą realizować swoje pasje i wymieniać się wiedzą. Jest miejsce na spokojną pracę z laptopem, wifi, prąd, i kawa. Czasem jest serwerownia. Często jest warsztat do pracy z drewnem czy metalem, drukarki 3d, warsztat elektroniczny, plotter laserowy. Większe hakerspejsy (jak ten Warszawski) mają cięższy sprzęt, na przykład tokarki.

Hakerspejsy tworzą nieformalną, globalną sieć miejsc, w których osoby ze społeczności, zgubione w nieznanym mieście, mogą uzyskać dostęp do prądu i Internetu, i znaleźć przyjazne towarzystwo. Z czasem niektóre hakerspejsy zrzeszyły się w większe organizacje hakerskie, jak niemiecki Chaos Computer Club. Powstały również ruchy powiązane: ruch wolnego oprogramowania, ruch wolnej kultury.

Pojawiły się też fablaby i makerspace’y, które skupiają się bardziej na praktycznej, twórczej stronie ruchu hakerskiego.

Granice są rozmyte, wiele fablabów i makerspace’ów nie czuje się częścią ruchu hakerskiego. Z grubsza: makerspace’y kładą mniejszy nacisk na etos hakerski, bardziej skupiając się na robieniu rzeczy. Mniej się też na ogół interesują elektroniką i informatyką. Fablaby z kolei to makerspace’y mniej nastawione na budowanie społeczności, a bardziej na udostępnienie (zwykle odpłatnie) pracowni wszystkim zainteresowanym.

Etos hakerski

Nie ma jednej, globalnie uznanej definicji etosu hakerskiego. Są jednak pewne stałe elementy, które pojawiają się w zasadzie na każdej liście:

  • wiedza ubogaca, dostęp do niej nie powinien być ograniczany (“informacja chce być wolna”);
  • autorytety są podejrzane, centralizacja (wiedzy, władzy, kontroli, itp.) również;
  • wartość hakera czy hakerki nie ocenia się na bazie z koloru skóry, płci, wieku, itp., a na podstawie wiedzy i umiejętności;
  • praktyka jest ważniejsza niż teoria.

Hakerzy i hakerki są często bardzo wyczuleni na różnicę pomiędzy faktem, że coś jest niezgodne z prawem, a faktem, że coś jest nieetyczne. Działania nielegalne i jednocześnie nieetyczne są dla nich zdecydowanie mniej interesujące, niż działania nielegalne a zarazem etyczne.

Stąd wsparcie społeczności hakerskiej dla organizacji dziennikarskich czy organizacji pozarządowych.

Stąd narzędzia takie, jak Tor Project, SecureDrop, Signal, czy Aleph, szeroko używane przez organizacje dziennikarskie na całym świecie, a zapoczątkowane i tworzone przez osoby ze społeczności hakerskiej.

Stąd też działania grup takich, jak Telecomix, od pomagania w obchodzeniu blokady internetu w Tunezji czy Egipcie, po wykradnięcie logów udowadniających, że amerykańskie firmy pomagały rządowi Syrii cenzurować Internet i szpiegować Syryjczyków.

Czemu Telecomix zdecydował się wykraść te logi? Ponieważ działania rządu Syrii i współpracujących z nim amerykańskich firm były skrajnie nieetyczne, a technologia była przez nie wykorzystywana w celach, które dla hakerów są nie do zaakceptowania: blokowania dostępu do wiedzy i dławienia opozycji. Etos hakerski w działaniu.

Hakerzy i włamywacze

Jak zwykle w kwestiach etycznych, ocena takich działań nie jest czarno-biała i jednoznaczna. Granica między hakerem a cyberprzestępcą jest nieostra, wyznaczona z grubsza właśnie przez ten niedookreślony etos. Nie daje to jednak licencji na równianie wszystkich hakerów i hakerek do cyberprzestępców.

Dobrym tłumaczeniem czasownika “hack” (w konteście kultury hakerskiej) jest “majstrowanie”. Zwykle oznacza coś kompletnie niewinnego, jak naprawianie swojego roweru czy montowanie półek w garażu. Co prawda “majstrowanie” przy cudzym zamku do drzwi brzmi podejrzanie, nie powiemy jednak: “ktoś mi się wmajstrował do mieszkania i ukradł telewizor”.

Istnieją hakerzy-włamywacze, tak samo jak istnieją majsterkowicze-włamywacze. Gdy majsterkowicz się gdzieś włamie, nazwiemy go włamywaczem. Gdy majsterkowicz coś komuś ukradnie, nazwiemy go złodziejem.

Absurdem byłoby mówić o “gangu majsterkowiczów” tylko na podstawie faktu, że przy większym rabunku użyto narzędzi.

Nie mówilibyśmy o “majsterkowiczach”, gdyby grupa młodzieży włamała się do pokoju nauczycielskiego, wyłamując zamek śrubokrętem.

Wreszcie, nie mówilibyśmy o “majsterkowiczach” również wtedy, gdy dana grupa przestępcza byłaby finansowana, wyposażona, i wyszkolona przez konkretne państwo, które ustalałoby cele jej włamań.

Jakoś jednak nie dziwią nas tytuły w stylu: “Rosyjskojęzyczni hakerzy zhakowali policję w Waszyngtonie” albo cytaty typu: “Policja namierzyła młodego hakera, teraz zajmie się nim sąd rodzinny.”.

Czym innym jest zorganizowana grupa przestępcza (nieważne, czy działa w Sieci, czy poza nią), czym innym młodociany wandal, a czym innym komórka szpiegowska. Trzynastolatek z Gdańska nie ma nic wspólnego z Rosyjskimi cyber-szpiegami, ci z kolei raczej niewiele z gangiem kryminalistów wyłudzających haracz on-line. Nazywanie ich wszystkich “hakerami” niewiele wnosi i nic nie wyjaśnia.

Zderzenie z rzeczywistością

Angielski czasownik “hack” znaczy “ciosać”, “rąbać”. Z czasem, na MIT właśnie, stało się też rzeczownikiem i nabrało znaczenia “psikus”, “psota”, zwłaszcza gdy chodziło o żarty wymagające inwencji i poświęcenia. W kulturze hakerskiej przyjęło też dodatkowy sens: “niekoniecznie eleganckie, ale skuteczne i błyskotliwe rozwiązanie jakiegoś problemu”.

“Problemem” może tu być złe napięcie w szynach modelu kolejki, blokada Internetu w Tunezji, albo… brak otwartego dostępu do biblioteki tekstów naukowych. A skoro “informacja chce być wolna”, to trzeba jej pomóc.

Tyle tylko, że to już może zostać łatwo zinterpretowane jako “cyberatak” – na bazie wspomnianych regulacji prawnych pisanych w celu “obrony przed hakerami”. To doprowadziło do zaszczucia hakera, aktywisty, współzałożyciela Reddita, pomysłodawcy SecureDropa i współtwórcy formatu RSS, Aarona Swartza. Po jego śmierci, JSTOR zdecydował się jednak nieco otworzyć swoje zbiory dla publiki.

Gdyby ruch hakerski nie był tak łatwo demonizowany, być może organa ścigania podeszły by do sprawy inaczej, i Aaron wciąż by żył.


Pytania i odpowiedzi

Jak nazwać ludzi, którzy włamują się do indywidualnych i zbiorowych systemów w złych celach?

Włamywaczami” albo “cyberprzestępcami”, jeśli mówimy o włamaniu natury kryminalnej. “Wandalami” (z przymiotnikiem, np. “cyfrowymi”, “sieciowymi”, itp.), jeśli mówimy np. o włamaniu i podmienieniu treści jakiejś strony – zwłaszcza jeśli nie było specjalnie skomplikowane technicznie (jak niechlubne hasło admin1 na stronie premier.gov.pl). “(Cyber)szpiegami”, jeśli mowa o atakach prowadzonych, finansowanych, lub powiązanych z rządami konkretnych państw.

Jeśli brakuje konkretnych informacji, zawsze można nazwać ich “atakującymi”, “agresorami”, itp.

Uwaga techniczna: często nie doszło nawet do włamania! Na przykład w przypadku “młodych hakerów”, którzy rzekomo się “włamali” na serwery e-dziennika, okazuje się, że atakujący “doprowadzili do ich [serwerów] przeciążenia, utrudniając na pewien czas prowadzenie zdalnych lekcji”. To tak, jakby grupa ludzi stworzyła sztuczny tłum przed wejściem do szkoły – trudno to nazwać włamaniem!

Kiedy nazwać kogoś hakerem?

W takich samych sytuacjach, w których (gdyby dane wydarzenie nie było związane z komputerami), nazwalibyśmy ich “majsterkowiczami”. To naprawdę dosyć dobry model.

[Majsterkowicze] włamali się do gabloty szkolnej i umieścili w niej niestosowne komunikaty” – raczej nie brzmi dobrze. Nawet, jeśli ci wandale sami siebie nazywają “majsterkowiczami”. A więc również nie “[Hakerzy] włamali się na stronę i podmienili treść”.

[Majsterkowicze] wyprodukowali 50.000 przyłbic antycovidowych i wysłali do szpitali i instytucji medycznych” – to działa. A więc i “hakerzy wyprodukowali…”.

[Majsterkowicze] włamali się do mieszkania ministra” nie ma sensu. A zatem również nie “hakerzy włamali się na konto ministra”: raczej “nieznani sprawcy”, “osoby podejrzane o współpracę ze służbami obcego kraju”, itp.

Czym są hakatony?

Hakatony to wydarzenia, na których osoby technicznie utalentowane starają się w krótkim czasie rozwiązać jakiś problem lub osiągnąć jakiś cel. Hakatony mogą na przykład być społeczne (jak Random Hacks of Kindness, czy dawniej polski SocHack), albo skoncentrowane na tworzeniu startupów (jak Startup Weekend).

Na czym tak naprawdę polega hakowanie?

Hakowanie to nic innego, jak majsterkowanie, tylko może nieco bardziej sugeruje użycie komputerów (a i to nie zawsze). Serio serio. Przekonać się o tym można w dowolnym lokalnym hakerspejsie.

Czy walka o ten termin nie jest już przegrana? Nie lepiej znaleźć inne słowo na tę społeczność?

Próbowaliśmy – “haktywista” i “aktywista cyfrowy” nie wzięły się z nikąd. I natychmiast zaczęły być używane w znaczeniu “cyberprzestępca”, na przykład tu:

“Activists or hacktivists are threat actors motivated by some political, economic, or social cause, from highlighting human rights abuse to internet copyright infringement and from alerting an organization for its vulnerabilities to declaring online war with people or groups whose ideologies they do not agree with”

Inne słowa zostały “odzyskane” przez ich społeczności. Społeczność LGBTQ+ odzyskala skutecznie słowa, które były pejoratywnymi określeniami osób homoseksualnych (nikt w mediach nie napisze dziś o nich używając np. nazwy części rowerowej, a przecież jeszcze w “Seksmisji” bohater mówi “nie róbcie z nas pederastów”!). Podobnie społeczność osób czarnoskórych w Stanach Zjednoczonych skutecznie odzyskała słowo-na-n.

I wreszcie, być może najważniejsze: czemu w ogóle mielibyśmy oddawać to słowo bez walki? Tak się nazwaliśmy, tak nasza społeczność się określa, czy nie należy się nam jakiś zupełnie podstawowy szacunek? Dlaczego mielibyśmy się po cichu zgadzać na publiczne równanie z kryminalistami i szpiegami tylko dlatego, że łatwiej komuś pisać “haker” niż zastanowić się, co się faktycznie wydarzyło w danej sytuacji?

Centralizacja jest zagrożeniem dla demokracji

Angielska wersja niniejszego wpisu została pierwotnie opublikowana na stronach Redecentralized oraz VSquare.

Po brutalnym ataku na Kapitol w Waszyngtonie, monopoliści mediów społecznościowych zaczynają sobie wreszcie uświadamiać, że centralizacja jest niebezpiecznia. Pełna kontrola nad codzienną komunikacją setek milionów użytkowników i użytkowniczek wiąże się z odpowiedzialnością, być może zbyt wielką nawet dla informatycznych behemotów.

Całe lata Facebook i Twitter nie były skłonne egzekwować własnych zasad dotyczących nakłaniania do przemocy, ze strachu przed negatywną reakcją znacznej części osób korzystających z ich usług. Teraz nagle blokują konta Donalda Trumpa i osób promujących teorię spiskową QAnon, mając nadzieję, że uda im się szybko zamknąć temat i wrócić do udawania, że wszystko jest w porządku.

Wszystko jednak nie jest w porządku. Te działania są zwyczajnie niewystarczające. Można je jednak odczytywać jako przyjęcie części odpowiedzialności za przemoc, która wybuchła na Kapitolu.

Nic się przecież nie zmieniło w retoryce prezydenta Trumpa, ani w przedziwnych teoriach spiskowych związanych z QAnon. Monopoliści mediów społecznościowych całe lata byli ostrzegani, że promowanie tego typu treści doprowadzi do rozlewu krwi; zresztą, już doprowadziło do tego w przeszłości.

A może po prostu wynik wyborów w Stanach oznacza, że coś, co kiedyś było korzystne dla tych firm, nagle stało się problemem?

“Trudne położenie”

Uczestniczyłem w wielu publicznych debatach na temat zarządzania Internetem. Za każdym razem gdy ktoś przypominał platformom społecznościowym (np. Facebookowi), że powinny włożyć więcej wysiłku w moderowanie problematycznych treści, platformy odpowiadały narzekając, że to niezmiernie trudne w tak dużej sieci, wszak regulacje prawne i kwestie kulturowe są tak bardzo różne w różnych zakątkach świata.

Trudno się nie zgodzić! Tyle, że w intencji tych korporacji był to argument za ograniczaniem regulacji prawnych, a w istocie jest to świetny argument za decentralizacją.

Jakby nie patrzeć, społecznościówki znalazły się w tym “trudnym położeniu” wyłącznie na własne życzenie: wynika to wprost z ich modelu biznesowego, polegającego na byciu centralnie zarządzanymi, globalnymi platformami, które próbują wpasować nieprzebrane bogactwo kultur w sztywne ramy jednej, spójnej, globalnej polityki moderacji treści.

Innymi słowy giganci mediów społecznościowych domagają się od lat, żeby demokratycznie wybrane rządy nie obejmowały ich regulacjami prawnymi zgodnymi z wolą obywateli, ponieważ nie pasuje im to do modeli biznesowych!

Te same firmy ignorują ostrzeżenia dotyczące nieskrępowanego rozprzestrzeniania się ruchów rasistowskich na ich platformach, i zarabiają krocie wręcz promując treści ekstremistyczne (potwierdzają to zresztą ich własne badania).

Polaryzacja debaty publicznej i dewastacja tkanki społecznej są, jak można się było spodziewać, tylko kosztem zewnętrznym.

I tak źle, i tak niedobrze

Jakiekolwiek blokowanie kont przez główne platformy społecznościowe oczywiście naychmiast budzi obawy o cenzurę (warto zauważyć, jak skutecznie tym argumentem posługują się właśnie osoby tworzące treści toksyczne, wzmacniające podziały społeczne). Czy naprawdę chcemy żyć w świecie, w którym garstka dyrektorów korporacji de facto decyduje o tym, co jest, a co nie jest dopuszczalne w społecznej czy politycznej debacie publicznej?

Oczywiścienie chcemy. To jest zbyt dużo skoncentrowanej władzy, władza zaś psuje. Pytanie nie brzmi “w jaki sposób te globalne platformy powinny używać swej władzy”, a raczej: “czy te firmy powinny w ogóle mieć taką władzę”.

Odpowiedź jest prosta: “nie”.

Alternatyw nie brakuje

Można jednak inaczej. Fediverse jest zdecentralizowaną siecią społecznościową.

To tak, jakby Twitter i Facebook działały podobnie do serwerów e-mail: możesz mieć konto na dowolnej instancji (tak nazywane są serwery na Fediversie), różne instacje komunikują się zaś ze sobą – jeśli masz konto na (powiedzmy) mastodon.social, możesz swobodnie wchodzić w interakcje z kontami z (na przykład) pleroma.soykaf.com, czy na dowolnej innej instancji używającej tego samego protokołu.

Poszczególne instancje utrzymywane są przez różne osoby bądź społeczności, korzystając z różnych rodzajów oprogramowania; każda ma swoje własne zasady.

Te zasady egzekwowane są za pomocą narzędzi moderacji, wśród których są takie, których nie da się zaimplementować w sieci zcentralizowanej. Osoby moderujące mogą blokować lub wyciszać poszczególne konta, mogą też blokować (tudzież: “defederować”) całe problematyczne instancje całkowicie – co jest zwyczajnie niemożliwe, jeśli cała sieć społecznościowa jest jedną “instancją”.

Mało tego, każda osoba na Fediversie może też samodzielnie blokować i wyciszać wątki, problematyczne konta, czy całe instancje tylko dla siebie. To oznacza, że problem napastliwych kont można rozwiązać na wiele sposobów, dostosowując reakcję do skali konkretnego problemu. Ponieważ społeczności zarządzają swoimi własnymi fediwersowymi instancjami, zależy im na tym, by szybko rozprawiać się z wszelkimi aktami agresji czy zastraszania; mają też po temu narzędzia i odpowiednią moc sprawczą.

Lokalne zasady zamiast globalnej cenzury

Fediverse też doświadczyło rasizmu i skrajnie prawicowego trollowania. Instancje takie, jak Gab próbowały stać się częścią tej sieci, pojawiały się też indywidualne rasistowskie i skrajnie prawicowe konta na innych instancjach.

Zostały one jednak bezceremonialnie wyrugowane dzięki lepszym narzędziom moderacji, jasnym i jednoznacznym zasadom dotyczacym tego, co jest niedopuszczalne na instancjach różnych społeczności, oraz dzięki osobom zarządzającym i moderującym, które bezpardonowo blokowały agresywne konta i problematyczne instancje.

Prezentacja Dereka Caelina, badacza i dziennikarza skupiającego się na technologiach komunikacyjnych, oferuje doskonałe podsumowanie tej sytuacji (okraszone całkiem solidnym zestawem danych). Mogę ją tylko gorąco polecić.

Dziś rasiści i skrajnie prawicowe trolle mroczny kąt Fediversu, do którego rzadko kto zagląda. Oczywiście nie powstrzyma to grupy zatwardzialców przed rasistowskimi dywagacjami we własnym gronie na własnej instancji (takiej, jak Gab), ale izoluje ich to, przez co trudniej jest im radykalizować kolejne osoby, i chroni innych użytkowników i użytkowniczki Fediversu przed potencjalnymi atakami. Oczywiście takie osoby nadal mogą tworzyć konta na innych instancjach, pod warunkiem, że dostosują swoje zachowanie do przyjętych na nich norm.

A wszystko to pomimo braku centralnego ośrodka narzucającego zasady. Okazuje się, że niewiele osób lubi rozmawiać z faszystami.

Co dalej?

Nie uda się znaleźć jednego uniwersalnego, centralnie egzekwowanego zestawu zasad moderacji, który dałoby się wdrożyć globalnie. Społeczności mają różną wrażliwość i różne zasady, a osoby zanurzone w tych społecznościach sami najlepiej rozumieją kontekst danej komunikacji, i wiedzą, jak ją moderować.

Na poziomie indywidualnym możesz po prostu dołączyć do Fediversu. Na poziomie społecznym, powinniśmy wyrwać murom popularnych sieci społecznościowych zęby krat, objąć je regulacjami prawnymi, i doprowadzić to tego, by monetyzacja toksycznych, zatruwających debatę publiczną, interakcji on-line była tak samo niedopuszczalna, jak wylewanie trujących ścieków do rzeki.

Zresztą, sami społecznościowi monopoliści dochodzą w końcu do wniosku, że skuteczna moderacja scentralizowanej globalnej sieci jest zwyczajnie niemożliwa, i że potrzebne są nowe regulacje prawne. Skoro nawet oni to widzą, my też powinniśmy.

Dzień, w którym cenzura Sieci w Polsce stała się faktem

To jest bardzo stary wpis, opublikowany ponad 4 lata temu.

Możliwe, że nie odzwierciedla dziś poglądów Autora lub zewnetrznych faktów. Jest zachowany jako wpis historyczny.

Stało się. Dziś weszła w życie ustawa tak zwana “antyterrorystyczna”. W niej zaś znajdziemy artykuł 32c, którego punkt pierwszy brzmi (polecam jednak lekturę całego artykułu):

W celu zapobiegania, przeciwdziałania i wykrywania przestępstw o charakterze terrorystycznym oraz ścigania ich sprawców sąd, na pisemny wniosek Szefa ABW, złożony po uzyskaniu pisemnej zgody Prokuratora Generalnego, w drodze postanowienia, może zarządzić zablokowanie przez usługodawcę świadczącego usługi drogą elektroniczną dostępności w systemie teleinformatycznym określonych danych informatycznych mających związek ze zdarzeniem o charakterze terrorystycznym lub określonych usług teleinformatycznych służących lub wykorzystywanych do spowodowania zdarzenia o charakterze terrorystycznym, zwane dalej „blokadą dostępności”.

Jednym słowem, szef ABW w porozumieniu z Prokuratorem Generalnym mają prawo zablokować dowolną stronę, treść czy usługę w Internecie. I to, zgodnie z pkt. 4, “w sprawach niecierpiących zwłoki” na 5 dni bez decyzji sądu. A kto decyduje, że sprawa nie cierpi zwłoki? ABW i Prokurator Generalny, rzecz jasna!

Zastanawiające, że ani w komunikacie MSWiA na temat (jeszcze projektu) tej ustawy, ani w komunikacie na stronie Sejmu, ani słowem się nie zająknięto na temat tych nowych uprawnień ABW.

Czy powodem może być roztargnienie? Bardzo nie chcę wierzyć, że nasi szanowni włodarze, dniem i nocą czuwający nad naszym bezpieczeństwem, są aż tak roztargnieni, by zapomnieć wspomnieć o dość ważnym elemencie ustawy tak ważnej, że nie przeprowadzono nawet konsultacji społecznych (musiał to za rząd zrobić RPO), by nie opóźniać jej wejścia w życie…

Być może pominięcie to wynika z faktu, że nikt tak naprawdę nie jest w stanie wskazać, w jaki sposób zablokowanie jakiejkolwiek treści miałoby pomóc w walce z terroryzmem? Zwłaszcza blokowanie treści w tak błyskawicznym trybie? Myślałbym, że raczej należałoby treści nie blokować, ale bacznie przyglądać się, kto uzyskuje do niej dostęp. Ale ja tam się nie znam.

Moim ulubionym pytaniem na które nie ma nigdzie odpowiedzi, bo jakże miałaby być, jest jednak pytanie zadane mi w mediach społecznościowych Fundacji Panoptykon. Brzmiało ono:

Czy ‘ekspert’ Michał “rysiek” Woźniak może wyjaśnić, jak pisowski rząd będzie rozpakowywał transmisję SSL?

No więc właśnie tu jest pies pochowany, jest to doskonałe i ważne pytanie, tyle że… to nie ja powinienem to wyjaśnić. Warto by to pytanie (i parę innych) zadać ABW. Drogie ABW – jak zamierzacie rozpakowywać transmisję SSL?

Zostałem jednak do tablicy wywołany, więc spróbujmy. By nie było zbyt łatwo, zmierzę się z pytaniem szerszym: w jaki sposób pobożne życzenia ABW, Prokuratora Generalnego i twórców tej ustawy mają się do rzeczywistości, a konkretnie faktu, że połączenia SSL/TLS stają się standardem?

Odpowiedź krótka: nijak. Ale od początku.

Czym jest połączenie SSL?

Połączenie SSL (czy dziś raczej TLS) to połączenia szyfrowane stosowane szeroko w komunikacji przez Internet. Zielona kłódeczka przy adresie strony banku oznacza właśnie, że komunikacja jest szyfrowana i nikt poza operatorem strony a naszą przeglądarką nie ma możliwości odczytania treści komunikacji.

Problem w tym, że SSL/TLS opiera się na systemie certyfikatów wydawanych przez urzędy certyfikacji. Każdy urząd certyfikacji może wydać certyfikat dla dowolnej domeny, a my musimy ufać, że nie będą ich rozdawać komu popadnie. Np. rządom z cenzorskimi zapędami.

Czy można rozpakować transmisję SSL?

Teoretycznie można. Gdyby ktoś uzyskał (wykradł? zażądał?) dostęp do kluczy prywatnych dowolnego z tych urzędów, miałby możliwość swobodnego wydawania certyfikatów dla dowolnej domeny. Czyli mógłby wykonywać atak Person in the Middle: przeglądarce użytkowniczki przedstawiać się ważnym certyfikatem, który samemu sobie wygenerował. Ponieważ sam sobie wygenerował certyfikat, ma powiązany z nim klucz prywatny pozwalający rozszyfrować transmisję. Po jej przejrzeniu (lub ocenzurowaniu jej części), szyfruje wszystko prawdziwym certyfikatem serwera, z którym użytkowniczka chciała się łączyć.

Dla serwera i dla użytkowniczki wszystko wygląda normalnie, tyle że nasz złośliwy atakujący (lub przyjazny agent ABW) ma dostęp do naszej komunikacji – może ją czytać, może też ją modyfikować.

I dotyczy to tak samo losowego bloga, jak i strony naszego banku.

Skąd wziąć klucze?

Można je wykraść. Urzędy certyfikacji powinny bardzo dbać o bezpieczeństwo, ale czasem… no cóż. Oczywiście nikt by nie podejrzewał miłościwie nam panujących o tak niecne metody (ani o odpowiednie kompetencje)!

Więc zamiast tego mogą odpowiednie certyfikaty zwyczajnie kupić. BlueCoat to firma, która oferuje rozwiązania “filtrujące” (czyt. cenzurujące) Sieć, sprawdzone u tak zacnych klientów, jak prezydent Assad. Problem w tym, że BlueCoat ma dziś możliwość wydawania dowolnych certyfikatów dla dowolnych domen. Mówią, że do testów. Ale gdzie jest popyt, znajdzie się podaż.

Dlaczego to kretyński pomysł?

To jednak nadal wymaga kosmicznych nakładów finansowych na sprzęt, który byłby w stanie w czasie rzeczywistym rozpinać SSL/TLS, cenzurować treści, po czym spajać te połączenia na tyle szybko, by nikt nie zauważył. Podejrzewam, że w tym miejscu zgodzi się ze mną autor pytania: to jest zwyczajnie niewykonalne na skalę całego ruchu w kraju.

I tu pojawia się kolejny problem. Skoro ABW rękami operatorów telekomunikacyjnych nie będzie miało jak blokować konkretnych treści przesyłanych bezpiecznymi połączeniami SSL/TLS, to co dokładnie chcą blokować?

Oczywiście ABW może domagać się blokowania adresu IP, pod którym strona jest dostępna. Tu żadne szyfrowanie na poziomie, na którym działa SSL/TLS nie pomoże. Operator ustawia trasę na czarną dziurę, i cześć. Cóż jednak jeśli mówimy np. o grupie na popularnym portalu społecznościowym, który używa SSL/TLS, a na wezwanie ABW do zablokowania tej konkretnej grupy odpowie, że jakby niekoniecznie? Zablokują wszystkie IP tego portalu?

Co jeśli strona, którą ABW chce zablokować, stoi za rozwiązaniem takim, jak CloudFlare? Jeśli CloudFlare nie zgodzi się na zablokowanie danej strony, ABW musiałoby zablokować wszystkie adresy IP CloudFlare, co oznacza, że żadna z milionów stron korzystających z CloudFlare nie będzie dostępna w Polsce. Poprawka: SNI idzie czystym tekstem, nie trzeba więc blokować całego CloudFlare’a by zablokować jedną z domen z niego korzystających.

Jakby nie patrzeć, ABW jest w idiotycznej sytuacji. Rozpinanie ruchu SSL/TLS nie wchodzi w rachubę. Blokowanie całych domen ze względu na jeden wpis też jakby niekoniecznie. Problem w tym, że to nie jest powód, by na artykuł 32c w ustawie antyterrorystycznej machnąć ręką – bo “wszystkich nas nie rozszyfrują”.

To jest powód, dla którego w ogóle takich zapisów nie powinno być. Tymczasem zaś – czas odpalić SSL/TLS na wszystkim.

e-Dockleracje

To jest bardzo stary wpis, opublikowany ponad 4 lata temu.

Możliwe, że nie odzwierciedla dziś poglądów Autora lub zewnetrznych faktów. Jest zachowany jako wpis historyczny.

tl;dr e-Deklaracje w dockerze; jeśli chcesz od razu przeskoczyć do informacji, jak z tego skorzystać, by bez walki odpalić je na swoim GNU/Linuksie, kliknij w klikadło

Gdy w 2010r. Ministerstwo Finansów wypuściło program e-Deklaracje (za który dostało nawet od FWiOO zasłużonego “Izydora”), życie użytkowników Linuksa zmieniło się na dwa sposoby.

Po pierwsze, wreszcie mogliśmy oddawać się niewątpliwej przyjemności składania deklaracji podatkowych na naszych wspaniałych, wolnych jak pingwin systemach operacyjnych.

Po drugie, by na tę przyjemność zasłużyć, co roku odprawiać musieliśmy zgoła magiczne rytuały, by rzeczone e-Deklaracje odpalić na nowszej o rok dystrybucji. Zajmowało to zwykle…

A dobę, a pięć…

Problem wynika rzecz jasna ze światłej decyzji oparcia e-Deklaracji o Adobe AIR: zamknięte, własnościowe środowisko uruchomieniowe rozwijane i kontrolowane przez jedną firmę. Firmę znaną z przyjaznego podejścia do systemów operacyjnych spod znaku przyjaznego nielota.

Rzecz jasna niebawem okazało się, że Adobe nie zamierza rozwijać dalej wersji AIR na Linuksa.

Plus jest taki, że zwolennicy wolnego oprogramowania dostali kolejny argument za tym, by instytucje publiczne nie opierały swych działań na zamkniętym oprogramowaniu. Minusem jest konieczność kombinowania, jak by tu coraz bardziej starożytne środowisko odpalić na nowoczesnych dystrybucjach…

A gdyby tak odpalać cały ten majdan na równie antycznej dystrybucji? Wszak i tak odpalany jest tylko raz na rok, na te kilkadziesiąt minut potrzebnych na wypełnienie i wysłanie deklaracji, po czym znów idzie w odstawkę.

Może maszyna wirtualna? To jednak zbyt dużo zabawy, miejsca na dysku, zasobów… Da się inaczej?

Enter the Docker

Docker ułatwia korzystanie z kontenerów – lżejszych braci maszyn wirtualnych. Nie wchodząc w szczegóły, docker ułatwia i automatyzuje tworzenie bardzo dokładnie kontrolowanych środowisk. Coś jak maszyna wirtualna, tyle że wymagająca znacznie mniej zasobów.

“Jak pomyślał, tak zrobił” – et voilà! Zdokeryzowane e-Deklaracje, for your tax reporting pleasure!

Chcę! Jak?

Są dwa wymagania systemowe: docker oraz jądro Linuksa w wersji 3.8 lub późniejszej. Użyszkodników wersji Ubuntu starszych niż 14.04 zapraszam tu; Debiana Wheezy – tu. Gentowcy i pochodni, jestem pewien, poradzą sobie sami.

Jeśli natomiast używamy dowolnego smaku Ubuntu w wersji 14.04 lub nowszej, dockera mamy w repozytoriach:

sudo apt-get install docker.io

Przyda się też dodanie naszego juzera do odpowiedniej grupy:

sudo adduser $USER docker sg docker

Teraz kod. Dla gitowców:

git clone https://git.hackerspace.pl/rysiek/e-dockleracje cd e-dockleracje

Dla reszty świata:

wget https://git.hackerspace.pl/rysiek/e-dockleracje/snapshot/e-dockleracje-master.tar.bz2 tar -xjf e-dockleracje-master.tar.bz2 cd e-dockleracje-master

W tym momencie mamy wszystko, co potrzeba. Uruchamiamy:

./edeklaracje.sh

…i czekamy. Docker pobiera podstawowy obraz Ubuntu 13.10, instaluje w nim konieczne pakiety, pobiera Adobe AIR, Acrobat Readera i same e-Deklaracje, instaluje wszystko, i wreszcie – uruchamia nam e-Deklaracje. Prosto z wydzielonego kontenera, ale z dostępem do naszego dotychczasowego katalogu konfiguracyjnego e-Deklaracji, o ile istnieje.

Budowanie musi zrobić tylko raz, więc następne uruchomienia będą znacznie szybsze.