Í lok myndbandsins heyrði maður smell - þetta er aflæsing vélrænna stýrislásinns, sem við getum ekki farið framhjá með rafeindatækni. Þú verður að nota eitthvað vélrænt, brjóta láshólkinn í höndunum eða gera eitthvað svipað, sem ég ætlaði ekki að gera við bílinn hennar. Allur fastbúnaður sem sýndur er í þessum myndböndum verður fáanlegur á GitHub eftir ræðuna mína, svo farðu bara á slóðina á glærunni og halaðu niður OpenRemoteStart skránni.
Við skulum tala um hvað nákvæmlega gerist þegar við bætum internetinu við þetta kerfi, því það verður að vera gott fyrir okkur, ekki satt? Eins og ég sagði keypti ég fjarstýringareiningu sem heitir MyCar. Hann kemur í ýmsum breytingum, ég átti Linkr LT-1 módelið.

MyCar er bara vörumerki og slíkar einingar eru seldar undir nöfnunum Linkr LT-1, MyCar KIA, Visions MyCar, Carlink (CL6) o.fl. Eins og það kemur í ljós hafa KIA umboð í Kanada um nokkurt skeið verið að setja upp þetta kerfi, eða að minnsta kosti app sem heitir MyCar KIA, á bíla sína. Athyglisvert er að þetta app er ekki lengur hægt að hlaða niður í AppStore. Ég vil líka taka það fram að ég valdi Fortin og MyCar vörur, en samkvæmt umsögnum notenda á þemaspjallborðum sjálfstætt starfandi bílaviðvörunar, hegða önnur kerfi ekki betur og eiga við svipuð vandamál að stríða.
Ég er með mikilvæga spurningu: Hvers vegna selur eftirmarkaður bílaviðvörunarmarkaður vöru með öryggisvandamál og engum er sama? Þess vegna, ef einhver ykkar hefur áhuga á fjarræsikerfi, gaum að nokkrum mikilvægum aðstæðum. Í fyrsta lagi, eins og ég nefndi áðan, ef DS kerfið er ekki rétt uppsett á bíl með beinskiptingu, þá er alveg mögulegt að eftir að vélin er fjarræst muni bíllinn einfaldlega keyra án ökumanns ef einhver gír er settur í skiptinguna. . Það er mjög hættulegt. Önnur hættan er sú að ef einhver leggur bíl í áföstum bílskúr og kveikir óvart á vélinni fjarstýrt gæti hann kafnað úr uppsöfnuðu kolmónoxíði. Þannig að ef þú ert með CO kerfi og meðfylgjandi bílskúr ættirðu örugglega að hafa kolmónoxíðskynjara.
Ef þú notar DS kerfi skaltu aldrei reyna að ræsa vél bílsins þíns án þess að vita nákvæmlega hvar hún er, því afleiðingarnar geta verið hörmulegar.
Устройство MyCar, маленькая черная коробочка с двумя выходящими из нее проводками, имеет 8 портов, два из которых предназначены для интерфейса отладчика. Подключение к этому интерфейсу показало, что устройство работает под управлением Linux, о чем производитель умалчивает. Попасть в оболочку прошивки элементарно с помощью пароля oelinux 123, но вы можете и без входа в систему использовать АЕ Engine, который позволяет вводить AT-команды из командной строки, в том числе команду изменить IP-адрес устройства, с которым связывается данный модуль.

Ef við skoðum línurnar hér að neðan getum við séð IP tölu netþjónsins sem MyCar einingin fær uppfærslur á fastbúnaðarbúnað frá. Tækið er búið L-tengi, sem gerir þér kleift að „hlusta“ á skipanir sem einingin fær. Með því að nota AE Engine og breyta IP pöruðu tækisins gat ég komist að því að þetta tæki hefði samskipti við DS með því að nota ódulkóðuðu UDP samskiptareglur.
Ég hef ekki skoðað það of mikið, en mér finnst þetta ansi merkileg og áhugaverð staðreynd. Ef þú hefur áhuga á frekari upplýsingum um þetta tæki skaltu skoða þessa glæru - hún sýnir 3,3V aflgjafaspennu, gagnaflutningshraða upp á 115200 baud, vistfang netþjóns til að uppfæra fastbúnaðinn, rótarlykilorð og tengil í notendahandbókina.

Tækið þolir hærri framboðsspennu.
Eins og ég sagði þá er frekar kalt hérna. Um það bil mánuði eftir að ég gaf kærustunni minni þetta kerfi ákvað ég að taka eininguna út úr bílnum og láta hana ganga vel. Staðreyndin er sú að allan þennan mánuð hef ég verið að ýta frá mér hugsunum um varnarleysi þessa tækis. Þeir spáðu hitastigi niður í -30F° fyrir næstu viku, svo ég varð að flýta mér. Ég tengdist skelinni og fékk hana til að virka, en þar sem farsímamóttakan á heimilisstofunni minni er ekki mjög góð ákvað ég að vinna með kassann í annarri tölvu. FTDI einingin sem ég nota er með stuttri snúru þannig að ég fann lengri snúru, tengdi hana í DS eininguna, tengdi hana í tölvuna og um leið og ég kveikti á henni byrjaði einingin mín að reykja!
Lærdómurinn sem má draga af þessu er: ef þú ert að hakka vélbúnað, hafðu þá varaeiningu tilbúinn! Kærastan mín orðaði siðferðiskennd sögunnar á þessa leið: Ef félagi þinn er tölvuþrjótur, ekki láta hann leika sér með jólagjafirnar þínar! Nú skulum við líta á hugbúnaðinn, ég held að ekkert muni reykja hér.

Ég ræsti mann-í-miðju umboðsmann, slökkti á SSL-staðfestingu í símanum mínum og horfði á hvaða umferð appið sendi til bakendans. Við skráningu tók ég eftir því að kerfið tók netfangið mitt og sendi það á vefþjónustuna til að ganga úr skugga um að heimilisfangið væri tengt við núverandi reikning. Það er athyglisvert að kerfið notaði Basic Authentication vegna þess að ég hafði ekki stofnað reikning ennþá. Ég vissi ekki hvað ég ætti að gera við þessar upplýsingar, svo ég skrifaði þær bara niður í minnisbók og hélt áfram. Ég stofnaði reikninginn minn og skráði mig inn og það fyrsta sem forritið gerir við innskráningu er að hringja í vefþjónustu til að staðfesta núverandi notanda. Svo ég hringdi einfaldlega í þennan vefþjón með þeim skilríkjum sem ég hafði séð áður, sem voru notuð til að athuga hvort netfangið mitt væri til, og fékk Mycar Admin aðgang sem svar.

Ég efaðist um að þetta væri raunverulegur kerfisstjórareikningur vegna þess að þrátt fyrir að hljóma hátt hafði hann lítil réttindi. Enda þekkjum við öll svona fólk.
Þess vegna bý ég til aðra beiðni - EngineStart skipunina, til að ræsa bílinn frá þessum reikningi, smelltu á "Senda", færð skipunarstöðuna sem svar - "200 OK", og eftir um það bil þrjár sekúndur byrjar bíllinn minn að hreyfast.

Eins og það kemur í ljós var Mycar Admin reikningurinn örugglega admin reikningur sem var harður kóðaður í farsímaforritið. En það er ekki allt. Á einni af fyrri glærunum sástu eitthvað sem hét API lykil. Aftur, frá því að fylgjast með fölsuðum proxy-miðlaraumferð minni, lærði ég að hægt er að nota þessa API lykla í stað notendanafns og lykilorðs. Ef þú notar "API" sem notandanafn og einn af þessum lyklum geturðu auðkennt notandann.

Svo ég afritaði innihald „APIKey“ línunnar, límdi það inn í lykilorðslínuna í POST forritinu og smellti á „Senda“ hnappinn.

Það virkaði hins vegar ekki og ég gat ekki fundið út hvers vegna í langar 5 mínútur. Að lokum rann það upp fyrir mér að ég gleymdi að fjarlægja gæsalappirnar og kommu í afritaða API lyklinum, sem er það sem mér var sagt: „Þú gerðir mistök í SQL setningafræðinni. Mér varð ljóst að þú gætir einfaldlega notað grunn SQL innspýtingu til að komast framhjá öllu innskráningarferlinu og gerast stjórnandi eða hvaða notandi sem þú vilt. Ég held að enginn hafi nokkurn tíma reynt að stela bíl með SQL innspýtingu, svo við skulum prófa það.


Almennt skráði ég mig inn á reikninginn minn, smellti á „Senda“ og fékk stöðuna „200 OK“ sem svar. Í þetta skiptið datt mér í hug að taka upp myndband. Það er svolítið dimmt því ég var að taka upp seint á kvöldin úr skrifstofuglugganum mínum. Svo ég slá inn skipunina og þú sérð í gegnum gluggann að aðalljós bílsins blikka í garðinum fyrir neðan. Fyrst er ljós þeirra veikt, en svo fara aðalljósin að skína af fullum krafti - þetta er vélin sem kveikir á. Svo ég ræsti bílinn með því að nota SQL innspýtingu (áhorfendur klappa).
En það er ekki allt. SQL innspýting er ekki aðeins hægt að nota til heimildar heldur einnig til að skipta um aðrar breytur eins og vefslóð, færibreytur fyrirspurnarstrengs osfrv. Reyndar notar þetta kerfi SQL innspýtingar alls staðar. Þegar við skoðum villuboðin getum við séð að það sem við sláum inn sem lykilorð er borið beint saman við lykilorðsdálkinn í gagnagrunninum.

Þetta þýðir að þeir nota einföld texta lykilorð í SQL innspýting. Eins og þeir segja, "þetta er alls ekki gott, og jafnvel mjög slæmt!" En nóg um SQL, við skulum sjá hvað annað þú getur gert til að fjarræsa bílinn þinn. Þú sendir einfaldlega „EngineStart“ skipunina og sem svar færðu heiltöluauðkenni sem táknar auðkenni þessarar skipunar, í þessu tilviki er það ID = 3. Þegar þú þekkir auðkennið geturðu „dragið“ þjónustu sem mun tilkynna stöðu þessa skipunar. skipun.

Þannig að með því að auka eða lækka auðkennisgildið er ég að "draga" stöðu hvaða skipunar sem hefur einhvern tíma verið send á það kerfi.

Það er samt ekkert sérstaklega áhugavert við það og ég velti því fyrir mér hvort hér sé beint tilvísun í hlut sem ég get notað til að ræsa bílinn minn. Svo ég keyrði "EngineStart" skipunina sem lögmætur notandi af reikningnum mínum og reyndi síðan að hringja í hann í gegnum reikning annars notanda, sem ætti ekki að hafa aðgang að kerfinu. Sem svar fékk ég villuboð: „Þessi reikningur er ekki í samhengi við stigveldið. Svo, kannski mun þessi reiðhestur aðferð ekki virka. Hins vegar, ef þú skoðar þetta API, muntu sjá að það afritar upplýsingar - netfang notandans er varpað á auðkenni reiknings hans.

Ef þú ert að þróa API eða að hakka inn API getur sú tegund af fjölföldun upplýsinga sem við sjáum á þessari vefslóð verið uppspretta villna. Í þessu tilviki geta API villur komið fram á fjóra mismunandi vegu.

Ef þú skoðar tilvik 2 og 3, útlistuð með rauðu, getur þú séð beinar tilvísanir í hlutinn. Í báðum tilfellum athugar kerfið ekki hvort þú hafir heimild til að framkvæma skipunina. Ég prófaði tilfelli 2 og það virkaði ekki, hvað með tilfelli 3? Hér verðum við bara að skipta um USER_EMAIL reikningsauðkennið í vefslóðinni þar sem það er beint tengt ACCOUNT_ID reikningsauðkenninu. Áður notuðum við reikningskenni fórnarlambsins en nú notum við reikning árásarmannsins. Þannig að ég notaði auðkenni tölvuþrjótarans og auðkenni tækjabúnaðar fórnarlambsins, sendi skipunina og fékk væntanlega „200 OK“ skipanastöðu og náði stjórn á MyCar appinu.
Þannig að með þremur mismunandi árásarvektorum gátum við gert allt sem lögmætur notandi forritsins gat gert. Þetta þýðir að þú getur fundið hvaða bíl sem er í borginni, stillt tegund hans og gerð í forritinu og síðan fjarlæst bílnum og ræst hann. Við getum slökkt eða kveikt á vekjaranum, gert breytingar á þjónustuvalmynd bílsins og athugað stöðu hvaða skipunar sem er. Og allt þetta er hægt að gera á þrjá mismunandi vegu.

Það er augljóst að MyCar forritararnir reyndu að laga kerfisvillurnar á einhvern hátt. Svo, þegar um er að ræða harðkóðaða lykilorð, setja þeir einfaldlega öfugt umboð fyrir framan forritið til að fela skilríkin sem eru notuð fyrir heimild. Vandamálið er að öfug umboð eru ekki galdur og geta ekki lagað öll vandamál. Þeir geymdu SQL innspýtingu í þjónustu þriðja aðila þannig að jafnvel án lykilorðs get ég samt notað hana í gegnum notendastaðfestingarferlið.

Ég ákvað að skoða slóð uppbygginguna betur. Þú gætir hafa tekið eftir því að öll heimilisföng sem kerfið notar innihalda m2m. Þegar ég ákvað að þetta væri einhvers konar innri víxlverkun fyrir heimildarkerfið í MyCar forritinu, færði ég þessi bréf inn á Google og uppgötvaði M2M Suite vefsíðuna. Það eina sem þú getur gert þegar þú sérð þetta eyðublað er að setja nokkrar stakar tilvitnanir þarna inn og sjá hvað gerist. Það sem mun gerast er að þú færð þá SQL innspýtingu sem þú vilt (áhorfendur klappa).


Og þetta kemur nokkrum mánuðum eftir að verktaki tilkynnti um vandamál með SQL innspýtingu. Ef app lendir í vandræðum sem þessum þarf að laga það eins fljótt og auðið er, en eins og þú sérð hafa verktaki ekki gert neitt. Mér finnst svona lítilsvirðing við notendur móðgandi.
MyCar einingin er með GPS einingu þannig að hún getur fylgst með staðsetningu bílsins þíns og sýnt hana í forritinu. En eins og það kom í ljós geyma þeir ekki aðeins núverandi staðsetningu bílanna. Þeir geyma helvítis mikið af upplýsingum, miklu meira en þarf til að halda utan um staðsetningu bíls. Í mínu tilfelli, yfir 13 daga notkun forritsins, söfnuðu þeir aðeins minna en tvö þúsund landfræðilegum staðsetningarpunktum á þeim stöðum sem bíllinn minn heimsótti. Persónuverndarstefna MyCar þróunarfyrirtækisins segir ekki orð um slíka söfnun upplýsinga.
Það versnar þó enn. Þú gætir haldið því fram að þetta sé bara hliðaráhrif útfærslu staðsetningarþjónustunnar. En málið er að í stað þess að búa bara til lista yfir staði sem bíllinn þinn fer á, nota þeir annað API sem greinir þessi gögn og ákvarðar staðina sem bíllinn þinn fer oftast á. Aftur, að mínu viti, er engin vísbending um slíkan eiginleika í persónuverndarstefnunni. Kannski kemur þetta ekki svo á óvart því eftir heilmikla leit fann ég móðurfyrirtæki MyCar sem heitir Procon Analytics, fór á vefsíðu þeirra og heimsótti FAQ hlutann. Hér rakst ég á spurninguna: "Hvernig tryggir þú gagnaöryggi?" Viðbrögð fyrirtækisins voru: „Ólíkt opinberum skýjum sem keppa um forgang í gagnageymslu notar Procon Analytics sitt eigið sýndarský sem er eingöngu notað fyrir notendur forritsins okkar og er varið fyrir truflunum frá öðrum notendum. Þetta er sérstakt skýjaumhverfi með miklu öryggi sem tryggir auðvelt aðgengi og hraða þjónustuafhendingar. Með því að vera í samstarfi við Procon Analytics geturðu verið viss um að gögnin þín séu tryggilega vernduð. ég veit ekki einu sinni hvað ég á að segja við þessu...

Ef þú ferð á Facebook síðuna þeirra geturðu komist að enn áhugaverðari hlutum. Hér skrifa þeir einfaldlega: „Það er mikilvægt að vernda upplýsingar um ökutækið þitt! Jæja, ég get bara verið sammála slíkri fullyrðingu.
Svo, aftur að spurningunni sem ég byrjaði með: "Hvernig gerist þetta og hvernig er hægt að forðast það"? Og það sem meira er, hvernig getum við sem samfélag komið í veg fyrir að þetta gerist?
Þetta lýkur skýrslu minni, en ég mun samt geta svarað nokkrum spurningum (áhorfendur klappa).
Ertu að spyrja hvort þeir hafi reddað öllu? Á þessum tímapunkti held ég að þeir hafi lagað allar villur sem ég tilkynnti þeim, að undanskildum persónuverndarstefnugöllunum sem ég nefndi í lok ræðunnar. Síðast þegar ég athugaði það var allt óbreytt. Þegar ég er spurður hvort ég geti breytt breytum rafeindahreyflastýringareininga (ECU) bílsins á svipaðan hátt, mun ég svara því að verkefni mitt hafi verið að breyta breytum bílsins eingöngu í MyCar forritinu. Það geymir stafræna framsetningu ökutækisins sem er breytt með beinum aðgangi að hlutum, SQL innspýtingu eða öðrum árásarvektor.
Síðasta spurningin er: Er ég með lyklalaust vélræsikerfi í bílnum mínum með „Start“ takkanum og hvernig er staðan með stýrislásinn í þessu tilfelli? Mitt svar er að MyCar er með svona takka þannig að þetta kerfi er ekki með stýrislás. Mig grunar að ef þú setur þetta kerfi upp þá geturðu örugglega ekki treyst á stýrislásinn.

Nokkrar auglýsingar 🙂
Þakka þér fyrir að vera hjá okkur. Líkar þér við greinarnar okkar? Viltu sjá meira áhugavert efni? Styðjið okkur með því að leggja inn pöntun eða mæla með því við vini, , einstök hliðstæða upphafsþjóna, sem var fundið upp af okkur fyrir þig: (fáanlegt með RAID1 og RAID10, allt að 24 kjarna og allt að 40GB DDR4).
Dell R730xd 2x ódýrari í Equinix Tier IV gagnaveri í Amsterdam? Aðeins hér í Hollandi! Dell R420 - 2x E5-2430 2.2Ghz 6C 128GB DDR3 2x960GB SSD 1Gbps 100TB - frá $99! Lestu um
Heimild: www.habr.com
