E-Scooter di-reverse engineer, firmware ditulis ulang dalam Rust

Judul asli: Reverse engineering my e-scooter and rewriting the firmware in Rust

Mengapa Ini Penting

Mengungkap praktik pengumpulan data diam-diam oleh produsen perangkat konsumen IoT yang makin marak

Ben Simms merombak firmware Egret GT e-scooter miliknya menggunakan Rust. Ia menemukan CAN bus tersembunyi di port USB-C, data pengguna dikirim ke produsen tanpa pemberitahuan jelas.

Ben Simms, seorang pengembang yang gemar membongkar perangkatnya sendiri, memutuskan untuk menginvestigasi Egret GT — e-scooter kelas atas dengan layar LCD 320x480 dan klaim jarak tempuh 100km. Penyelidikan dimulai dari celah keamanan sederhana: menekan tombol 'down' saat menyalakan skuter akan membuka mode pembaruan firmware, dan dari sana pengguna bisa melewati PIN tanpa perlu memasukkannya.

Analisis aplikasi Bluetooth mengungkap sejumlah hal mengejutkan. Data seperti waktu tempuh tiap mode berkendara, suhu perangkat, arus motor, tegangan baterai, hingga riwayat pengisian daya dikirimkan ke server produsen — tanpa disebutkan secara jelas di aplikasi. Simms menulis, perilaku ini "tidak disebutkan dengan jelas di aplikasi :)))))))". Ia juga mencoba memalsukan VIN model 45km/h untuk melewati batas kecepatan, namun tidak berhasil.

Temuan terbesar datang dari port USB-C yang diklaim produsen hanya untuk mengisi daya ponsel. Setelah menyambungkan breakout board dan menghubungkannya ke osiloskop, Simms menemukan dua pin USB-C digunakan sebagai CAN bus — protokol komunikasi kendaraan yang sama sekali tidak sesuai standar USB-C. Untuk menyadap lalu lintas CAN ini, ia merakit perangkat berbasis ESP32-C6 dengan dua transceiver CAN (SN65HVD230 dan MCP2515) dan menulis firmware dalam bahasa Rust. Hasilnya: ia berhasil membaca dan akhirnya menulis ulang firmware unit display skuter tersebut.

Sumber

bensimms.moe — Baca artikel asli →