0:00
0:00

0:00

Prawa autorskie: Foto Mateusz Włodarczyk CC BY-SA 3.0,Foto Mateusz Włodarc...

O aferze jako pierwsi donieśli portal Onet i Zaufana Trzecia Strona. Do ustalenia przyczyn unieruchamiania się pociągów po serwisowaniu spółka Serwis Pojazdów Szynowych wynajęła polskich hakerów, członków grupy Dragon Sector.

Po kilku miesiącach ci eksperci od cyberbezpieczeństwa ustalili, że firma Newag prawdopodobnie celowo wprowadzała zmiany w oprogramowaniu produkowanych przez siebie składów w celu uniemożliwienia ich serwisowania przez niezależne zakłady naprawcze.

W udostępnionym nam dziś oświadczeniu (całość na końcu tekstu) trójka ekspertów napisała:

"Na konferencji OhMyH@ck w dniu 2023/12/05 zaprezentowaliśmy wykonaną przez nas analizę procesorów/kontrolerów pociągów Newag Impuls. W kodzie tych procesorów, po jego pobraniu z urządzenia i dokonaniu inżynierii wstecznej odkryliśmy nieudokumentowany kompleksowy system blokad. Analizę rozpoczęliśmy na zlecenie SPS ASO Mieczkowski w maju 2022 roku.

System ten skutecznie unieruchomił pociągi podczas ich serwisu w niezależnych warsztatach świadczących przegląd P2/P3. System ten sprawdzał różne warunki (np. wskazania rejestratora, datę, współrzędne geograficzne z GPS) i gdy któryś warunek został spełniony, blokował pociąg. Zablokowany pociąg nie pokazywał żadnego kodu błędu, prezentował gotowość do jazdy i przy zadaniu polecenia jazdy jedynie zwalniał hamulce (nie uruchamiając przy tym falowników, które zasilają silniki pojazdu). W dokumentacji technicznej Impulsów nie ma żadnej wzmianki na temat tego zachowania.

Analizowaliśmy już 29 pojazdów i 24 z nich posiadały mniej lub bardziej zaawansowany system blokad. Warunki powodujące zablokowanie się pojazdu były różne między różnymi pociągami, a czasem nawet zmieniały się pomiędzy wizytami w warsztatach Newag. Wraz z naszymi sukcesami w przywracaniu pociągów do jazdy nowsze wersje oprogramowania w kontrolerach Impulsów zostały pozbawione mechanizmu odblokowywania pociągów (arbitralna sekwencja wciśnięć odpowiednich przycisków w kabinie maszynisty)".

Zmiany wywoływały fałszywe „awarie”, wymagające serwisowania w Newagu.

Producent kategorycznie zaprzecza tym doniesieniom. Osoby blisko związane z polskim rynkiem kolejowym nie są jednak nimi zaskoczone, a fakty zdają się mówić za siebie.

Podkarpacki Impuls 2, EN63B-107 na stacji w Rzeszowie. Foto Wojciech Skibiński, CC BY 3.0

Impuls do działania

Dziwne awarie newagowskich Impulsów zaczęły się już dawno. „Pierwsze symptomy problemów z pojazdami pojawiły się ponad rok temu” — słyszę od G., eksperta, który chce zachować anonimowość.

Upewniam się, że nie chodzi tylko o same awarie, ale o to, że być może były celowo, sztucznie wywoływane przez Newag. „O ile mi wiadomo, sprawie od jakiegoś czasu przygląda się CBA itp. Także nie jest to zaskoczenie” — potwierdza.

Podobne zdanie słyszę od innych osób, z którymi rozmawiałem. Nikt jednak nie chce wypowiadać się pod nazwiskiem. „Dla mnie, osobie związanej z rynkiem kolejowym w Polsce, większym zaskoczeniem jest to, że ktoś (czyt. SPS) postanowił pokazać ten problem. Że ktoś postanowił przeciwstawić się takiej dużej firmie jak Newag” — zaznacza G.

Być może wynikało to z trudnej sytuacji, w której w związku z nieudanymi naprawami Impulsów znalazł się bydgoski Serwis Pojazdów Szynowych. Koleje Dolnośląskie ostatecznie planowały nawet rozwiązać zawartą ze spółką umowę serwisową ze względu na wciąż zepsute Impulsy, których SPS nie wydawał się być w stanie naprawić.

Kolej na hakerów

Choć pociągi były serwisowane zgodnie z dokumentacją od producenta, po serwisie się po prostu nie uruchamiały. Pracownicy SPS nie mogli znaleźć problemu mechanicznego ani elektrycznego, który mógłby być przyczyną usterki.

Jak wiele innych urządzeń, dziś pociągi to komputery na szynach.

SPS poprosił więc o pomoc ekspertów od informatyki.

Trzej polscy hakerzy — Sergiusz „q3k” Bazański, Michał „Redford” Kowalczyk, Jakub „PanKleszcz” Stępniewicz — siedli do pracy. Rozwikłanie zagadki zajęło im kilka miesięcy. Zgodnie z ich ustaleniami, ktoś do oprogramowania, pod którego kontrolą działają składy Newagu, wprowadził modyfikacje wywołujące fałszywe „awarie”, unieruchamiające pociągi po spełnieniu konkretnych warunków.

Warunki te były różne w różnych jednostkach, ale wygląda na to, że

miały jeden wspólny cel: unieruchamianie pociągów serwisowanych przez jakąkolwiek inną firmę, niż Newag.

Na przykład: pojazd był unieruchamiany, jeśli spędził więcej niż dziesięć dni w lokalizacji mieszczącej się w ramach konkretnych współrzędnych GPS. Koordynaty te, jak się okazuje, obejmowały zakłady naprawcze kilku różnych firm, stanowiących konkurencję dla Newagu jeśli chodzi o kontrakty serwisowe. Obejmowały też jeden z zakładów Newagu, ale… w tym jednym wypadku nie była uruchamiana „awaria”.

Jeden konkretny skład, 31WE-010 z Zielonogórskiego Polregio, został zaprogramowany tak, by wyłączył się zaraz po planowanym na listopad 2021 serwisowaniu. Jak mówi mi osoba związana z rynkiem kolejowym, Newag mógł wiedzieć na kiedy dokładnie ten serwis był planowany, ponieważ to producent określa cykle serwisowe. Co ciekawe, serwis pociągu przeciągnął się do stycznia, a przez błędną implementację tego warunku pociąg doznał zaprogramowanej „awarii” dopiero w listopadzie następnego roku.

Ktokolwiek te zmiany w oprogramowaniu wprowadził, nie było to jednorazowe działanie. Kolejne aktualizacje oprogramowania — co ważne, możliwe w zasadzie wyłącznie w warunkach serwisowych lub u producenta — zmieniały warunki „awarii” lub usuwały znalezione przez zespół hakerów metody naprawienia sztucznych „usterek” (a co za tym idzie uruchomienia pociągów).

Po jednej z aktualizacji, jeśli spełnione były odpowiednie warunki, na konsoli w kabinie maszynisty wyświetlane było ostrzeżenie o „naruszeniu praw autorskich”.

Trudno oprzeć się wrażeniu, że te fałszywe „awarie” były korzystne dla Newagu. „Kolejny aspekt to relacje z podwykonawcami przeglądów i napraw. Nagłe unieruchomienie pociągu po przeglądzie i brak możliwości naprawy wpływał na kontakty biznesowe, mogły prowadzić do zmian cen, wydłużania terminów itp” — potwierdza G.

Newag kategorycznie zaprzecza

Niedługo po publikacjach Onetu i Zaufanej Trzeciej Strony, opisujących proceder, Newag opublikował oświadczenie (linkujemy do kopii w internetowych archiwum, jako że strona Newagu w tym momencie nie działa). W 11 punktach zaprzecza ustaleniom hakerów, oskarża konkurencję o pomówienia, a Onet o błędy logiczne.

Kategorycznie zaprzeczamy i negujemy wgrywanie przez NEWAG jakiejkolwiek funkcjonalności w systemach sterowania pojazdów ograniczającej lub uniemożliwiającej prawidłową eksploatację pojazdów jak również ograniczających krąg podmiotów mogących świadczyć usługi utrzymaniowe lub naprawcze.

Winę za modyfikacje zrzuca na bliżej nieokreślonych sprawców, podkreślając, że to użytkownik końcowy ma obowiązek dbać o bezpieczeństwo pojazdów (a więc i dostępu do komputerów, pod których kontrolą działają). Podkreśla też, że oprogramowanie w pociągach nie ma połączenia z Internetem, nie pozwala na zdalną ingerencję.

Szeroko też wykorzystuje terminy „grupa hakerska”, „hakować”, tworząc wrażenie działań jakiegoś, nie przymierzając, groźnego gangu cyberprzestępców. SPS oraz wynajętych przez spółkę fachowców straszy pozwami i służbami.

Szczucie hakerem

Zacznijmy od tych „hakerów” i „hakowania”. To dość naiwna (acz, niestety, wciąż skuteczna) metoda odwracania uwagi, wykorzystująca fakt, że w polskich mediach wciąż słowa te są nadużywane, wykorzystywane w odniesieniu do grup przestępczych, cyberataków, działań wykwalifikowanych służb wywiadowczych — jeżeli tylko gdziekolwiek w ich orbicie pojawia się komputer.

Wystarczy poszczuć „hakerem” i nagle mamy w głowie obraz kogoś w kominiarce, włamującego się do laptopa, złośliwego „nieznanego sprawcy”.

Przeczytaj także:

To stereotyp szkodliwy nie tylko dla społeczności hakerskiej, ale również dla debaty publicznej. Oświadczenie Newagu doskonale to obrazuje. Jego autor bezceremonialnie wykorzystuje fakt, że pp. Bazański, Kowalczyk i Stępniewicz — świetni specjaliści, członkowie grupy Dragon Sector zdobywającej nagrody w międzynarodowe konkursach z zakresu bezpieczeństwa cyfrowego — identyfikują się jako hakerzy (w sensie: osoby zainteresowane technologią, majsterkowicze).

Używa tego przeciwko nim, wykrzywiając znaczenie słowa „haker” na „cyberprzestępca”. Zaciemniając obraz sytuacji, utrudniając debatę publiczną. To samo w sobie jest dość nikczemne.

Hakerzy, eksperci wynajęci przez SPS, nie „zhakowali” też komputerów pokładowych Impulsów w tym potocznym sensie. Dokonali inżynierii wstecznej, analizy kodu maszynowego oprogramowania uruchomionego na nich. Wbrew twierdzeniom Newagu („Hakowanie systemów informatycznych jest złamaniem wielu przepisów prawa…”), działania hakerów były legalne, nie naruszały niczyich praw autorskich:

„W wyroku C‑13/20 w sprawie Top System, Trybunał Sprawiedliwości Unii Europejskiej potwierdził, ż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ą" — podkreśla Krzysztof Siewicz, radca prawny, specjalizujący się m.in. w prawie autorskim, kierownik ds. licencjonowania i zgodności w Free Software Foundation.

Sztuczne „awarie” były funkcją zakłócającą prawidłowe funkcjonowanie pociągu, a wynajęci przez SPS hakerzy wykonali inżynierię wsteczną oprogramowania w celu ustalenia i naprawienia błędów.

Źródła problemów

Główny argument Newagu opiera się na tym, że nie da się na podstawie samego zapisu cyfrowego ustalić, kto jest jego autorem.

Jak podkreśla na swoim blogu inny członek grupy Dragon Sector (który jednak nie brał udziału w tym projekcie), Gynvael Coldwind, samo w sobie to twierdzenie jest prawdziwe. Ale wniosek, który z niego wysnuwa Newag („Z tego względu insynuowanie przez dziennikarzy portalu onet.pl, jakoby rzekomo „ktoś z Newagu” miało coś „wpisać” w oprogramowaniu, stanowi bezprawne pomówienie”), już prawdziwy nie jest:

Otóż analizując kod maszynowy można wyciągnąć jedną bardzo ciekawą informację z bardzo wysokim prawdopodobieństwem (graniczącym z pewnością): czy modyfikacja została zrobiona na poziomie kodu maszynowego, czy kodu źródłowego.

Krótkie wyjaśnienie terminologii:

  • kod maszynowy” to oprogramowanie w formie bezpośrednio uruchamianej na danym procesorze;
  • kod źródłowy” to oprogramowanie w formie napisanej przez programistkę, zrozumiałej dla człowieka.

Kod źródłowy (zwłaszcza oprogramowania dla urządzeń wbudowanych, jak komputery pokładowe pociągów) kompilowany jest do kodu maszynowego w celu załadowania do danego urządzenia. Proces odwrotny, dekompilacja kodu źródłowego w celu jego modyfikacji i ponownej kompilacji, jest w praktyce, w kontekście urządzeń wbudowanych, niemożliwa (szczegółowe powody techniczne omawia na zalinkowanym wyżej blogu Gynvael Coldwind).

Skąd więc wiadomo, czy dany kod maszynowy był modyfikowany przy dostępie do kodu źródłowego, lub bez niego?

Mocno upraszczając, to trochę jak z budynkami. Raz wybudowany budynek ma określone rozmiary, w określonych miejscach są filary nośne, w określonych miejscach są rury kanalizacyjne. Późniejsze przebudowy mogą zmienić wygląd i plan budynku, ale takie stałe elementy są praktycznie niemożliwe do przeniesienia. Można oczywiście zlew przenieść z jednego końca pokoju na drugi, ale rura odpływowa będzie musiała być doprowadzona do miejsca, w którym był on oryginalnie.

Zwracając uwagę na takie szczegóły, można określić, które elementy budynku były w oryginalnym planie architektonicznym, a które zostały poważnie zmienione później. Podobnie z kodem maszynowym. Zwracając uwagę na pewne jego elementy, można dość jednoznacznie ustalić, czy został stworzony na bazie skompilowanego kodu źródłowego, czy też zmodyfikowany później, bez dostępu do źródeł.

Czy Newag podzielił się z kimkolwiek kodem źródłowym oprogramowania Impulsów? Wątpliwe. Producenci sprzętu zwykle zazdrośnie strzegą dostępu do takich zasobów.

Hakerzy z Dragon Sector dostępu do kodu źródłowego nie mieli. W dodatku, w niektórych przypadkach skopiowali kod maszynowy przed wysłaniem pociągów do Newagu, po czym porównali z kodem maszynowym po ich powrocie. Nowe oprogramowanie zawierało zmiany w logice fałszywych „awarii”, wprowadzone w sposób jednoznacznie sugerujący dostęp do kodu źródłowego.

Wszystkie tropy prowadzą do Newagu

Analiza zatrudnionych przez SPS hakerów mocno sugeruje, że zmiany zostały wprowadzone w Newagu. Newag miał też motyw w postaci wycinania konkurencji w zakresie intratnych kontraktów na serwisowanie pociągów. Miał też odpowiednie środki techniczne i okazje — kod źródłowy oraz dostęp do pociągów, gdy przyjeżdżały na przeglądy oraz naprawy sztucznych „awarii”.

Minister cyfryzacji w rządzie Morawieckiego Janusz Cieszyński mówi o „potraktowaniu klientów cyberbronią” przez Newag. Lewica zawiadamia UOKiK, a Adrian Zandberg zadaje właścicielowi grupy Newag proste pytanie: „Zwracam się do Pana Jakubasa o jasną odpowiedź: czy w firmie Newag dochodziło do praktyk, które zostały opisane w mediach?”

Zagraniczni eksperci piszą o „cyfrowym sabotażu” ze strony Newagu wobec konkurencji:

W działaniach Newagu nie chodziło o planowane ograniczenie żywotności produktu, a o rodzaj cyfrowego sabotażu konkurencyjnych firm serwisujących tabor.

Ten cyfrowy sabotaż uderzył jednak nie tylko w przewoźników i podwykonawców, ale również w pasażerów.

„Na pewno znacznie utrudniło to funkcjonowanie operatorów i miało wpływ na realizację przewozów. Mniejsza dostępność pojazdów to pogorszenie warunków podróżowania dla pasażerów, z drugiej strony wyłączenia taboru wpływały na realizację umów o świadczenie usług publicznych z organizatorami przewozów, którzy na przykład naliczali kary przewoźnikom np. za zmniejszone zestawienie lub odwołanie pociągów. Takie systemowe wyłączenia pojazdów np. na 10 dni powodowały, że przy braku rezerwy (a tych wyłączeń było więcej) przewozy realizowano w mniejszych składach lub przy braku ich odwoływano pociąg” — podkreśla G.

Brak cyfrowych zabezpieczeń

Pochylmy się jednak nad argumentem Newagu, że w zasadzie każda osoba z fizycznym dostępem do tych pociągów mogła wprowadzić (potencjalnie niebezpieczne) modyfikacje w oprogramowaniu.

Producent przyznaje, że jego produkty nie są adekwatnie zabezpieczone przed nieuprawnioną modyfikacją oprogramowania? To dość brawurowa linia obrony!

„Jeżeli przeciętna konsola do gier ma lepsze zabezpieczenia przeciwko analizie i zmianie oprogramowania niż kontroler używany w pociągach, to coś jest nie tak” — zauważa Sergiusz „q3k” Bazański, członek zatrudnionego przez SPS zespołu i współautor analizy Impulsów. „Sam kontroler PLC użyty przez Newag oferuje system uwierzytelniania nazwą użytkownika i hasłem. Ale domyślnych danych logowania nie da się zmienić”.

„ Zostaje oparcie się na tym, że PLC jest ukryte za zamkiem i za plombą (chociaż nawet z tą plombą jest problem, bo oficjalny sposób jej użycia blokuje tylko dwa z trzech interfejsów, którymi można zaktualizować oprogramowanie). Naszym zdaniem, tego typu kontrolery PLC powinny przodować standardom cyberbezpieczeństwa, a nie żyć w latach 1980. i udawać, że wystarczy ograniczyć do nich fizyczny dostęp”.

Konieczne jest tu rozróżnienie bezpieczeństwa cyfrowego (ang. „security”), w sensie odporności na złośliwe działania, od tradycyjnego bezpieczeństwa fizycznego, związanego z korzystaniem z danego urządzenia (ang. „safety”).

„Trzeba naprawdę jasno powiedzieć, że bezpieczeństwo fizyczne (”safety„) jest utrzymane na bardzo wysokim poziomie i jest normowane w niezależny sposób od bezpieczeństwa cyfrowego (”security„)” — podkreśla mój rozmówca.

„W pełni popieramy, żeby operujący pociągami mogli mieć stuprocentową pewność, że działają na jakiejś określonej, gwarantowanej wersji oprogramowania” — podkreśla „q3k”. — „Ale żeby to nie była broń obosieczna, która by tylko pozwalała producentom zaszywać tego typu blokady z pewnością, że nikt ich nie odkryje, to same tego typu mechanizmy nie starczą”.

"Kod źródłowy takiego wsadu powinien być tworzony w najwyższych standardach jakości inżynierii oprogramowania. Powinien podlegać ścisłym zasadom rewizji kodu i kontroli wersji. Powinien być regularnie audytowany przez niezależne, kompetentne firmy. Powinien być budowany w komisyjny, zautomatyzowany sposób, tak żeby można było być pewnym, że dana wersja wsadu w kontrolerze odpowiada danej wersji kodu źródłowego. I wtedy dopiero powinien zostać podpisany cyfrowo i dystrybuowany operatorom.

Ale trzeba też pamiętać, że to problem zasadniczo całego przemysłu, a nie tylko jednej firmy. I to nie tylko kolejowego, ale całej automatyki przemysłowej, która jest wszędzie. — kończy.

Korzyści z kodu źródłowego

Pociągi działające pod kontrolą wolnego oprogramowania, z podpisanym cyfrowo kodem źródłowym, udostępnionym przez producenta ich użytkownikom i firmom serwisowym, jednoznacznie przypisanym do konkretnych wersji oprogramowania uruchomionego na kontrolerze, byłyby z pożytkiem dla wszystkich zainteresowanych.

Producent mógłby udowodnić, że dane oprogramowanie kontrolera faktycznie zostało przez niego stworzone — albo, że zawiera nieautoryzowane modyfikacje. Operator składu mógłby niezależnie zlecić jego audyt i nie martwić się o to, co producent mógł tam umieścić. Firma serwisowa miałaby możliwość naprawy awarii związanych nie tylko z uszkodzeniami mechanicznymi, ale również z błędami oprogramowania. A pasażerowie dostaliby bardziej niezawodne, bezpieczniejsze środki transportu.

Z koniecznością udostępnienia kodu źródłowego takich systemów zgadza się Krzysztof Siewicz. „Przemyślane zakupy pociągów powinny uwzględniać dostęp do kodu, nabycie do niego odpowiednich uprawnień oraz zapewnienie jego utrzymania. A najlepiej, jeżeli byłby on wolnym oprogramowaniem z możliwością wspólnej pracy wszystkich zainteresowanych, bo przecież nie jedna firma robi pociągi, nie jedna nimi jeździ itd”.

Prawo do naprawy

Newag nie byłby oczywiście jedyną firmą, która mogła pokusić się o sztuczne ograniczanie funkcjonalności lub modyfikowanie cech swoich produktów. W 2015 r. amerykańska agencja ochrony środowiska (EPA) udowodniła, że Volkswagen celowo zaprogramował komputery pokładowe niektórych modeli, by ograniczały emisje spalin podczas testów emisji, ale nie na drodze.

Apple z jednej strony ułatwiło fizyczną naprawę iPhone'a 14, ale… cyfrowo blokuje możliwość wymiany części (nawet na inną oryginalną od Apple).

Urządzenia działające pod kontrolą oprogramowania trudno jest naprawiać i analizować bez dostępu do kodu źródłowego. Oprogramowanie (np. w urządzeniach „smart”) często kontrolowane jest przez producenta, nierzadko w sposób, który odbiera nam sprawczość.

Przypadek newagowskich Impulsów jest skrajny i jaskrawy, ale wpisuje się w szerszy trend.

Ten trend odwrócić może sensowna regulacja, przywracająca nam kontrolę nad naszymi narzędziami. Na poziomie produktów konsumenckich Unia Europejska pracuje już nad tzw. prawem do naprawy, które przewiduje między innymi dostęp do dokumentacji produktów, z których korzystamy, i ułatwienia w ich naprawianiu.

Idą też zmiany w kontekście bezpieczeństwa cyfrowego („security”) większych urządzeń. „Na szczęście widzimy powolne ruchy w kierunku lepszych implementacji cyberbezpieczeństwa, np. w przemyśle samochodowym” — mówi Sergiusz „q3k” Bazański. — „Z czasem spodziewamy się, że te rozwiązania dotrą też do transportu kolejowego”.

Oświadczenie trójki ekspertów: „Jesteśmy stuprocentowo pewni naszej analizy”

Zamieszczenie pełne oświadczenie ekspertów, którzy zbadali oprogramowanie pociągów Impuls.

Warszawa, dnia 2023/12/09

Oświadczenie w sprawie systemu blokad w pociągach Newag Impuls

Jesteśmy grupą trzech niezależnych badaczy cyberbezpieczeństwa oraz członkami grupy Dragon Sector.

Na konferencji OhMyH@ck w dniu 2023/12/05 zaprezentowaliśmy wykonaną przez nas analizę procesorów/kontrolerów pociągów Newag Impuls. W kodzie tych procesorów, po jego pobraniu z urządzenia i dokonaniu inżynierii wstecznej odkryliśmy nieudokumentowany kompleksowy system blokad. Analizę rozpoczęliśmy na zlecenie SPS ASO Mieczkowski w maju 2022 roku.

System ten skutecznie unieruchomił pociągi podczas ich serwisu w niezależnych warsztatach świadczących przegląd P2/P3. System ten sprawdzał różne warunki (np. wskazania rejestratora, datę, współrzędne geograficzne z GPS) i gdy któryś warunek został spełniony, blokował pociąg. Zablokowany pociąg nie pokazywał żadnego kodu błędu, prezentował gotowość do jazdy i przy zadaniu polecenia jazdy jedynie zwalniał hamulce (nie uruchamiając przy tym falowników które zasilają silniki pojazdu). W dokumentacji technicznej Impulsów nie ma żadnej wzmianki na temat tego zachowania.

Analizowaliśmy już 29 pojazdów i 24 z nich posiadały mniej lub bardziej zaawansowany system blokad. Warunki powodujące zablokowanie się pojazdu były różne między różnymi pociągami, a czasem nawet zmieniały się pomiędzy wizytami w warsztatach Newag. Wraz z naszymi sukcesami w przywracaniu pociągów do jazdy nowsze wersje oprogramowania w kontrolerach Impulsów zostały pozbawione mechanizmu odblokowywania pociągów (arbitralna sekwencja wciśnięć odpowiednich przycisków w kabinie maszynisty).

Znalezione przez nas warunki na włączenie blokady to między innymi:

  1. Postój pociągu przez 10 dni (w późniejszych wersjach oprogramowania 21 dni) 2. Postój na terenie niezależnych warsztatów na podstawie odczytów z GPS 3. Wymiana części podzespołów systemu (CAN831)

Znaleźliśmy też wersję oprogramowania, która zgłasza awarię sprężarki pomocniczej począwszy od przewidywanego dnia przeglądu P3 pociągu lub po przebiegu powyżej miliona kilometrów.

W przynajmniej jednym z pociągów blokada mogła także być włączona przez urządzenie mostkujące łączność sieciową (UDP) z magistralą CAN w pociągu.

Jesteśmy stuprocentowo pewni naszej analizy. Raporty techniczne przygotowane na jej podstawie zostały przekazane współpracującym z nami warsztatom, przewoźnikom oraz odpowiednim organom i instytucjom. Zabezpieczyliśmy kopie wszystkich znalezionych przez nas wersji oprogramowania ze wszystkich analizowanych przez nas pojazdów. Część tych zabezpieczeń została wykonana komisyjnie wraz z udziałem niezależnych audytorów.

Pragniemy jednocześnie sprostować często powtarzające się nieporozumienia w mediach: 1. Nie ingerowaliśmy w kod kontrolerów w Impulsach – wszystkie pojazdy nadal jeżdżą na oryginalnym, niezmodyfikowanym oprogramowaniu.

  1. Nie ma możliwości zdalnej (np. poprzez GSM/Internet) aktualizacji oprogramowania w Impulsach.

Odpowiadamy na Oświadczenie Newag z dnia 2023/12/06

(kursywą zaznaczone są fragmenty oświadczenia, zwykłą czcionką – odpowiedzi)

Nasze oprogramowanie jest czyste. Nie wprowadzaliśmy, nie wprowadzamy i nie będziemy wprowadzać w oprogramowanie naszych pociągów żadnych rozwiązań, które prowadzą do celowych awarii. To pomówienie ze strony naszej konkurencji, która prowadzi nielegalną kampanię czarnego PR wobec nas – NEWAG stanowczo dementuje zmanipulowane informacje Onetu i jego rozmówców, czyli przedstawicieli grupy hakerów wynajętych przez konkurencyjną firmę – SPS Mieczkowski. Z tym, że serwis dostarczonych uprzednio zestawów generuje zaledwie ok 5 proc. przychodów NEWAG. Stanowi to ułamek biznesu w przeciwieństwie do firmy „SPS Mieczkowski”, której serwis to podstawowy profil działania.

Wyniki przeprowadzonych przez Dragon Sector analiz oprogramowania pociągów Impuls produkcji Newag świadczą jednoznacznie – oprogramowanie to zawierało złośliwy kod symulujący usterki, aktywowany między innymi na podstawie współrzędnych GPS warsztatów naprawczych konkurencyjnych dla Newag.

Zawarte w oświadczeniu Pana Prezesa Konieczka określenie „grupa hakerów”, w potocznym języku może budzić negatywne skojarzenia, lecz przyjmujemy taką terminologię bez urazy i ze zrozumieniem tego określenia jako skrótu myślowego.

Jesteśmy grupą specjalizującą się w cyberbezpieczeństwie i inżynierii wstecznej, a analizy oprogramowania pociągów Impuls produkcji Newag dokonaliśmy na zlecenie kilku podmiotów, zarówno przewoźników, jak i innych warsztatów serwisowych, nie tylko SPS Mieczkowski.

Pomogliśmy 10 operatorom i warsztatom, a analizie poddanych było 29 pojazdów. Sporządziliśmy kilka szczegółowych raportów technicznych z analizy różnych przypadków.

Raporty zawierały dokładną analizę działania pojazdów, szczegółowe wyjaśnienia działania części programów odpowiedzialnych za usterki, oraz objaśnienie zastosowanej przez nas metodologii.

Producent sterowników systemu w każdym czasie umożliwia i umożliwiał dostęp do oprogramowania sterującego pojazdem.

Producent sterownika CPU831, firma Selectron, nie udostępnia narzędzi bezpośrednio pozwalających pobrać kod zainstalowany na sterowniku. Pozwoliła na to dopiero nasza analiza i stworzone przez nas specjalne narzędzia.

W konsekwencji w dowolnym czasie możliwe było wykonanie tzw. reverse engineering oprogramowania sterującego (tj. zhakowanie) poprzez przeniesienie jego kodu dekompilacji, modyfikacji oraz ponowne załadowanie zmienionego oprogramowania sterującego.

Powyższe słowa świadczą o rażącej niekompetencji technicznej autora stwierdzenia. Nie istnieją narzędzia pozwalające na dekompilację kodu wygenerowanego na sterownik Selectron CPU831 w taki sposób, by możliwa była jego ponowna kompilacja. Jedyne istniejące narzędzia pozwalają zrozumieć działanie kodu oraz ewentualnie wprowadzić proste zmiany, ale nie pozwalają na wprowadzenie tak kompleksowego systemu blokad, jaki został przez nas znaleziony.

Nieprawdą jest, że wywoływaliśmy usterki naszych pociągów, by rzekomo przejąć zlecenia na ich naprawę. To oszczerstwo. Firma serwisująca tabor dla Kolei Dolnośląskich nie potrafiła wywiązać się ze zlecenia serwisu pociągów naszej produkcji i aby uniknąć kar umownych stworzyła tą spiskową teorię na potrzeby mediów. Z Onetu dowiedzieliśmy się, że wynajęła hakerów, którzy dla niej mieli stworzyć raport nas obwiniający – mówi Zbigniew Konieczek, prezes NEWAG S.A. – Nie znamy tego dokumentu, nie wiemy, w jaki sposób powstał, jaka jest przyjęta metodologia, na podstawie czego sformułowano jego bezpodstawne względem NEWAG, tezy. Poza gołosłownymi zarzutami nie przedstawiono żadnego dowodu na to, iż to nasza firma celowo zainstalowała wadliwe oprogramowanie. W naszej ocenie prawda może być zupełnie inna – że np. to konkurencja ingerowała w oprogramowanie.

Bezspornym jest, że funkcjonalności opisane przez nas podczas konferencji, a wcześniej w raportach, były obecne w programach zainstalowanych w procesorach sterujących pociągami Impuls. W odpowiedzi na stwierdzenie, że złośliwe fragmenty kodu miałyby być wynikiem działania innych niż Newag podmiotów, możemy stwierdzić, że jest to dość nieudolna, a zarazem karkołomna linia obrony, gdyż funkcjonalności zostały wprowadzone w sposób wskazujący na pełen dostęp do kodu źródłowego programu.

W kilku przypadkach pojazdy były wysłane do Newag w celu naprawy, a my zgraliśmy kod tuż przed wysłaniem do Newag i porównaliśmy z kodem zgranym tuż po powrocie z serwisu w Newag. Po przyjeździe kod wgrany do sterownika zmienił się i w szczególności zawierał istotne zmiany w logice blokady (przykładowo: wydłużono czas postoju, po którym pojazd się miał zablokować z 10 na 21 dni).

Patrząc na to, że kod blokady nie zdaje się być jakkolwiek zamaskowany uważamy, że Newag nie był świadomy, że możliwe jest wykrycie tej ingerencji za pomocą inżynierii wstecznej i możliwości dokładnej analizy funkcjonalności wgranej do sterownika – w szczególności obecności sprawdzania koordynatów geograficznych GPS warsztatów konkurencji.

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. Już w 2022 informowaliśmy o tym także publicznie. Dziwi więc wystąpienie Janusza Cieszyńskiego byłego ministra cyfryzacji, który mówi o trwających śledztwach, wpisując się przy tym w rozpowszechnianie nieprawdziwych i wysoce szkodliwych informacji na temat NEWAG, a nie dodając, że wszczęto je z naszych zawiadomień – dodaje Konieczek.

Także teraz, w związku z podaną publicznie przez Onet i jego rozmówców informacją, że systemy sterowania pociągów NEWAG zostały zhakowane – w trosce o bezpieczeństwo pasażerów złożyliśmy stosowne zawiadomienia do uprawnionych organów.

Hakowanie systemów informatycznych jest złamaniem wielu przepisów prawa i zagrożeniem dla bezpieczeństwa ruchu kolejowego.

Powyższe stwierdzenie, w zaistniałej sytuacji brzmi nie tylko jak banał, ale jak ponury żart. Złamaniem jakich przepisów było działanie Dragon Sector? Odpowiem. Nie wypełniało znamion jakiegokolwiek przestępstwa określonego w rozdziale XXXIII Kodeksu karnego. Żadnego. (Zbigniew Krüger)

Badanie oprogramowania sterowników pojazdów szynowych dokonane przez moich klientów metodą inżynierii wstecznej jest całkowicie legalne, zarówno z punktu widzenia ustawy o prawie autorskim i prawach pokrewnych, jak i z punktu widzenia prawa karnego. Dyrektywa Parlamentu Europejskiego i Rady 2009/24/ WE z 23 kwietnia 2009 r. w sprawie ochrony prawnej programów komputerowych została implementowana w polskiej Ustawie, a dopuszczalność inżynierii wstecznej, jako metody badania funkcjonalności oprogramowania została potwierdzona w sprawie SAS Institute Inc. przeciwko World Programming Ltd., Nie mam wątpliwości, że Dragon Sector działał zgodnie z prawem. (Zbigniew Krüger)

Z drugiej strony należy zadać pytanie, czy umieszczenie w oprogramowaniu pociągów takiego kodu nie wypełnia znamion przestępstwa z art. 254 a Kodeksu karnego (zamach na urządzenie infrastruktury), przestępstwa z art. 269 a (zakłócenie systemu komputerowego), art. 287 k.k. (tzw. oszustwo komputerowe), czy zwykłe oszustwo (art. 286 k.k.) Nie można zapominać także o wątku przetargowym i ewentualnym wypełnieniu znamion przestępstwa utrudniania przetargu. Nadto, działanie takie stanowiło czyn nieuczciwej konkurencji, bezprawny i sprzeczny z dobrymi obyczajami i mogłoby stanowić podstawę roszczeń zarówno konkurentów jak i przewoźników. (Zbigniew Krüger)

Nie wiemy bowiem, kto, jakimi metodami i jakimi kwalifikacjami dysponujący ingerował w oprogramowanie sterujące pociągami. Powiadomiliśmy też o tym Urząd Transportu Kolejowego, aby podjął decyzję o wycofaniu z ruchu zestawów poddanych działaniom nieznanych hakerów. Jednocześnie informujemy, iż podejmiemy kroki prawne w przypadku dalszego pomawiania spółki w oparciu o „rewelacje” hakerów działających na zlecenie naszej konkurencji. Wystąpimy również ze stosownymi pozwami wobec „rzekomych hackerów” i – jak podają media – ich zleceniodawców, czyli firmę „SPS Mieczkowski”.

Moi klienci są przygotowani na takie roszczenia. Zarówno ich wypowiedzi dla prasy, jak i wystąpienie podczas konferencji zawierały tezy prawdziwe, rzetelne i udokumentowane. Mają dowody na wszelkie swoje twierdzenia. Nadto działali w słusznym interesie społecznym i nie mają podstaw do jakichkolwiek obaw w zakresie ewentualnych roszczeń NEWAG. (Zbigniew Krüger)

Autorzy:

Michał Kowalczyk

Jakub Stępniewicz

Sergiusz Bazański

Pełnomocnik:

Zbigniew Krüger,

Krüger & Partnerzy,

Cykl „SOBOTA PRAWDĘ CI POWIE” to propozycja OKO.press na pierwszy dzień weekendu. Znajdziecie tu fact-checkingi (z OKO-wym fałszometrem) zarówno z polityki polskiej, jak i ze świata, bo nie tylko u nas politycy i polityczki kłamią, kręcą, konfabulują. Cofniemy się też w przeszłość, bo kłamstwo towarzyszyło całym dziejom. Rozbrajamy mity i popularne złudzenia krążące po sieci i ludzkich umysłach. I piszemy o błędach poznawczych, które sprawiają, że jesteśmy bezbronni wobec kłamstw. Tylko czy naprawdę jesteśmy? Nad tym też się zastanowimy.

;

Udostępnij:

Michał rysiek Woźniak

(https://rys.io/) jest specjalistą ds. bezpieczeństwa informacji w rejestrze domen IS. 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, a wcześniej zarządzał Fundacją Wolnego i Otwartego Oprogramowania. 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