Analiza sigurnosti automobila, vektori napada
Saša Poslončec
Sadržaj |
Uvod
Automobilska industrija je oduvijek bila, a pretpostavljam da će uvijek i biti u vječito borbi sa provalnicima, odnosno kradljivcima automobila. Jest da nas od malena uče kako nije u redu krasti tuđe vlasništvo, al vjerujem da na svijetu ne postoji čovjek koji nikada ama baš ništa nije ukrao, pa makar to bila žvaka, lizalica ili bilo što drugo. Ja se i dalje sjećam da smo imali jedan period u djetinjstvu kada nam nije bilo bitno što uzimamo, samo da to uzmemo, makar to bile svijeće, ledeni štapići ili što već.
Znam da nije isto ukrasti žvaku i automobil pošto bi trebali ukrasti par tisuća žvaki da bi dostigli vrijednost automobila, ali pokušavam reći da i kradljivce automobila kao i one male vragolane koji kradu lizalice, pri krađi obuzima nalet adrenalina. To se događa što zbog straha da će ih netko uloviti, što zbog osjećaja ponosa i zadovoljstva zbog toga što su uspjeli uraditi nešto što nemože baš svatko, al šalu na stranu. Ti lopovi posjeduju jedan specifičan set vještina, a imaju samo dva izbora što s tim vještinama raditi. Mogu ostati lopovi, a naravno mogu i postati stručnjaci i sigurnjaci koji će raditi na tome kako sprijećiti svoje "kolege" da urade isto. Dosta puta se dogodi da bivši lopovi posvete svoj daljnji život razvoju sigurnosti u nekoj tvrtki. Upravo zbog takvih ljudi se sigurnost automobila u zadnje vrijeme toliko i razvija. Naravno ja ne pokušavam reći da stručnjaci koji prethodno nisu bili lopovi nemogu dati neki doprinos, upravo suprotno, al bivši lopovi znaju iz prakse što bi moglo, a što ne upaliti, te posjeduju neku vrstu kreativnosti za pronalaženje rupa u sustavima. Naravno iako se sustavi sigurnosti u automobilskoj industriji rapidno razvijaju, moje je skromno mišljenje da su oni koji kradu uvijek barem za dva koraka ispred onih koji tu istu sigurnost razvijaju. Doduše nemogu to dokazati, al podaci o ukradenim vozilima, posebice vozilima visoke klase govore sami za sebe.
Sad kad sam prošao ove uvodne sitnice, vrijeme je da se bacim na posao. Na samom početku ovog rada htio sam uzeti kao ogledni primjer neki automobil više srednje klase, kako bi pokazao njegove ranjivosti, no što sam dublje i bublje ulazio i istraživanje to mi se činila kao sve lošija ideja. Naime tehnologija se munjevito razvija i ukoliko bi ja sad analizirao neki specifični automobil, a za recimo dva mjeseca izađe nova verzija istog sa novim mogućnostima, ovaj rad bi, usudio bi se reći, postao besmislen. S druge strane neki drugi automobil bi već sad mogao imati te mogućnosti i tehnologije, al mu mogu faliti neke tehnologije koje ima onaj prvi. Upravo zbog toga sam odlučio ujediniti sve te tehnologije, odnosno vektore i vrste napada na te tehnologije kako bi se dobila šira slika.
Makar imam blisko poznavanje tehnologija u automobilima, istraživanje provedeno za ovaj rad me moram priznati veoma iznenadilo. Postoje određene ranjivosti koje mi nikada nebi pale na um, ali sve ću to objasniti. Za potrebe ovog rada koristit ću nekoliko skala koje će malo bolje dočarati kolika je cijena takvog napada, koliku kontrolu nad vozilom napadač dobiva, te koliki je trud odnosno znanje potrebno da bi se takav napad izvršio.
Automobilski Operacijski sustavi
Kao i kod računala, postoje razni operacijski sustavi koji se ugrađuju u automobile. Doduše bitno je napomenuti da u većini slučajeva taj operacijski sustav upravlja multimedijoj te udobnošću, što možemo svrstati u sekundarne sustave automobila. Naravno primarni bi bili oni koji su automobilu neophodni za rad, a to bi bili motor, prijenos, sustav dovoda goriva itd. E sad iako taj OS služi za pokretanje i upravljanje sekundarnih sustava, ne znači da je manje bitan. Automobilski sustavi su jednako podložni sigurnosnim propustima kao i računalni, o čemu će i biti rijeći u nastavku. Zbog sigurnosti, a naravno i zarade koju takvi sustavi nose, postoje tvrtke koje se bave njima. Trenutno tri tvrtke proizvode relevantne automobilske sustave, a to su QNX, Microsoft te AutomotiveGradeLinux. QNX trenutno ima najveći udio na tržištu dok ga Microsoftov Windows Embedded Automotive slijedi u stopu, no zbog toga što je open source a ujedno i veoma siguran, Linux postaje sve popularniji među proizvođačima automobila. Predviđa se da bi Linux mogao do 2020. godine postati vodeći OS u automobilima sa udjelom tržišta većim od 45%. [1]
CAN protokol
Sve što je do sada rečeno je bio samo uvod u pravu stvar, a to je sama sigurnost. Kako bi uopće mogao pričati sigurnost moram čitatelja upoznati sa jednim zanimljivim protokolom, a to je CAN protokol odnosno "Controller area network". Na ovaj ili onaj način, svi koliko toliko noviji automobili koriste neku inačicu ovog protokola, a upravo se oko njega vrti cijeli koncept sigurnosti odnosno nedostatka sigurnosti. Ovaj protokol je razvijen kako bi razne komponente u automobilu mogle međusobno komunicirati bez host računala. Bazire se na porukama koje komponente šalju jedne drugima, u većini slučajeva se sve poruke šalju centralnoj jedinici ili ECU (Engine control unit). Ova kratica se može lako zabunom protumačiti kao Electronic control unit koji je zapravo skupni naziv za sve elektroničke module koji se nalaze u automobilu. [2] Pa kako radi CAN? Ukoliko je neki modul povezan CAN protokolom on pri paljenju automobila šalje poruku je li sve u redu s njim. Ukoliko nije, a modul je vitalan za rad, automobil naravno ne želi upaliti. Ukoliko je u pitanju neki sekundarni sustav, recimo radio, automobil radi, no recimo u slučaju Peugeota svakih nekoliko sekundi sustav veoma neugodnim zvukom upozova na grešku. Isto se može desiti ukoliko je komponenta zamijenjena nekom drugom bez da je registrirana u centralnom računalu. Već ovdje je vidljivo da pošto ovaj protokol povezuje sve sustave, pravilnim operacijama se može doći do vitalnih funkcija automobila. U ovom dijelu je samo bitno zapamtiti da CAN protokol povezuje gotovo sve uređaje odnosno module u računalu. [3]
Analiza
Sad pošto znamo nešto više o CAN protokolu, možemo prijeći na same prijetnje te kako ih realizirati. Samu podjelu ću napraviti po sustavima, a unutar sustava ću malo razraditi kako doći do kontrole nad vozilom. Ovdje ću obraditi četiri različita sustava preko kojih je tu kontrolu moguće ostvariti, a to su Multimedija, Udobnost, Senzori te OBDII koji zapravo nije sustav več sučelje.
OBDII
OBDII je fizički priključak odnosno dijagnostičko sučelje koje primarno služi servisima te radnjama koje obavljaju razne operacije na automobilu. To mogu biti jednostavna dijagnostika sustava (očitavanje grešaka), očitavanje telemetrijskih podataka (broj okretaja motora, temperatura i dr.), a može biti korišten i za malo kompliciranije radnje kao što su remapping centralnog računala, skidanje kilometara ( ova operacija je zakonom zabranjena, ali budimo realni često se događa), ili podešavanje nekih parametara kako bi vožnja bila ugodnija, udobnija a nerijetko i jeftinija ( čipiranje ). Kako bi se netko mogao spojiti na automobil preko ovog priključka, potrebno je imati odgovarajuće sučelje. Postoje razna sučelja koja ujedno služe kao dijagnostička oprema, a neka od njih su:
VAG-COM --> VW grupacija
OP-COM --> Opel
LEXIA --> Citroen, Peugeot
Renault CAN Clip --> Renault
STAR3 --> Mercedes Benz
AUTOCOM --> Univerzalna
Launch X431 --> Univerzalna
Gore navedena sučelja služe baš za dijagnostiku automobila, ali uz njih imamo i specijalizirana sučelja napravljena baš za remaping centralnog računala, ili za pristup modulu koji upravlja zračnim jastucima.
Alati za modifikaciju mape centralnog računala
GALLETTO --> Univerzalan (OBDII, JTAG)
MPPS --> Univerzalan (OBDII)
R270 --> MB, BMW (JTAG)
Ovi podaci u zagradi govore o tome kako se mogu ta sučelja spojiti na automobil ili njegovu komponentu. Jasno je što znači OBDII, a JTAG je zapravo programator koji se spaja na centralno računalo preko računala. To znači da se centralno računalo mora ukloniti s automobila kako bi se spojilo na njega.
Alati za spajanje na modul zračnih jastuka
CARPROG --> Univerzalan (OBDII, JTAG)
CRASH ERASER --> Univerzalan (OBDII)
E sad postavlja se pitanje nabrajam li ja ova sučelja zbog neke reklame ili čega? Odgovor je ne. Ova sučelja su itetako bitna za sigurnost. Poznato je da ukoliko dadete nekome neograničen pristup vašem vozilu, to više nemora biti vaše vozilo. Drugim riječima onaj kome ste dali pristup automobilu može sa veoma malo problema preuzeti kontrolu nad vozilom. Ukoliko netko želi učiniti štetu vašem vozilu ili preuzeti kontrolu, sami programi koji dolaze uz gore navedena sučelja mu neće mnogo pomoći, ali tu u igru ulaze sama sučelja. Ona su bitna jer u sebi sadrže logiku koja im uz odgovarajući program daje pristup modulima automobila. Ima li napadač dovoljno vještine može napisati program koji uz pomoć sučelja može doći do nekih modula. Ukoliko uspije doći do samo jednog modula koji je povezan CAN protokolom, može veoma lako dobiti potpunu kontrolu nad vozilom. Ovo je ujedno najjeftiniji a i najjednostavniji način kako dobiti kontrolu nad vozilom.
Multimedija
Svi moderni automobili imaju i moderne multimedijske sustave. Multimedijski sustavi pošto imaju pregršt mogućnosti moraju imati i nekakav sustav iza sebe, a to je upravo jedan od onih koje sam na početku spomenuo. Kod multimedije postoji daleko najviše ranjivosti, a neke od njih je zaista jednostavno i eksploatirati. Bitno je napomenuti da je u novijim vozilima multimedijski sustav također spojen CAN protokolom.
Bluetooth - Automobili više klase gotovo svi imaju mogućnost povezivanja mobilnog uređaja preko bluetootha. Pošto je to bežičan način komunikacije, a sve informacije koje se prenose bežično nisu sigurne, jasno je kako bi napadač mogao to iskoristiti u svoju korist. Dovoljno je da se nasilno spoji na bluetooth nekim uređajem te da preko njega pošalje maliciozni kod koji će zaraziti multimedijski sustav. Pošto je multimedija spojena preko CAN-a, može bez brige dobiti pristup i ostalim umreženim komponentama. Totalna kontrola nad vozilom
CD/DVD - Vozilo bez CD odnosno DVD čitača je nezamislivo. No taj isti čitač predstavlja sigurnosni rizik. Dovoljno vješt napadač može snimiti specijalan CD ili DVD na kojem je maliciozni kod te tako zaraziti sustav. To se može postići specijalnom pjesmom (WMA) ili recimo modificiranom nadogradnjom samog sustava. Opet dobiva potpunu kontrolu.
USB port - dovoljno je uštekati uređaj na kojem je maliciozni kod kako bi se sustav zarazio. To može biti trojanac ili nešto drugo što napadaču omogućuje potpuni pristup.
SD kartica - Ukoliko se umetne kartica koja sadrži maliciozni kod, napadač uz veoma malo napora dolazi do kontrole nad vozilom.
Wi-Fi - mnogi proizvođači su u svoje modele počeli ugrađivati mogućnost bežičnog pristupa internetu (802.11p). [4] Ako bluetooth predstavlja sigurnosni rizik onda je isti slučaj i sa Wi-Fi-jem. Dovoljno je na Wi-Fi spojiti zaraženi uređaj kako bi prenio maliciozni kod na multimedijski sustav te ga tako zarazio i dobio pristup.
Navigacija - Navigacija funkcionira tako da vozilo traži najjaći signal. Ukoliko napadač uspije oponašati signal nekog satelita postoji mogućnost da se spoji sa automobilom, a pošto se kod navigacije podaci sa satelita (računala) šalju prema automobilu, moguće je poslati maliciozni kod koji bi zarazio multimedijski sustav a samim time i preuzeo kontrolu nad vozilom. Doduše upitno koliko je takav pothvat isplativ.
Internet radio/GSM - Mnogi automobili više klase imaju opciju ili spajanja na internet preko mobitela, ili preko GSM kartice koja se umetne u posebni slot na multimedijskom sustavu. Pošto automobil nemože biti spojen žicom na internet, mora koristiti mobilnu mrežu. Dva su moguća napada na ovaj način. Jedan je da način da se zarazi toranj koji odašilje i prima signale za taj automobil kako bi se isti zarazio malicioznim kodom. Naravno za ovaj pristup je potrebno i puno znanja a i puno novaca pošto takav pothvat nije nimalo jeftin. Drugi način je da napadač uspije na neki način umetnuti specijalnu SIM karticu koja sadrži maliciozni kod. Koji god da se način koristio rezultat je isti. Potpuna kontrola.
Telemetrika - Gotovo svi proizvođači automobila visoke klase nude neku vrstu pomoći u obliku call centra koji korisnik može u bilo koje doba nazvati pritiskom na neku tipku u automobilu, te zatražiti pomoć od agenta koji u toj službi radi. To ni nebi bio neki veliki problem da se uz glas ne prenose i telemetrijski podaci. Ti telemetrijski podaci u sebi sadržavaju sve bitne informacije koje su agentu u call centru potrebni za pomoć. Naravno ta telemetrika se direktno vuče iz centralnog računala. Ukoliko napadač uspije presresti taj poziv odnosno signal, može preko tih telemetrijskih podataka dobiti potpuni pristup svim sustavima automobila. Naravno i ovaj pothvat zahtijeva pozamašne resurse.
Za napade preko CD/DVD-a, SD kartice, Wi-Fi-ja i eventualno USB porta je potrebna i vještina socijalnog inžinjeringa napadača, jer mora na neki način nagovoriti korisnika vozila da recimo stavi zaraženi CD, SD karticu ili pak da poveže svoj pametni telefon na Wi-Fi vezu automobila.
Udobnost
Mnogi proizvođači također pokušavaju korisnicima svojih automobila što više olakšati korištenje istih. Po meni velik dio takvih nadogradnji je bespotreban, al svatko voli drugačije stvari. Te iste nadogradnje mogu predstavljati potencijalni sigurnosni rizik.
KEYLESS GO - Ovaj sustav funkcionira na način da ukoliko je ključ od automobila kod vas, vi možete voziti taj automobil i to bez da se "mučite" okretanjem ključa kako bi ga upalili. No sad se posavlja pitanje. Ukoliko automobil može na nekoj udaljenosti pročitati tj. dohvatiti sadržaj tog ključa, moze li napadač napraviti to isto? Naravno da može. Jest da su takvi ključevi zaštićeni nekom vrstom enkripcije, ili imaju sposobnost mijenjanja koda, ali zaštita se uvijek može probiti. Ukoliko napadač uspije dohvatiti podatke ključa te ih dekriptirati, taj isti može auto i ukrasti.
KEYLESS ENTRY - slična situacija kao i kod prethodne ranjivosti, samo što kod ove ranjivosti napadač nemože upaliti auto pomoću koda kojeg presretne. Napadač može prilikom otključavanja automobila presresti frekvenciju te tako pročitati ili dekriptirati kod preko kojeg se automobil otključava. Iako samim time napadač nemože puno naštetiti automobilu, budite sigurni da ukoliko je dovoljno sposoban da presretne frekvenciju otključavanja, upaliti ga i ukrasti mu je najmanji problem.
Ključ - ova ranjivost možda i nije najsretnija u kategoriji udobnosti, no pošto sam ovamo stavio sve ranjivosti vezane uz ključeve onda mogu i ovu. Svjesni ste da pomoću ključa možete upaliti automobil, ali kako? Svaki ključ u sebi ima transpoder, odnosno mali čip koji funkcionira na sličann način kao i RFID tagovi. Naime u njemu je zapisana vrijednost koja je uparena sa bravom automobila te njegovim centralnim računalom. Dobra stvar je da ti transpoderi odašilju signal samo nekoliko centimetara tako da to nije problem, no zamislite sljedeći scenarij. Ključ vam je pao i automobil više ne pali. Naravno instinktivno nosite ključ na popravak nekom stručnjaku koji je za to specijaliziran. No taj kome ste taj isti ključ odnijeli može a da vi to ni ne slutite biti potencijalan napadač. Naime dovede li se dosta blizu čitača, te transpodere je veoma lako moguće kopirati odnosno klonirati. Naravno postoje i sigurniji transpoderi, no i za njih postoje alati koji ih kopiraju. Ukoliko napadač uspije klonirati vaš ključ, on dobiva neograničen pristup automobilu te ga u krajnjoj liniji može i ukrasti.
Kako nebi sve ostalo samo na riječima, u nastavku su samo neki od uređaja i alata koji omogućuju kopiranje i izradu ključeva, a i KEYLESS ENTRY odnosno daljinskih uređaja za otključavanje. U nastavku ću mogućnost kopiranja ključa označavati sa "K", dok ću sposobnost kopiranja daljinskog označiti sa "D".
ZED BULL --> Univerzalan (K, D)
REMOTE MASTER --> Univerzalan, (D)
SBB --> Univerzalan (K, D), Zahtijeva pristup OBDII
T-300 --> Univerzalan (K, D)
AK400/AK500 --> MB, BMW (K, D)
Senzori
Ovo je po meni najzanimljiviji a ujedno najčudniji vektor napada na sigurnost automobila. Uspio sam naći samo jedan senzor koji omogućava pristup funkcijama vozila, ali uvjeren sam da ih ima još.
TPMS - Ovaj napada je veoma specifičan. Naime proizvođači su u nekim zemljama svijeta obavezni ugrađivati senzore pritiska zraka u gumama kako bi povećali sigurnost putnika na neki način, no povećanjem sigurnosti putnika, smanjili su sigurnost automobila. Ovi senzori rade tako da bežičnim putem odašilju instrument tabli podatke o pritisku zraka u gumama u nekim pravilnim intervalima, tipično 60-90 sekundi.[5] Sigurnjaci su uspjeli presretanjem tih signala te slanjem malicioznog koda doći do djelommične kontrole nad vozilom, no pošto se ti signali odašilju instrument tabli koja je CAN protokolom povezana sa ECU, ja vjerujem da je moguće doći do potpune kontrole nad vozilom, tako da je ovaj vektor napada u najmanju ruku zanimljiv. [6]
Zaključak
Za sam kraj vam neću dati neki klasičan zaključak već ću vam dati jedan mali scenarij za razmišljanje. Zamislite si sljedeću situaciju: Vi ste direktor neke multinacionalne kompanije, te kao takvi naravno imate mogućnosti posjedovati luksuzan automobil sa brdo opreme. Jednog dana nešto se na automobilu pokvarilo, a vi hitno trebate automobil te ga odvozite u najbliži radnju kako bi ga na brzinu pokrpali. Nakon par sati automobil je opet ko nov i vozi, ma ko violina. Vi sretni i zadovoljni jer je popravak tako brzo gotov i još platite serviseru nešto malo više za trud. Sljedećih par mjeseci je sve super kad odjednom čudne stvari se počinju događati sa vašom tvrtkom. Odjednom dionice padaju, u vijesti izlazi prljavo rublje o vama i vašoj tvrtci. To su sve stvari za koje ste apsolutno sigurni da da nitko osim najužeg kruga ljudi kojima vjerujete nemogu znati, a onda vam na um padne da mnogo vremena provodite u automobilu, a još bitnije da veliku većinu razgovora obavljate u njemu. Naravno odjednom se sjetite onog nenadanog odlaska neovlaštenom i neprovjerenom serviseru. I tad sve lagano počinje sjedati na svoje mjesto.
Ukoliko vam netko uspije probiti zaštitu automobila može veoma lako doći do mikrofona kojeg mnogi novi automobili imaju te snimati i na neki server slati sve te zapise, ili još bolje videe ukoliko imate kameru u automobilu. Sad se zapitajte. Je li ovaj scenarij toliko nevjerojatan i nemoguć? Nakon svega gore napisanog, ja mislim da je itekako moguć.
--Sasposlon 11:16, 18. siječnja 2016. (CET)
Literatura
1. IHS, http://press.ihs.com/press-release/design-supply-chain-media/linux-take-lead-automotive-infotainment-operating-system-mar, dostupno 18.01.2016
2. Electronic control unit, https://en.wikipedia.org/wiki/Electronic_control_unit, dostupno 18.01.2016
3. CAN bus, https://en.wikipedia.org/wiki/CAN_bus, dostupno 18.01.2016
4. 802.11p, https://en.wikipedia.org/wiki/IEEE_802.11p, dostupno 18.01.2016
5. TPMS, https://en.wikipedia.org/wiki/Tire-pressure_monitoring_system, dostupno 18.01.2016
6. TPMS exploit, http://www.wired.com/2014/08/car-hacking-chart/#slide-2, dostupno 18.01.2016