Konférénsi DEFCON 27. Mobil anjeun mobil abdi. Bagian 2

Konférénsi DEFCON 27. Mobil anjeun mobil abdi. Bagian 1

Dina ahir pidéo, anjeun ngupingkeun klik - ieu mangrupikeun muka konci konci setir mékanis, anu urang teu tiasa jalan-jalan nganggo éléktronika. Anjeun kudu make hal mékanis, megatkeun silinder konci ku leungeun, atawa ngalakukeun hal sarupa, nu ieu mah bade ngalakukeun ka mobil nya. Sadaya firmware anu ditingalikeun dina pidéo ieu bakal sayogi dina GitHub saatos omongan kuring, janten angkat ka URL dina slide sareng unduh file OpenRemoteStart.

Hayu urang ngobrol ngeunaan naon anu bakal kajadian nalika urang nambihan Internét kana sistem ieu, sabab éta kedah saé pikeun urang, sanés? Salaku Cenah mah, Kuring dibeuli modul kadali alarem jauh disebut MyCar. Datang dina rupa modifikasi, Kuring kungsi model Linkr LT-1.

Konférénsi DEFCON 27. Mobil anjeun mobil abdi. Bagian 2

MyCar ngan ukur merek sareng modul sapertos kitu dijual kalayan nami Linkr LT-1, MyCar KIA, Visions MyCar, Carlink (CL6), jsb. Tétéla, sakedap ayeuna, dealer KIA di Kanada parantos masang sistem ieu, atanapi sahenteuna aplikasi anu disebut MyCar KIA, dina mobilna. Narikna, aplikasi ieu henteu sayogi pikeun diunduh dina AppStore. Kuring ogé hoyong dicatet yén kuring milih produk Fortin sareng MyCar, tapi dumasar kana ulasan pangguna dina forum tematik ngeunaan alarm mobil leupas, sistem sanésna henteu langkung saé sareng gaduh masalah anu sami.

Kuring gaduh patarosan penting: Naha pasar alarm mobil aftermarket ngajual produk anu aya masalah kaamanan sareng teu aya anu paduli? Kukituna, upami anjeun resep kana sistem starter jauh, perhatikeun sababaraha kaayaan penting. Anu mimiti, sakumaha anu kuring nyarios tadi, upami sistem DS henteu dipasang leres dina mobil anu nganggo transmisi manual, mungkin waé saatos ngamimitian mesin jarak jauh, mobil ngan saukur ngajalankeun tanpa supir upami aya sababaraha gear dina transmisi. . Nyaan bahaya. Bahaya kadua nyaéta upami aya anu ngaparkir mobil di garasi anu dipasang sareng ngahaja ngahurungkeun mesin tina jarak jauh, aranjeunna tiasa sesak tina akumulasi karbon monoksida. Janten upami anjeun gaduh sistem CO sareng garasi napel, anjeun pasti kedah gaduh detéktor karbon monoksida.

Upami anjeun nganggo sistem DS, ulah kantos nyobian ngamimitian mesin mobil anjeun tanpa terang dimana éta, sabab akibatna tiasa cilaka.

Alat MyCar, kotak hideung leutik sareng dua kawat anu kaluar tina éta, ngagaduhan 8 palabuhan, dua diantarana didédikasikeun kana antarmuka debugger. Nyambungkeun ka antarmuka ieu nunjukkeun yén alatna ngajalankeun Linux, dimana produsén jempé. Gampang lebet kana cangkang firmware nganggo kecap akses oelinux 123, tapi anjeun tiasa nganggo Mesin AE tanpa log in, anu ngamungkinkeun anjeun asupkeun paréntah AT tina garis paréntah, kalebet paréntah pikeun ngarobih alamat IP alat anu mana. modul ieu komunikasi.

Konférénsi DEFCON 27. Mobil anjeun mobil abdi. Bagian 2

Lamun urang tingali dina garis handap, urang tiasa ningali alamat IP tina server ti mana modul MyCar narima apdet firmware. Alatna dilengkepan L-port, anu ngamungkinkeun anjeun "ngadangukeun" paréntah anu ditampi ku modul. Ngagunakeun AE Engine jeung ngarobah IP tina alat dipasangkeun, Kuring éta bisa nangtukeun yén alat ieu komunikasi jeung DS ngagunakeun protokol UDP unencrypted.

Kuring henteu acan ningali teuing, tapi kuring nyangka éta mangrupikeun kanyataan anu penting sareng pikaresepeun. Upami anjeun kabetot dina inpormasi anu langkung lengkep ihwal alat ieu, tingali slide ieu - nunjukkeun tegangan catu daya 3,3V, laju transfer data 115200 baud, alamat server pikeun ngamutahirkeun firmware, kecap konci akar sareng tautan. kana manual pamaké.

Konférénsi DEFCON 27. Mobil anjeun mobil abdi. Bagian 2

alat nu bisa "toleran" tegangan suplai luhur.

Salaku Cenah mah, éta meunang geulis tiis di dieu. Sakitar sabulan saatos kuring masihan sistem ieu ka kabogoh kuring, kuring mutuskeun nyandak unit kaluar tina mobil sareng masihan jalan anu saé. Kanyataan yén sadaya bulan ieu kuring ngadorong pikiran ngeunaan kerentanan alat ieu. Aranjeunna ngaramalkeun hawa turun ka -30F ° kanggo minggu payun, janten kuring kedah buru-buru. Kuring nyambung ka cangkang jeung meunang eta jalan, tapi saprak panarimaan sélular di lab imah kuring teu pisan alus, Kuring mutuskeun pikeun digawekeun ku kotak dina komputer sejen. Unit FTDI anu kuring anggo aya kabel anu pondok, janten kuring mendakan anu langkung panjang, colokkeun kana unit DS, colokkeun kana komputer, sareng pas kuring hurungkeun, unit kuring mimiti ngaroko!

Palajaran anu tiasa dipelajari tina ieu nyaéta: upami anjeun nga-hack hardware, siapkeun unit cadangan! Kabogoh kuring nempatkeun moral carita ku cara kieu: Upami jalma penting anjeun nyaéta hacker, ulah ngantepkeun anjeunna maén hadiah Natal anjeun! Ayeuna hayu urang nempo software, Jigana nanaon bakal ngaroko di dieu.

Konférénsi DEFCON 27. Mobil anjeun mobil abdi. Bagian 2

Kuring ngamimitian proxy lalaki-di-nu-tengah, verifikasi SSL ditumpurkeun dina telepon kuring, sarta diawaskeun naon lalulintas aplikasi dikirim ka backend nu. Nalika ngadaptar, kuring perhatikeun yén sistem nyandak alamat email kuring sareng dikirim ka layanan wéb pikeun mastikeun yén alamatna aya hubunganana sareng akun anu tos aya. Éta pikaresepeun yén sistem éta ngagunakeun Auténtikasi Dasar sabab kuring henteu acan nyiptakeun akun. Kuring henteu terang naon anu kudu dilakukeun sareng inpormasi ieu, janten kuring ngan ukur nyerat dina buku catetan sareng teraskeun. Kuring nyiptakeun akun kuring sareng asup, sareng hal anu munggaran dilakukeun ku aplikasi nalika log in nyaéta nyauran jasa wéb pikeun pariksa pangguna ayeuna. Ku kituna kuring ngan saukur nelepon webserver ieu kalawan Kapercayaan Kuring kungsi katempo sateuacan, nu dipaké pikeun mariksa lamun alamat surélék kuring aya, sarta dibéré aksés Mycar Admin di respon.

Konférénsi DEFCON 27. Mobil anjeun mobil abdi. Bagian 2

Kuring ragu yén ieu akun administrator sistem nyata sabab, sanajan disada nyaring, éta boga hak husus low. Barina ogé, urang sadayana terang jalma sapertos kieu.

Ku alatan éta, kuring nyieun pamundut sejen - paréntah "EngineStart", pikeun ngamimitian mobil tina akun ieu, klik "Kirim", narima status paréntah di respon - "200 OK", sarta sanggeus ngeunaan tilu detik mobil kuring mimiti gerak.

Konférénsi DEFCON 27. Mobil anjeun mobil abdi. Bagian 2

Tétéla, akun Admin Mycar saleresna mangrupikeun akun admin anu dikodekeun kana aplikasi sélulér. Tapi éta henteu sadayana. Dina salah sahiji slides saméméhna anjeun nempo hal saperti hiji konci API. Sakali deui, tina ngawaskeun lalu lintas server proxy palsu kuring, kuring diajar yén konci API ieu tiasa dianggo pikeun ngaganti ngaran pamaké sareng kecap akses. Upami anjeun nganggo "API" salaku nami pangguna sareng salah sahiji konci ieu, anjeun tiasa nga-asténtikasi pangguna.

Konférénsi DEFCON 27. Mobil anjeun mobil abdi. Bagian 2

Janten kuring nyalin eusi garis "APIKey", nempelkeun kana garis Sandi tina aplikasi POST, sareng pencét tombol "Kirim".

Konférénsi DEFCON 27. Mobil anjeun mobil abdi. Bagian 2

Nanging, éta henteu hasil sareng kuring henteu terang naha salami 5 menit. Tungtungna, kuring sadar yén kuring hilap ngahapus tanda petik sareng koma dina konci API anu disalin, anu ku kuring dicaritakeun: "Anjeun ngalakukeun kasalahan dina sintaksis SQL." Janten jelas pikeun kuring yén anjeun ngan saukur tiasa nganggo suntikan SQL dasar pikeun ngalangkungan sadayana prosés login sareng janten administrator atanapi pangguna anu anjeun pikahoyong. Ku teu sangka aya anu kantos nyobian maok mobil nganggo suntikan SQL, janten hayu urang cobian.

Konférénsi DEFCON 27. Mobil anjeun mobil abdi. Bagian 2

Konférénsi DEFCON 27. Mobil anjeun mobil abdi. Bagian 2

Sacara umum, kuring asup kana akun kuring, diklik "Kirim" sareng nampi status "200 OKÉ" pikeun ngaréspon. Waktos ieu kuring panginten ngarékam pidéo. Rada poek sabab kuring syuting peuting-peuting tina jandela kantor. Ku kituna, kuring asupkeun paréntah, sarta anjeun ningali ngaliwatan jandela nu lampu mobil urang kedip-kedip di buruan handap. Awalna lampu maranéhanana lemah, tapi lajeng lampu hareup mimiti caang dina kakuatan pinuh - ieu téh mesin ngahurungkeun. Janten, kuring ngamimitian mobil nganggo suntikan SQL (keprok panongton).

Tapi éta henteu sadayana. Suntikan SQL tiasa dianggo henteu ngan ukur pikeun otorisasi, tapi ogé pikeun ngagentos parameter sanés sapertos URL, parameter badan string query, jsb. Nyatana, sistem ieu nganggo suntikan SQL dimana-mana. Ningali pesen kasalahan, urang tiasa ningali yén naon anu urang lebetkeun salaku kecap konci dibandingkeun langsung kana kolom sandi dina pangkalan data.

Konférénsi DEFCON 27. Mobil anjeun mobil abdi. Bagian 2

Ieu ngandung harti yén aranjeunna nganggo kecap akses téks polos dina suntikan SQL. Sakumaha aranjeunna nyarios, "Ieu henteu saé pisan, bahkan parah pisan!" Tapi cukup ngeunaan SQL, hayu urang tingali naon sejenna bisa Anjeun pigawé pikeun jarak jauh ngamimitian mobil anjeun. Anjeun ngan saukur ngirimkeun paréntah "EngineStart" sareng di respon anjeun nampi identifier integer ngalambangkeun identifier paréntah ieu, dina hal ieu ID = 3. Nyaho identifier, anjeun tiasa "narik" jasa anu bakal ngalaporkeun status ieu. paréntah.

Konférénsi DEFCON 27. Mobil anjeun mobil abdi. Bagian 2

Janten ku ningkatkeun atanapi ngirangan nilai ID, kuring "narik" status paréntah naon waé anu kantos dikirim dina sistem éta.

Konférénsi DEFCON 27. Mobil anjeun mobil abdi. Bagian 2

Henteu aya anu pikaresepeun pisan ngeunaan éta, sanaos, sareng kuring heran naha aya rujukan langsung ka hiji obyék anu tiasa dianggo pikeun ngamimitian mobil kuring. Janten kuring ngajalankeun paréntah "EngineStart" salaku pangguna anu sah tina akun kuring, teras nyobian nelepon kana akun pangguna anu sanés, anu henteu kedah aksés kana sistem. Salaku réspon, kuring nampi pesen kasalahan: "Akun ieu henteu aya dina kontéks hierarki." Jadi meureun hack ieu moal jalan. Nanging, upami anjeun ningali API ieu, anjeun bakal ningali yén éta duplikat inpormasi - alamat email pangguna dipetakeun kana ID akunna.

Konférénsi DEFCON 27. Mobil anjeun mobil abdi. Bagian 2

Upami anjeun nuju ngembangkeun API atanapi hacking API, jinis duplikasi inpormasi anu urang tingali dina URL ieu tiasa janten sumber kasalahan. Dina hal ieu, bug API tiasa manifest sorangan dina opat cara béda.

Konférénsi DEFCON 27. Mobil anjeun mobil abdi. Bagian 2

Lamun nempo kasus 2 jeung 3, outlined beureum, anjeun tiasa ningali rujukan langsung ka obyék. Dina dua kasus, sistem henteu mariksa naha anjeun otorisasi pikeun ngaéksekusi paréntah. Kuring nyobian kasus 2 sareng éta henteu hasil, kumaha upami kasus 3? Di dieu urang ngan kudu ngaganti ID akun USER_EMAIL dina URL sabab langsung patali jeung ID akun ACCOUNT_ID. Saméméhna kami nganggo ID akun korban, tapi ayeuna kami nganggo akun panyerang. Janten kuring nganggo ID akun hacker sareng ID alat korban, ngirim paréntah sareng diperkirakeun nampi status paréntah "200 OKÉ" sareng ngontrol aplikasi MyCar.
Janten, kalayan tilu vektor serangan anu béda, kami tiasa ngalakukeun sadayana anu tiasa dilakukeun ku pangguna sah tina aplikasi. Ieu ngandung harti yén anjeun tiasa mendakan mobil naon waé di kota, nyetél pabrik sareng modélna dina aplikasi, teras muka konci mobilna tina jarak jauh sareng ngamimitianana. Urang tiasa mareuman atanapi ngaktipkeun alarem, ngadamel parobihan kana ménu jasa mobil sareng pariksa status paréntah naon waé. Sareng sadaya ieu tiasa dilakukeun ku tilu cara.

Konférénsi DEFCON 27. Mobil anjeun mobil abdi. Bagian 2

Éta écés yén pamekar MyCar nyobian kumaha waé ngalereskeun bug sistem. Janten, dina kasus sandi hardcoded, aranjeunna ngan saukur nempatkeun proxy sabalikna di payuneun aplikasi pikeun nyumputkeun kredensial anu dianggo pikeun otorisasi. Masalahna nyaéta proxy sabalikna henteu sihir sareng henteu tiasa ngalereskeun sadaya masalah. Aranjeunna nyimpen suntik SQL dina layanan pihak katilu ambéh tanpa kecap akses kuring masih bisa ngagunakeun éta ngaliwatan prosedur verifikasi pamaké.

Konférénsi DEFCON 27. Mobil anjeun mobil abdi. Bagian 2

Kuring mutuskeun nyandak katingal ngadeukeutan dina struktur URL. Anjeun meureun geus noticed yén sakabéh alamat dipaké ku sistem ngandung m2m. Mutuskeun yén ieu sababaraha tipe interaksi internal pikeun mékanisme otorisasina dina aplikasi MyCar, Kuring diasupkeun hurup ieu kana Google sarta manggihan ramatloka M2M Suite. Hiji-hijina hal anu anjeun tiasa laksanakeun nalika anjeun ningali formulir ieu nyaéta nempatkeun sababaraha tanda petik di dinya sareng ningali naon anu lumangsung. Anu bakal kajadian nyaéta anjeun bakal nampi suntikan SQL anu dipikahoyong (keprok pamirsa).

Konférénsi DEFCON 27. Mobil anjeun mobil abdi. Bagian 2

Konférénsi DEFCON 27. Mobil anjeun mobil abdi. Bagian 2

Sareng ieu asalna sababaraha bulan saatos pamekar ngalaporkeun masalah sareng suntikan SQL. Upami hiji aplikasi ngagaduhan masalah sapertos kieu, éta kedah dilereskeun pas mungkin, tapi sakumaha anu anjeun tingali, pamekar henteu ngalakukeun nanaon. Kuring manggihan jenis ieu disregard pikeun pamaké karasa.

Modul MyCar gaduh unit GPS supados tiasa ngalacak lokasi mobil anjeun sareng nampilkeunana dina aplikasi. Tapi, sakumaha tétéla, aranjeunna nyimpen teu ukur lokasi mobil ayeuna. Aranjeunna nyimpen seueur inpormasi, langkung seueur tibatan anu diperyogikeun pikeun ngalacak lokasi mobil ayeuna. Bisi kuring, langkung ti 13 dinten nganggo aplikasi, aranjeunna ngumpulkeun sakedik kirang ti dua rébu titik geolokasi tempat-tempat anu didatangan ku mobil kuring. Kabijakan privasi perusahaan pamekar MyCar henteu nyarios sakecap ngeunaan kumpulan inpormasi sapertos kitu.

Sanajan kitu, eta meunang malah parah. Anjeun tiasa ngabantah yén ieu ngan ukur efek samping tina palaksanaan jasa lokasi. Tapi masalahna, tinimbang ngan ukur nyieun daptar tempat mobil anjeun angkat, aranjeunna nganggo API sanés anu nganalisa data éta sareng nangtoskeun tempat-tempat mobil anjeun paling sering angkat. Sakali deui, pikeun kanyaho kuring, teu aya petunjuk ngeunaan fitur sapertos kitu dina kabijakan privasi. Panginten ieu henteu héran pisan sabab saatos ton milarian, kuring mendakan perusahaan induk MyCar anu disebut Procon Analytics, angkat ka halaman wéb sareng nganjang ka bagian FAQ. Di dieu kuring mendakan patarosan: "Kumaha anjeun mastikeun kaamanan data?" Tanggapan perusahaan nyaéta: "Teu kawas awan umum anu bersaing pikeun prioritas dina panyimpen data, Procon Analytics nganggo awan maya sorangan, anu dianggo sacara éksklusif pikeun pangguna aplikasi kami sareng ditangtayungan tina gangguan ku pangguna anu sanés. Ieu mangrupikeun lingkungan awan khusus kalayan tingkat kaamanan anu luhur, anu ngajamin kasadiaan anu gampang sareng laju pangiriman jasa. Ku gawé bareng sareng Procon Analytics, anjeun tiasa yakin yén data anjeun dijagi sacara aman. Abdi henteu terang naon anu kedah diomongkeun ka ieu ...

Konférénsi DEFCON 27. Mobil anjeun mobil abdi. Bagian 2

Lamun anjeun buka kaca Facebook maranéhanana, anjeun tiasa manggihan hal malah leuwih metot. Di dieu aranjeunna ngan ukur nyerat: "Ngajagi inpormasi ngeunaan kendaraan anjeun penting pisan!" Nya, kuring ngan ukur tiasa satuju sareng pernyataan sapertos kitu.

Janten, balik deui ka patarosan anu kuring ngamimitian: "Kumaha ieu kajantenan sareng kumaha éta tiasa dihindari"? Sareng anu langkung penting, kumaha urang salaku komunitas tiasa nyegah ieu kajadian?

Ieu nyimpulkeun laporan kuring, tapi kuring masih tiasa ngajawab sababaraha patarosan (keprok panongton).

Naha anjeun naros upami aranjeunna ngalereskeun sadayana? Dina titik ieu, kuring nyangka aranjeunna parantos ngalereskeun sadaya bug anu kuring laporkeun ka aranjeunna, iwal ti cacad kabijakan privasi anu ku kuring disebatkeun dina tungtung omongan. Panungtungan waktu kuring dipariksa, sagalana éta unchanged. Nalika ditaros upami abdi tiasa ngedit parameter tina unit kontrol mesin éléktronik mobil (ECU) dina cara anu sami, kuring bakal ngajawab yén tugas kuring nyaéta ngédit parameter mobil ngan dina aplikasi MyCar. Éta nyimpen répréséntasi digital kendaraan anu diédit ku aksés obyék langsung, suntikan SQL, atanapi vektor serangan anu sanés.

Patarosan terakhir nyaéta: naha kuring ngagaduhan sistem ngamimitian mesin tanpa konci dina mobil kuring kalayan tombol "Mimitian" sareng kumaha kaayaan konci setir dina hal ieu? Jawaban kuring nyaéta MyCar gaduh tombol sapertos kitu, janten sistem ieu henteu gaduh konci setir. Kuring curiga yén lamun masang sistem ieu, Anjeun pasti moal bisa ngandelkeun konci setir.

Sababaraha iklan 🙂

Hatur nuhun pikeun tetep sareng kami. Naha anjeun resep artikel kami? Hoyong ningali eusi anu langkung narik? Dukung kami ku cara nempatkeun pesenan atanapi nyarankeun ka babaturan, cloud VPS pikeun pamekar ti $4.99, analog unik tina server tingkat éntri, anu diciptakeun ku kami pikeun anjeun: Sakabeh bebeneran ngeunaan VPS (KVM) E5-2697 v3 (6 Cores) 10GB DDR4 480GB SSD 1Gbps ti $ 19 atanapi kumaha babagi server a? (sadia kalawan RAID1 na RAID10, nepi ka 24 cores sarta nepi ka 40GB DDR4).

Dell R730xd 2 kali langkung mirah dina puseur data Equinix nagara golongan IV di Amsterdam? Ngan di dieu 2 x Intel TetraDeca-Core Xeon 2x E5-2697v3 2.6GHz 14C 64GB DDR4 4x960GB SSD 1Gbps 100 TV ti $199 di Walanda! Dell R420 - 2x E5-2430 2.2Ghz 6C 128GB DDR3 2x960GB SSD 1Gbps 100TB - ti $99! Baca ngeunaan Kumaha ngawangun Infrastruktur Corp. kelas kalawan pamakéan Dell R730xd E5-2650 v4 server patut 9000 euro pikeun Penny a?

sumber: www.habr.com

Tambahkeun komentar