Tak jak zapowiedzieliśmy, dziś dzielimy się drugą częścią artykułu o bezpieczeństwie inteligentnych samochodów. Jeżeli jeszcze nie przeczytałeś pierwszej części – koniecznie zrób to! Ten artykuł jest o tym, jak samochód obserwuje ten świat i jak się w nim odnajduje. Część ta jest krótkim wstępem do serii artykułów o sieciach neuronowych.
Kto jest kierowcą „Tesli”?
Ilekroć modna „Tesla” ma wypadek, wszyscy głośno dywagują na temat jej autopilota lub baterii, ale zwracają jednocześnie znacznie mniej uwagi na to, co kierowca zrobił przed wypadkiem. W niektórych realnych sytuacjach można było usłyszeć od kierowcy, że „jadł kanapkę”, „sprawdzał repertuar w kinie” lub po prostu „w ciągu godziny jazdy mocno trzymał kierownicę nie dłużej, niż przez kilka minut”. Niefortunna historia powtarza się w kółko – jadąc na skrajnie lewym pasie, kierowca przed Teslą widzi jakąś przeszkodę, zjeżdża na prawy pas i nagle Tesla zaczyna przyspieszać, myśląc, że mu ustępuje. Koniec można się łatwo domyśleć.
Dzieje się tak ze względu na cechy szczególne urządzenia oraz konfigurację czujników Tesli. Nie korzystają z lidar (lokalizator laserowy) oraz wstępnie załadowanej mapy obszaru. Elon Musk twierdzi, że pierwsza opcja jest zbyt droga, a druga nie zapewnia należytej elastyczności.
Zamiast tego Tesla bazuje na odczytach radaru i kamery, z których sieć neuronowa przetwarza dane. Pamiętać należy, że radar nie jest zbyt dobry w rozpoznawaniu nieruchomych obiektów, a w sytuacji, gdy on oraz kamery dają przeciwne wyniki zdarza się, że mechanizm rozwiązywania sprzeczności wybiera niewłaściwie. A kierowca nie zawsze jest w stanie błyskawicznie się włączyć i uratować sytuację.
Nie taki bezpieczny lifehack 🙂
Niektórzy eksperci twierdzą, że sprawa dotyczy nie tylko niuansów technicznych, ale także faktu, że Elon Musk reklamuje swoje dzieło jako pełnowymiarowy autopilot.
W instrukcji do Tesli można znaleźć informację, że kierowca powinien być zawsze gotowy do kierowania pojazdem, ale w reklamach sam Musk zdecydowanie podważa tę zasadę, stanowiąc tym samym zły i niebezpieczny przykład dla kierowców.
W rezultacie wielu klientów Tesli twierdzi, że ma już bezzałogowy samochód z własnym napędem, w którym z jakiegoś powodu zainstalowano irytujący i zbędny system, który wymaga dotykania kierownicy. Próbują go oszukać, poprzez przyklejenie butelki wody lub pomarańczy taśmą do kierownicy. Bardzo osobliwa forma ominięcia systemu bezpieczeństwa.
Czujniki, czyli jak roboty widzą świat
Powyższy przykład wyraźnie pokazuje, że poziom „inteligencji” auta zależy po pierwsze od ilości i jakości zainstalowanych na nim czujników, a po drugie od konstrukcji systemu przetwarzającego z nich sygnały. Ważne jest to, aby pamiętać, że każdy czujnik to potencjalny kanał do wprowadzania danych, który może być nienależycie zabezpieczony.
I tu znowu pojawia się ten sam problem – podczas projektowania zwraca się szczególną uwagę głównie na złożone przypadki codziennego użytku, a nie na przeciwdziałanie ukierunkowanym ingerencjom i atakom. W związku z tym bardzo często algorytmy rozwiązywania konfliktów wynikających ze sprzecznych sygnałów nie przewidują tego, że można je oszukać. Niczym w starej dobrej książce science fiction – roboty są inteligentne, ale też ufne.
Jeszcze w 2013 roku haker Zoz Brooks wystąpił z wykładem (PDF) na konferencji DEF CON 21, w którym szczegółowo omówił perspektywy ataków na pojazdy autonomiczne, takie jak samochody bezzałogowe, drony, a nawet roboty okrętów podwodnych.
Przeanalizował różne typy czujników i kanałów sterowania takimi urządzeniami, wyodrębniając mocne i słabe strony każdego z nich. Wskazał dwa sposoby ataku, wspólne dla wszystkich rodzajów czujników: zagłuszanie (jamming) i zniekształcenie sygnału (spoofing).Raport ten jest pełen niezwykle interesujących szczegółów. Wspomina instrukcję bezpieczeństwa napisaną w języku arabskim, w której zawarte są instrukcje oszukania lidarów przy pomocy reflektorów. Wspomniał o możliwości oszukiwania licznika prędkości kół… poprzez ich wymianę. Inny rozmiar koła niż fabryczny będzie zaburzał wynik pokazywany przez licznik. Podjęto również kwestię słabej decyzyjności z użyciem map – zarówno wcześniej zainstalowanych, jak i aktualizowanych w czasie rzeczywistym.
GPS: Halo! Gdzie ja jestem!?
Brooks w swoim raporcie porusza również temat zniekształceń sygnału GPS. W tym czasie był to jeszcze mało przestudiowany, ale już gorący temat – w końcu podobno dzięki oszukaniu GPS irańskiemu wojskowemu udało się przechwycić tajnego amerykańskiego drona RQ-170 Sentinel.
W dzisiejszych czasach ta technologia jest używana praktycznie wszędzie. W 2017 r. dwadzieścia statków na Morzu Czarnym w pobliżu Gelendżyka zaobserwowało odchylenie w odczytach GPS o ponad 25 mil morskich. Na takiej samej zasadzie kierowcy zauważają czasami dziwne wskazania systemów nawigacyjnych, gdy w pobliżu przejeżdża pociąg z państwowymi dygnitarzami najwyższego szczebla. Jednak ze względu na szybką obniżkę cen technologii SDR (Software Defined Radio, sterowane komputerowo radio i nadajnik radiowy) takie rozwiązania stały się dostępne również dla osób prywatnych.
Niedawno Regulus, firma specjalizująca się w ochronie nawigacji satelitarnej przed spoofingiem pokazała, że kilka urządzeń i budżet w wysokości 600 USD wystarczą, aby Tesla Model 3 trafił nie tam, gdzie chce kierowca. Fałszywy sygnał wprowadza autopilota w błąd, który myśli, że podąża po trasie i nadszedł czas, aby zjechać z autostrady, często prowadząc samochód na pobocze lub na przeciwległy pas. Pamiętać należy, że każde urządzenie GPS jest narażone na tego typu ataki – drony, nieuważni kierowcy, którzy nazbyt ufają nawigatorom, a nawet gra Pokemon GO.
O czym myśli autopilot
Ale to wszystko mowa o czujnikach. W ostatecznym rozrachunku wszystko jest zrozumiałe – głową muru nie przebijesz, zaś przy mglistej lub zakurzonej pogodzie kamery i lidar wykazują gorszą widoczność, więc można po prostu przykleić je taśmą lub umieścić pod „światłem” za pomocą specjalnego emitera tak, jak to zrobili badacze z laboratorium Qihoo 360.
A co z tą częścią inteligentnego samochodu, która wykonuje ich komendy? Czy można ją oszukać? Na to pytanie bardziej szczegółowo niż ktokolwiek wcześniej odpowiedzieli chińscy hakerzy z laboratorium Keen Security Lab, sponsorowanego przez megakorporację Tencent. Można założyć, że bardzo dokładnie przestudiowali wszystkie powyższe prace, zaś w 2016 r. postanowili spróbować na tej płaszczyźnie swoich sił. W przeciwieństwie do Charliego Millera i Chrisa Valaska, którzy byli zainteresowani różnymi producentami i modelami samochodów, ta grupa od samego początku koncentrowała się wyłącznie na badaniach pojazdów elektrycznych Tesli.
Ciekawym spostrzeżeniem jest fakt, że Tencent jest zarówno udziałowcem Tesli, jak i sponsorem Keen Security Lab, zaś same laboratorium pracuje również nad projektami niezwiązanymi z Teslą.
Ich raporty mają bardzo surową strukturę i pełne są szczegółów technicznych, ale jeśli jednak się w nie wczytać, staje się jasne, że najbardziej interesującą rzeczą w ich badaniach nie są zewnętrzne przejawy „hakowania”, ale zasięg i jakość wykonanej pracy (a także silne poczucie déjà vu – wiele słabych punktów, które wykorzystali sprawiło, że szybko kojarzą się prace Charliego Millera i Chrisa Valaska, w których zawarte instrukcje są nadal aktualne).
Członkowie zespołu Keen Security Lab okazali się prawdziwymi mistrzami w zakresie reverse engineering. Przeszli długą drogę po to, aby pokazać otwieranie „na rozkaz” bagażnika Tesli w 2016 roku lub składanie lusterek, zaś użycie „fałszywego” punktu dostępu Wi-Fi oraz luk w przeglądarce internetowej w systemie rozrywki to dopiero początek.
Co najważniejsze, po przebiciu się przez tę „dziurę” do systemu, ostatecznie przeprogramowali specjalny komponent Gateway (most między różnymi częściami sieci pokładowej) i w ten sposób uzyskali dostęp do magistrali CAN. Następnie przeanalizowali różne cyberfizyczne komponenty maszyny i w konsekwencji w 2018 r. opublikowali nowy raport na temat tego, w jaki sposób udało im się uzyskać dostęp roota do autopilota (omijając system ochronny poprawiony po tym, jak opublikowano poprzedni raport). Następnym krokiem było wnikliwe zapoznanie się z ich i konstrukcją — i o tym jest ich ostatnia publikacja z 2019 roku (PDF).
Dzięki dostępowi „root” mogli pracować z autopilotem w trybie debugowania po to,
aby zbadać, w jaki sposób przetwarzane są dane z kamer i innych czujników. W
szczególności odkryli, że kilka zadań naraz, takie jak śledzenie obiektów, tworzenie
mapy sytuacji, a nawet wykrywanie deszczu na końcowym etapie są przetwarzane
przez pojedynczą sieć neuronową.
Neurosieć nie lubi hałasu
Następne osiągnięcia badaczy Keen Security Lab nie wyglądają nazbyt spektakularnie (jak np. samochód włącza wycieraczki, gdy nie ma deszczu), ale w gruncie rzeczy jest to coś z pogranicza sztuki i science fiction. Aby lepiej zrozumieć działanie autopilota jako całości, przetrenowali część sieci neuronowej odpowiedzialną za rozpoznanie, czy pada deszcz i uruchamiającą polecenie włączenia wycieraczek. I osiągnęli wyniki!
Po zbadaniu obrazów, które wykorzystuje sieć neuronowa wycieraczek zastosowali wobec niej metodę „wrogich wzorów”. Na powierzchni zdjęcia aparatu wprowadzono drobne zakłócenia obrazu, które były ledwie zauważalne dla ludzkiego oka. Przesyłając to zdjęcie do wejścia do sieci neuronowej badacze byli w stanie zmusić sieć neuronową do oszukania w celu podjęcia decyzji, że prawdopodobieństwo deszczu jest wysoka i należy włączyć wycieraczki. I tego wszystkiego dokonali nie przy użyciu samodzielnie zaprogramowanej sieci neuronowej, ale z produktem komercyjnym, w którego rozwoju nie uczestniczyli.
Niedługo opublikujemy kolejny artykuł, w którym opowiemy i pokażemy na konkretnym przykładzie jak przeprowadzić taki atak. Śledź nas i bądź na biężąco!
Następnym etapem było utwierdzenie się przez pracowników Keen Security w fakcie, że aby wywołać efekt wystarczyło zastosować szum tylko w części pola widzenia kamery, a następnie przeniesienie tego efektu do prawdziwego świata. Pokazując w polu widzenia kamer samochodu obraz z zakłóceniami na ekranie telewizora, zmusili wycieraczki do uruchomienia, a następnie przetestowali te same zasady już przy rozpoznawaniu znaków drogowych.
Wyjaśnione zostało, że naklejki na drodze są w stanie zbić z kursu autopilot, gdyż nie „zauważy” on linii na drodze, które będą widoczne na jezdni gołym okiem (naukowcy zauważają, że sieć neuronowa autopilota została w tym zakresie przeszkolona na przykładach z częściowo wymazanymi lub częściowo zakrytymi oznaczeniami). Naukowcy zdecydowali się wtedy na przeprowadzenie próby o odwrotnym charakterze – za pomocą innych, znacznie mniejszych naklejek byli w stanie zmusić sieć neuronową tak, aby ta „zobaczyła” linie na drodze tam, gdzie ich nie było. Na przykład na skrzyżowaniu, gdzie takie nieistniejące oznakowanie może wyprowadzić samochód na nadjeżdżający pas ruchu.
Naukowcy potwierdzają, że chociaż wszystkie te mechanizmy wyjaśnili na samochodzie, do którego mieli nieograniczony dostęp, to te same sztuczki powinny zadziałać w samochodzie, którego program nie uległ zmianie. Po takim zhakowaniu sieci neuronowej sterowanie autem przy użyciu gamepada nie jest tak imponujące – ale dokonali tego również chińscy badacze za pomocą zhakowanej Tesli.
Ludzkie, arcyludzkie…ograniczenia technologiczne
Zasadniczo rzecz ujmując, wszystkie powyższe informacje są już wystarczające do sformułowania pewnych wniosków. Ale dla pełnego obrazu należy wymienić jeszcze kilka rzeczy.
Należy zwrócić uwagę na fakt, że najwięksi gracze na rynku pojazdów bezzałogowych podejmują decyzję z wykorzystaniem mapy i uruchamiają swoje produkty w określonych miastach (albo nawet na poligonach). Wynika to z faktu, że autopilotowi o wiele łatwiej pracować – mapy mogą zawierać lokalizację znaków drogowych, informacje o ważniejszych miejscach, oczywiście o rzeźbie terenu, znane przeszkody w danym miejscu i po prostu schemat poruszania się. Natomiast mechanizm orientacji na zupełnie nieznanym terenie wciąż jest domeną zwycięzców konkursów DARPA i ambitnych startupów.
Należy pamiętać o tym, że za wyjątkiem pojedynczych próbek reklamowych, w wielu bezzałogowych pojazdach za kierownicą zawsze znajduje się asekurujący kierowca. Swoją drogą, producenci nie są zbyt chętni do ujawniania statystyk przypadków, w których interwencja staje się koniecznością, ponieważ zdarza się to znacznie częściej, niż chcieliby.
SAI International określa poziom autonomii środka transportu w skali od 0 dо 5. W tej skali „Tesla” oceniana jest na poziom 2 — prędkość i kierunek są kontrolowane automatycznie, ale kierowca musi być gotowy do interwencji w dowolnym momencie. Nawiasem mówiąc, zwykły asystent parkowania również należy do tej kategorii.
Następny poziom 3 oznacza pełną, zautomatyzowaną kontrolę nad środkiem transportu, ale w ściśle określonych warunkach, jak np. na drogach szybkiego ruchu i autostradach, gdzie nie ma skrzyżowań.
Poziom 4 teoretycznie nie wymaga obecności kierowcy, ale także tylko w ściśle określonych warunkach, takich jak ruch w obrębie określonej strefy. Na ten poziom autonomii klasyfikują się auta Waymo.
Poziom 5 — kierowca w końcu staje się pasażerem, a samochód jest w stanie bezpiecznie się poruszać, niezależnie od warunków. Żaden z obecnych projektów nie osiągnął tego poziomu.
Jak przestać się martwić i pokochać „inteligentny” samochód
I co się ostatecznie dzieje? To samo, co w przypadku wielu innych przedstawicieli „Internetu rzeczy”. Im wyższa złożoność systemu, tym więcej w nim potencjalnych luk w zabezpieczeniach, zaś najlepiej chronione elementy można obejść poprzez zaatakowanie wrażliwszych miejsc. Zapożyczając gotowe rozwiązania z pokrewnych dziedzin elektroniki projektanci często zapominają o tym, że mogą tam istnieć własne problemy. I wreszcie czynnik ludzki – czujność użytkownika zostaje osłabiona, kiedy system wielokrotnie radzi sobie z prostymi zadaniami i nikt nie jest gotowy na błąd w bardziej złożonej sytuacji.
Bądź czujny i ostrożny – za równo za kółkiem, jak i w sieci. No i odpuść sobie zbędne wściekanie się na roboty – cały czas się uczą, ale przede wszystkim nie ufaj im w stu procentach w krytycznych i istotnych sytuacjach.
Jeśli jednak po przeczytaniu tego artykułu nie chcesz z powrotem przesiąść się do swojego starego, poczciwego gruchota, bez całej tej elektroniki, a wręcz przeciwnie – lepiej zrozumieć cały mechanizm, to spróbuj zapoznać się z projektem George’a Hotza comma.ai. Jest to autopilot do samochodu o całkowicie otwartym kodzie źródłowym i relatywnie tanią częścią elektroniczną, którą można łatwo zainstalować w wielu współczesnych samochodach. Będzie to znacznie tańsze niż „Tesla”, a także dużo bardziej interesujące – do Twojej dyspozycji jest rozległa grupa entuzjastów, własna wiki oraz szczegółowy i ciekawy blog dla programistów. I nie będziesz nawet musiał trzymać rąk na kierownicy.Pamiętaj jednak, że patrzenie się na drogę oraz myślenie o tym, co się robi, jest cały czas konieczne.
Tak jak obiecaliśmy, jest coraz ciekawiej. A to dopiero rozgrzewka! Mamy nadzieję, że ten artykuł Ci się podobał i podzielisz się nim ze swoimi znajomymi. Już za tydzień wrócimy z kolejnym niesamowitym artykułem o tym, jak sieć neuronowa rozpoznaje liczby, czyli „System wizyjny w Python. Uczymy sieć neuronową, jak rozpoznawać liczby”.
Jeśli podobało ci się, to polub nasz profil na LinkedIn oraz Facebook, żeby nie przegapić kolejnych publikacji!