Raport pożytecznych hakerów

Po analizie za pomocą technicznej inżynierii wstecznej wykonanej przez profesjonalistów cyberbezpieczeństwa działających w grupie Dragon Sector, ustalono, że podmiot mający dostęp do kodu źródłowego oprogramowania sterującego pociągiem i możliwość ich instalacji w pociągach, wdrożył system unieruchamiający pojazdy. Jego aktywacja uzależniona była od szeregu warunków. Blokada programowa następowała w przypadku, gdy pojazd przez pewien czas stał nieruchomo, np. w lokalizacji konkurencyjnych zakładów naprawczych. Sytuacja znana jest z prezentacji na konferencji Oh My H@ck oraz relacji medialnych.

Pożyteczna grupa hakerów (w pozytywnym znaczeniu tego słowa) działała metodycznie, korzystając z pomocy prawnej oraz w części przypadków z zewnętrznego zespołu audytorów, co uniemożliwia proste kwestionowanie ustaleń, a pomaga w argumentacji na potrzeby ewentualnych procesów prawnych lub regulacyjnych. Opracowanie to bowiem ma wartość dowodową, nawet o standardach kryminalistyki śledczej. Zabezpieczono wszelkie możliwe wersje oprogramowania, zgrane nieinwazyjnie (bez ingerencji lub modyfikacji systemów sterowania) z urządzenia w pociągach, sterownika Selectron CPU-831TG. Przyjęto wstępne założenie, że za blokady musi odpowiadać kod sterownika programowany przez producenta, lub podwykonawców. Taki binarny obraz można zgrać bez żadnej modyfikacji. W taki właśnie sposób analizowano zawartość pamięci sterowników przed i po wysłaniu jednostek trakcyjnych do naprawy w zakładach Newag. Raporty udostępniono klientom, jak i służbom państwowym. Te wiedzą o sprawie od dawna. Jednak niektóre z poinformowanych struktur państwowych takich jak UOKiK, z niezrozumiałych powodów najwyraźniej zaniechały podejmowania działań (do momentu publikacji UOKiK nie udzielił odpowiedzi na pytania w tej sprawie) lub też milczą na ten temat.

Reklama

W obliczu takiego skandalu opinia publiczna domaga się działań.

Pociągi zatrzymane celowo

Teraz przyszedł czas na więcej szczegółów. Sześć raportów z prac przekazali mi specjaliści z Dragon Sector. Szczegóły techniczne konsultowałem z trójką z nich - Michałem Kowalczykiem, Jakubem Stępniewiczem i Sergiuszem Bazańskim.

Prace „prowadzono celem wyjaśnienia usterki uniemożliwiającej pojazdom wyjazd z siedziby Zleceniodawcy”. Wszelkie zarzuty o rzekome kampanie czarnego PR-u można włożyć między bajki. To raporty dla klientów, spółek kolejowych i zakładów naprawczych; ewentualne ujawnienie nazw zostawiam tym podmiotom. Mogę jednak bez wątpliwości potwierdzić wszystkie informacje techniczne wysuwane w przestrzeni publicznej.

Według raportów pociągi unieruchamiane były celowo, za pomocą specjalnie stworzonego oprogramowania. Blokady następowały w wyniku spełnienia określonych kryteriów. Programowo blokowano instrukcje podawania mocy do falownika MEDCOM FT500-3k jednostki trakcyjnej. Falowniki to elementy dostarczające prąd do silników. Bez mocy pociąg nie jedzie.

W raporcie przedstawiany jest pełen zapis logów komunikacji między urządzeniami w pociągach. To standardowa analiza pomagająca w ustaleniu tego jak zachowuje się system w różnych sytuacjach. W sytuacji normalnej (bez blokady) polecenia uruchomienia falownika były poprawnie nadawane. Zaobserwowane instrukcje uległy zmianie w przypadku aktywnej blokady pojazdu. W zapisie dokładnie widać polecenia zwalniania hamulców i skutecznego zadawania mocy do czterech falowników (sekwencja bajtów 0f 09 09 09 09, gdzie 0f oznacza „ruszenie”, a kolejne bajty 09 to moc do zadania). W przypadku blokady brak jest polecenia zadawania mocy (bajty 0f 00 00 00 00; zerowa moc do falownika). Dla każdego analityka to oczywista różnica. Wdrożono też kod uniemożliwiający wymianę podzespołów, np. zastąpienie sprzętu takim z innego pojazdu (z niezablokowanym oprogramowaniem). To kolejne utrudnienie „naprawy”.

Analiza wsteczna to technika odtwarzania zasad działania oprogramowania (kodu źródłowego, algorytmów) z ich wersji binarnych i skompilowanych. W raportach jest zawarty także zrekonstruowany kod źródłowy. Jego odtworzenie musiało być żmudną pracą. Logika nie pozostawia wątpliwości co do włączania blokad po spełnieniu kryteriów. Blokadę nakładało oprogramowanie celowo w ten sposób zaprojektowane i wgrane do pociągów. Odkryto różne kryteria uruchamiania blokady. To np. nieużywanie pojazdów przez określoną liczbę dni (w zależności od oprogramowania: 10, 20, 21 dni), nieosiągnięcie prędkości 60km/h przez co najmniej trzy minuty w zadanym okresie (jej osiągnięcie resetowało licznik), postój w określonych siedmiu lokalizacjach (wskazujących na warsztaty naprawcze różnych firm, np. PESA Bydgoszcz, SPS). Analitycy w raporcie podejrzewają, że ktoś, kto wdrożył ten kod, mógł zdalnie monitorować stan blokad.

W obliczu ustaleń jednemu z klientów autorzy opracowania zaleciliby „w celu zapobieżenia aktywacji blokady przynajmniej raz na 20 dni uzyskać pociągiem przez przynajmniej trzy minuty prędkość 60 km/h. Dodatkowo pociąg musi być pod zasilaniem trakcyjnym podczas w.w. trzech minut”.

W jednym przypadku system zgłaszał awarię sprężarki pomocniczej, co unieruchamiało odbierak prądu w sytuacji, kiedy pociąg dłużej pozostawał nieużywany. Sprężarka w pociągu to ważny element, w zależności od modelu zależy od niej działanie podzespołów takich jak hamulce, odbieraki prądu, czasem nawet drzwi. Jak informuje mnie Jakub Stępniewicz z Dragon Sector, awaria sprężarki pomocniczej jest ciekawym pomysłem: nie zablokuje całkowicie pociągu, ale uniemożliwi jego ponowne uruchomienie po dłuższym postoju (na przykład w warsztacie). Logika blokady sprężarki miała się uruchamiać po przejechaniu 1 mln km. Szczęśliwie, wciąż była możliwość, by po opuszczeniu pantografu w trakcie jazdy dało się go podnieść i jechać dalej. Chyba że z jakichś powodów (przypadkowa awaria) nie zadziałałaby też sprężarka główna i system pomocniczy. Wtedy mogłoby dojść do zatrzymania się pociągu w trasie. Ryzyko takie było niewielkie, ale istniejące, bo naruszono system nadmiarowego zabezpieczenia. Czy potencjalnie zwiększone ryzyko nieplanowanego zatrzymania w trasie pociągu z pasażerami to jednak nie jest sprawa, która powinna zainteresować UTK? Bezpieczeństwo pasażerów powinno być absolutnie kluczowe.

W innym przypadku zachodziło też podejrzenie możliwości zdalnej blokady pojazdu za pośrednictwem sieci komórkowej GSM. Czy także w trakcie poruszania się pojazdu?

Niektóre ograniczenia można było przez jakiś czas zdejmować za pomocą specjalnych kombinacji przycisków w kabinie maszynisty. Wpisywano kombinację, by wywołać funkcje takie jak odblokowanie blokady po postoju, trwała dezaktywacja blokady po postoju, ponowna aktywacja blokady. Kombinacje te nie były nigdzie udokumentowane, a po aktualizacji oprogramowania w warsztacie producenta usunięto je.

Błędy w kodach i... komunikacji

To wszystko rodzi wiele pytań o konkurencję na rynku napraw pojazdów. Ale także o bezpieczeństwo w ruchu kolejowym, a także o cyberbezpieczeństwo. Swoista bomba logiczna po uruchomieniu wywoływała blokadę dostępności takiego systemu, coś, co niewątpliwie mogli odczuć pasażerowie. Zwłaszcza bezpieczeństwo pasażerów to poważna sprawa. Wbudowywano funkcje niewątpliwie zbędne w takiej jednostce trakcyjnej. Analitycy ustalili, że nawet w tych funkcjach były błędy programistyczne. Przykładowo, blokady włączane w odpowiedzi na datę, powodując blokadę pojazdu każdego roku między 21 i 31 listopada i grudnia, a najpewniej miała się uruchamiać od 21 listopada 2021 r. To rodzi pytania o jakość kodu programistycznego sterującego jednostką trakcyjną. Skoro błędy były w tak niewielkim fragmencie kodu, to co z tysiącami innych. UTK zasłaniania się brakiem uprawnień. Kompetencje do zapewniania bezpieczeństwa w kolejnictwie niewątpliwie jednak posiada.

Komentarze Newagu

Niezrozumiałe są wypowiedzi wypływające z firmy Newag, wymierzone w kompetencje specjalistów Dragon Sector. Nie brzmią wiarygodnie, gdy po jednej stronie mamy światowej klasy specjalistów o uznanej reputacji, spokojnie przedstawiających ustalenia - a po drugiej pracowników komunikacji prasowej wysuwających dziwne zarzuty, czasem wręcz nielogiczne i nieścisłe technicznie.

W pewnym sensie jest to kwestia PR cyberbezpieczeństwa. Firma nie popisała się uzdolnieniami do komunikacji publicznej w sytuacji kryzysu komunikacyjnego. Kwestionowanie kompetencji i wysuwanie jakichś bliżej niezdefiniowanych zarzutów o rzekomym naruszeniu prawa - to w świecie często popełniane przez inne firmy błędy w takich sytuacjach. Nigdy nie doprowadziły one do pożądanych skutków. Wręcz przeciwnie. Tak będzie i teraz, bo wyniki bronią się same.

Ustalenia techniczne są jasne. Potencjalnych kryteriów prawnych można wyobrazić sobie wiele: ochrona konkurencji, bezpieczeństwo transportu kolejowego, paraliż systemów informatycznych, oszustwo komputerowe i zapewne wiele innych, jak np. kwestia przetargów publicznych. Ostatecznie to sprawa honorowa dla polskich urzędów i organów, gdyż wydaje się, że wystarczy zastosować istniejące prawo. Gdzie więc leży problem?

Autor: Dr Łukasz Olejnik, niezależny badacz i konsultant cyberbezpieczeństwa, fellow Genewskiej Akademii Międzynarodowego Prawa Humanitarnego