Konference DEFCON 27. Jūsu automaŔīna ir mana automaŔīna. 2. daļa

Konference DEFCON 27. Jūsu automaŔīna ir mana automaŔīna. 1. daļa

Videoklipa beigās dzirdēts klikŔķis ā€“ tā ir mehāniskās stÅ«res slēdzenes atbloÄ·Ä“Å”ana, kuru nevaram apiet, izmantojot elektroniku. Jāizmanto kaut kas mehānisks, ar roku jāsalauž slēdzenes cilindrs vai jādara kaut kas lÄ«dzÄ«gs, ko es negrasÄ«jos darÄ«t ar viņas maŔīnu. Visa Å”ajos videoklipos demonstrētā programmaparatÅ«ra pēc manas runas bÅ«s pieejama vietnē GitHub, tāpēc vienkārÅ”i dodieties uz URL slaidā un lejupielādējiet OpenRemoteStart failu.

Parunāsim par to, kas tieÅ”i notiek, kad Å”ai sistēmai pievienojam internetu, jo tam ir jābÅ«t mums par labu, vai ne? Kā jau teicu, es iegādājos tālvadÄ«bas signalizācijas vadÄ«bas moduli ar nosaukumu MyCar. Ir dažādas modifikācijas, man bija Linkr LT-1 modelis.

Konference DEFCON 27. Jūsu automaŔīna ir mana automaŔīna. 2. daļa

MyCar ir tikai zÄ«mols un Ŕādi moduļi tiek pārdoti ar nosaukumiem Linkr LT-1, MyCar KIA, Visions MyCar, Carlink (CL6) utt. Kā izrādās, jau kādu laiku KIA dÄ«leru saloni Kanādā savās automaŔīnās uzstāda Å”o sistēmu vai vismaz lietotni MyCar KIA. Interesanti, ka Ŕī lietotne vairs nav pieejama lejupielādei vietnē AppStore. Vēlos arÄ« atzÄ«mēt, ka izvēlējos Fortin un MyCar produktus, taču saskaņā ar lietotāju atsauksmēm tematiskajos forumos par ārÅ”tata automaŔīnu signalizāciju citas sistēmas nedarbojas labāk un tām ir lÄ«dzÄ«gas problēmas.

Man ir svarÄ«gs jautājums: kāpēc pēcpārdoÅ”anas automaŔīnu signalizācijas tirgÅ« tiek pārdots produkts ar droŔības problēmām, un tas nevienu neinteresē? Tāpēc, ja kādu no jums interesē attālinātās startera sistēmas, pievērsiet uzmanÄ«bu pāris svarÄ«giem apstākļiem. Pirmkārt, kā jau minēju iepriekÅ”, ja DS sistēma nav pareizi uzstādÄ«ta automaŔīnai ar manuālo pārnesumkārbu, ir pilnÄ«gi iespējams, ka pēc dzinēja attālinātas iedarbināŔanas automaŔīna vienkārÅ”i brauks bez vadÄ«tāja, ja pārnesumkārbā ir ieslēgts kāds pārnesums. . Tas ir patieŔām bÄ«stami. Otrs apdraudējums ir tāds, ka, ja kāds novieto automaŔīnu piebÅ«vētā garāžā un nejauÅ”i no attāluma iedarbina dzinēju, viņŔ var nosmakt no uzkrātā tvana gāze. Tātad, ja jums ir CO sistēma un pievienota garāža, jums noteikti vajadzētu bÅ«t oglekļa monoksÄ«da detektoriem.

Ja izmantojat DS sistēmas, nekad nemēģiniet iedarbināt automaŔīnas dzinēju, precÄ«zi nezinot, kur tas atrodas, jo sekas var bÅ«t postoÅ”as.

MyCar ierÄ«cei, mazai melnai kastei, no kuras iziet divi vadi, ir 8 porti, no kuriem divi ir veltÄ«ti atkļūdotāja interfeisam. Pieslēdzoties Å”im interfeisam, tika parādÄ«ts, ka ierÄ«cē darbojas Linux, par ko ražotājs klusē. ProgrammaparatÅ«ras apvalkā ir viegli iekļūt, izmantojot oelinux 123 paroli, taču jÅ«s varat izmantot AE Engine bez pieteikÅ”anās, kas ļauj ievadÄ«t AT komandas no komandrindas, tostarp komandu mainÄ«t ierÄ«ces IP adresi, ar kuru Å”is modulis sazinās.

Konference DEFCON 27. Jūsu automaŔīna ir mana automaŔīna. 2. daļa

Ja skatāmies uz zemāk esoÅ”ajām rindiņām, mēs varam redzēt tā servera IP adresi, no kura MyCar modulis saņem programmaparatÅ«ras atjauninājumus. IerÄ«ce ir aprÄ«kota ar L-portu, kas ļauj ā€œklausÄ«tiesā€ moduļa saņemtās komandas. Izmantojot AE Engine un mainot pārÄ« savienotās ierÄ«ces IP, es varēju noteikt, ka Ŕī ierÄ«ce sazinās ar DS, izmantojot neÅ”ifrētu UDP protokolu.

Neesmu to pārāk daudz pētÄ«jis, bet, manuprāt, tas ir diezgan nozÄ«mÄ«gs un interesants fakts. Ja jÅ«s interesē plaŔāka informācija par Å”o ierÄ«ci, apskatiet Å”o slaidu - tajā redzams baroÅ”anas spriegums 3,3 V, datu pārraides ātrums 115200 XNUMX bodi, servera adrese programmaparatÅ«ras atjaunināŔanai, root parole un saite. uz lietotāja rokasgrāmatu.

Konference DEFCON 27. Jūsu automaŔīna ir mana automaŔīna. 2. daļa

IerÄ«ce var ā€œpaciestā€ lielāku baroÅ”anas spriegumu.

Kā jau teicu, Å”eit kļūst diezgan auksts. Apmēram mēnesi pēc tam, kad es uzdāvināju Å”o sistēmu savai draudzenei, es nolēmu izņemt ierÄ«ci no automaŔīnas un kārtÄ«gi pabraukt. Fakts ir tāds, ka visu Å”o mēnesi esmu atgrÅ«dis domas par Ŕīs ierÄ«ces ievainojamÄ«bu. Viņi prognozēja temperatÅ«ru lÄ«dz -30FĀ° nākamajai nedēļai, tāpēc man bija jāsteidzas. Es izveidoju savienojumu ar apvalku un ļāvu tam darboties, taču, tā kā Ŕūnu uztverÅ”ana manā mājas laboratorijā nav pārāk laba, es nolēmu strādāt ar kasti citā datorā. Manam izmantotajam FTDI blokam ir Ä«ss vads, tāpēc atradu garāku, iespraudu DS blokā, pieslēdzu datoram, un tiklÄ«dz ieslēdzu strāvu, mana iekārta sāka smēķēt!

No tā ir jāmācās: ja uzlaužat aparatÅ«ru, sagatavojiet rezerves ierÄ«ci! Mana draudzene stāsta morāli Ŕādi: ja tava otrā puse ir hakeris, neļauj viņam spēlēties ar tavām Ziemassvētku dāvanām! Tagad paskatÄ«simies uz programmatÅ«ru, domāju, ka te nekas nesmēķēs.

Konference DEFCON 27. Jūsu automaŔīna ir mana automaŔīna. 2. daļa

Es sāku starpniekserveri, atspējojos SSL verifikāciju savā tālrunÄ« un noskatÄ«jos, kādu trafiku lietotne nosÅ«ta uz aizmugursistēmu. ReÄ£istrējoties pamanÄ«ju, ka sistēma paņēma manu e-pasta adresi un nosÅ«tÄ«ja to tÄ«mekļa servisam, lai pārliecinātos, ka adrese ir saistÄ«ta ar esoÅ”u kontu. Interesanti, ka sistēma izmantoja pamata autentifikāciju, jo es vēl nebiju izveidojis kontu. Es nezināju, ko darÄ«t ar Å”o informāciju, tāpēc vienkārÅ”i pierakstÄ«ju to piezÄ«mju grāmatiņā un devos tālāk. Es izveidoju savu kontu un pieteicos, un pirmais, ko lietojumprogramma dara, piesakoties, ir izsaukt tÄ«mekļa pakalpojumu, lai pārbaudÄ«tu paÅ”reizējo lietotāju. Tāpēc es vienkārÅ”i piezvanÄ«ju Å”im tÄ«mekļa serverim, izmantojot iepriekÅ” redzētos akreditācijas datus, kas tika izmantoti, lai pārbaudÄ«tu, vai mana e-pasta adrese pastāv, un man tika pieŔķirta Mycar administratora piekļuve.

Konference DEFCON 27. Jūsu automaŔīna ir mana automaŔīna. 2. daļa

Es Å”aubÄ«jos, ka tas ir Ä«sts sistēmas administratora konts, jo, neskatoties uz to, ka tas skanēja skaļi, tam bija zemas privilēģijas. Galu galā mēs visi zinām Ŕādus cilvēkus.

Tāpēc es izveidoju vēl vienu pieprasÄ«jumu - komandu EngineStart, lai iedarbinātu automaŔīnu no Ŕī konta, noklikŔķiniet uz ā€œSÅ«tÄ«tā€, saņemu komandas statusu atbildē - ā€œ200 OKā€, un pēc apmēram trim sekundēm mana automaŔīna sāk kustēties.

Konference DEFCON 27. Jūsu automaŔīna ir mana automaŔīna. 2. daļa

Kā izrādās, Mycar Admin konts patieŔām bija administratora konts, kas tika iekodēts mobilajā lietotnē. Bet tas vēl nav viss. Vienā no iepriekŔējiem slaidiem redzējāt tādu lietu kā API atslēga. Atkal, pārraugot savu viltoto starpniekservera trafiku, es uzzināju, ka Ŕīs API atslēgas var izmantot lietotājvārda un paroles vietā. Ja kā lietotājvārdu un vienu no Ŕīm atslēgām izmantojat "API", varat autentificēt lietotāju.

Konference DEFCON 27. Jūsu automaŔīna ir mana automaŔīna. 2. daļa

Tāpēc es nokopēju rindas ā€œAPIKeyā€ saturu, ielÄ«mēju to POST lietojumprogrammas paroles rindā un noklikŔķināju uz pogas ā€œSÅ«tÄ«tā€.

Konference DEFCON 27. Jūsu automaŔīna ir mana automaŔīna. 2. daļa

Tomēr tas neizdevās, un es nevarēju saprast, kāpēc garas 5 minÅ«tes. Visbeidzot, es sapratu, ka aizmirsu noņemt pēdiņas un komatu no kopētās API atslēgas, kas man tika teikts: "JÅ«s pieļāvāt kļūdu SQL sintaksē." Man kļuva skaidrs, ka varat vienkārÅ”i izmantot pamata SQL injekciju, lai apietu visu pieteikÅ”anās procesu un kļūtu par administratoru vai jebkuru lietotāju, kuru vēlaties. Es domāju, ka neviens nekad nav mēģinājis nozagt automaŔīnu, izmantojot SQL injekciju, tāpēc pamēģināsim.

Konference DEFCON 27. Jūsu automaŔīna ir mana automaŔīna. 2. daļa

Konference DEFCON 27. Jūsu automaŔīna ir mana automaŔīna. 2. daļa

Kopumā es pieteicos savā kontā, noklikŔķināju uz "SÅ«tÄ«t" un atbildē saņēmu statusu "200 OK". Å oreiz izdomāju ierakstÄ«t video. Ir nedaudz tumÅ”s, jo es filmēju vēlu vakarā no sava biroja loga. Tātad, ievadu komandu, un pa logu redzi, ka lejā pagalmā mirgo maŔīnas lukturi. Sākumā to gaisma ir vāja, bet tad priekŔējie lukturi sāk spÄ«dēt ar pilnu jaudu - tas ir dzinēja ieslēgÅ”ana. Tātad, es iedarbināju automaŔīnu, izmantojot SQL injekciju (auditorijas aplausi).

Bet tas vēl nav viss. SQL injekciju var izmantot ne tikai autorizācijai, bet arÄ« citu parametru aizstāŔanai, piemēram, URL, vaicājuma virknes pamatteksta parametrus utt. PatiesÄ«bā Ŕī sistēma visur izmanto SQL injekcijas. AplÅ«kojot kļūdu ziņojumus, mēs varam redzēt, ka tas, ko mēs ievadām kā paroli, tiek salÄ«dzināts tieÅ”i ar paroles kolonnu datubāzē.

Konference DEFCON 27. Jūsu automaŔīna ir mana automaŔīna. 2. daļa

Tas nozÄ«mē, ka viņi SQL ievadē izmanto vienkārÅ”a teksta paroles. Kā saka: "tas nemaz nav labi un pat ļoti slikti!" Bet pietiekami daudz par SQL, redzēsim, ko vēl varat darÄ«t, lai attālināti iedarbinātu automaŔīnu. JÅ«s vienkārÅ”i nosÅ«tāt komandu ā€œEngineStartā€ un atbildē saņemat veselu identifikatoru, kas apzÄ«mē Ŕīs komandas identifikatoru, Å”ajā gadÄ«jumā tas ir ID = 3. Zinot identifikatoru, varat ā€œizvilktā€ pakalpojumu, kas ziņos par Ŕīs komandas statusu. komandu.

Konference DEFCON 27. Jūsu automaŔīna ir mana automaŔīna. 2. daļa

Tātad, palielinot vai samazinot ID vērtÄ«bu, es "velku" statusu jebkurai komandai, kas jebkad ir nosÅ«tÄ«ta Å”ajā sistēmā.

Konference DEFCON 27. Jūsu automaŔīna ir mana automaŔīna. 2. daļa

Tomēr tajā nav nekā Ä«paÅ”i interesanta, un es domāju, vai Å”eit ir tieÅ”a atsauce uz objektu, ko es varu izmantot, lai iedarbinātu savu automaŔīnu. Tāpēc es palaidu komandu "EngineStart" kā likumÄ«gs lietotājs no sava konta un pēc tam mēģināju to izsaukt, izmantojot cita lietotāja kontu, kuram nevajadzētu piekļūt sistēmai. Atbildot uz to, es saņēmu kļūdas ziņojumu: "Å is konts nav hierarhijas kontekstā." Tātad, iespējams, Å”is uzlauzums nedarbosies. Tomēr, ja paskatās uz Å”o API, jÅ«s redzēsit, ka tā dublē informāciju ā€” lietotāja e-pasta adrese ir saistÄ«ta ar viņa konta ID.

Konference DEFCON 27. Jūsu automaŔīna ir mana automaŔīna. 2. daļa

Ja izstrādājat API vai uzlaužat API, Å”ajā URL redzamā informācijas dublÄ“Å”anās var bÅ«t kļūdu avots. Å ajā gadÄ«jumā API kļūdas var izpausties četros dažādos veidos.

Konference DEFCON 27. Jūsu automaŔīna ir mana automaŔīna. 2. daļa

Ja paskatās uz 2. un 3. gadÄ«jumu, kas iezÄ«mēts sarkanā krāsā, jÅ«s varat redzēt tieÅ”as atsauces uz objektu. Abos gadÄ«jumos sistēma nepārbauda, ā€‹ā€‹vai jums ir tiesÄ«bas izpildÄ«t komandu. Es izmēģināju 2. gadÄ«jumu, bet tas nedarbojās, kā ar 3. gadÄ«jumu? Å eit mums vienkārÅ”i jāaizstāj USER_EMAIL konta ID, jo tas ir tieÅ”i saistÄ«ts ar ACCOUNT_ID konta ID. IepriekÅ” mēs izmantojām upura konta ID, bet tagad mēs izmantojam uzbrucēja kontu. Tāpēc es izmantoju hakera konta ID un upura ierÄ«ces ID, nosÅ«tÄ«ju komandu un saņēmu komandas statusu "200 OK" un ieguvu kontroli pār lietotni MyCar.
Tātad, izmantojot trÄ«s dažādus uzbrukuma vektorus, mēs varējām darÄ«t visu, ko varēja darÄ«t likumÄ«gs lietojumprogrammas lietotājs. Tas nozÄ«mē, ka jÅ«s varat atrast jebkuru automaŔīnu pilsētā, iestatÄ«t tās marku un modeli aplikācijā un pēc tam attālināti atbloķēt automaŔīnu un to iedarbināt. Mēs varam izslēgt vai ieslēgt signalizāciju, veikt izmaiņas automaŔīnas servisa izvēlnē un pārbaudÄ«t jebkuras komandas statusu. Un to visu var izdarÄ«t trÄ«s dažādos veidos.

Konference DEFCON 27. Jūsu automaŔīna ir mana automaŔīna. 2. daļa

Ir acÄ«mredzams, ka MyCar izstrādātāji mēģināja kaut kā novērst sistēmas kļūdas. Tāpēc cietkodētu paroļu gadÄ«jumā viņi vienkārÅ”i ievieto apgriezto starpniekserveri lietojumprogrammas priekŔā, lai paslēptu autorizācijai izmantotos akreditācijas datus. Problēma ir tā, ka reversie starpniekserveri nav maÄ£iski un nevar novērst visas problēmas. Viņi saglabāja SQL injekciju treŔās puses pakalpojumā, lai pat bez paroles es varētu to izmantot, veicot lietotāja verifikācijas procedÅ«ru.

Konference DEFCON 27. Jūsu automaŔīna ir mana automaŔīna. 2. daļa

Es nolēmu sÄ«kāk apskatÄ«t URL struktÅ«ru. Iespējams, esat ievērojuÅ”i, ka visas sistēmas izmantotās adreses satur m2m. Nolēmis, ka Ŕī ir sava veida iekŔēja mijiedarbÄ«ba ar MyCar lietojumprogrammas autorizācijas mehānismu, es ievadÄ«ju Å”os burtus Google un atklāju M2M Suite vietni. VienÄ«gais, ko varat darÄ«t, kad redzat Å”o veidlapu, ir ievietot pāris pēdiņas un redzēt, kas notiek. Kas notiks, ir tas, ka jÅ«s saņemsiet vēlamo SQL injekciju (auditorijas aplausi).

Konference DEFCON 27. Jūsu automaŔīna ir mana automaŔīna. 2. daļa

Konference DEFCON 27. Jūsu automaŔīna ir mana automaŔīna. 2. daļa

Un tas notiek vairākus mēneÅ”us pēc tam, kad izstrādātāji ziņoja par problēmu ar SQL injekciju. Ja lietotnei ir Ŕādas problēmas, tā ir jānovērÅ” pēc iespējas ātrāk, taču, kā redzat, izstrādātāji neko nav darÄ«juÅ”i. Manuprāt, Ŕāda lietotāju ignorÄ“Å”ana ir aizskaroÅ”a.

MyCar modulim ir GPS vienÄ«ba, lai tā varētu izsekot jÅ«su automaŔīnas atraÅ”anās vietai un parādÄ«t to lietojumprogrammā. Bet, kā izrādÄ«jās, viņi glabā ne tikai paÅ”reizējo automaŔīnu atraÅ”anās vietu. Tie glabā satriecoÅ”i daudz informācijas, daudz vairāk, nekā nepiecieÅ”ams, lai izsekotu automaŔīnas paÅ”reizējai atraÅ”anās vietai. Manā gadÄ«jumā 13 lietojumprogrammas lietoÅ”anas dienu laikā viņi uzkrāja nedaudz mazāk par diviem tÅ«kstoÅ”iem Ä£eogrāfiskās atraÅ”anās vietas punktu no vietām, kuras apmeklēja mana automaŔīna. MyCar izstrādātāju kompānijas privātuma politikā par Ŕādu informācijas vākÅ”anu nav teikts ne vārda.

Tomēr tas kļūst vēl sliktāk. JÅ«s varētu iebilst, ka tas ir tikai atraÅ”anās vietas pakalpojuma ievieÅ”anas blakusefekts. Taču tā vietā, lai izveidotu sarakstu ar vietām, uz kurām brauc jÅ«su automaŔīna, viņi izmanto citu API, kas analizē Å”os datus un nosaka vietas, uz kurām jÅ«su automaŔīna dodas visbiežāk. Atkal, cik man zināms, privātuma politikā nav mājienu par Ŕādu funkciju. VarbÅ«t tas nav tik pārsteidzoÅ”i, jo pēc ilgas meklÄ“Å”anas es atradu MyCar mātesuzņēmumu ar nosaukumu Procon Analytics, devos uz viņu vietni un apmeklēju sadaļu FAQ. Å eit es saskāros ar jautājumu: "Kā jÅ«s nodroÅ”inājat datu droŔību?" Uzņēmuma atbilde bija: ā€œAtŔķirÄ«bā no publiskajiem mākoņiem, kas sacenÅ”as par prioritāti datu glabāŔanā, Procon Analytics izmanto savu virtuālo mākoni, kas tiek izmantots tikai mÅ«su aplikācijas lietotājiem un ir aizsargāts no citu lietotāju iejaukÅ”anās. Å Ä« ir Ä«paÅ”a mākoņa vide ar augstu droŔības pakāpi, kas nodroÅ”ina ērtu pakalpojumu pieejamÄ«bu un ātrumu. Sadarbojoties ar Procon Analytics, varat bÅ«t pārliecināti, ka jÅ«su dati ir droÅ”i aizsargāti. Es pat nezinu, ko teikt par Å”o...

Konference DEFCON 27. Jūsu automaŔīna ir mana automaŔīna. 2. daļa

Ieejot viņu Facebook lapā, var uzzināt vēl interesantākas lietas. Å eit viņi vienkārÅ”i raksta: "Informācijas par jÅ«su transportlÄ«dzekli aizsardzÄ«ba ir ļoti svarÄ«ga!" Nu tādam apgalvojumam varu tikai piekrist.

Tātad, atgriežoties pie jautājuma, ar kuru sāku: ā€œKā tas notiek un kā no tā var izvairÄ«tiesā€? Un vēl svarÄ«gāk, kā mēs kā kopiena varam to novērst?

Ar to mans ziņojums ir noslēdzies, bet es joprojām varÄ“Å”u atbildēt uz pāris jautājumiem (auditorijas aplausi).

Vai jÅ«s jautājat, vai viņi visu salaboja? Å obrÄ«d es domāju, ka viņi ir izlabojuÅ”i visas kļūdas, par kurām es viņiem ziņoju, izņemot konfidencialitātes politikas trÅ«kumus, kurus minēju sarunas beigās. Kad pēdējo reizi to pārbaudÄ«ju, viss bija nemainÄ«gs. Uz jautājumu, vai lÄ«dzÄ«gā veidā varu rediģēt automaŔīnas elektroniskā dzinēja vadÄ«bas bloka (ECU) parametrus, atbildÄ“Å”u, ka mans uzdevums bija rediģēt automaŔīnas parametrus tikai MyCar aplikācijā. Tas saglabā transportlÄ«dzekļa digitālo attēlojumu, kas tiek rediģēts, izmantojot tieÅ”u piekļuvi objektam, SQL injekciju vai citu uzbrukuma vektoru.

Pēdējais jautājums ir: vai manā automaŔīnā ir bezatslēgas dzinēja iedarbināŔanas sistēma ar pogu ā€œStartā€ un kāda ir situācija ar stÅ«res bloÄ·Ä“Å”anu Å”ajā gadÄ«jumā? Mana atbilde ir tāda, ka MyCar ir tāda poga, tāpēc Å”ai sistēmai nav stÅ«res bloÄ·Ä“Å”anas. Man ir aizdomas, ka, uzstādot Å”o sistēmu, noteikti nevarēsiet paļauties uz stÅ«res slēdzeni.

Dažas reklāmas šŸ™‚

Paldies, ka palikāt kopā ar mums. Vai jums patīk mūsu raksti? Vai vēlaties redzēt interesantāku saturu? Atbalsti mūs, pasūtot vai iesakot draugiem, mākoņa VPS izstrādātājiem no 4.99 USD, unikāls sākuma līmeņa serveru analogs, ko mēs jums izgudrojām: Visa patiesība par VPS (KVM) E5-2697 v3 (6 kodoli) 10GB DDR4 480GB SSD 1Gbps no 19$ vai kā koplietot serveri? (pieejams ar RAID1 un RAID10, līdz 24 kodoliem un līdz 40 GB DDR4).

Dell R730xd 2x lētāk Equinix Tier IV datu centrā Amsterdamā? Tikai Å”eit 2x Intel TetraDeca-Core Xeon 2x E5-2697v3 2.6GHz 14C 64GB DDR4 4x960GB SSD 1Gbps 100 TV no 199$ NÄ«derlandē! Dell R420 ā€” 2x E5-2430 2.2 GHz 6C 128 GB DDR3 2x960 GB SSD 1 Gbps 100 TB ā€” no 99 USD! LasÄ«t par Kā izveidot infrastruktÅ«ras uzņēmumu klase ar Dell R730xd E5-2650 v4 serveru izmantoÅ”anu 9000 eiro par santÄ«mu?

Avots: www.habr.com

Pievieno komentāru