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.
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.
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.
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.
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.
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.
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.
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ā.
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.
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Ä.
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.
TÄtad, palielinot vai samazinot ID vÄrtÄ«bu, es "velku" statusu jebkurai komandai, kas jebkad ir nosÅ«tÄ«ta Å”ajÄ sistÄmÄ.
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.
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.
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.
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.
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).
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...
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,
Dell R730xd 2x lÄtÄk Equinix Tier IV datu centrÄ AmsterdamÄ? Tikai Å”eit
Avots: www.habr.com