28 sierpnia rozpoczął się proces 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. Newag przyznał jednak, że hakerzy nie modyfikowali oprogramowania 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.
Ale nie podaje żadnego przekonywającego wyjaśnienia, skąd w produkowanych przezeń pociągach 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.
Kilka miesięcy temu zapytałem Newag, 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 roku:
„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?
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 C-13/20 wydany przez Trybunał Sprawiedliwości Unii Europejskiej w sprawie Top System przeciwko État belge. 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.
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:
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.
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.
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 roku 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 zaimplementować).
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:
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 blokowany, mimo że spełniony jest jeden z ich warunków, miałby świadczyć o naruszeniu 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 sprawę szybko wyjaśnić, spółka pozywa ekspertów do sądu, domagając się milionowego odszkodowania.
„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 samych pozwanych, ale również wszystkich innych, którzy chcieliby pójść w ich ślady”.
„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ł.
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 z udziałem ś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.
Specjalista ds. bezpieczeństwa informacji, administrator sieci i aktywista w zakresie praw cyfrowych. Studiował filozofię, był członkiem Rady ds. Cyfryzacji, jest współzałożycielem warszawskiego Hackerspace’a. Pracował jako Dyrektor ds. Bezpieczeństwa Informacji w OCCRP – The Organised Crime and Corruption Reporting Project, konsorcjum ośrodków śledczych, mediów i dziennikarzy działających w Europie Wschodniej, na Kaukazie, w Azji Środkowej i Ameryce Środkowej. Współpracuje z szeregiem organizacji pozarządowych zajmujących się prawami cyfrowymi w kraju i za granicą. Współautor „Net Neutrality Compendium” oraz “Katalogu Kompetencji Medialnych”.
Specjalista ds. bezpieczeństwa informacji, administrator sieci i aktywista w zakresie praw cyfrowych. Studiował filozofię, był członkiem Rady ds. Cyfryzacji, jest współzałożycielem warszawskiego Hackerspace’a. Pracował jako Dyrektor ds. Bezpieczeństwa Informacji w OCCRP – The Organised Crime and Corruption Reporting Project, konsorcjum ośrodków śledczych, mediów i dziennikarzy działających w Europie Wschodniej, na Kaukazie, w Azji Środkowej i Ameryce Środkowej. Współpracuje z szeregiem organizacji pozarządowych zajmujących się prawami cyfrowymi w kraju i za granicą. Współautor „Net Neutrality Compendium” oraz “Katalogu Kompetencji Medialnych”.
Komentarze