1 poin oleh GN⁺ 2025-04-16 | 1 komentar | Bagikan ke WhatsApp
  • Melakukan reverse engineering pada perangkat smart home berbasis ESP32 dan mengintegrasikannya dengan Home Assistant
  • Menganalisis aplikasi mobile dan memastikan koneksinya dengan server cloud
  • Menyadap trafik jaringan untuk mencoba mengendalikan perangkat
  • Membuang dan menganalisis flash ESP32 untuk mencoba memodifikasi firmware
  • Menganalisis struktur paket untuk memahami enkripsi dan checksum

Pengantar

  • Baru-baru ini sedang mencoba menghubungkan semua perangkat ke Home Assistant
  • Karena pemurni udara tertentu tidak bisa terhubung selain melalui aplikasinya sendiri, perangkat itu hendak diretas agar bisa diintegrasikan
  • Menunjukkan masalah pada produk yang bergantung pada koneksi internet dan akun cloud

Rencana

  • Dipastikan bahwa aplikasi mobile terhubung ke server cloud sehingga kontrol jarak jauh dimungkinkan
  • Mencari cara untuk mengendalikan perangkat dengan menyadap trafik jaringan

Analisis aplikasi mobile

  • Menganalisis aplikasi Android dan memastikan bahwa aplikasi tersebut dikembangkan dengan React Native
  • Menemukan bahwa aplikasi terhubung ke server cloud melalui WebSocket

Pemeriksaan jaringan

  • Menggunakan Pi-hole untuk memeriksa kueri DNS dan menganalisis trafik dengan Wireshark
  • Mengonfirmasi komunikasi antara perangkat dan server melalui paket UDP

Analisis paket

  • Menggunakan proxy UDP untuk meneruskan trafik antara perangkat dan server cloud
  • Menganalisis struktur paket melalui Wireshark dan memastikan kemungkinan adanya enkripsi

Pembongkaran fisik

  • Membongkar perangkat berbasis ESP32 dan membuang firmware dari chip flash
  • Menggunakan esptool untuk membaca data melalui koneksi serial

Analisis flash

  • Menggunakan esp32knife untuk menganalisis data flash dan memeriksa tabel partisi
  • Menemukan file-file penting di sistem file FAT

Analisis statis awal

  • Menggunakan Ghidra untuk menganalisis string dalam firmware dan memastikan penggunaan library enkripsi
  • Mengimplementasikan algoritme ECDH dan HKDF menggunakan library mbedtls

Modifikasi firmware

  • Menonaktifkan fitur CapSense melalui Ghidra dan mem-boot perangkat dengan firmware yang dimodifikasi
  • Menyelesaikan masalah checksum dan berhasil mem-flash firmware yang telah dimodifikasi

Header paket

  • Menganalisis struktur header paket dan mengidentifikasi nomor seri serta pengenal pesan
  • Memahami pola permintaan klien dan respons server

Checksum paket

  • Memeriksa checksum CRC untuk memverifikasi integritas data paket

1 komentar

 
GN⁺ 2025-04-16
Opini Hacker News
  • Solusi jangka panjangnya adalah tidak membeli produk rumah tangga yang mengabaikan kontrol lokal

    • Jika kata sandi WiFi wajib dimasukkan, saya akan mengembalikan produknya
    • Jika ingin mengorbankan keamanan dan privasi itu pilihan masing-masing, tetapi seharusnya ada opsi untuk menolak tanpa kehilangan fungsi
    • Saya tidak akan membeli kamera bel pintu yang tidak mendukung RTSP
  • Pembersih udara yang meningkatkan kinerjanya saat kualitas udara dalam ruangan menurun tidak memerlukan perangkat IoT, aplikasi, komunikasi nirkabel, atau hub

    • Cukup pasang sensor kualitas udara dan LCD kecil pada pembersih udara lalu sesuaikan pengaturannya
    • Lampu lorong yang menyala otomatis dapat bekerja tanpa cloud, HomeAssist, WiFi, Zigbee, aplikasi, atau penggantian baterai
    • Selama 10 tahun terakhir tetap berfungsi tanpa masalah meskipun jaringan mati
  • Untuk penjual perangkat IoT berbasis ESP32:

    • Memutakhirkan perangkat pintar agar terintegrasi dengan sistem rumah pintar tidak memengaruhi instance lain atau layanan cloud
    • Data produk sensitif disamarkan atau dihapus
  • Untuk pemilik perangkat IoT berbasis ESP32:

    • Saya membuat proyek open source untuk menghapus cloud dari produk rumah pintar dan melakukan debugging, sambil banyak belajar sisi teknisnya
    • Saya sudah mengerahkan banyak usaha untuk menulis postingan ini dan akan senang menerima masukan tentang formatnya
  • Saya penasaran apakah mungkin mengetahui pin mana yang terhubung pada board perangkat, lalu mem-flash-nya sepenuhnya dengan ESPHome dan menulis konfigurasi yaml kustom

  • Setiap kali saya berada di tim perancang perangkat IoT, insinyur yang berfokus pada keamanan selalu menangani perlindungan boot

    • Mengejutkan bahwa tidak ada ketahanan terhadap dump firmware dan flashing ulang
    • Saya penasaran mengapa enkripsi flash tidak digunakan
  • Masukan untuk artikelnya:

    • Catatan tentang penggunaan kunci perangkat, yang paling jelas adalah ada kunci untuk tiap perangkat
    • Saya ingin berbagi masukan tentang kompleksitas dan risiko pengelolaan kunci per perangkat
    • Enkripsi perangkat bisa menimbulkan banyak masalah di pabrik, dan jika produk bisa menanggung risikonya, lebih baik diabaikan
  • Saya penasaran mengapa tidak menggunakan solusi yang sudah distandardisasi

    • Rasanya itu akan lebih hemat biaya daripada membuat solusi sendiri
  • Jarang sekali saya melihat enkripsi firmware digunakan pada perangkat IoT ESP32

    • Jika firmware tidak bisa dibaca, akan sulit membuat sertifikat
    • Namun pada saat yang sama ini juga mengesankan
  • Pendapat tentang keputusan para service engineer untuk tidak mengimplementasikan protokol standar seperti DTLS

    • Saya tidak yakin apakah setiap perangkat memiliki private key unik
    • Jika semua perangkat berbagi private key firmware yang sama, satu perangkat yang direkayasa balik dapat digunakan untuk melakukan serangan MITM pada perangkat lain
  • Orang yang menggunakan perangkat pintar seharusnya memakai DD-WRT, OpenWrt, Tomato, Asuswrt-Merlin untuk mengisolasi perangkat di VLAN yang terpisah dari jaringan pribadi

  • Seharusnya tidak perlu meretas produk yang dibeli agar bisa digunakan

    • Ekonomi "rent-seeking" semestinya diatur atau dilarang