Honda Civics dan valet parking berbahaya
(juniperspring.org)- Head unit Honda Civic model tahun 2021 dapat menerima pembaruan yang ditandatangani dengan kunci uji AOSP publik melalui jalur pembaruan USB, sehingga pihak yang memiliki akses fisik dapat menjalankan kode arbitrer
- Pembaruan Honda diterapkan melalui Android recovery, dan meskipun biner
recoverytelah dimodifikasi, logika verifikasi tanda tanganverify_filetetap sama dengan AOSP bawaan - Dengan menandatangani menggunakan kunci uji AOSP publik dan menyesuaikan format drive USB, kode yang diinginkan dapat dipasang tanpa
sumaupunsetuid, dan ini disebut serangan EvilValet - Alat baru ota-builder memudahkan persiapan berkas pembaruan yang diterima head unit, sementara apk-rebuilder mengubah berkas pembaruan menjadi pohon keluaran yang diperlukan untuk rekayasa balik
- Proyek ini telah menyelesaikan sebagian besar pekerjaan investigasi, tetapi repositorinya belum dihentikan, dan kontribusi masih dibutuhkan untuk informasi versi, toolchain, tema kustom, dan peningkatan pemetaan AIDL
Latar belakang pembaruan proyek
- Tiga tahun lalu, pekerjaan awal untuk memahami dan merekayasa balik head unit Honda Civic model tahun 2021 dipublikasikan, dan pembaruan kali ini merangkum perkembangan sejak saat itu
- Respons awal sangat menggembirakan, dan kemajuan terbesar datang dari proses memahami alur pembaruan
Kunci kerajaan
- Honda mendukung pembaruan head unit melalui USB, dan pada akhirnya berkas pembaruan AOSP bertanda tangan di dalam drive USB disiapkan dan diterapkan melalui Android recovery
- Ada beberapa pemeriksaan khusus Honda, tetapi kunci uji AOSP yang diketahui publik masih tertinggal di
res/keys, dan logika tanda tanganverify_filepada binerrecoveryyang dimodifikasi juga sama dengan AOSP bawaan - Jika drive USB diformat dengan tepat dan ditandatangani menggunakan kunci uji AOSP publik, isi apa pun yang diinginkan dapat dipasang ke head unit tanpa akses root sebelumnya
- Tidak perlu akses root biasa dengan cara mengatur
setuidpadasu - Jika head unit menyala dan penyerang memiliki akses fisik ke port USB paling depan, eksekusi kode arbitrer pada head unit dimungkinkan melalui jalur pembaruan
- Tidak perlu akses root biasa dengan cara mengatur
- Serangan ini mirip dengan evil maid attack, yang mengandalkan akses fisik ke kamar hotel, tetapi karena di sini perlu akses ke interior kendaraan, serangan ini disebut EvilValet
- Dalam skenario contoh, petugas valet hotel memasang pembaruan lewat USB, lalu setelah mobil dikembalikan, pengemudi tidak menyadari bahwa head unit telah diubah
- Tulisan ini bukan dokumentasi detail teknis, dan rincian lebih lanjut dapat dilihat di dokumen Display Audio Update Files
- Alat baru ota-builder memudahkan persiapan berkas pembaruan yang dapat diterima head unit
- Masih tahap awal, tetapi misalnya pekerjaan membuat berkas pembaruan yang memasang biner
sudengansetuidkini menjadi sepele
- Masih tahap awal, tetapi misalnya pekerjaan membuat berkas pembaruan yang memasang biner
- Ada alasan kuat untuk menganggap semua pembaruan ditandatangani dengan kunci uji AOSP publik, tetapi belum ada akses ke semua berkas pembaruan resmi yang mungkin maupun semua sistem berkas varian head unit
- Pada head unit yang telah diperiksa, kunci uji AOSP ada di
res/keys, tetapi karena pernah ada riwayat instalasi HondaHack, ada kemungkinan kunci disuntikkan ke keystore - Berkas pembaruan perangkat lunak EU yang tersedia publik,
MRC_EU_SW_v12_4.zip, ditandatangani dengan kunci uji, dan merupakan berkas yang diunduh dari forum publik tanpa dimodifikasi - Kemungkinan besar semua pembaruan ditandatangani dengan kunci uji AOSP, tetapi kontribusi dibutuhkan untuk mendukung atau membantah hipotesis ini
- Pada head unit yang telah diperiksa, kunci uji AOSP ada di
Membangun alat
- Di luar proses pembaruan, pekerjaan yang paling berguna adalah pengembangan apk-rebuilder
- apk-rebuilder menerima berkas pembaruan Honda Civic yang diperoleh dari internet sebagai input, lalu menghasilkan pohon berkas keluaran yang rapi dengan mengotomatisasi pekerjaan yang biasanya harus dilakukan manual oleh reverse engineer
- Melakukan interpretasi resource
- Melakukan rekonstruksi kode
.smali - Melakukan repackaging berkas APK
- Melakukan ekstraksi ramdisk
- Melakukan tugas lainnya juga
- Karena kode sumber Honda yang sebenarnya tidak dapat dipublikasikan, apk-rebuilder berfungsi sebagai sarana yang menerima berkas pembaruan yang tidak dihosting oleh repositori publik, lalu menghasilkan kode
.smaliHonda, aset gambar, dan lainnya - Keluaran yang dihasilkan mengikuti struktur direktori yang jelas, sehingga dapat dirujuk dalam dokumentasi tanpa harus mengunggah berkas sensitif itu sendiri
Pekerjaan tersisa dan permintaan kontribusi
-
Versi yang diketahui
- Proses pembaruan rentan dan sangat bergantung pada nomor versi
- Nomor versi dapat dipalsukan, sehingga tidak membatasi kemampuan untuk menjalankan kode yang tidak ditandatangani
- Untuk membuat berkas pembaruan, perlu diketahui versi yang diharapkan oleh head unit
- Perubahan perangkat lunak head unit yang tidak cocok dengan build yang sedang digunakan dapat menyebabkan perilaku tak terduga dan recovery loop
- Pengguna yang mengemudikan Honda Civic generasi ke-10 dan paham teknis dapat berkontribusi ke bagian Known Versions, Display Audio Software di repositori
- Pengguna yang sangat berani secara khusus dapat membaca kode
ota-builderdan mencoba mem-flash pembaruan, tetapi jika head unit berbeda dari perangkat acuan, bisa masuk ke recovery loop dan perangkat dapat mengalami soft brick
-
Toolchain
- Di mesin lokal ada toolchain eksperimental yang masih dalam pengerjaan
- Toolchain ini menerima kandidat kode
.c, lalu mengompilasinya untuk ARMv7 dengan versi compiler dan flag build yang sama seperti biner vendor aslinya - Toolchain ini sangat penting dalam pekerjaan memahami proses pembaruan
- Bentuknya saat ini banyak menggunakan Docker, tetapi berantakan dan sangat disesuaikan dengan alur kerja tertentu, dan ada keinginan untuk merilis implementasi yang lebih rapi
-
Tema kustom
- Saat melakukan vibe-coding pada apk-renderer, ada sedikit eksplorasi tentang tema kustom
- Tema kustom berada di dalam fork framework AOSP milik Mitsubishi, dan aplikasi head unit diperkecil sehingga tampaknya mengharapkan resource ID yang di-hardcode, sehingga distribusinya kemungkinan akan sulit
- Untuk mendistribusikan tema kustom, kemungkinan perlu memodifikasi framework vendor secara sangat presisi dan menulis alat untuk mengotomatisasinya
- Pekerjaan ini tidak sederhana dan mungkin tidak terlalu layak diusahakan, tetapi kontributor tetap disambut
-
Peningkatan aidl-rebuilder
- Sudah dimulai pengerjaan alat yang mem-parsing berkas
.smaliuntuk menghasilkan dan memetakan semua antarmuka AIDL pada head unit - Alatnya berfungsi, tetapi akurasinya belum sempat ditinjau secara memadai
- Pekerjaan ini membuka kemungkinan aplikasi kustom seperti speedometer virtual
- Sudah dimulai pengerjaan alat yang mem-parsing berkas
Dokumentasi dan pemikiran tentang LLM
- Penekanan lebih besar diberikan pada tooling daripada dokumen referensi
- Jika alat yang andal dan deterministik dapat memetakan kode head unit ke bentuk yang lebih mudah dipahami, pengguna dapat menanyakan bentuk itu ke LLM untuk menjawab pertanyaan yang spesifik
- Karena kode head unit adalah sumber kebenaran, beban untuk memelihara dokumen referensi yang bisa menyimpang dari kode nyata dapat dikurangi
- Panduan pengguna untuk terhubung ke head unit dengan ADB tetap berguna
- Ketika kode Java itu sendiri dapat digunakan oleh LLM, mempertahankan dokumen terpisah tentang perilaku kode Java menjadi beban pemeliharaan
Penutup
- Sebagian besar pekerjaan investigasi yang dimaksudkan terhadap head unit telah selesai
- Ini tetap proyek yang bisa terus digeluti, tetapi ke depan kemungkinan akan beralih ke proyek lain
- Repositori ini tidak ditinggalkan, dan PR selalu disambut
1 komentar
Komentar Hacker News
Pembaruan Honda Civic generasi ke-10 didistribusikan Honda melalui USB drive berformat khusus, dan pada dasarnya berupa paket pemulihan era Android 4.2.2rc1 dengan tambahan pemeriksaan versi dari Honda
Pemeriksaan versi ini bisa dikelabui, dan paketnya ditandatangani dengan AOSP test key yang bersifat publik, sehingga siapa pun yang punya akses fisik ke port USB depan bisa menandatangani paket sebarang, mem-flash-nya, dan menjalankan kode arbitrer di head unit
Tidak perlu root/su, sudah diuji sampai tuntas pada Civic 2021, dan juga sudah dikonfirmasi secara terpisah bahwa file pembaruan resmi EU juga memakai tanda tangan AOSP test key
Sebagian besar mobil di jalan punya keamanan infotainment dan elektronik onboard yang buruk, dan karena mobil modern dilengkapi mikrofon, kamera, penerima GNSS, Wi-Fi, dan Bluetooth, mobil perlahan berubah menjadi platform pengawasan bergerak
Pada Information Security Manual pemerintah Australia edisi Maret 2026, ditambahkan kontrol agar perangkat pemerintah tidak dihubungkan ke infotainment kendaraan, serta agar dokumen sensitif tidak dilihat dan percakapan sensitif tidak dilakukan di dalam atau dekat kendaraan yang terhubung
https://www.cyber.gov.au/business-government/asds-cyber-secu...
Orang-orang yang rentan terhadap serangan semacam ini biasanya punya prosedur kerja dan perangkat tepercaya tersendiri, dan lembaga kepolisian AS juga sudah punya aturan serupa untuk mobil sewaan sejak OnStar muncul
Sebagian besar informasi telematika yang berisiko bagi orang biasa toh sudah dijual
Di satu sisi, orang melawan terus berkurangnya kepemilikan perangkat keras pada sebagian besar perangkat di kehidupan kita, tetapi ketika ada perangkat yang lebih terbuka, justru diserang juga
Model ancaman di dunia teknologi selalu berangkat dari asumsi bahwa jika penyerang punya akses fisik ke perangkat dan cukup waktu, maka permainan selesai
Kondisi tengah seperti sekarang adalah yang terburuk: mobil menjadi perangkat pelanggar privasi yang mengawasi pengguna sepanjang berkendara, sekaligus perangkat tidak aman yang menyerahkan data itu kepada siapa pun yang sedikit tertarik
Jika ada kemungkinan disita, lebih baik jangan simpan data secara lokal, dan walau secara hukum seseorang bisa dipaksa membuka kunci, di AS seharusnya aman untuk menolak memberikan kata sandi
Secara teknis, Google dan Apple sudah banyak meningkatkan keamanan fisik, dan GrapheneOS melangkah lebih jauh di atas fondasi itu dengan mengurangi attack surface dan menambahkan fitur-fitur bagus. Terutama dengan semakin luasnya adopsi auto reboot, kesimpulan bahwa “akses fisik berarti selesai” untuk ponsel kini layak direvisi
https://grapheneos.org/features#auto-reboot
https://discuss.grapheneos.org/d/35728-demystifying-phone-un...
Hanya karena penyerang yang cukup canggih dan gigih bisa menguasai perangkat apa pun lewat akses fisik, bukan berarti perangkat itu boleh dibuat mudah dibobol oleh siapa saja
Di sini Honda justru tampak jauh lebih masuk akal dibanding produsen mobil lain
Jika ada valet jahat yang bisa mengakses mobil secara fisik, ia tidak akan membuang waktu meretas head unit, melainkan langsung menyembunyikan alat penyadap di suatu tempat di mobil
Lagi pula, rasanya kecil kemungkinan pengemudi Civic menjadi target badan intelijen
Head unit biasanya menyimpan informasi riwayat seperti basis data kontak SQLite yang tersisa setelah sinkronisasi, riwayat lokasi, atau data lama yang tertinggal di telemetri maupun file log
Selain itu, head unit sering kali dapat mengakses bus internal kendaraan, dan walaupun ada firewall seperti modul gateway, biasanya tetap lemah. Seperti kasus terkenal pada Honda di mana pembukaan kunci dan izin starter bisa dilakukan tanpa materi kriptografis lewat CAN bus seperti lampu depan, infotainment bisa jauh lebih kuat daripada sekadar alat pelacak
Ditambah lagi, menanam kode di head unit atau mengekstrak data yang sudah ada akan meninggalkan jauh lebih sedikit jejak dibanding memasang pelacak terpisah
Civic adalah salah satu mobil paling umum, sehingga mudah menyatu dengan latar belakang, dan orang-orang yang “terlihat biasa” seperti ilmuwan, insinyur, jurnalis, atau pengacara juga sangat mungkin mengendarai Honda Civic
Alat sadap yang disembunyikan di dalam mobil bisa ditemukan, tetapi sesuatu yang dipasang langsung di firmware kendaraan lebih kecil kemungkinannya untuk terdeteksi
Saya pernah mendengar manajer produk dengan bangga mengatakan bahwa firmware ditandatangani oleh layanan penandatanganan internal perusahaan. Itu sendiri bagus
Namun pertanyaan yang sebenarnya diajukan adalah apakah firmware ditandatangani untuk memenuhi kewajiban internal, bukan apakah prosedur pembaruan firmware memverifikasi tanda tangan itu, dan kenyataannya sama sekali tidak diverifikasi
Kurang lebih logikanya seperti, “kalau tidak begitu, bagaimana algoritme tanda tangan diperbarui”, dan yang paling parah adalah dulu ini sempat dilakukan dengan benar
Metode penandatanganan berubah ketika tim keamanan meminta tanda tangan yang “aman pasca-kuantum”, dan dalam prosesnya masuk sebagai bug regresi
Menurutku ada batas antara keamanan dan menjaga perangkat tetap berguna dalam jangka panjang. Ancaman memasang malware penyadap di mobil lewat serangan ala valet jahat tampaknya rendah
Tetapi ketika mobil-mobil ini berumur lebih dari 10 tahun dan berpindah ke tangan orang yang mau mengutak-atiknya, kemampuan untuk membuka software dan melakukan kustomisasi akan menjadi keunggulan besar
Akan bagus jika muncul komunitas yang membuat modifikasi berguna dan memperpanjang umur perangkat. Ini terasa jauh lebih baik daripada pengguna akhir mencopot head unit bawaan dan memasang unit “tablet Android” ala Aliexpress yang kemungkinan kualitas keamanan dan rekayasanya lebih buruk daripada perangkat Honda
Ini juga bisa jadi pertanda baik bahwa mereka bahkan tidak pernah berniat mengunci sistem dari pemiliknya
Jika semua pembaruan tidak akan dipercaya secara default, seharusnya ada mekanisme agar pemilik sebenarnya bisa menyetujui pembaruan
Kalau memang disengaja, mestinya ada bootloader yang bisa dibuka dengan kunci khusus, atau mekanisme seperti sakelar yang sulit diakses
Mungkin menjadikan mobil sebagai komputer raksasa beroda adalah ide yang buruk. Perlu penelitian lebih lanjut
Aku penasaran seberapa baik bagian keamanan lainnya. Head unit itu mungkin terhubung ke gateway CAN, jadi mungkin saja bisa dipanggil lewat telematika, atau ada cara baru untuk menyalahgunakan CarPlay/Android Auto agar berkomunikasi ke rumah
Itu akan bekerja pada lebih banyak merek daripada cara yang hanya berlaku untuk satu generasi Honda Civic, dan kemungkinan pemasangannya juga lebih cepat
Aku makin sering melihat proyek yang mengurangi dokumentasi kode dengan gagasan bahwa “kode yang dirancang dengan baik bisa ditanyai ke LLM”, lalu lebih fokus pada dokumentasi prosedur operasional yang fungsional
Kemungkinan semua dokumentasi dalam sebuah proyek selalu selaras dan mutakhir dengan kode pada saat tertentu itu sangat rendah
Secara umum aku setuju dengan arah ini, tetapi prasyaratnya tetap bahwa kodenya memang dirancang dengan baik
Test bisa menunjukkan cara penggunaan yang dimaksud dan kasus tepi yang menarik, dan karena terus dijalankan serta lulus, kita juga tahu itu mutakhir
Ini keuntungan besar yang sering diremehkan saat menambahkan lebih banyak test
Jika pengembang tampaknya akan menanyakan perilaku tertentu atau kasus tepi tertentu, ada baiknya memiliki test yang bisa langsung membuktikan jawabannya daripada memaksa orang menalar ulang