Konferensi DEFCON 27. Mobil Anda adalah mobil saya. Bagian 1

Pengarahan Kinerja:

Bagi banyak dari kita, mobil adalah salah satu pembelian termahal yang pernah kita lakukan. Di dunia di mana semua hal saling berhubungan, wajar saja jika Anda ingin mengendalikan mobil Anda dari jarak jauh: dapatkan pengingat tempat kami memarkirnya, periksa apakah Anda lupa mengunci pintu atau menyalakan mesin dari jarak jauh untuk memanaskan dahulu atau mendinginkan interior tergantung pada waktu tahun.

Ada banyak produsen yang menawarkan sistem alarm opsional yang memberikan fasilitas ini dan ketenangan pikiran. Tetapi seberapa besar kita dapat mempercayai pemasok sistem ini yang melindungi akses ke mobil kita dalam domain digital? Dalam laporan ini, Jmaxxz akan berbicara tentang apa yang dia temukan ketika dia melihat ke salah satu sistem ini.

Jmaxxz dikenal karena karyanya dengan sistem rumah pintar August Smart Lock (DEFCON 24 talk "Backdooring The Frontdoor"). Dalam beberapa tahun terakhir, fokus perhatiannya adalah pada perangkat untuk Internet hal. Dia berpartisipasi dalam bagian β€œIoT village zero day” dari DEFCON 24 dan DEFCON 25 dan akhirnya memutuskan bahwa sudah waktunya untuk meneliti produk pasar otomotif sekunder - starter jarak jauh (selanjutnya disebut sebagai DS).



Jadi, nama saya J-Max, saya seorang programmer berdasarkan profesi dan seorang hacker berdasarkan panggilan. Saya melakukan segala sesuatu yang berkaitan dengan kastil, dan selama percakapan ini Anda akan mendengar banyak pernyataan yang mengungkapkan pendapat saya secara eksklusif dan tidak terkait dengan pendapat majikan saya di masa lalu, sekarang dan masa depan. Seperti yang mungkin Anda pahami, ini tentang mobil, yaitu starter jarak jauh dan sistem alarm. Mari kita mulai dengan latar belakang, yang penting dalam konteks ini, karena banyak orang menganggap sistem seperti itu sebagai kemewahan yang tidak perlu.
Jadi, tempat tinggal saya cukup dingin, dan teman saya menderita penyakit yang disebut sindrom Raynaud. Dari kedinginan, terjadi kejang pada pembuluh darah tangan, aliran darah ke jari-jari menurun tajam, ada tanda-tanda radang dingin hingga nekrosis jaringan. Slide menunjukkan bagaimana biasanya terlihat.



November lalu, saya masih belum memutuskan apa yang akan diberikan padanya untuk Natal. Maka dia pulang ke rumah dengan kesal dari bandara, karena mobilnya tidak hangat dalam perjalanan pulang. Pada saat ini, saya menyadari bahwa saya akan memberinya sistem start engine jarak jauh dan mulai mencari opsi terbaik. Ternyata pasar untuk starter jarak jauh cukup luas, dan banyak produsen tidak memberikan informasi yang cukup tentang produk mereka.

Mereka tidak memberi tahu cara menginstal sistem dan alat apa yang digunakan untuk memprogram perangkat. Ini masalah bagi saya, karena itu mobil saya, start jarak jauh saya, dan saya harus memiliki akses ke alat-alat ini. Jadi saya mencari sedikit lebih banyak dan menemukan perusahaan dari Kanada, Fortin, yang memproduksi permulaan seperti itu dan dengan sukarela memberikan semua dokumentasi yang diperlukan. Saya memilih produk ini dan mulai mencari remote control yang cocok. Faktanya adalah bahwa jika Anda menggunakan remote control standar dengan starter jarak jauh, maka jangkauan tindakannya akan terbatas pada kisaran remote control standar. Di pasar sekunder, mereka menawarkan remote yang beroperasi pada jarak setengah mil hingga satu setengah mil. Menurut ulasan konsumen, ini adalah langkah iklan, karena pada kenyataannya jaraknya jauh lebih kecil. Ini masalahnyakarena teman saya perlu menyalakan mesin mobil yang diparkir di tempat parkir bandara begitu dia turun dari pesawat, yang berjarak sekitar setengah mil.



Karena itu, alangkah baiknya jika dia bisa mengeluarkan ponselnya, membuka aplikasi dan klik "Start Engine". Saya menemukan produk pihak ketiga yang disebut MyCar yang sepenuhnya kompatibel dengan Fortin starter. Ini adalah gantungan kunci kecil dengan kartu SIM dan penerima GPS, yang dapat Anda masukkan ke dalam mobil dan sambungkan ke starter jarak jauh. Kemudian, menggunakan aplikasi seluler, Anda dapat menghidupkan mesin dari jarak jauh, membuka kunci dan sejenisnya.



Saya pikir ini akan luar biasa: tepat setelah pesawat mendarat, pacar saya akan dapat menghidupkan mesinnya, dan pada saat ia sampai di mobil, kabinnya sudah menjadi hangat.

Jadi, mari kita bicara sedikit tentang cara kerja starter jarak jauh. Untuk melakukan ini, Anda harus terlebih dahulu memahami bagaimana mesin mobil hidup. Sampai sekitar pertengahan sembilan puluhan, starter mobil adalah kunci mekanis tradisional dalam koneksi kunci-switch. Anda harus memasukkan kunci dan memutarnya untuk menutup sirkuit listrik. Kemudian, di Amerika Serikat, kunci bertanda "immobilizer" menjadi populer. Kedengarannya rumit, tapi itu hanya kunci elektronik. Jadi, Anda memiliki kunci mekanis, yang merupakan kunci kunci elektronik, yang, pada gilirannya, adalah transponder dan berisi beberapa informasi yang dapat dibaca. Dan sampai Anda membuka kunci elektronik, mobil Anda tidak akan mulai. Di sisi kanan slide Anda melihat 2 tombol: kiri untuk immobilizer, dan kanan untuk sakelar pengapian biasa.Ini hanya mengaktifkan komponen mekanis kunci, sementara kunci kiri membuka kunci elektronik, yang menghidupkan mesin mobil.



Mengapa saya berbicara tentang ini? Remote start bekerja melalui immobilizer. Pada slide berikutnya, Anda melihat diagram koneksi perangkat Fortin EVO One ke immobilizer - di bagian kiri bawah Anda melihat sepasang kontak yang ditunjuk sebagai IMO. Di kanan atas diagram Anda melihat dua baris: BISA RENDAH dan BISA TINGGI. Ini adalah kontak untuk menghubungkan ke bus CAN. Alasan remote starter terhubung ke bus CAN adalah karena biaya pemasangan berkurang karena lebih sedikit koneksi yang digunakan selama instalasi. Jika starter jarak jauh dapat membaca data dari bus CAN atau mengirim perintah melalui bus CAN, ini mengurangi waktu pemasangan sistem start engine jarak jauh.

Di kiri atas diagram ada sejumlah besar GPIO yang terkait dengan mengelola atau membaca informasi mesin. Misalnya, Anda ingin lampu depan berkedip atau terdengar bunyi bip saat Anda menekan tombol kunci. Hal-hal seperti itu dapat dikontrol menggunakan GPIO ini. Dari kiri bawah rangkaian Anda melihat konektor kikuk besar - ini adalah antarmuka yang menyediakan bypass kunci mekanis. Artinya, Anda tidak perlu memasukkan dan memutar kunci ke sakelar pengapian, karena antarmuka ini memberikan interaksi langsung dari relai sistem starter jarak jauh dengan kunci listrik.



Slide berikut menunjukkan langkah-langkah untuk menginstal starter jarak jauh. Pada dasarnya, ini terdiri dari melepas penutup kolom kemudi, memasang dan menghubungkan unit DS. Ini terlihat sangat menakutkan, tetapi sederhana.



Remote control itu sendiri terhubung ke apa yang disebut Fortin saluran data. Sistem ini menggunakan protokol transfer data fisik eksklusif UART - pemancar asinkron universal yang bertukar data pada kecepatan 9600 baud. Fortin Remote Starter hanya terhubung melalui bus UART ke dua remote yang Anda lihat di slide.



Setelah menginstal DS, saya berpikir tentang bagaimana perangkat tersebut dapat mempengaruhi keselamatan mobil. Jelas, DS harus mem-bypass immobilizer, jadi seberapa amankah itu dalam hal kemungkinan pencurian atau intersepsi kontrol mesin? Ini tidak hanya berlaku untuk transmisi data melalui jaringan seluler, tetapi juga pada sinyal start jarak jauh itu sendiri. Jadi saya mulai mencari informasi pabrikan di Internet untuk protokol transfer data yang digunakan di Internet dan masuk ke forum di mana orang menulis bahwa Fortin menolak untuk memberikan protokol ini. Salah satu alasannya: β€œkami tidak menyebarkan informasi seperti itu, karena EVO bukan mainan untuk penggemar, itu dimaksudkan untuk digunakan oleh para profesional.



Menjadi agak profesional, saya memutuskan untuk membangun mesin saya sendiri di desktop. Saya mendapatkan unit sistem EVO kedua, memasang papan sirkuit, yang merupakan mobil, menambahkan sakelar untuk mensimulasikan pengapian, tombol untuk pedal rem dan sejumlah LED untuk menampilkan berbagai kondisi.



Menggabungkan semua ini, saya menghubungkan perangkat FTI untuk memonitor saluran data dan mulai mengumpulkan data ini. Pada awalnya, itu terlihat seperti yang ditunjukkan pada slide, dan tidak sepenuhnya jelas apa yang terjadi di sini. Tetapi dengan melihat lebih dekat, kita dapat mengatakan bahwa pasti ada semacam struktur di sini.



Harap dicatat bahwa setiap kali saya menekan tombol pada remote control saya, pesan yang dikirim antena ke DS saya selalu dimulai pada 0C dan berakhir pada 0D. Jadi jika kita hanya membagi apa yang kita dapatkan, dengan anggapan 0C adalah awal dan 0D akhirnya, maka kita berakhir dengan sesuatu seperti ini.



Beberapa struktur sudah terlihat jelas di sini, sehingga Anda dapat mengetahui apa yang terjadi. Setelah menghabiskan waktu melacak pesan apa yang muncul setelah menekan tombol tertentu, saya dapat menyusun tabel perintah, yang masing-masing sesuai dengan tindakan tertentu. Yaitu, ketika Anda menekan tombol pada kendali jarak jauh, antena mengirimkan perintah ke modul mulai jarak jauh, yang terlihat seperti ini.



Seperti inilah struktur tim yang khas.



Ketika Anda menekan tombol pada remote control, antena mengirimkan perintah seperti itu ke starter jarak jauh. Itu bangun byte 0C, diikuti oleh 2 byte, yang, saya pikir, mewakili arah transmisi. Ini menarik, karena UART sudah memiliki sinyal transmisi / penerimaan arah, jadi saya menandai byte ini sebagai "sampah", anggap saja konstanta. Ini diikuti oleh satu byte yang menunjukkan perintah yang ingin dieksekusi oleh pengguna. Ini bisa berupa kunci pintu atau bukaannya, menonaktifkan alarm, dll. Secara umum, semua yang ingin Anda lakukan dari jarak jauh terkait dengan perintah ini. FF payload FF F1 adalah alamat, atau pengidentifikasi, yang mengidentifikasi antena jarak jauh dari mana pesan itu berasal. Jika unit DS tidak mengenali pengenal, perintah diabaikan. Jika DS menerima pengenal,prosedur multi-tahap dimulai, yang meliputi memeriksa kunci pada kunci kontak, menghidupkan atau mematikan mesin, menekan pedal rem, dll. Bahkan, proses ini tidak terlalu menjadi masalah, hanya perangkat saat ini sedang mempelajari ID.

Di akhir pesan adalah byte dengan checksum dan byte yang mengindikasikan akhir dari perintah. Sekarang kita mengerti bagaimana protokol bekerja, apa yang bisa kita lakukan? Saya punya beberapa video tentang topik ini. Sayangnya, video untuk beberapa alasan berjalan tanpa suara, jadi saya akan memberi tahu Anda apa yang terjadi di layar. Di sebelah kiri kolom kemudi pada penutup panel instrumen adalah kotak putih yang berisi barang elektronik dengan firmware Particle.IO yang memahami protokol Fortin. Kabel berujung biru adalah antena. Hal ini memungkinkan saya untuk berinteraksi dengan unit starter jarak jauh dari kabin mobil dan melihat di layar laptop apa yang terjadi.



Jadi, saya mengirim perintah membuka kunci ke mobil, tetapi tidak berfungsi, karena DS tidak tahu tentang antena ini. Seperti yang telah saya sebutkan, ini hanyalah UART, properti yang merupakan dukungan dari komunikasi dua arah, sehingga Anda dapat menerima informasi tentang keadaan mobil dari jarak jauh. Misalnya, jika mesin dihidupkan atau dimatikan secara fisik, unit DS akan mengirimkan pesan yang sesuai ke antena kendali jarak jauh. Dalam hal ini, pesan akan berisi alamat antena ini sendiri.



Masalahnya adalah bahwa komunikasi dilakukan melalui protokol UART, dan siapa saja yang terhubung ke bus UART dapat melihat alamat tempat pesan ini dikirim, sehingga dalam firmware saya dimungkinkan untuk mengkloning alamat antena yang ada, yang saya lakukan dengan perintah yang sesuai.



Untuk menghasilkan pesan, cukup buka pintu mobil. Seperti yang Anda lihat, DS mengirim pesan ke antena bahwa pintu terbuka, dan alarm langsung menyala.



Untuk mematikan alarm, saya mengirim perintah "membuka", setelah itu suara alarm dimatikan dan mobil tidak terkunci. Anda harus mengambil kata saya untuk itu, karena kami tidak dapat menjalankan video ini dengan suara. Mari kita coba putar videonya lagi.



Nah, suara itu muncul (kira-kira. Penerjemah: video yang sama dengan soundtrack diputar di layar). Jadi, Anda melihat bagaimana saya mengirim perintah DS dan menyalakan alarm, dan semua ini tanpa kunci. Sekarang mari kita coba nyalakan mobil dengan cara yang sama, untuk ini kita akan melihat video berikut.

Biasanya, cukup mengetik perintah "mulai" dan mencoba menghidupkan mesin tidak akan berhasil. Alasannya adalah bahwa ini adalah mobil dengan gearbox manual, dan untuk mobil seperti itu, sistem starter jarak jauh memiliki prosedur khusus. Dalam hal ini, Anda harus menekan tombol starter jarak jauh saat kunci berada di kunci kontak dan mesin dihidupkan. Kemudian Anda dapat melepas kunci, keluar dari mobil, menutup pintu, setelah itu DS akan mematikan mesin dan mengunci pintu. Hal ini dilakukan agar mobil tidak bereaksi terhadap mesin mulai dari jarak jauh saat mengemudi, karena berbahaya. Namun, ini bukan fitur keamanan lengkap. Membuktikan ini cukup sederhana jika Anda melihat blok EVO starter jarak jauh. Anda melihat kabel kuning ini dalam bentuk lingkaran, yang dirancang untuk bekerja dengan transmisi mekanis.Jika Anda memotongnya, unit ini dapat digunakan untuk mobil dengan transmisi otomatis. Desain unit ini memungkinkan Anda untuk tidak menerapkan pengaturan khusus saat memasang DS di mobil dengan berbagai jenis transmisi.



Jadi, sistem tidak menanggapi perintah "mulai", jadi saya akan meletakkan blok ini kembali dan hanya memotong kabel ini untuk memutuskan koneksi. Sekarang, jika Anda mengulangi perintah "mulai", sinyal yang dapat didengar akan berbunyi dan indikator status sistem kendaraan akan menyala pada panel instrumen, seperti yang terjadi ketika kunci dimasukkan ke dalam kunci.



Saat ini, kami memiliki mobil yang dapat kami mulai dari jarak jauh tanpa kunci kontak, tetapi modul DS tidak semua yang kita butuhkan. Dalam keadaan normal, Anda masih tidak akan dapat meninggalkan kendaraan dari jarak jauh, namun, mari kita coba untuk melakukan hal yang sama.

Untuk menonaktifkan kunci roda kemudi, Anda harus memasukkan kunci konvensional ke sakelar pengapian, di mana tidak ada transponder. Seperti yang Anda lihat, cukup alihkan kunci ke posisi sebelum mesin dinyalakan, dan roda kemudi Subaru Impreza mulai berputar sepenuhnya dengan bebas.

Namun, jika Anda tidak memiliki kunci apa pun, maka ketika Anda menekan pedal rem, mobil akan mogok. Mengatasi keterbatasan ini cukup mudah. Cari tahu bagaimana mobil memberi tahu starter jarak jauh bahwa rem diterapkan. Anda melihat beberapa port multi-warna di bagian belakang casing modul EVO - kabel dari bus CAN akan terhubung di sini. Cukup dengan hanya menarik kabel ini keluar dari unit DS setelah mobil dari jarak jauh dimulai, dan itu tidak akan menanggapi dengan menekan pedal rem. Karena unit ini terletak di bawah penutup kolom kemudi, saya memberikan perintah "mulai" melalui laptop saya, mobil mulai, saya membuka pintu, keluar dari mobil dan melepaskan konektor bus CAN dari blok EVO. Seperti yang Anda lihat, mesin mobil menyala, sementara kami masih tidak memiliki kunci kontak.

Sekarang, jika Anda menekan pedal rem, tidak akan terjadi apa-apa, karena EVO tidak tahu bahwa itu telah ditekan. Setelah itu, saya bisa naik ke belakang kemudi, tekan rem, letakkan kenop gigi di posisi "Drive", dan mobil akan pergi. Semua ini dilakukan tanpa petunjuk.

21:40

DEFCON Conference 27. Mobil Anda adalah mobil saya. Bagian 2


Sedikit iklan :)


Terima kasih untuk tetap bersama kami. Apakah Anda suka artikel kami? Ingin melihat materi yang lebih menarik? Dukung kami dengan melakukan pemesanan atau merekomendasikan kepada teman Anda VPS berbasis cloud untuk pengembang mulai $ 4,99 , analog unik dari server entry-level yang diciptakan oleh kami untuk Anda: Seluruh kebenaran tentang VPS (KVM) E5-2697 v3 (6 Cores) 10GB DDR4 480GB SSD 1Gbps mulai dari $ 19 atau cara membagi server? (opsi tersedia dengan RAID1 dan RAID10, hingga 24 core dan hingga 40GB DDR4).

Dell R730xd 2 kali lebih murah di pusat data Equinix Tier IV di Amsterdam? Hanya kami yang memiliki 2 x Intel TetraDeca-Core Xeon 2x E5-2697v3 2.6GHz 14C 64GB DDR4 4x960GB SSD 1Gbps 100 TV dari $ 199 di Belanda!Dell R420 - 2x E5-2430 2.2Ghz 6C 128GB DDR3 2x960GB SSD 1Gbps 100TB - mulai dari $ 99! Baca tentang Cara Membangun Infrastruktur Bldg. kelas c menggunakan server Dell R730xd E5-2650 v4 seharga 9.000 euro untuk satu sen?

All Articles