Stworzyli nowy cyberatak, żeby powstrzymać cyberataki. NosyNeighbor ominął zabezpieczenia

Cyberbezpieczeństwo przez lata kojarzyło mi się przede wszystkim z pilnowaniem drzwi. Tyle że komputery odpowiedzialne za nasze bezpieczeństwo nie są już prostymi maszynami, które wykonują jedno zadanie. Współczesny samochód, samolot czy urządzenie medyczne przypomina raczej cyfrowy wieżowiec pełen osobnych pomieszczeń, podwykonawców i systemów, które nieustannie przekazują sobie informacje. Problem zaczyna się wtedy, gdy potencjalny napastnik wcale nie musi otwierać zamkniętych drzwi, bo wystarczą mu same obserwacje. Właśnie na tym skupili się naukowcy.
fot.: BleepingComputer

fot.: BleepingComputer

Badacze z Washington State University, University of Colorado Colorado Springs oraz Metro State University opracowali NosyNeighbor jako międzysektorowy atak bocznym kanałem, który jest wymierzony w hierarchiczne systemy czasu rzeczywistego. Mowa o komputerach, w których programy są podzielone na odseparowane partycje, a każda odpowiada za określony zestaw zadań i otrzymuje własny przydział czasu procesora. Tego typu architektury spotyka się m.in. w motoryzacji, awionice oraz urządzeniach medycznych.

NosyNeighbor nie łamie programu. Zamiast tego podsłuchuje

Wspomniany podział ma sens. Moduł sterowania lotem nie powinien bowiem działać na takich samych zasadach jak system multimedialny dla pasażerów, a elektroniczne hamulce nie mogą czekać na zakończenie aktualizacji map nawigacji. Krytyczne zadania trafiają więc do zaufanych partycji o wysokim priorytecie, podczas gdy mniej istotne oprogramowanie działa gdzie indziej. W teorii uzyskujemy dzięki temu cyfrowe ściany przeciwpożarowe. Awaria lub przejęcie jednego modułu nie powinny automatycznie oznaczać dostępu do pozostałych.

Czytaj też: AI właśnie przekroczyło kolejną granicę cyberataków. Wykryto pierwszy exploit zero-day stworzony przez algorytmy

NosyNeighbor pokazuje jednak, że odseparowanie kodu nie zawsze odcina wszystkie informacje. Poszczególne partycje nadal korzystają ze wspólnego procesora, zegara i innych zasobów sprzętowych. Jeśli jedno zadanie zostaje opóźnione albo wywłaszczone przez ważniejszy proces, to zawsze pozostawia po sobie ślad czasowy. Złośliwe oprogramowanie nie musi zaś wiedzieć, co dokładnie robi ofiara. Wystarczy, że zauważy moment, w którym samo nie mogło pracować.

Podobny sposób myślenia pojawiał się już przy ataku SATAn wykorzystującym przewody SATA jako anteny. Tam informacja wydostawała się z pozornie odizolowanego komputera przez emisję elektromagnetyczną. NosyNeighbor korzysta z innego sygnału, ale lekcja pozostaje podobna i sprowadza się do tego, że dane nie zawsze opuszczają system w formie pliku, pakietu sieciowego czy komunikatu. Czasem zdradza je sama fizyczna lub czasowa natura pracy sprzętu.

Wścibski sąsiad stopniowo uczy się planu dnia

Oczywiście sama obserwacja pojedynczego opóźnienia nie wystarczyłaby do przeprowadzenia szczególnie skutecznego ataku. NosyNeighbor jest ciekawy właśnie dlatego, że nie zachowuje się pasywnie, bo w przygotowanym modelu jeden złośliwy proces pełni funkcję głównego obserwatora, a pozostałe przejęte zadania działają jako informatorzy rozmieszczeni w niezaufanych partycjach. Informatorzy raportują więc okresy, w których mogli wykonywać swoje zadania.

Na tej podstawie NosyNeighbor buduje wstępną oś czasu i zaznacza obszary znane oraz takie, w których mogła działać ofiara z zaufanej partycji. Następnie zmienia parametry złośliwych procesów, m.in. ich czas wykonania oraz moment uruchomienia, aby w kolejnych cyklach wypełniały inne fragmenty harmonogramu. Z każdą iteracją liczba niewiadomych maleje, a przedział, w którym prawdopodobnie pracuje krytyczne zadanie, staje się coraz dokładniejszy.

Nawiązując tutaj do samej nazwy ataku, można porównać ten mechanizm do sprawdzania, kiedy sąsiad korzysta z łazienki, poprzez odkręcanie kranu o różnych porach i obserwowanie zmian ciśnienia. Nie widzimy człowieka, nie wchodzimy do jego mieszkania i nie znamy jego planu dnia. Po odpowiednio długim eksperymencie zaczynamy jednak dostrzegać regularność.

W końcowym etapie złośliwe zadania mogą przejść z obserwowania do właściwego ataku. Znajomość okna wykonania krytycznego procesu pozwala precyzyjnie zaplanować odmowę usługi, wstrzyknięcie fałszywych danych albo inną operację zależną od czasu. W systemie biurowym kilkumilisekundowy błąd może być niezauważalny. W układzie sterującym pojazdem, samolotem albo urządzeniem medycznym te same milisekundy mogą oddzielać poprawną reakcję od jej braku.

Wynik brzmi groźnie, ale nie ma co panikować

W eksperymentach NosyNeighbor osiągnął około 73 procent precyzji przy typowym obciążeniu systemu, określonym w badaniu na poziomie 60 procent. Oznacza to, że mniej więcej 73 procent wskazanych przez atak przedziałów rzeczywiście pokrywało się z wykonaniem zadania ofiary. W modelu wykorzystującym zaledwie dwa złośliwe zadania precyzja nadal wynosiła 64 procent. Nie oznacza to jednak, że NosyNeighbor potrafił przewidzieć każde uruchomienie krytycznego procesu. Odsetek wszystkich prawdziwych okien wykonania, które udało się odnaleźć, wynosiła około 35 procent. Atak często pomijał więc okazje, ale gdy już wskazywał konkretny moment, robił to stosunkowo trafnie.

Czytaj też: Wojna się zmienia, czołgi też muszą. Europa tworzy technologię odporną na cyberataki i wojnę hybrydową

W zwykłym systemie informatycznym niski recall mógłby podważyć praktyczną przydatność narzędzia. Przy urządzeniu krytycznym sprawa wygląda inaczej. Napastnik nie musi zakłócić każdego cyklu hamowania, stymulacji serca czy korekty lotu. W niektórych scenariuszach wystarczy mu jedna dobrze wybrana okazja, ale nie robiłbym jednak z NosyNeighbor gotowego cybernetycznego pocisku na samoloty i rozruszniki serca. Badacze oceniali technikę przede wszystkim na syntetycznych zestawach zadań w symulatorze zdarzeń dyskretnych, a następnie przygotowali proof of concept z wykorzystaniem środowiska Litmus-RT i harmonogramu P-RES. Nie przejęli rzeczywistego pasażerskiego odrzutowca, autonomicznego samochodu ani rzeczywistego urządzenia medycznego. Publikacja pokazuje nową powierzchnię ataku i słabość określonych zabezpieczeń, a nie działający zestaw narzędzi do natychmiastowego włamywania się do dowolnego systemu.

Co równie ważne, NosyNeighbor nie pojawia się w urządzeniu magicznie. Model zagrożenia zakłada, że napastnik zdobył już dostęp do części aplikacji w niezaufanych partycjach, potrafi kontrolować parametry ich wykonania oraz koordynować komunikację między nimi. Pierwsze włamanie musi więc nastąpić inną drogą i dopiero później NosyNeighbor pomaga podejrzeć rytm chronionej części systemu. Jak z kolei się przed tym zabezpieczyć? Na tę chwilę nie wiadomo, bo przewidywalność jest fundamentem bezpieczeństwa systemu czasu rzeczywistego, ale równocześnie staje się źródłem informacji dla atakującego. Próba ukrycia rytmu przez losowość również ma ograniczenia, bo hamulec, sterownik silnika czy układ nawigacyjny nie może otrzymać komunikatu w stylu: “przepraszamy, tym razem zabrakło czasu procesora, bo broniliśmy się przed hakerem”.

Cyfrowe hamulce pokazują prawdziwą stawkę

Znaczenie NosyNeighbor będzie rosło razem z liczbą urządzeń, które przestają opierać się na bezpośredniej mechanice, a zaczynają ufać oprogramowaniu. Dobrym przykładem są elektroniczne hamulce Brembo Sensify, w których ruch pedału staje się sygnałem dla sterowników, a siła hamowania na poszczególnych kołach zależy od decyzji elektroniki i siłowników. Taka architektura może zapewnić większą precyzję, lepszą współpracę z rekuperacją oraz systemami autonomicznymi, ale jednocześnie przesuwa ciężar bezpieczeństwa z hydrauliki na zasilanie, czujniki, komunikację i kod.

Czytaj też: Strzeżcie się SATAn! Nowy cyberatak wykorzystuje przewody SATA i zagraża nawet odseparowanym sprzętom

Podobnie wygląda to w lotnictwie. W jednym systemie mogą współistnieć moduły sterowania silnikiem, lotem, nawigacją oraz multimediami, opracowane przez różnych dostawców i następnie połączone w jeden produkt. Partycjonowanie ma zapobiec temu, aby problem z mniej istotnym elementem przeniósł się na ten krytyczny. NosyNeighbor sugeruje jednak, że wspólny harmonogram i sprzęt nadal mogą utworzyć pośredni kanał komunikacji między odseparowanymi światami.

Przy analizie blackoutu w Hiszpanii i Portugalii podobny problem dotyczył energetyki. Poszczególne elementy mogły funkcjonować, a mimo to zależności między napięciem, zabezpieczeniami i reakcjami systemu doprowadziły do kaskady zdarzeń. NosyNeighbor dotyka innego obszaru, ale przypomina o tej samej zasadzie, bo tym, że w rozbudowanym systemie krytycznym nie wystarczy zabezpieczyć każdy moduł osobno. Trzeba jeszcze rozumieć, jakie informacje powstają podczas ich wspólnej pracy.

Źródła: ACM, Washington State University

Mateusz ŁysońM
Napisane przez

Mateusz Łysoń

RedaktorZwiązany z mediami od 2016 roku. Twórca gier, autor tekstów przeróżnej maści, które można liczyć w dziesiątkach tysięcy oraz książki Powrót do Korzeni.