1 poin oleh GN⁺ 27 hari lalu | 2 komentar | Bagikan ke WhatsApp
  • Untuk ikut serta dalam program bug bounty Tesla, penulis membeli MCU dan komputer Autopilot Model 3 di eBay lalu mencoba menjalankannya di lingkungan desktop
  • Setelah menambahkan catu daya 12V dan modul touchscreen, sistem berhasil boot, dan port Ethernet memungkinkan akses ke jaringan internal
  • Di dalam MCU, server SSH dan ODIN REST API (port 8080) terbuka, tetapi akses SSH memerlukan kunci tanda tangan Tesla
  • Pada awalnya, masalah kompatibilitas kabel dan kerusakan PCB membuat chip pengontrol daya harus diganti, namun setelah diperbaiki sistem berhasil dipulihkan
  • Pada akhirnya, dengan menghubungkan Dashboard Wiring Harness, penulis berhasil mewujudkan boot penuh touchscreen dan OS kendaraan, sehingga UI dapat dioperasikan dan firmware bisa dianalisis

Menjalankan komputer Tesla Model 3 di atas meja

  • Untuk ikut serta dalam program bug bounty Tesla, diperlukan hardware kendaraan asli, sehingga penulis membeli komponen MCU (Media Control Unit) dan komputer Autopilot (AP) Model 3 di eBay
  • Komputer kendaraan ini memiliki struktur dua board yang ditumpuk, terletak di belakang glovebox sisi penumpang, dan dibungkus casing logam berpendingin cairan
  • Komponen ini didapat di eBay dengan harga sekitar 200–300 dolar, dan sebagian besar dijual oleh pembongkar kendaraan kecelakaan
  • Untuk menyalakan sistem, dibutuhkan tambahan catu daya DC 12V, modul touchscreen, dan kabel display
  • Penulis menggunakan catu daya model adjustable 0–30V 10A, sedangkan layar dibeli seharga 175 dolar

Masalah kabel dan informasi wiring listrik

  • Kabel yang menghubungkan MCU dan layar umumnya dijual dalam kondisi terpotong tepat setelah konektor, sehingga perlu membuat kabel sendiri
  • Tesla mempublikasikan dokumen Electrical Reference untuk semua kendaraannya, sehingga konfigurasi pin dan informasi wiring setiap konektor bisa diperiksa
  • Display memerlukan kabel 6-pin dengan konektor Rosenberger 99K10D-1D5A5-D (2 pin untuk 12V/ground, 4 pin untuk data)
  • Karena konektor ini tidak bisa dibeli satuan oleh konsumen umum, penulis memesan kabel LVDS untuk BMW sebagai alternatif

Koneksi daya dan akses jaringan

  • Dengan merujuk ke skema Tesla dan materi online untuk mencari pin 12V dan ground, lalu menghubungkan daya, LED merah menyala dan proses boot dimulai
  • Karena belum ada layar, interaksi masih terbatas, tetapi perangkat bisa dihubungkan ke laptop melalui port Ethernet
  • Jaringan ini tidak menggunakan DHCP, jadi konfigurasi IP harus dilakukan manual dan memakai rentang 192.168.90.X/24
  • Dari file /etc/hosts yang dibagikan di Reddit, penulis mengidentifikasi IP host internal seperti MCU, gateway, dan Autopilot
  • Pada MCU (192.168.90.100), SSH (port 22) dan web server (port 8080) terbuka

Layanan internal dan struktur MCU

  • Server SSH menampilkan pesan “SSH allowed: vehicle parked” dan hanya bisa diakses dengan kunci tanda tangan Tesla
    • Dalam bug bounty Tesla, peneliti yang menemukan kerentanan root akan mendapatkan sertifikat SSH permanen
  • Pada port 8080 terbuka API bergaya REST bernama ODIN (On-Board Diagnostic Interface Network), yang digunakan oleh alat diagnostik Toolbox
  • Setelah pelindung logam dilepas, bagian dalam menunjukkan MCU dan board Autopilot tersusun dalam struktur bertingkat

Kegagalan kabel dan kerusakan rangkaian

  • Kabel LVDS BMW ternyata tidak kompatibel secara fisik, sehingga penulis mencoba menghubungkannya dengan wiring manual
  • Kabel tipis patah dan menyebabkan short pada PCB, sehingga chip pengontrol daya rusak
  • Chip yang rusak sulit diidentifikasi, tetapi kolaborator Yasser berhasil mengenalinya sebagai MAX16932CATIS/V+T step-down controller
  • Setelah memesan chip baru dan menggantinya di bengkel perbaikan PCB, MCU berhasil dipulihkan
  • Setelah itu, penulis juga memperoleh komputer kedua sebagai cadangan

Solusi akhir dan boot penuh

  • Karena kabel Rosenberger tidak bisa didapat, penulis akhirnya membeli Dashboard Wiring Harness lengkap (80 dolar)
  • Pada kendaraan asli, sistem ini memang dibuat bukan dengan kabel terpisah, melainkan dalam bentuk wiring harness besar (loom)
  • Setelah harness dipasang, touchscreen berfungsi normal dan sistem operasi kendaraan boot sepenuhnya
  • Sejak itu, penulis bisa melakukan operasi UI, menjelajahi antarmuka jaringan, menganalisis bus CAN, dan mencoba mengekstrak firmware

2 komentar

 
xguru 26 hari lalu

Yang paling menarik buat saya adalah ini
"Program root access Tesla"
Kalau berhasil menemukan setidaknya satu celah rooting yang valid, kita bisa menerima "sertifikat SSH permanen" untuk kendaraan sendiri dan login sebagai root.

Ah, jadi pengin punya!!

 
GN⁺ 27 hari lalu
Komentar Hacker News
  • Program akses root Tesla menarik
    Jika peneliti menemukan setidaknya satu kerentanan rooting yang valid, mereka bisa mendapatkan sertifikat SSH permanen untuk kendaraannya sendiri dan login sebagai root
    Mirip dengan Security Research Device Program milik Apple, dengan persyaratan kelayakan yang jelas
    Jika akses root diberikan ke semua orang, akan lebih mudah bagi pelaku jahat untuk mencari kerentanan, jadi pendekatan Tesla bisa dipahami

    • Rasanya pemilik kendaraan memang seharusnya punya akses root sejak awal. Disayangkan root hanya bisa didapat jika meneliti gratis demi pabrikan
    • Jika ini adalah program untuk terus-menerus mencari kerentanan root, Tesla jadi tampak kurang percaya diri terhadap stabilitas keamanan platformnya sendiri
    • Akses shell sangat berguna untuk riset lanjutan. Jika Tesla menambal bug lalu memblokir akses, para peneliti kemungkinan besar akan menyimpannya secara privat alih-alih mengungkapkannya
    • Program ini hanya berlaku untuk sistem infotainment, bukan komputer Autopilot. Tesla juga pernah mencabut sertifikat pada kendaraan peneliti di masa lalu
    • Jika root tidak diberikan, peneliti jadi punya insentif untuk merahasiakan kerentanan, jadi kebijakan ini tampak masuk akal
  • Dulu pernah bekerja di perusahaan yang membuat alat pemindai pihak ketiga
    Pengujian dilakukan dengan menghubungkan ECU ke rak alih-alih memakai kendaraan sungguhan, dan berhasil menemukan masalah offset byte nonstandar pada BMW. Alat kompetitor gagal menangkap masalah itu, tetapi alat resmi BMW menampilkan DTC

    • Dijelaskan bahwa DTC adalah singkatan dari Diagnostic Trouble Codes
    • Sedang kesulitan dengan masalah alat pemindai pada Mercedes E300 Turbodiesel tahun 1999. Perangkat Autel lama sudah brick dan diganti dengan iCarsoft, tetapi tidak bisa berkomunikasi dengan ECU
      Jika modelnya diatur berbeda, DTC ECU masih bisa dihapus sehingga sementara dipakai seperti itu. Bidang ini sangat membutuhkan pendekatan open hardware/software
    • Selama seminggu terakhir melakukan reverse engineering kendaraan dan alat pemindai dengan Claude + Ghidra
      Masih mempertimbangkan apakah hasil yang dibuat dengan software komersial mahal itu akan dipublikasikan, dan berpendapat bahwa informasi seperti definisi protokol komunikasi kendaraan seharusnya terbuka untuk semua orang
  • Menarik bahwa LVDS disebut sebagai kabel otomotif. Dulu ini lebih sering terlihat untuk menghubungkan layar laptop dengan motherboard

    • Menurut Wikipedia, kebingungan muncul karena pada awalnya pabrikan laptop salah memakai istilah LVDS untuk FPD-Link
      Lihat artikel Low-voltage differential signaling
    • Laptop modern kini memakai eDP (embedded DisplayPort) alih-alih LVDS. Pada layar otomotif LVDS masih bertahan, tetapi pada smartphone dan perangkat lain sudah banyak digantikan oleh MIPI DSI
    • SpaceWire juga merupakan protokol routing ultra-ringan berbasis LVDS yang banyak dipakai di satelit
  • Aplikasi UI Tesla QtCar bisa dijalankan di QEMU
    Cukup dengan firmware-nya, dan jika tertarik diminta mengirim DM
    Video demo

  • Membagikan pengalaman memasang sendiri controller rem trailer pada Tesla Model Y
    Mencari controller yang cocok untuk tegangan 14.4V, membuat kabel, lalu membeli konektor di eBay untuk dipasang
    Tahun lalu beberapa kali menarik trailer camping tanpa masalah, dan semangat DIY hacking seperti ini terasa keren

    • Disebutkan bahwa mobil biasa juga bisa naik sampai 15V pada 2000rpm, jadi 14.4V bukan tegangan yang luar biasa tinggi
    • Kebanyakan kendaraan mesin pembakaran internal menghasilkan tegangan di sekitar 14.4V, jadi kemungkinan controller standar pun sebenarnya sudah cukup
  • Menarik bahwa inti masalahnya ternyata hanya konektor 6-pin sederhana
    Karena gambar teknik dan dimensinya sudah ada, cukup mengejutkan bahwa tidak terpikir untuk membuat konektornya sendiri dengan 3D printing

  • Proyek ini benar-benar keren
    Penasaran apakah ini plug-and-play, dan di mana informasi jarak tempuh disimpan
    Jika memungkinkan, ingin mencoba memindahkan suspensi adaptif ke model lama. Ada juga ide membuat sistem kontrol terpisah dengan Raspberry Pi

  • Mengejutkan bahwa sistem operasi bisa boot sepenuhnya meski tanpa periferal sekitar yang biasanya diharapkan kendaraan

  • Apa pun pendapat orang tentang Tesla, dari sudut pandang hacking ini benar-benar proyek yang keren

  • Disebutkan harus membeli seluruh rangkaian kabel seharga 80 dolar, tetapi di AS ini biasanya disebut wiring harness. Loom mengacu pada bahan pelindung kabel

    • Sebenarnya kabel itu bisa didapat lebih murah. Violet HSD Code D 4+2 Pin Female to D Female Jack Connector seharga sekitar 15 dolar bisa menjadi pengganti
      Link AliExpress