Úvod do hackování aut - Car hacking
Jak vzdáleně ovládnout auto? Nebo jak odemknout auto, aniž bychom použili hrubou sílu? V tomto článku si odpovíme nejenom na tyto otázky, ale i na mnoho dalších. Podíváme se na systémy moderních vozidel, na jejich sféry útoků a popíšeme si principy nejběžnějších typů útoků.
V současné době jsou moderní auta naplněna elektronikou a řídícími prvky (ECU – Electronic Control Unit). Součet délky kabelů a drátů v jednom osobním autě je více než 4 km. S takovým množstvím elektroniky se mohou objevit zranitelnosti, které hackeři zneužívají k neoprávněném přístupu do vozidla nebo mohou také ovládnout jednotlivé řídící jednotky auta.
Je nutné zmínit hned na začátku, že každý výrobce aut používá rozdílné protokoly a algoritmy k zabezpečení aut a tudíž je rozdílný také postup hackování aut jednotlivých výrobců.
Threat model a sféry útoku
Sféry útoku se dají rozdělit na dvě hlavní kategorie podle pozice bezpečnostního testera/hackera – zda-li má přístup do cílového vozidla, či nikoliv.
Externí přístup
- Klíč a zámek vozidla
- Bezdrátová připojení (mobilní připojení, GPS, Wi-Fi, Bluetooth)
- Senzory tlaku v pneumatikách (TPMS)
Interní přístup
- OBD-II port (CAN bus sběrnice)
- Infotainment konzole & USB port
Klíč a zámek vozidla
Většina zámků aut operuje na frekvenci 315 nebo 433 MHz. Je možné použít Softwarově Definované Rádio (SDR) na naladění požadované frekvence k zachytávání a k následné manipulaci signálů.
Jsou 3 typy zámků aut, které se dělí podle použitého kódu: Pevný kód, Plovoucí kód a Pasivní systémy tzv. „keyless entry” neboli systémy bezklíčového přístupu a startování vozu.
Pevný kód
Starší systémy používají pevný kód, který je jedinečný pro každý ovladač. Ten se dá lehce zachytit a replikovat dle libosti. Po zachycení jediného kódu má hacker neomezený přístup k vozidlu.
Plovoucí kód
Novější systémy používají plovoucí kód, který se mění při každém stisku tlačítka. Řídící jednotka je nastavena tak, aby nepřijala dvakrát stejný kód.
V některých případech se dá použít Brute-Force útok na zámek, ale někteří výrobci implementují ochranu proti tomuto typu útoku. Implementují funkci Antiscan, který zabraňuje příjmu několika pokusů na stejné frekvenci. V tom případě je nutné počkat na uplynutí určité doby nebo je třeba nouzová deaktivace.
Protože tyto systémy často neřeší časovou platnost kódu, lze aplikovat Replay útok. Útočník použije rušičku k dočasnému zarušení vozidla a po přijetí platného kódu ji vypne. Uživatel bude muset vyslat minimálně dva signály k odemknutí vozidla a vůbec ho nenapadne, že se právě stal obětí útoku. Hacker dostává do vlastnictví jeden platný kód pro pozdější otevření vozidla.
Některé zámky používají challenge–response systém, který zabraňuje výše uvedeným replay útokům. Tento systém potřebuje více výpočetní síly a baterie, což v důsledku umožňuje komunikaci na vyšších frekvencích a na větší vzdálenosti.
Pokud je útočník schopen odposlouchání více challenge–response výměn, může použít Forward–prediction útok nebo slovníkový útok.
Forward–prediction útok spočívá v pozorování této komunikace, podle které se útočník snaží předpovědět, jaký bude další platný challenge požadavek. Šance na úspěch se zvyšuje pokud je pseudonáhodný generátor slabý, což záleží na konkrétním výrobci automobilu.
Slovníkový útok může být použit po dostatečném množství odposlechnuté komunikace. Útočník potom může posílat opakovaně set požadavků, dokud se jeden neshodne s odpovědí klíčového systému.
Mezi další útoky patří získání kódu z imobilizéru, které tam v některých případech zůstávají.
Systémy bezklíčového přístupu a startování vozu
Posledním typem zámků aut jsou systémy bezklíčového přístupu a startování vozu, kde lze vozidlo odemknout bez stisku tlačítka. Zámky vysílají pasivně RFID nízkých frekvencí a při stisku tlačítka vyšlou signál ultra vysoké frekvence.
Vozidlo ignoruje stisky tlačítka, pokud nepřijímá RFID nízkých frekvencí, tedy pokud není klíč blízko vozidla. Na tento typ zámku lze se primárně použít Relay Attack.
Úspěšná realizace tohoto útoku vyžaduje dva hackery a dvě rádia. Jeden útočník umístí rádio vedle vozidla a druhý ke klíči vozidla. Rádia si mezi sebou vymění signály a útočník je schopen otevřít a nastartovat auto. Hackeři mohou mezi sebou použít jakýkoli signál – i mobilní síť. Oba hackeři musí být několik metrů od svých příslušných cílů, aby získali data, je však možné použít antény k zesílení signálu.
Všechny alarmy vozidla se v takovýchto případech stávají nadbytečnými, protože auto důvěřuje signálu a není schopno zjistit z jakého zdroje byl signál odeslán. Ochranou proti tomuto útoku mohou být tzv. spící klíče. Signál se přestane vysílat, pokud klíč zůstává na jednom místě. Někteří výrobci automobilů používají senzory uvnitř auta k určení lokace klíče. Tyto ochrany ale nejsou dostupné starším modelům.
Univerzálním řešením jsou obaly na klíče fungující jako Faradayova klec.
Senzory tlaku v pneumatikách (TPMS)
Senzory v pneumatikách posílají nešifrovaným radiovým signálem informace o tlaku v pneumatikách a otáčkách kol na přijímač, který je přímo napojený na jednotku ECU, která je součástí CAN sběrnice (více o CAN sběrnici se dočtete níže).
Všechna nová osobní vozidla vyrobena v Evropské Unii od roku 2012 (v USA od roku 2008) musí být vybavena TPMS a tím se začíná tato technologie stávat terčem útoků. Senzor samotný sice vysílá slabý signál, ale lze použít nízkošumový zesilovač nebo směrové antény k zachycení komunikace přes cestu nebo vedle jedoucího vozidla.
Senzor vysílá data každých 60 až 90 sekund. Některé vozy potřebují být v pohybu pro aktivaci senzoru, u jiných naopak některé senzory vysílají signál, i když je auto v klidu nebo dokonce i vypnuté a tím pádem tak hacker může vyslat wake-up signál pro vynucení odpovědi senzoru na frekvenci 125kHz.
Aby mohl hacker zneužít bezpečnostních slabin těchto senzorů, musí nejdříve odposlechnout komunikaci skrze SDR, poté je třeba komunikaci odfiltrovat a demodulovat. Útočník takto dostane zakódovaný signál, který musí správným algoritmem dekódovat. Dekódovaný paket obsahuje unikátní ID a samotná data.
Příjímací jednotka nemá ověření pravosti signálu. Takže po reverzním inženýrství paketů může útočník přepnout rádio z přijímacího do vysílacího režimu a posílat upravené pakety.
Kromě toho, že hacker může podvrhnout (spoofnout) nepravdivé informace o stavu pneumatik, může také vynutit rozsvícení kontrolek auta, nebo přijímací jednotku úplně vypnout. Po takovém vypnutí je třeba servisní zákrok k resetu jednotky.
Systém je následně také možné zahltit wake-up signály a tím zapříčinit vybití baterie auta. Dále lze senzor také zneužít pro sledování vozidla strategickým rozmístěním přijímačů (např. vjezd do garáže).
OBD-II port (CAN bus sběrnice)
Od roku 1993 se stal CAN protokol mezinárodním standardem pro běžná vozidla (ISO 11898) a všechna auta vyrobená od roku 2001 v Evropě mají povinně CAN sběrnici. Každý výrobce aut může používat lehce odlišné protokoly na CAN sběrnici a frekvence použité při komunikaci.
Na CAN sběrnici se přenáší všechna důležitá data o stavu vozidla. Auta mají na sběrnici několik kontrolních jednotek (až 70 ECU). CAN protokol je broadcast a každá jednotka vidí všechny pakety, čímž nelze určit, která jednotka nebo útočník poslal daný paket.
Jednotky hodnotí relevanci zprávy podle tzv. Arbitration ID, které specifikuje ID jednotky, pro kterou je zpráva určena. Toto ID také určuje prioritu zprávy – nižší ID znamená vyšší prioritu. 6 nul po sobě znamenají high priority error. Princip DoS útoku spočívá v zaslání 32 takovýchto chybových zpráv po sobě a jednotka ECU přejde do stavu OFF.
Další důležité pole v CAN paketu jsou vlastní data, která obsahují konkrétní informaci jako například aktuální rychlost a vzdálenost objektů při parkování. Dle standardu je OBD-II konektor většinou pod volantem a jednoduše přístupný. Tento port poskytuje plný přístup ke sběrnici.
Výrobci automobilů používají různé protokoly na sběrnici a tedy i útočník musí pro každé auto přizpůsobit odesílaná data jednotkám ECU.
Na trhu je celá řada OBD-II adaptérů na USB, Bluetooth, Wi-Fi či s GSM modulem, a protože jak jsme uvedli již výše, CAN protokol je broadcast atedy všechny adaptéry na OBD-II portu uvidí veškerou komunikaci na CAN sběrnici. K těmto adaptérům lze použít software třetích stran pro zpracování dat, čímž se otvírají možnosti pro vytvoření vlastní aplikace zaměřené čistě na realizaci útoků. Samotné hackování CAN busu vyžaduje odposlouchávání komunikace na sběrnici a následně je třeba také provést další kroky v podobě reverzního inženýrství, k čemuž je třeba sniffer a další software, který umí dumpovat CAN pakety.
Hacker, který se dostane k OBD-II portu a provede výše zmíněné kroky, získá kontrolu nad CAN sběrnicí, a tudíž nad důležitými funkcemi vozidla. Procházet hackování CAN sběrnice si zaslouží samostatný článek a to je nad rámec tohoto úvodu.
Infotainment konzole & USB port
Infotainment systém nejčastěji běží na Linuxu a Windows CE. Ve virtuálním prostředí může být také Android systém.
Konzole disponuje širokou sférou útoků. Fyzicky to jsou USB, CD a DVD nebo audio jack. Bezdrátově bluetooth, Wi-Fi, GPS, mobilní síť. Infotainment systém používá i CAN sběrnici, ta je ale oddělená od primární páteře, která obsahuje důležité funkce vozidla.
Nejčastější metoda útoku na infotainment konzoli je skrze systémové aktualizace. Před takovým útokem je třeba zjistit, jaký systém na konzoli běží a jakým způsobem se aktualizuje. Pro každou značku automobilu je postup trochu jiný. Používají se jiné architektury, metody uploadu a souborové systémy. Některé aktualizace jsou chráněny digitálním podpisem a hrozí tady také riziko „bricknutí“ systému (poškození firmwaru nebo hardwaru kvůli špatnému nastavení) , proto se doporučuje upravit například jen logo existujícího updatu na otestování funkcionality.
Mezi další zranitelnosti patří přístup k debugovací obrazovce nebo nezdokumentovaný backdoor.
Přes USB port se dá aktualizovat firmware vnitřních čipů. Firmware se může upravit tak, aby systém obsahoval požadovanou zranitelnost (například při hackování Jeepu Cherokee v roce 2015).
Zajímavé hacky v minulosti
Univerzální mobilní aplikace
Kanadská firma Automobility vyvinula systém MyCar, který se skládá ze zařízení s GPS a mobilním připojením k internetu a aplikace. Software se přeprodává pod jinými názvy jako např. MyCar Controls, Linkr nebo další.
V aplikacích lze vidět stav vozidla, a umožňují zamknout, odemknout, nastartovat auto, vypnout motor a zjistit polohu auta.
Minulý rok hacker s přezdívkou Jmaxxz našel v mobilní aplikaci několik zranitelností, které vedly k tomu, že viděl a mohl mít pod kontrolou až 60 000 aut. Viděl značky, modely a roky výroby, takže si mohl vybrat auto jaké chtěl. Důvodem byla chyba v aplikaci v podobě hard-coded administrátorských přihlašovacích údajů, které mu umožnily přístup do backendu společnosti. Mezi další zranitelnosti patří SQL Injection a Insecure Direct Object Reference, které by mu také daly přístup k výše zmíněným informacím a dovolily by mu posílat příkazy ostatním vozidlům.
2015 Jeep Cherokee
Asi nejslavnější hack auta se uskutečnil v roce 2015 na Jeep Cherokee, kde dva hackeři vzdáleně ovládli auto v provozu na silnici. Níže je uveden stručný souhrn procesu. Celý článek je dostupný: zde.
Na tento hack bylo potřeba znát IP adresu vozidla. Tu lze buď náhodně zvolit z rozsahu, který má výrobce k dispozici, nebo se mohou hacknout všechna auta automatizovaným červem, který projde všechny IP adresy. Pokud bychom chtěli zjistit IP adresu konkrétního auta, tak můžeme síť skenovat a podle VIN čísla nebo GPS nalézt IP adresu (to je však časově náročné).
Přes otevřený port Sprint sítě 6667 byli schopni ovládnout OMAP čip (komunikační čip infotainment konzole), následně nahráli SSH veřejný klíč, konfigurační soubor a spustili SSH službu a tím dostali RCE (Remote Code Execution – vzdálené spuštění kódu) na OMAP čipu.
V tento moment útočníci ovládli infotainment jednotku Uconnect a mohli si hrát třeba s rádiem. To ale nestačilo k úplné kontrole vozidla a proto přes OMAP čip flashnuli také druhý čip – V850 – upraveným firmwarem. V850 může komunikovat s CAN sběrnicí. Přes upravený firmware tak mohli posílat CAN pakety a ovládat důležité funkce vozidla a vyřadit jej z provozu jak je vidět na obrázku.
Závěr
S rostoucím množstvím elektroniky v automobilech se neustále zvyšuje riziko výskytu zranitelností v řídících jednotkách, zejména v chytrých a autonomních vozidlech. Z tohoto důvodu je potřeba zajistit co nejvyšší bezpečnost elektroniky a softwaru – nejen kvůli tomu, že je bezpečnost vozidla v tomto případě úzce spojena s bezpečností pasažérů. Výrobci aut se snaží zjištěné zranitelnosti opravovat, proto je důležité nevynechávat svolávací akce výrobců a aktualizace softwaru.