Konferinsje DEFCON 27. Jo auto is myn auto. Diel 2

Konferinsje DEFCON 27. Jo auto is myn auto. Diel 1

Oan 'e ein fan' e fideo hearden jo in klik - dit is it ûntsluten fan it meganyske stjoerslot, dat wy net kinne omgean mei elektroanika. Jo moatte wat meganysk brûke, de slotcilinder mei de hân brekke, of wat ferlykber dwaan, wat ik net mei har auto dwaan soe. Alle firmware demonstrearre yn dizze fideo's sil beskikber wêze op GitHub nei myn praat, dus gewoan gean nei de URL op 'e slide en download it OpenRemoteStart-bestân.

Litte wy prate oer wat der krekt bart as wy it ynternet tafoegje oan dit systeem, om't it goed foar ús moat wêze, toch? Lykas ik sei, kocht ik in remote alarm control module neamd MyCar. It komt yn ferskate modifikaasjes, ik hie it Linkr LT-1-model.

Konferinsje DEFCON 27. Jo auto is myn auto. Diel 2

MyCar is gewoan in merk en sokke modules wurde ferkocht ûnder de nammen Linkr LT-1, MyCar KIA, Visions MyCar, Carlink (CL6), ensfh. As it docht bliken, hawwe KIA-dealers yn Kanada al in skoftke dit systeem, of op syn minst in app neamd MyCar KIA, op har auto's ynstalleare. Opfallend is dat dizze app net mear te downloaden is yn 'e AppStore. Ik wol ek opmerke dat ik Fortin- en MyCar-produkten keas, mar neffens brûkersbeoardielingen op tematyske foarums fan freelance auto-alarms, gedrage oare systemen net better en hawwe ferlykbere problemen.

Ik haw in wichtige fraach: Wêrom ferkeapet de auto-alarmmerk nei merk in produkt mei feiligensproblemen en gjinien makket it út? Dêrom, as ien fan jo ynteressearre is yn systemen foar starters op ôfstân, jouwe dan omtinken oan in pear wichtige omstannichheden. As earste, lykas ik earder neamde, as it DS-systeem net goed is ynstalleare op in auto mei in manuele oerdracht, is it heul mooglik dat nei it starten fan 'e motor op ôfstân, de auto gewoan sûnder bestjoerder sil ride as wat gear is yn' e oerdracht . It is echt gefaarlik. It twadde gefaar is dat as immen in auto parkearret yn in oanboude garaazje en by ûngelok de motor op ôfstân oanset, se ferstikje kinne fan it opboude koalmonokside. Dus as jo in CO-systeem en in taheakke garaazje hawwe, moatte jo perfoarst koalmonokside-detektors hawwe.

As jo ​​DS-systemen brûke, besykje dan noait de motor fan jo auto te starten sûnder te witten krekt wêr't it is, om't de gefolgen desastreus wêze kinne.

It MyCar-apparaat, in lyts swart doaze mei twa draden dy't derút komme, hat 8-poarten, wêrfan twa wijd binne oan de debugger-ynterface. Ferbining mei dizze ynterface liet sjen dat it apparaat Linux draait, dêr't de fabrikant stil oer is. It is maklik om yn 'e firmware-shell te kommen mei it oelinux 123-wachtwurd, mar jo kinne de AE ​​Engine brûke sûnder yn te loggen, wêrtroch jo AT-kommando's kinne ynfiere fanút de kommandorigel, ynklusyf it kommando om it IP-adres fan it apparaat te feroarjen wêrmei dizze module kommunisearret.

Konferinsje DEFCON 27. Jo auto is myn auto. Diel 2

As wy nei de rigels hjirûnder sjogge, kinne wy ​​​​it IP-adres sjen fan 'e server wêrfan de MyCar-module firmware-updates ûntfangt. It apparaat is foarsjoen fan in L-poarte, wêrtroch jo kinne "harkje" nei kommando's ûntfongen troch de module. Mei it brûken fan de AE ​​Engine en it feroarjen fan de IP fan it keppele apparaat, koe ik bepale dat dit apparaat kommunisearret mei de DS mei it net fersifere UDP-protokol.

Ik haw der net te folle nei sjoen, mar ik tink dat it in aardich wichtich en nijsgjirrich feit is. As jo ​​​​ynteressearre binne yn mear ynformaasje oer dit apparaat, sjoch dan ris nei dizze slide - it toant in spanning fan 3,3V foar levering, in gegevensferfiersnelheid fan 115200 baud, in serveradres foar it bywurkjen fan de firmware, in rootwachtwurd en in keppeling nei de brûker hânboek.

Konferinsje DEFCON 27. Jo auto is myn auto. Diel 2

It apparaat kin hegere oanbodspanningen "tolerearje".

Sa't ik sei, it wurdt hjir aardich kâld. Ungefear in moanne nei't ik dit systeem oan myn freondinne joech, besleat ik de ienheid út 'e auto te nimmen en it in goeie run te jaan. It feit is dat ik al dizze moanne gedachten oer de kwetsberens fan dit apparaat fuortstutsen. Se foarsei temperatueren omleech nei -30F ° foar de folgjende wike, dus ik moast hastich. Ik ferbûn mei de shell en krige it wurkjen, mar om't de sellulêre ûntfangst yn myn thúslab net heul goed is, besleat ik om mei it fak op in oare kompjûter te wurkjen. De FTDI-ienheid dy't ik brûk hat in koart snoer, dus ik fûn in langere, plug it yn 'e DS-ienheid, plug it yn' e kompjûter, en sa gau as ik de macht oansette, begon myn ienheid te smoken!

De les dy't hjirfan leard wurde kin is: as jo hardware hackje, haw dan in reserve-ienheid klear! Myn freondinne sette de moraal fan it ferhaal op dizze manier: as jo wichtige oare in hacker is, lit him dan net boartsje mei jo krystkado's! Litte wy no nei de software sjen, ik tink dat hjir neat sil smoke.

Konferinsje DEFCON 27. Jo auto is myn auto. Diel 2

Ik begon in man-in-the-middle proxy, útskeakele SSL-ferifikaasje op myn tillefoan, en seach hokker ferkear de app stjoerde nei de efterkant. By it registrearjen fernaam ik dat it systeem myn e-postadres naam en it nei de webtsjinst stjoerde om te soargjen dat it adres ferbûn wie mei in besteande akkount. It is nijsgjirrich dat it systeem Basic Authentication brûkte, om't ik noch gjin akkount oanmakke hie. Ik wist net wat ik dwaan moast mei dizze ynformaasje, dus ik skreau it gewoan op yn in notebook en gie fierder. Ik haw myn akkount oanmakke en oanmeld, en it earste ding dat de applikaasje docht by it oanmelden is in webtsjinst neame om de hjoeddeistige brûker te ferifiearjen. Dat ik neamde dizze webserver gewoan mei de bewiisbrieven dy't ik earder sjoen hie, dy't waarden brûkt om te kontrolearjen oft myn e-postadres bestie, en krige Mycar Admin tagong as antwurd.

Konferinsje DEFCON 27. Jo auto is myn auto. Diel 2

Ik twifele dat dit in echte systeembehearder-akkount wie, om't it, nettsjinsteande it lûd, lege privileezjes hie. Ommers, wy allegearre kenne minsken lykas dit.

Dêrom meitsje ik in oar fersyk - it EngineStart-kommando, om de auto fan dit akkount te starten, klikje op "Stjoer", ûntfange de kommandostatus as antwurd - "200 OK", en nei sawat trije sekonden begjint myn auto te bewegen.

Konferinsje DEFCON 27. Jo auto is myn auto. Diel 2

As it docht bliken, wie it Mycar Admin-akkount yndie in admin-akkount hardcoded yn 'e mobile app. Mar dat is net alles. Op ien fan 'e foarige dia's seagen jo sa'n ding as in API-kaai. Nochris, fan it kontrolearjen fan myn falske proxy-tsjinnerferkear, learde ik dat dizze API-kaaien kinne wurde brûkt yn plak fan in brûkersnamme en wachtwurd. As jo ​​"API" brûke as brûkersnamme en ien fan dizze kaaien, kinne jo de brûker ferifiearje.

Konferinsje DEFCON 27. Jo auto is myn auto. Diel 2

Dat ik kopieare de ynhâld fan 'e line "APIKey", plakke it yn' e Wachtwurd-rigel fan 'e POST-applikaasje, en klikte op de knop "Stjoer".

Konferinsje DEFCON 27. Jo auto is myn auto. Diel 2

It slagge lykwols net en ik koe net útfine wêrom foar in lange 5 minuten. Uteinlik kaam it my troch dat ik fergeat de quotes en komma's yn 'e kopieare API-kaai te ferwiderjen, wat is wat my ferteld waard: "Jo hawwe in flater makke yn 'e SQL-syntaksis." It waard my dúdlik dat jo gewoan in basis SQL-ynjeksje koenen brûke om it heule oanmeldproses te omgean en in behearder te wurden as elke brûker dy't jo woene. Ik tink net dat immen hat ea besocht in stelle in auto mei help fan SQL-ynjeksje, sei lit ús jou it in poging.

Konferinsje DEFCON 27. Jo auto is myn auto. Diel 2

Konferinsje DEFCON 27. Jo auto is myn auto. Diel 2

Yn it algemien haw ik oanmeld op myn akkount, klikte op "Stjoer" en krige in "200 OK" status as antwurd. Dizze kear tocht ik in fideo op te nimmen. It is in bytsje tsjuster, om't ik nachts let oan it filmjen wie fanút myn kantoarrút. Dat, ik fier it kommando yn, en jo sjogge troch it finster dat de koplampen fan 'e auto yn' e hôf hjirûnder flikkerje. Earst is har ljocht swak, mar dan begjinne de koplampen op folle krêft te skinen - dit is de motor dy't draait. Dat, ik begon de auto mei SQL-ynjeksje (publyk applaus).

Mar dat is net alles. SQL-ynjeksje kin net allinich brûkt wurde foar autorisaasje, mar ek om oare parameters te ferfangen, lykas URL, query string body parameters, ensfh. Yn feite, dit systeem brûkt SQL-ynjeksjes oeral. As wy nei de flaterberjochten sjogge, kinne wy ​​​​sjogge dat wat wy as wachtwurd ynfiere, direkt fergelike wurdt mei de wachtwurdkolom yn 'e databank.

Konferinsje DEFCON 27. Jo auto is myn auto. Diel 2

Dit betsjut dat se gewoane tekstwachtwurden brûke yn SQL-ynjeksje. As se sizze, "dit is hielendal net goed, en sels heul min!" Mar genôch oer SQL, lit ús sjen wat jo oars kinne dwaan om jo auto op ôfstân te starten. Jo stjoere gewoan it kommando "EngineStart" en as antwurd krije jo in hiel getal identifier dy't de identifier fan dit kommando fertsjintwurdiget, yn dit gefal is it ID = 3. Troch de identifier te witten, kinne jo in tsjinst "lûke" dy't de status fan dizze rapportearje sil befel.

Konferinsje DEFCON 27. Jo auto is myn auto. Diel 2

Dat troch de ID-wearde te ferheegjen of te ferleegjen, "lûk" ik de status fan elk kommando dat ea op dat systeem is stjoerd.

Konferinsje DEFCON 27. Jo auto is myn auto. Diel 2

D'r is lykwols neat nijsgjirrichs oer, en ik freegje my ôf oft d'r hjir in direkte ferwizing is nei in objekt dat ik brûke kin om myn auto te starten. Dat ik rûn it kommando "EngineStart" as in legitime brûker fan myn akkount, en besocht it dan te skiljen fia in akkount fan in oare brûker, dy't gjin tagong ta it systeem soe moatte hawwe. As antwurd krige ik in flaterberjocht: "Dit akkount is net yn 'e kontekst fan' e hierargy." Dus miskien sil dizze hack net wurkje. As jo ​​​​lykwols nei dizze API sjogge, sille jo sjen dat it ynformaasje duplikearret - it e-postadres fan 'e brûker wurdt yn kaart brocht oan har akkount-ID.

Konferinsje DEFCON 27. Jo auto is myn auto. Diel 2

As jo ​​in API ûntwikkelje of in API hacke, kin de soarte fan duplikaasje fan ynformaasje dy't wy yn dizze URL sjogge in boarne fan flaters wêze. Yn dit gefal kinne API-bugs harsels op fjouwer ferskillende manieren manifestearje.

Konferinsje DEFCON 27. Jo auto is myn auto. Diel 2

As jo ​​sjogge op gefallen 2 en 3, sketst yn read, kinne jo sjen direkte ferwizings nei it foarwerp. Yn beide gefallen kontrolearret it systeem net oft jo autorisearre binne om it kommando út te fieren. Ik besocht gefal 2 en it wurke net, wat oer gefal 3? Hjir moatte wy gewoan de USER_EMAIL akkount-ID ferfange yn 'e URL, om't it direkt relatearre is oan it ACCOUNT_ID-akkount-ID. Earder brûkten wy it akkount-ID fan it slachtoffer, mar no brûke wy it akkount fan 'e oanfaller. Dat ik brûkte de account-ID fan 'e hacker en de apparaat-ID fan it slachtoffer, stjoerde it kommando en krige nei ferwachting in kommandostatus "200 OK" en krige kontrôle oer de MyCar-app.
Dat, mei trije ferskillende oanfalvektoren, koene wy ​​alles dwaan wat in legitime brûker fan 'e applikaasje koe dwaan. Dit betsjut dat jo elke auto yn 'e stêd kinne fine, har merk en model ynstelle yn' e applikaasje, en dan de auto op ôfstân ûntsluten en it starten. Wy kinne it alaarm útsette of ynskeakelje, wizigingen oanmeitsje yn it servicemenu fan 'e auto en de status fan elk kommando kontrolearje. En dit alles kin dien wurde op trije ferskillende manieren.

Konferinsje DEFCON 27. Jo auto is myn auto. Diel 2

It is fanselssprekkend dat de MyCar-ûntwikkelders besochten de systeembugs op ien of oare manier te reparearjen. Dat, yn it gefal fan hurdkodearre wachtwurden, sette se gewoan in reverse proxy foar de applikaasje om de bewiisbrieven te ferbergjen dy't wurde brûkt foar autorisaasje. It probleem is dat omkearde proxy's gjin magy binne en alle problemen net kinne reparearje. Se bewarre de SQL-ynjeksje yn in tsjinst fan tredden, sadat ik sels sûnder wachtwurd it noch kin brûke fia de proseduere foar ferifikaasje fan brûkers.

Konferinsje DEFCON 27. Jo auto is myn auto. Diel 2

Ik besleat om in tichterby te sjen nei de URL-struktuer. Jo hawwe miskien opfallen dat alle adressen brûkt troch it systeem m2m befetsje. Beslútend dat dit in soarte fan ynterne ynteraksje wie foar it autorisaasjemeganisme yn 'e MyCar-applikaasje, ynfierde ik dizze brieven yn Google en ûntduts de M2M Suite-webside. It iennichste wat jo kinne dwaan as jo dit formulier sjogge is in pear inkele sitaten yn te pleatsen en te sjen wat der bart. Wat sil barre is dat jo de winske SQL-ynjeksje krije (publyksapplaus).

Konferinsje DEFCON 27. Jo auto is myn auto. Diel 2

Konferinsje DEFCON 27. Jo auto is myn auto. Diel 2

En dit komt ferskate moannen nei't de ûntwikkelders in probleem rapporteare mei SQL-ynjeksje. As in app problemen lykas dit hat, moat it sa gau mooglik reparearre wurde, mar sa't jo sjen kinne, hawwe de ûntwikkelders neat dien. Ik fyn dit soarte fan minachting foar brûkers beledigend.

De MyCar-module hat in GPS-ienheid, sadat it de lokaasje fan jo auto kin folgje en it werjaan yn 'e applikaasje. Mar, sa die bliken, bewarje se net allinich de hjoeddeistige lokaasje fan 'e auto's. Se bewarje in protte ynformaasje, folle mear dan nedich is om de hjoeddeistige lokaasje fan in auto by te hâlden. Yn myn gefal, mear dan 13 dagen fan it brûken fan de applikaasje, se sammele in bytsje minder dan twa tûzen geolokaasje punten fan de plakken myn auto besocht. It privacybelied fan it MyCar-ûntwikkeldersbedriuw seit gjin wurd oer sa'n kolleksje fan ynformaasje.

It wurdt lykwols noch slimmer. Jo kinne stelle dat dit gewoan in sydseffekt is fan 'e ymplemintaasje fan lokaasjetsjinsten. Mar it ding is, ynstee fan gewoan in list te meitsjen mei plakken wêr't jo auto nei giet, brûke se in oare API dy't dizze gegevens analysearret en bepaalt wêr't jo auto it meast nei giet. Nochris, nei myn witten, is d'r gjin hint fan sa'n funksje yn it privacybelied. Miskien is dit net sa ferrassend, om't ik nei in ton fan sykjen it memmebedriuw fan MyCar mei de namme Procon Analytics fûn, gie nei har webside en besocht de FAQ-seksje. Hjir kaam ik de fraach tsjin: "Hoe garandearje jo gegevensfeiligens?" It antwurd fan it bedriuw wie: "Yn tsjinstelling ta iepenbiere wolken dy't konkurrearje om prioriteit yn gegevensopslach, brûkt Procon Analytics syn eigen firtuele wolk, dy't eksklusyf wurdt brûkt foar brûkers fan ús applikaasje en wurdt beskerme tsjin ynterferinsje troch oare brûkers. Dit is in spesjale wolkomjouwing mei in hege graad fan feiligens, dy't soarget foar maklike beskikberens en snelheid fan tsjinstferliening. Troch gearwurking mei Procon Analytics kinne jo der wis fan wêze dat jo gegevens feilich beskerme binne. Ik wit net iens wat ik hjirop moat sizze ...

Konferinsje DEFCON 27. Jo auto is myn auto. Diel 2

As jo ​​​​nei har Facebook-side gean, kinne jo noch nijsgjirrigere dingen fine. Hjir skriuwe se gewoan: "It beskermjen fan ynformaasje oer jo auto is essensjeel!" No, ik kin it allinnich mar iens wêze mei sa'n útspraak.

Dus, werom nei de fraach wêrmei't ik begon: "Hoe bart dit en hoe kin it foarkommen wurde"? En noch wichtiger, hoe kinne wy ​​as mienskip foarkomme dat dit bart?

Dit slút myn ferslach ôf, mar ik sil noch wol in pear fragen beäntwurdzje kinne (publyksapplaus).

Freegje jo as se alles reparearje? Op dit punt tink ik dat se alle bugs hawwe reparearre dy't ik har rapportearre, mei útsûndering fan de gebreken yn privacybelied dy't ik oan 'e ein fan it petear neamde. De lêste kear dat ik it kontrolearre, wie alles net feroare. Op 'e fraach oft ik de parameters fan' e elektroanyske motorkontrôle-ienheid (ECU) fan 'e auto op in fergelykbere manier kin bewurkje, sil ik antwurdzje dat myn taak wie om de parameters fan' e auto allinich te bewurkjen yn 'e MyCar-applikaasje. It bewarret in digitale fertsjintwurdiging fan it auto dy't wurdt bewurke fia direkte objekt tagong, SQL-ynjeksje, of oare oanfalsvektor.

De lêste fraach is: haw ik in keyless motor start systeem yn myn auto mei de "Start" knop en wat is de situaasje mei it stjoer slot yn dit gefal? Myn antwurd is dat MyCar sa'n knop hat, dus dit systeem hat gjin stjoerslot. Ik tink dat as jo ynstallearje dit systeem, do silst net by steat wêze om te fertrouwe op it stjoer slot.

Guon advertinsjes 🙂

Tankewol foar it bliuwen by ús. Hâld jo fan ús artikels? Wolle jo mear ynteressante ynhâld sjen? Stypje ús troch in bestelling te pleatsen of oan te befeljen oan freonen, wolk VPS foar ûntwikkelders fan $ 4.99, in unike analoog fan servers op yngongsnivo, dy't troch ús foar jo útfûn is: De hiele wierheid oer VPS (KVM) E5-2697 v3 (6 Cores) 10GB DDR4 480GB SSD 1Gbps fan $19 of hoe te dielen in tsjinner? (beskikber mei RAID1 en RAID10, oant 24 kearnen en oant 40GB DDR4).

Dell R730xd 2 kear goedkeaper yn Equinix Tier IV data sintrum yn Amsterdam? Allinne hjir 2 x Intel TetraDeca-Core Xeon 2x E5-2697v3 2.6GHz 14C 64GB DDR4 4x960GB SSD 1Gbps 100 TV fan $199 yn Nederlân! Dell R420 - 2x E5-2430 2.2Ghz 6C 128GB DDR3 2x960GB SSD 1Gbps 100TB - fan $99! Lêze oer Hoe kinne jo Infrastructure Corp. klasse mei it brûken fan Dell R730xd E5-2650 v4 tsjinners wurdich 9000 euro foar in penny?

Boarne: www.habr.com

Add a comment