Conference DEFCON 27. Ang imong awto mao ang akong awto. Bahin 2

Conference DEFCON 27. Ang imong awto mao ang akong awto. Bahin 1

Sa katapusan sa video, nakadungog ka og usa ka pag-klik - kini ang pag-abli sa mekanikal nga lock sa manibela, nga dili namo malaktawan gamit ang electronics. Kinahanglan nga mogamit ka og mekanikal nga butang, gubaon ang silindro sa kandado pinaagi sa kamot, o buhaton ang susama, nga dili nako buhaton sa iyang awto. Ang tanan nga firmware nga gipakita niini nga mga video mahimong magamit sa GitHub pagkahuman sa akong pakigpulong, busa adto lang sa URL sa slide ug i-download ang OpenRemoteStart file.

Atong hisgotan kung unsa gyud ang mahitabo kung atong idugang ang Internet sa kini nga sistema, tungod kay kinahanglan kini nga maayo alang kanato, di ba? Sa akong giingon, mipalit ko og remote alarm control module nga gitawag og MyCar. Kini moabut sa lainlaing mga pagbag-o, ako adunay modelo nga Linkr LT-1.

Conference DEFCON 27. Ang imong awto mao ang akong awto. Bahin 2

Ang MyCar kay usa lang ka brand ug ang maong mga module gibaligya ubos sa mga ngalan nga Linkr LT-1, MyCar KIA, Visions MyCar, Carlink (CL6), etc. Ingon sa nahibal-an, sa makadiyot karon, ang mga dealership sa KIA sa Canada nag-install niini nga sistema, o labing menos usa ka app nga gitawag MyCar KIA, sa ilang mga awto. Makapainteres, kini nga app dili na magamit sa pag-download sa AppStore. Gusto usab nako nga timan-an nga gipili nako ang mga produkto sa Fortin ug MyCar, apan sumala sa mga pagsusi sa gumagamit sa mga tematik nga forum sa mga freelance nga mga alarma sa awto, ang ubang mga sistema dili molihok nga labi ka maayo ug adunay parehas nga mga problema.

Duna koy importante nga pangutana: Ngano nga ang merkado sa alarma sa awto sa aftermarket nagbaligya usa ka produkto nga adunay mga problema sa seguridad ug wala’y nagpakabana? Busa, kung adunay bisan kinsa kaninyo nga interesado sa mga remote starter system, pagtagad sa pipila ka importante nga mga kahimtang. Una, sama sa akong nahisgutan sa sayo pa, kung ang sistema sa DS dili husto nga na-install sa usa ka awto nga adunay manual transmission, posible nga pagkahuman sa pagsugod sa makina sa layo, ang awto magmaneho nga wala’y drayber kung adunay mga gamit sa transmission. . Kuyaw gyud. Ang ikaduha nga kapeligrohan mao nga kung adunay usa nga nagparking sa usa ka awto sa usa ka gilakip nga garahe ug wala tuyoa nga gipaandar ang makina sa layo, mahimo silang ma-suffocate tungod sa natipon nga carbon monoxide. Mao nga kung adunay ka sistema sa CO ug usa ka gilakip nga garahe, kinahanglan gyud nga adunay mga detektor sa carbon monoxide.

Kung mogamit ka sa mga sistema sa DS, ayaw pagsulay sa pagsugod sa makina sa imong awto nga wala nahibal-an kung asa kini, tungod kay ang mga sangputanan mahimong makadaot.

Ang MyCar device, usa ka gamay nga itom nga kahon nga adunay duha ka wire nga mogawas niini, adunay 8 ka mga pantalan, ang duha niini gipahinungod sa debugger interface. Ang pagkonektar sa kini nga interface nagpakita nga ang aparato nagpadagan sa Linux, diin ang tiggama nagpakahilom. Sayon nga makasulod sa firmware shell gamit ang oelinux 123 password, apan mahimo nimong gamiton ang AE Engine nga walay pag-log in, nga nagtugot kanimo sa pagsulod sa mga command sa AT gikan sa command line, lakip ang sugo nga usbon ang IP address sa device diin kini nga module nakigsulti.

Conference DEFCON 27. Ang imong awto mao ang akong awto. Bahin 2

Kon atong tan-awon ang mga linya sa ubos, atong makita ang IP address sa server diin ang MyCar module nakadawat og firmware updates. Ang himan adunay himan nga L-port, nga nagtugot kanimo sa "pagpaminaw" sa mga sugo nga nadawat sa module. Gamit ang AE Engine ug giusab ang IP sa gipares nga aparato, nahibal-an nako nga kini nga aparato nakigsulti sa DS gamit ang wala ma-encrypt nga protocol sa UDP.

Wala pa nako kini gitan-aw pag-ayo, apan sa akong hunahuna kini usa ka hinungdanon ug makapaikag nga kamatuoran. Kung interesado ka sa dugang nga kasayuran bahin sa kini nga aparato, tan-awa kini nga slide - nagpakita kini usa ka boltahe sa suplay sa kuryente nga 3,3V, usa ka rate sa pagbalhin sa data nga 115200 baud, usa ka adres sa server alang sa pag-update sa firmware, usa ka password sa ugat ug usa ka link. ngadto sa user manual.

Conference DEFCON 27. Ang imong awto mao ang akong awto. Bahin 2

Ang aparato mahimong "motugot" sa mas taas nga mga boltahe sa suplay.

Sa ako nang giingon, medyo tugnaw dinhi. Mga usa ka bulan pagkahuman nako gihatag kini nga sistema sa akong uyab, nakahukom ko nga kuhaon ang yunit gikan sa awto ug hatagan kini og maayo nga pagdagan. Ang tinuod mao nga niining bulana gisalikway nako ang mga hunahuna bahin sa pagkahuyang sa kini nga aparato. Gitagna nila ang temperatura nga muubos sa -30FΒ° alang sa sunod nga semana, mao nga kinahanglan kong magdali. Gikonektar nako ang kabhang ug gipaandar kini, apan tungod kay ang pagdawat sa cellular sa akong lab sa balay dili kaayo maayo, nakahukom ko nga gamiton ang kahon sa laing kompyuter. Ang yunit sa FTDI nga akong gigamit adunay usa ka mubo nga pisi, mao nga nakakita ako og usa ka mas taas, gisaksak kini sa DS unit, gisaksak kini sa kompyuter, ug sa diha nga akong gipalong ang kuryente, ang akong unit nagsugod sa pagpanigarilyo!

Ang leksyon nga makat-unan gikan niini mao: kung nag-hack ka sa hardware, pag-andam ug ekstrang unit! Gibutang sa akong uyab ang moral sa istorya niining paagiha: Kung ang imong kapikas usa ka hacker, ayaw siya pasagdi nga dulaon ang imong mga regalo sa Pasko! Karon atong tan-awon ang software, sa akong hunahuna walay manigarilyo dinhi.

Conference DEFCON 27. Ang imong awto mao ang akong awto. Bahin 2

Nagsugod ko og man-in-the-middle proxy, gi-disable ang pag-verify sa SSL sa akong telepono, ug gitan-aw kung unsa ang trapiko nga gipadala sa app sa backend. Sa dihang nagparehistro, akong namatikdan nga gikuha sa sistema ang akong email address ug gipadala kini sa serbisyo sa web aron masiguro nga ang adres nalangkit sa usa ka kasamtangan nga account. Makapaikag nga gigamit sa sistema ang Basic Authentication tungod kay wala pa ako makahimo og account. Wala ko kabalo unsa akong buhaton ani nga impormasyon, mao nga gisulat nalang nako sa notebook ug nagpadayon. Gibuhat nako ang akong account ug naka-log in, ug ang una nga butang nga gibuhat sa aplikasyon kung nag-log in mao ang pagtawag sa usa ka serbisyo sa web aron mapamatud-an ang karon nga tiggamit. Mao nga gitawag lang nako kini nga webserver nga adunay mga kredensyal nga akong nakita kaniadto, nga gigamit aron susihon kung naglungtad ba ang akong email address, ug gihatagan og access sa Mycar Admin isip tubag.

Conference DEFCON 27. Ang imong awto mao ang akong awto. Bahin 2

Nagduhaduha ako nga kini usa ka tinuod nga account sa tagdumala sa sistema tungod kay, bisan pa sa kusog nga tingog, kini adunay ubos nga mga pribilehiyo. Sa pagkatinuod, kitang tanan nakaila sa mga tawo nga sama niini.

Busa, naghimo ako og laing hangyo - ang EngineStart nga sugo, aron masugdan ang sakyanan gikan niini nga account, i-klik ang "Send", makadawat sa command status isip tubag - "200 OK", ug human sa mga tulo ka segundo ang akong sakyanan nagsugod sa paglihok.

Conference DEFCON 27. Ang imong awto mao ang akong awto. Bahin 2

Ingon nga kini nahimo, ang Mycar Admin account sa tinuud usa ka admin account nga gi-hardcode sa mobile app. Apan dili lang kana. Sa usa sa nangaging mga slide nakita nimo ang usa ka butang ingon usa ka yawe sa API. Usab, gikan sa pagmonitor sa akong peke nga proxy server nga trapiko, akong nakat-unan nga kini nga mga yawe sa API mahimong gamiton puli sa usa ka username ug password. Kung imong gamiton ang "API" isip username ug usa niini nga mga yawe, mahimo nimong mapamatud-an ang tiggamit.

Conference DEFCON 27. Ang imong awto mao ang akong awto. Bahin 2

Mao nga gikopya nako ang mga sulud sa linya nga "APIKey", gipapilit kini sa linya sa Password sa aplikasyon sa POST, ug gi-klik ang buton nga "Ipadala".

Conference DEFCON 27. Ang imong awto mao ang akong awto. Bahin 2

Bisan pa, wala kini molihok ug wala nako mahibal-an kung ngano sa taas nga 5 minuto. Sa katapusan, misantop sa akong hunahuna nga nakalimot ko sa pagtangtang sa mga kinutlo ug comma sa gikopya nga API key, nga mao ang gisulti kanako: "Nasayop ka sa SQL syntax." Nahimong tin-aw kanako nga mahimo nimong gamiton ang usa ka sukaranan nga SQL injection aron malaktawan ang tibuuk nga proseso sa pag-login ug mahimong usa ka administrador o bisan kinsa nga tiggamit nga gusto nimo. Sa akong hunahuna wala’y bisan kinsa nga nakasulay sa pagpangawat sa usa ka awto gamit ang SQL injection, busa sulayan naton kini.

Conference DEFCON 27. Ang imong awto mao ang akong awto. Bahin 2

Conference DEFCON 27. Ang imong awto mao ang akong awto. Bahin 2

Sa kinatibuk-an, naka-log in ko sa akong account, gi-klik ang "Send" ug nakadawat og "200 OK" nga status isip tubag. Niining higayona nakahunahuna ko nga magrekord og video. Medyo ngit-ngit kay gabii na kaayo ko nag-film sa bintana sa akong opisina. Busa, akong gisulod ang sugo, ug imong nakita sa bintana nga ang mga suga sa sakyanan nagkidlap sa nataran sa ubos. Sa sinugdan ang ilang kahayag huyang, apan unya ang mga headlight magsugod sa pagsidlak sa bug-os nga gahum - kini mao ang makina turns. Mao nga, gisugdan nako ang awto gamit ang SQL injection (palakpak sa mamiminaw).

Apan dili lang kana. Ang SQL injection mahimong magamit dili lamang alang sa pagtugot, apan usab sa pag-ilis sa ubang mga parameter sama sa URL, pangutana nga mga parameter sa lawas sa string, ug uban pa. Sa pagkatinuod, kini nga sistema naggamit sa SQL injections bisan asa. Sa pagtan-aw sa mga mensahe sa kasaypanan, atong makita nga ang atong gisulod isip password kay direkta nga itandi sa password column sa database.

Conference DEFCON 27. Ang imong awto mao ang akong awto. Bahin 2

Nagpasabot kini nga naggamit sila og yano nga mga password sa teksto sa SQL injection. Sama sa giingon nila, "dili gyud kini maayo, ug daotan kaayo!" Apan igo na bahin sa SQL, tan-awon nato kung unsa pa ang imong mahimo aron masugdan ang imong awto sa layo. Imo lang ipadala ang "EngineStart" nga sugo ug isip tubag makadawat ka og integer identifier nga nagrepresentar sa identifier niini nga command, sa kini nga kaso kini ID = 3. Nahibal-an ang identifier, mahimo nimong "pagbira" ang usa ka serbisyo nga magreport sa kahimtang niini. sugo.

Conference DEFCON 27. Ang imong awto mao ang akong awto. Bahin 2

Mao nga pinaagi sa pagdugang o pagkunhod sa kantidad sa ID, akong "gibira" ang kahimtang sa bisan unsang mando nga gipadala sa kana nga sistema.

Conference DEFCON 27. Ang imong awto mao ang akong awto. Bahin 2

Wala’y bisan unsa nga labi ka makapaikag bahin niini, bisan pa, ug naghunahuna ko kung adunay direkta nga paghisgot sa usa ka butang dinhi nga magamit nako aron masugdan ang akong awto. Mao nga gipadagan nako ang "EngineStart" nga mando ingon usa ka lehitimong tiggamit gikan sa akong account, ug dayon gisulayan nga tawagan kini pinaagi sa account sa lain nga tiggamit, nga wala’y access sa sistema. Agig tubag, nakadawat ako usa ka mensahe sa sayup: "Kini nga account wala sa konteksto sa hierarchy." Mao nga tingali kini nga hack dili molihok. Bisan pa, kung imong tan-awon kini nga API, imong makita nga kini nagdoble sa impormasyon - ang email address sa user gimapa sa ilang account ID.

Conference DEFCON 27. Ang imong awto mao ang akong awto. Bahin 2

Kung naghimo ka usa ka API o nag-hack sa usa ka API, ang klase sa pagdoble sa kasayuran nga among makita sa kini nga URL mahimong gigikanan sa mga sayup. Sa kini nga kaso, ang mga bug sa API mahimong magpakita sa ilang kaugalingon sa upat nga lainlaing mga paagi.

Conference DEFCON 27. Ang imong awto mao ang akong awto. Bahin 2

Kung imong tan-awon ang mga kaso 2 ug 3, nga gilatid sa pula, makita nimo ang direkta nga mga pakisayran sa butang. Sa duha nga mga kaso, ang sistema wala magsusi kung awtorisado ka nga ipatuman ang mando. Gisulayan nako ang case 2 ug wala kini nagtrabaho, unsa man ang kaso 3? Dinhi kinahanglan na lang nato ilisan ang USER_EMAIL account ID sa URL tungod kay kini direktang may kalabotan sa ACCOUNT_ID account ID. Kaniadto gigamit namo ang account ID sa biktima, apan karon among gigamit ang account sa tig-atake. Busa akong gigamit ang account ID sa hacker ug ang device ID sa biktima, gipadala ang command ug gilauman nga nakadawat og "200 OK" nga command status ug nakuha ang kontrol sa MyCar app.
Busa, uban sa tulo ka lain-laing mga atake vectors, nakahimo kami sa tanan nga mahimo sa usa ka lehitimong tiggamit sa aplikasyon. Kini nagpasabut nga makit-an nimo ang bisan unsang awto sa lungsod, itakda ang paghimo ug modelo niini sa aplikasyon, ug dayon i-unlock ang awto sa layo ug sugdi kini. Mahimo namon nga i-off o i-on ang alarma, maghimo mga pagbag-o sa menu sa serbisyo sa awto ug susihon ang kahimtang sa bisan unsang mando. Ug kining tanan mahimo sa tulo ka lainlaing paagi.

Conference DEFCON 27. Ang imong awto mao ang akong awto. Bahin 2

Dayag nga gisulayan sa mga developer sa MyCar nga ayohon ang mga bug sa sistema. Mao nga, sa kaso sa mga hardcoded nga password, nagbutang lang sila og reverse proxy sa atubangan sa aplikasyon aron itago ang mga kredensyal nga gigamit alang sa pagtugot. Ang problema mao nga ang mga reverse proxy dili salamangka ug dili makaayo sa tanan nga mga problema. Gitipigan nila ang SQL injection sa usa ka serbisyo sa ikatulo nga partido aron bisan kung wala’y password magamit gihapon nako kini pinaagi sa pamaagi sa pag-verify sa gumagamit.

Conference DEFCON 27. Ang imong awto mao ang akong awto. Bahin 2

Nakahukom ko nga susihon pag-ayo ang istruktura sa URL. Tingali namatikdan nimo nga ang tanan nga mga adres nga gigamit sa sistema adunay sulud nga m2m. Sa pagdesisyon nga kini usa ka matang sa internal nga interaksyon alang sa mekanismo sa pagtugot sa aplikasyon sa MyCar, akong gisulod kini nga mga sulat sa Google ug nadiskobrehan ang website sa M2M Suite. Ang bugtong butang nga mahimo nimo kung makita nimo kini nga porma mao ang pagbutang usa ka pares nga mga kinutlo didto ug tan-awa kung unsa ang mahitabo. Unsa ang mahitabo mao nga imong makuha ang gitinguha nga SQL injection (audience applause).

Conference DEFCON 27. Ang imong awto mao ang akong awto. Bahin 2

Conference DEFCON 27. Ang imong awto mao ang akong awto. Bahin 2

Ug kini moabut pipila ka mga bulan pagkahuman ang mga developer nagreport sa usa ka problema sa SQL injection. Kung ang usa ka app adunay mga problema nga sama niini, kini kinahanglan nga ayohon sa labing madali, apan ingon sa imong nakita, ang mga nag-develop wala’y nahimo. Akong nakita nga kini nga matang sa pagsalikway sa mga tiggamit nga makapasakit.

Ang MyCar module adunay usa ka GPS unit aron kini makasubay sa lokasyon sa imong awto ug ipakita kini sa aplikasyon. Apan, ingon nga kini nahimo, sila nagtipig dili lamang sa kasamtangan nga lokasyon sa mga sakyanan. Nagtipig sila og daghang impormasyon, labaw pa sa gikinahanglan aron masubay ang kasamtangan nga lokasyon sa usa ka sakyanan. Sa akong kaso, kapin sa 13 ka adlaw sa paggamit sa aplikasyon, nakatigom sila og gamay nga ubos sa duha ka libo nga geolocation nga mga punto sa mga lugar nga gibisitahan sa akong sakyanan. Ang palisiya sa pagkapribado sa kompanya sa nag-develop sa MyCar wala magsulti bahin sa ingon nga koleksyon sa kasayuran.

Apan, mas grabe pa kini. Mahimo kang makiglalis nga kini usa lamang ka epekto sa pagpatuman sa serbisyo sa lokasyon. Apan ang butang mao, imbis nga maghimo lang usa ka lista sa mga lugar nga adtoan sa imong awto, naggamit sila usa ka API nga nag-analisar sa kana nga datos ug nagtino sa mga lugar nga kanunay nga adtoan sa imong awto. Pag-usab, sa akong nahibal-an, wala’y timailhan sa ingon nga bahin sa palisiya sa pagkapribado. Tingali dili kini katingad-an tungod kay pagkahuman sa usa ka tonelada nga pagpangita, nakit-an nako ang ginikanan nga kompanya sa MyCar nga gitawag Procon Analytics, miadto sa ilang website ug gibisita ang seksyon sa FAQ. Dinhi nakit-an nako ang pangutana: "Giunsa nimo pagsiguro ang seguridad sa datos?" Ang tubag sa kompanya mao ang: "Dili sama sa publiko nga mga panganod nga nakigkompetensya alang sa prayoridad sa pagtipig sa datos, ang Procon Analytics naggamit sa kaugalingon nga virtual nga panganod, nga gigamit lamang alang sa mga tiggamit sa among aplikasyon ug gipanalipdan gikan sa pagpanghilabot sa ubang mga tiggamit. Kini usa ka espesyal nga palibut sa panganod nga adunay taas nga lebel sa seguridad, nga nagsiguro nga dali nga magamit ug kadali sa paghatud sa serbisyo. Pinaagi sa pakigtambayayong sa Procon Analytics, makasalig ka nga ang imong datos luwas nga gipanalipdan. Wala ko kabalo unsa akong isulti ani...

Conference DEFCON 27. Ang imong awto mao ang akong awto. Bahin 2

Kung moadto ka sa ilang panid sa Facebook, mahibal-an nimo ang labi pa nga makapaikag nga mga butang. Dinhi sila nagsulat lamang: "Ang pagpanalipod sa impormasyon bahin sa imong sakyanan hinungdanon!" Aw, makauyon ra ko sa kini nga pahayag.

Busa, balik sa pangutana nga akong gisugdan sa: "Giunsa kini mahitabo ug unsaon kini paglikay"? Ug labaw sa tanan, unsaon nato isip usa ka komunidad nga mapugngan kini nga mahitabo?

Gitapos niini ang akong taho, apan makatubag gihapon ako sa pipila ka mga pangutana (palakpak sa mamiminaw).

Nangutana ka kung giayo ba nila ang tanan? Niini nga punto, sa akong hunahuna ilang giayo ang tanan nga mga bug nga akong gitaho sa kanila, gawas sa mga sayup sa palisiya sa pagkapribado nga akong gihisgutan sa katapusan sa pakigpulong. Sa kataposang higayon nga akong gisusi kini, ang tanan wala mausab. Kung gipangutana kung mahimo ba nako i-edit ang mga parameter sa electronic engine control unit (ECU) sa awto sa parehas nga paagi, tubagon nako nga ang akong tahas mao ang pag-edit sa mga parameter sa awto sa aplikasyon sa MyCar. Nagtipig kini og digital nga representasyon sa sakyanan nga gi-edit pinaagi sa direktang pag-access sa butang, SQL injection, o uban pang attack vector.

Ang katapusan nga pangutana mao: aduna ba akoy keyless engine start system sa akong sakyanan nga adunay "Start" button ug unsa ang sitwasyon sa steering wheel lock niini nga kaso? Ang akong tubag mao nga ang MyCar adunay ingon nga buton, mao nga kini nga sistema walay lock sa manibela. Nagduda ko nga kung imong i-install kini nga sistema, siguradong dili ka makasalig sa lock sa manibela.

Pipila ka mga ad πŸ™‚

Salamat sa pagpabilin kanamo. Ganahan ka ba sa among mga artikulo? Gusto nga makakita og mas makapaikag nga sulod? Suportahi kami pinaagi sa pag-order o pagrekomenda sa mga higala, cloud VPS alang sa mga developers gikan sa $4.99, usa ka talagsaon nga analogue sa mga entry-level server, nga giimbento namo alang kanimo: Ang tibuok kamatuoran bahin sa VPS (KVM) E5-2697 v3 (6 Cores) 10GB DDR4 480GB SSD 1Gbps gikan sa $19 o unsaon pagpaambit sa usa ka server? (anaa sa RAID1 ug RAID10, hangtod sa 24 ka mga core ug hangtod sa 40GB DDR4).

Dell R730xd 2 ka beses nga mas barato sa Equinix Tier IV data center sa Amsterdam? Dinhi lang 2 x Intel TetraDeca-Core Xeon 2x E5-2697v3 2.6GHz 14C 64GB DDR4 4x960GB SSD 1Gbps 100 TV gikan sa $199 sa Netherlands! Dell R420 - 2x E5-2430 2.2Ghz 6C 128GB DDR3 2x960GB SSD 1Gbps 100TB - gikan sa $99! Basaha ang mahitungod sa Unsaon pagtukod sa infrastructure corp. klase sa paggamit sa Dell R730xd E5-2650 v4 server nga nagkantidad ug 9000 euros sa usa ka sentimos?

Source: www.habr.com

Idugang sa usa ka comment