1 poin oleh GN⁺ 3 jam lalu | 1 komentar | Bagikan ke WhatsApp
  • 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 recovery telah dimodifikasi, logika verifikasi tanda tangan verify_file tetap sama dengan AOSP bawaan
  • Dengan menandatangani menggunakan kunci uji AOSP publik dan menyesuaikan format drive USB, kode yang diinginkan dapat dipasang tanpa su maupun setuid, 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 tangan verify_file pada biner recovery yang 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 setuid pada su
    • Jika head unit menyala dan penyerang memiliki akses fisik ke port USB paling depan, eksekusi kode arbitrer pada head unit dimungkinkan melalui jalur pembaruan
  • 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 su dengan setuid kini menjadi sepele
  • 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

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 .smali Honda, 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-builder dan 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 .smali untuk 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

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

 
GN⁺ 3 jam lalu
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

    • AOSP adalah singkatan dari Android Open Source Project
    • Head unit Acura tahun yang sama juga berbasis Android 4.x, jadi sempat ingin dianalisis, tetapi terhenti di tahap mendapatkan file pembaruan; jadi penasaran bagaimana file pembaruannya didapat
    • Cukup banyak sistem infotainment mobil lain yang juga berbasis AOSP. Saat mengunduh pembaruan Hyundai pun saya ingat isinya pada dasarnya adalah image Android
  • 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...

    • Bukankah NC itu tingkat paling rendah dalam skema sensitivitas?
    • Menurut saya ini wajar. Ini radio mobil, bukan sistem inti
      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

    • Tapi ini juga bukan sesuatu yang benar-benar terbuka agar publik bisa memodifikasinya, kan? Produsen harus menentukan arah. Entah dibuka sepenuhnya agar yang membutuhkan bisa mengeraskannya sendiri dan memahami komprominya, atau ditutup sepenuhnya dan dibuat aman
      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
    • Situasi serupa juga terlihat pada kerentanan BitLocker baru-baru ini. Saya penasaran apakah perangkat keras penyimpanan yang kini bisa dibuka kuncinya akan menyelesaikan kasus-kasus baru atau membuat orang dipenjara
      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...
    • Namun itu bukan berarti keamanan perangkat lokal boleh diabaikan. Perangkat fisik tetap punya keamanan login, dan mungkin juga memakai enkripsi full-disk
      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

    • Kalau ini bercanda, tidak masalah, tetapi kalau serius, itu cukup tidak masuk akal. Kecil juga kemungkinan Honda memang sengaja membuatnya seperti ini
      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
    • Kalau ini sindiran, oke, tetapi kalau bukan, saya tidak paham kenapa pengemudi Civic dianggap tidak mungkin menjadi target badan intelijen
      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
    • Apakah maksudnya ilmuwan atau insinyur membosankan yang punya akses ke informasi rahasia tidak mungkin berangkat kerja dengan Civic biasa?
  • 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

    • Saya pernah melihat “solusi” serupa. Algoritme tanda tangan justru dijalankan langsung dari paket pembaruan
  • 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

    • Dengan nama BobbyTables2, kukira dia akan langsung terpikir cara yang benar untuk memverifikasi tanda tangan email PGP
  • 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

    • Memberi akses root kepada siapa pun yang sempat masuk ke mobil jelas bukan hal baik. Ini mirip seperti meninggalkan laptop di kantor yang selalu menyala dan shell-nya terbuka
      Jika semua pembaruan tidak akan dipercaya secara default, seharusnya ada mekanisme agar pemilik sebenarnya bisa menyetujui pembaruan
    • Kemungkinan besar ini bukan ramah peretas, melainkan akibat ketidakmampuan
      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

    • Kalau punya akses fisik ke mobil dan ingin berkomunikasi ke rumah, aku sarankan menaruh pelacak GPS di bawah karpet lantai
      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

    • Daripada dokumentasi, lebih baik melihat unit test sebagai dokumentasi
      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