Konferencja DEFCON 27. Twój samochód jest moim samochodem. Część 1

Skrót przemówienia:

Dla wielu z nas samochód to jeden z najdroższych zakupów, jakich kiedykolwiek dokonamy. W świecie, w którym wszystko jest połączone, chęć zdalnego sterowania samochodem jest naturalna: otrzymuj przypomnienia, gdzie go zaparkowaliśmy, sprawdzaj, czy zapomnieliśmy zamknąć drzwi lub zdalnie uruchamiaj silnik, aby wstępnie ogrzać lub schłodzić wnętrze w zależności od pory roku.

Wielu producentów oferuje opcjonalne systemy alarmowe, które zapewniają tę wygodę i spokój ducha. Ale na ile możemy ufać dostawcom tych systemów w zakresie ochrony dostępu do naszych samochodów w domenie cyfrowej? Podczas tej prelekcji Jmaxxz opowie o tym, co odkrył, przyglądając się jednemu z tych systemów.

Jmaxxz znany jest ze swojej pracy z systemami inteligentnego domu August Smart Lock (prezentacja na DEFCON 24 „Backdooring The Frontdoor”). W ostatnich latach skupił się na urządzeniach IoT. Brał udział w sekcjach „IoT Village Zero Day” na targach DEFCON 24 i DEFCON 25 i ostatecznie zdecydował, że nadszedł czas na zapoznanie się z produktem wtórnego rynku motoryzacyjnego – zdalnym rozrusznikiem (zwanym dalej RS).

Konferencja DEFCON 27. Twój samochód jest moim samochodem. Część 1

Nazywam się J-Max, z zawodu jestem programistą, a z powołania hakerem. Angażuję się we wszystko, co jest związane z zamkami i podczas tej rozmowy usłyszycie Państwo wiele stwierdzeń, które wyrażają wyłącznie moją opinię i nie mają żadnego związku z opiniami moich byłych, obecnych i przyszłych pracodawców. Jak zapewne zrozumiałeś, porozmawiamy o samochodach, a mianowicie o zdalnych rozrusznikach i systemach alarmowych. Zacznijmy od pewnego tła, które jest w tym kontekście istotne, gdyż wielu uważa takie systemy za niepotrzebny luksus.
Więc tam, gdzie mieszkam, jest dość zimno, a moja przyjaciółka cierpi na chorobę zwaną zespołem Raynauda. Zimno powoduje skurcz naczyń krwionośnych w dłoniach, dopływ krwi do palców jest znacznie zmniejszony i pojawiają się objawy odmrożeń, w tym martwica tkanek. Na slajdzie widać, jak to zwykle wygląda.

Konferencja DEFCON 27. Twój samochód jest moim samochodem. Część 1

W listopadzie zeszłego roku wciąż nie zdecydowałem, co jej podaruję na Boże Narodzenie. Wraca więc z lotniska do domu zdenerwowana, bo w drodze do domu jej samochód w ogóle się nie nagrzał. W tym momencie zdałem sobie sprawę, że dam jej system zdalnego uruchamiania silnika i zacząłem szukać najlepszej opcji. Okazuje się, że rynek zdalnych rozruszników jest dość duży, a wielu producentów nie podaje wystarczających informacji na temat swojego produktu.

Nie mówią jak zainstalować system i jakich narzędzi użyć do zaprogramowania urządzenia. Dla mnie jest to problem, bo to moje auto, mój zdalny start i muszę mieć dostęp do tych narzędzi. Poszukałem więc jeszcze trochę i znalazłem firmę z Kanady, Fortin, która produkuje takie startery i chętnie dostarcza całą niezbędną dokumentację. Zdecydowałem się na ten produkt i zacząłem szukać odpowiedniego pilota. Faktem jest, że jeśli użyjesz standardowego pilota z pilotem rozrusznika, to jego zasięg działania będzie ograniczony do zasięgu standardowego pilota. Oferowane są piloty na rynku wtórnym, które działają w promieniu od pół mili do półtora mili. Według opinii konsumentów jest to chwyt reklamowy, ponieważ w rzeczywistości odległość jest znacznie krótsza. W tym jest problem, bo moja koleżanka musi odpalić silnik w swoim samochodzie na parkingu lotniska zaraz po wyjściu z samolotu, czyli jakieś pół mili.

Konferencja DEFCON 27. Twój samochód jest moim samochodem. Część 1

Byłoby więc wspaniale, gdyby mogła po prostu wyciągnąć telefon, otworzyć aplikację i nacisnąć Start. Znalazłem produkt innej firmy o nazwie MyCar, który jest w pełni kompatybilny z rozrusznikiem Fortin. To niewielki brelok z kartą SIM i odbiornikiem GPS, który możesz włożyć do samochodu i podłączyć do pilota. Następnie za pomocą aplikacji mobilnej możesz zdalnie uruchomić silnik, odblokować zamki i tym podobne.

Konferencja DEFCON 27. Twój samochód jest moim samochodem. Część 1

Pomyślałam, że będzie super: zaraz po wylądowaniu samolotu koleżanka może odpalić silnik, a zanim dotrze do samochodu, w kabinie będzie już ciepło.

Porozmawiajmy więc trochę o działaniu zdalnych rozruszników. Aby to zrobić, musisz najpierw zrozumieć, jak uruchamia się silnik samochodu. Do około połowy lat dziewięćdziesiątych rozrusznik samochodowy był tradycyjnym zamkiem mechanicznym w kombinacji kluczyk-przełącznik. Aby zamknąć obwód elektryczny, trzeba było włożyć klucz i przekręcić go. Następnie w Stanach Zjednoczonych popularne stały się zamki z etykietą „immobilizer”. Brzmi skomplikowanie, ale to tylko zamek elektroniczny. Mamy więc zamek mechaniczny, będący kluczem do zamka elektronicznego, który z kolei jest transponderem i zawiera pewne informacje, które można odczytać. Dopóki nie otworzysz zamka elektronicznego, Twój samochód nie uruchomi się. Po prawej stronie zamka znajdują się 2 klucze: lewy do immobilizera, a prawy do zwykłego wyłącznika zapłonu. Po prostu obsługuje mechaniczne elementy zamka, natomiast lewy klawisz odblokowuje zamek elektroniczny, który uruchamia silnik samochodu.

Konferencja DEFCON 27. Twój samochód jest moim samochodem. Część 1

Dlaczego ci o tym mówię? Zdalny rozruch działa poprzez immobilizer. Na kolejnym slajdzie widzisz schemat podłączenia urządzenia Fortin EVO One do immobilizera - w lewym dolnym rogu widać parę styków oznaczonych jako IMO. W prawym górnym rogu diagramu widoczne są dwie linie: CAN LOW i CAN HIGH. Są to styki umożliwiające podłączenie do samochodowej magistrali CAN. Powodem podłączenia zdalnych rozruszników do magistrali CAN jest zmniejszenie kosztów instalacji, ponieważ podczas instalacji wykorzystuje się mniej połączeń. Jeśli zdalny rozrusznik może odczytywać dane z magistrali CAN lub wysyłać polecenia przez magistralę CAN, skraca to czas instalacji układu zdalnego uruchamiania silnika.

W lewym górnym rogu diagramu znajduje się cała masa GPIO, które są powiązane ze sterowaniem lub odczytywaniem informacji o maszynie. Chcesz na przykład, aby po naciśnięciu przycisku blokady włączały się światła lub włączał się dźwięk klaksonu. Takimi rzeczami można sterować za pomocą tych GPIO. W lewym dolnym rogu schematu widać duże, nieporadne złącze - jest to interfejs omijający blokadę mechaniczną. Oznacza to, że nie trzeba wkładać i przekręcać kluczyka do stacyjki, ponieważ ten interfejs umożliwia bezpośrednią komunikację przekaźnika układu zdalnego rozrusznika z elektrozamkiem.

Konferencja DEFCON 27. Twój samochód jest moim samochodem. Część 1

Poniższe slajdy przedstawiają etapy instalacji zdalnego rozrusznika. Polega ona głównie na zdjęciu osłony kolumny kierowniczej, zamontowaniu i podłączeniu zespołu DS. Wygląda to dość przerażająco, ale jest łatwe do zrobienia.

Konferencja DEFCON 27. Twój samochód jest moim samochodem. Część 1

Same piloty łączą się z czymś, co Fortin nazywa łączem danych. W systemie zastosowano autorski protokół fizycznego przesyłania danych UART – uniwersalny asynchroniczny nadajnik wymieniający dane z szybkością 9600 bodów. Zdalny rozrusznik Fortin łączy się po prostu za pomocą magistrali UART z dwoma pilotami widocznymi na slajdzie.

Konferencja DEFCON 27. Twój samochód jest moim samochodem. Część 1

Po zainstalowaniu DS pomyślałem o tym, jak takie urządzenia mogą wpłynąć na bezpieczeństwo samochodu. Oczywiście DS musi ominąć immobilizer, więc jak bezpieczne jest to pod względem możliwości kradzieży lub przejęcia kontroli nad samochodem? Dotyczy to nie tylko transmisji danych przez sieć komórkową, ale także samego sygnału zdalnego startu. Zacząłem więc szukać w Internecie informacji producenta na temat zastosowanego protokołu przesyłania danych i trafiłem na fora, na których ludzie pisali, że Fortin odmówił udostępnienia tego protokołu. Jeden z powodów: „Nie rozpowszechniamy takich informacji, ponieważ EVO nie jest zabawką dla amatorów, jest przeznaczona do użytku przez profesjonalistów.

Konferencja DEFCON 27. Twój samochód jest moim samochodem. Część 1

Będąc profesjonalistą, zdecydowałem się zbudować własną maszynę na komputerze stacjonarnym. Zdobyłem drugą jednostkę systemową EVO, zmontowałem płytkę drukowaną reprezentującą samochód, dodałem przełączniki symulujące zapłon, przycisk pedału hamulca i całą masę diod LED pokazujących różne stany.

Konferencja DEFCON 27. Twój samochód jest moim samochodem. Część 1

Po złożeniu tego wszystkiego w całość podłączyłem urządzenie monitorujące łącze danych FTI i zacząłem zbierać te dane. Na pierwszy rzut oka przypomina to zjeżdżalnię i nie do końca wiadomo, co się tutaj dzieje. Ale jeśli przyjrzysz się uważnie, możesz powiedzieć, że na pewno jest tu jakaś struktura.

Konferencja DEFCON 27. Twój samochód jest moim samochodem. Część 1

Należy pamiętać, że ilekroć nacisnę przycisk na pilocie, wiadomość wysyłana przez antenę do mojego DS zawsze zaczyna się od 0C i kończy na 0D. Jeśli więc podzielimy to, co otrzymamy, zakładając, że 0C to początek, a 0D to koniec, otrzymamy coś takiego.

Konferencja DEFCON 27. Twój samochód jest moim samochodem. Część 1

Jest tu już wyraźnie widoczna pewna struktura, więc możesz dowiedzieć się, co się dzieje. Poświęcając czas na śledzenie komunikatu wyświetlanego po naciśnięciu określonego przycisku, udało mi się utworzyć tabelę poleceń, z których każde odpowiadało określonej akcji. Oznacza to, że po naciśnięciu przycisku na pilocie antena wysyła polecenie do modułu zdalnego uruchamiania, które wygląda tak.

Konferencja DEFCON 27. Twój samochód jest moim samochodem. Część 1

Oto jak wygląda typowa struktura zespołu.

Konferencja DEFCON 27. Twój samochód jest moim samochodem. Część 1

Po naciśnięciu przycisku na pilocie antena wysyła takie polecenie do pilota rozrusznika. Budzi go bajt 0C, po którym następują 2 bajty, które moim zdaniem reprezentują kierunek transmisji. To ciekawe, bo UART ma już kierunek sygnału, więc oznaczyłem te bajty jako „śmieci”, po prostu traktuję je jako stałą. Po tym następuje pojedynczy bajt wskazujący polecenie, które użytkownik chce wykonać. Może to obejmować zamykanie lub otwieranie drzwi, wyłączanie alarmu itp. Ogólnie rzecz biorąc, wszystko, co chcesz zrobić zdalnie, jest powiązane z tym poleceniem. Ładunek FF FF F1 to adres lub identyfikator identyfikujący zdalną antenę, z której nadeszła wiadomość. Jeżeli jednostka DS nie rozpoznaje identyfikatora, polecenie jest ignorowane. Jeżeli DS zaakceptuje identyfikator, rozpoczyna się wieloetapowa procedura, która obejmuje sprawdzenie obecności kluczyka w stacyjce, włączenie lub wyłączenie silnika, wciśnięcie pedału hamulca itp. Tak naprawdę ten proces nie ma większego znaczenia, po prostu urządzenie w tym momencie uczy się ID.

Na końcu komunikatu znajduje się bajt z sumą kontrolną oraz bajt oznaczający koniec polecenia. Teraz, gdy rozumiemy, jak działa protokół, co możemy z tym zrobić? Mam kilka filmów na ten temat. Niestety z jakiegoś powodu wideo jest bez dźwięku, więc powiem wam, co dzieje się na ekranie. Na lewo od kolumny kierownicy na obudowie tablicy rozdzielczej znajduje się biała skrzynka zawierająca elektronikę z oprogramowaniem Particle.IO obsługującym protokół Fortin. Przewód z niebieską końcówką to antena. Dzięki temu mogę wejść w interakcję ze zdalnym rozrusznikiem z wnętrza samochodu i zobaczyć co się dzieje na ekranie laptopa.

Konferencja DEFCON 27. Twój samochód jest moim samochodem. Część 1

Wysyłam więc do auta polecenie odblokowania zamka ale to nie działa bo DS nie wie o tej antenie. Jak już wspomniałem jest to po prostu UART, którego właściwością jest obsługa tzw. komunikacji dwukierunkowej, dzięki której można zdalnie uzyskać informację o stanie auta. Na przykład, jeśli silnik został fizycznie uruchomiony lub zatrzymany, jednostka DS wyśle ​​odpowiedni komunikat do anteny pilota. W tym przypadku wiadomość będzie zawierała adres tej właśnie anteny.

Konferencja DEFCON 27. Twój samochód jest moim samochodem. Część 1

Problem w tym, że komunikacja odbywa się po protokole UART i każdy, kto podłączy się do magistrali UART, widzi adres, na który wysyłana jest dana wiadomość, więc mój firmware ma możliwość sklonowania adresu istniejącej anteny, co ja robię odpowiednim poleceniem.

Konferencja DEFCON 27. Twój samochód jest moim samochodem. Część 1

Aby wygenerować wiadomość wystarczy otworzyć drzwi samochodu. Jak widać DS wysyła do anteny komunikat, że drzwi były otwarte i alarm od razu się włącza.

Konferencja DEFCON 27. Twój samochód jest moim samochodem. Część 1

Aby wyłączyć alarm wysyłam komendę „odblokuj”, po czym dźwięk alarmu zostaje wyłączony, a samochód zostaje odblokowany. Musisz mi uwierzyć na słowo, ponieważ nie udało nam się odtworzyć tego filmu z dźwiękiem. Spróbujmy ponownie odtworzyć wideo.

Konferencja DEFCON 27. Twój samochód jest moim samochodem. Część 1

No i pojawił się dźwięk (przypis tłumacza: na ekranie odtwarza się ten sam film z dźwiękiem). Widziałeś więc, jak wysłałem polecenie DS i włączyłem alarm, wszystko bez klucza. Teraz spróbujmy uruchomić samochód w ten sam sposób; aby to zrobić, obejrzyj poniższy film.

Zwykle, jeśli po prostu wpiszesz „start” i spróbujesz uruchomić silnik, to nie zadziała. Powodem jest to, że jest to samochód z ręczną skrzynią biegów, a systemy zdalnego rozruchu mają specjalną procedurę dla takich samochodów. W takim przypadku należy nacisnąć przycisk zdalnego rozrusznika, gdy kluczyk znajduje się w stacyjce, a silnik pracuje. Następnie możesz wyjąć kluczyk, wysiąść z samochodu, zamknąć drzwi, po czym DS wyłączy silnik i zamknie drzwi. Ma to na celu uniemożliwienie reakcji samochodu na zdalne uruchomienie silnika podczas jazdy, ponieważ jest to niebezpieczne. Nie jest to jednak pełna funkcja bezpieczeństwa. Można to dość łatwo udowodnić, patrząc na moduł zdalnego rozrusznika EVO. Widzisz ten żółty przewód pętlowy, który jest przeznaczony do współpracy z ręczną skrzynią biegów. Jeśli zostanie wycięty, blok ten można zastosować w samochodzie z automatyczną skrzynią biegów. Taka konstrukcja urządzenia pozwala nie używać żadnych specjalnych ustawień podczas instalowania DS w samochodach z różnymi typami skrzyni biegów.

Konferencja DEFCON 27. Twój samochód jest moim samochodem. Część 1

Czyli system nie zareagował na komendę "start", więc odłożę ten blok na miejsce i po prostu przetnę ten przewód, żeby przerwać połączenie. Teraz, jeśli powtórzysz polecenie „start”, zabrzmi sygnał dźwiękowy, a na desce rozdzielczej zaświecą się wskaźniki stanu systemów samochodu, tak jak ma to miejsce po włożeniu klucza do zamka.

Konferencja DEFCON 27. Twój samochód jest moim samochodem. Część 1

W tej chwili mamy samochód, który możemy odpalić zdalnie bez kluczyka w stacyjce, jednak moduł DS to nie wszystko, czego potrzebujemy. W normalnych okolicznościach nadal nie da się odjechać samochodem odpalonym zdalnie, ale mimo wszystko spróbujmy.

Aby wyłączyć blokadę kierownicy należy włożyć do stacyjki zwykły kluczyk, który nie posiada transpondera. Jak widać wystarczy przekręcić kluczyk w położenie przed uruchomieniem silnika, a kierownica Subaru Impreza zaczyna się całkowicie swobodnie obracać.

Jeśli jednak nie masz żadnego kluczyka, to po naciśnięciu pedału hamulca samochód zgaśnie. Obejście tego ograniczenia jest dość łatwe. Musisz dowiedzieć się, w jaki sposób samochód informuje zdalny rozrusznik, że hamulec został włączony. Z tyłu obudowy modułu EVO widać kilka wielokolorowych portów – tutaj zostanie podłączony kabel z magistrali CAN. Wystarczy po zdalnym uruchomieniu auta odpiąć ten kabel od DS-a i nie będzie on reagował na wciśnięcie pedału hamulca. Ponieważ to urządzenie znajduje się pod osłoną kolumny kierowniczej, wydaję komendę „start” przez laptopa, samochód uruchamia się, otwieram drzwi, wysiadam z samochodu i wyjmuję złącze magistrali CAN z jednostki EVO. Jak widać silnik samochodu pracuje, lecz nadal nie mamy kluczyka w stacyjce.

Teraz, jeśli wciśniesz pedał hamulca, nic się nie stanie, ponieważ EVO nie wie, że został wciśnięty. Po tym mogę usiąść za kierownicą, wcisnąć hamulec, przestawić dźwignię zmiany biegów w pozycję „jazda” i samochód zaczyna jechać. Wszystko to odbywa się bez użycia klucza.

21:40

Konferencja DEFCON 27. Twój samochód jest moim samochodem. Część 2

Odtwarzanie wideo

Kilka reklam 🙂

Dziękujemy za pobyt z nami. Podobają Ci się nasze artykuły? Chcesz zobaczyć więcej ciekawych treści? Wesprzyj nas składając zamówienie lub polecając znajomym, VPS w chmurze dla programistów od 4.99 USD, unikalny odpowiednik serwerów klasy podstawowej, który został przez nas wymyślony dla Ciebie: Cała prawda o VPS (KVM) E5-2697 v3 (6 rdzeni) 10GB DDR4 480GB SSD 1Gbps od 19$ czyli jak udostępnić serwer? (dostępne z RAID1 i RAID10, do 24 rdzeni i do 40 GB DDR4).

Dell R730xd 2 razy taniej w centrum danych Equinix Tier IV w Amsterdamie? Tylko tutaj 2 x Intel TetraDeca-Core Xeon 2x E5-2697v3 2.6 GHz 14C 64 GB DDR4 4x960 GB SSD 1 Gb/s 100 Telewizor od 199 USD w Holandii! Dell R420 — 2x E5-2430 2.2 GHz 6C 128 GB DDR3 2x960 GB SSD 1 Gb/s 100 TB — od 99 USD! Czytać o Jak zbudować firmę infrastrukturalną klasy z wykorzystaniem serwerów Dell R730xd E5-2650 v4 o wartości 9000 euro za grosz?

Źródło: www.habr.com

Dodaj komentarz