Don’t mess with NVRAM!

Bricked iPhone

Baru-baru ini komunitas jailbreaker di Reddit sedang dihebohkan dengan “penemuan” cara melakukan permanent brick (brick/rusak permanen) pada iDevice.

Seperti yang kita ketahui bersama, tidak mudah merusak iDevice (dengan sengaja) hingga pada level permanen. Ini karena adanya DFU Mode, yaitu mode failsafe yang memungkinkan pengguna untuk selalu dapat melakukan restore dari kondisi apa pun.

Normal? Set ke DFU Mode lalu restore. Kena boot loop? Set saja ke DFU Mode lalu restore. Sebagian besar masalah terkait software (iOS) akan bisa di atasi melalui DFU Mode. DFU Mode adalah penolong. Bisa dibilang kalau DFU Mode adalah sebagai sebuah mekanisme keamanan yang menjaga iDevices dari kerusakan berat.

Karena adanya DFU Mode ini, kita sangat jarang mendengar adanya iDevices yang “mati total” alias bricked, kecuali kerusakannya berkaitan dengan kegagalan hardware, misalnya kerusakan pada baseband atau baterai. Namun, permanent brick yang disebabkan oleh kegagalan software tetap bisa terjadi. Akan tetapi caranya tidaklah umum, hanya bisa terjadi jika Anda menyentuh bagian yang tepat yang dapat memicu kerusakan. Jika itu terjadi, bahkan DFU Mode tidak dapat lagi menolong karena pada kondisi tersebut DFU Mode tidak lagi dapat berkomunikasi dengan iTunes karena iBoot (bootloader) menjadi korup.

Nah, baru-baru ini seorang developer di Reddit (@daytonhasty) merilis sebuah trik yang tujuannya sederhana saja, yaitu untuk mengubah warna boot logo dan background bawaan pada iPhone (hitam menjadi putih, dan sebaliknya). Tetapi, trik yang digunakannya sangat berbahaya karena memodifikasi salah satu bagian sensitif pada iOS, yaitu NVRAM.

Setelah mempublikasikan triknya ini, ada pengguna yang melaporkan bahwa iDevice-nya menjadi gagal booting (boot loop atau tidak bisa dihidupkan) setelah mencoba trik tersebut, yang diduga terjadi karena kesalahan copy-paste kode. Setelah ada beberapa pengguna lain yang melaporkan hal yang sama, barulah disadari bahwa iDevice yang gagal boot tersebut mengalami apa yang dikenal sebagai bricked.

Sebenarnya trik mengubah warna boot logo tersebut bisa sukses kalau dijalankan dengan benar sesuai dengan instruksi. Tapi kebanyakan orang gagal karena kurang hati-hati pada langkah mengubah nilai/variabel nvram, dan ini fatal. Inilah yang menyebabkan gagalnya proses booting karena iBoot, yaitu komponen yang bertanggung jawab pada proses booting menjadi korup. Pada nyatanya, semua aktivitas hack yang berkaitan dengan iBoot itu sangat berbahaya.

Pada tahap ini, setelah jatuhnya beberapa korban baik itu yang sengaja (eksperimen) ataupun yang tidak sengaja, sebagian besar anggota komunitas sudah menyadari bahaya brick pada iDevices. Dan bahwa bricked juga bisa disebabkan dari kegagalan software, yang tentu saja hanya bisa terjadi pada iDevice yang terjailbreak.

Akibat dari “penemuan” yang “tidak disengaja” ini, ada anggota Reddit lainnya (@arcticsn0w) yang memutuskan untuk membuat sebuah proof of concept berupa sebuah tweak yang menjadi bukti bahwa bricked (dari sisi software) pada iDevice itu nyata. Tweaknya berupa sebuah paket .DEB yang bisa diinstall dari repo Cydia (yang kemudian dihapus oleh pembuatnya). Tetapi selain menginstall sebuah paket, efek kerusakan yang sama juga bisa didapatkan dengan menjalankan beberapa baris perintah dari MobileTerminal (dengan mengubah nilai nvram) ataupun melalui akses SSH dengan hak akses root (su).

Apapun itu caranya, Anda yang gemar jailbreak sudah harus ekstra hati-hati mulai dari sekarang.

Dengan adanya proof of concept ini, muncul masalah besar berikutnya. Apa itu? Ternyata iDevice yang sehat atau sangat normal pun bisa dirusak dalam hitungan detik saja. Hanya dengan sekali install paket, reboot, dan iDevice menjadi rusak. Ini bisa sangat berbahaya kalau ada orang yang tidak bertanggung jawab yang dengan sengaja menggunakan cara ini untuk merusak iDevice milik orang lain. Entah apa pun motifnya. Tapi, kalau Anda tidak punya musuh, yang harus Anda lebih waspadai kemudian adalah menginstall aplikasi atau tweak yang asalnya dari repo yang tidak jelas asal usul dan pembuatnya. Dan juga hindari menginstall aplikasi atau tweak bajakan dari repo bajakan, jangan sampai ada pengembang app/tweak atau orang yang menyamar sebagai pengembang yang asli yang dengan sengaja merilis app/tweak yang merusak ini sebagai langkah untuk menghukum para pembajak app/tweak. Ya, meskipun itu tidak dibenarkan, tapi tetap saja hindari app/tweak bajakan dari repo bajakan.

Jadi, biar Anda bisa terhindar dari masalah serius seperti ini, Anda bisa memperhatikan hal-hal berikut ini.

  1. Anda bukan penggemar jailbreak dan iDevice Anda belum dijailbreak? Bagus. Teruskan seperti itu. Jangan jailbreak kalau Anda merasa tidak butuh.
  2. Kalau Anda gemar jailbreak, maka:
    • Kalau Anda sering menggunakan fitur SSH pada iDevice Anda, sebaiknya ubah password root bawaannya. Ini bisa mengamankan iDevice Anda dari perintah-perintah berbahaya.
    • Kalau Anda jarang atau tidak pernah mengakses iDevice Anda melalui SSH, maka sebaiknya tidak perlu menginstall OpenSSH.
    • Jangan memasukkan repo yang tidak jelas asal usulnya. Bisa saja pembuatnya iseng menaruh paket yang bisa berbahaya untuk iDevice Anda, contohnya saja paket yang saya sebutkan di atas.
    • Disarankan untuk selalu menginstall aplikasi atau tweak yang berasal dari repo bawaan atau repo yang asalnya dari pengembang yang sudah dikenal atau dipercaya.
    • Jangan juga menginstall aplikasi atau tweak bajakan, pastinya.
    • Jangan asal copy-paste perintah ke MobileTerminal. Jangan asal mengikuti tutorial yang Anda temui di internet tanpa mengetahui efek yang bisa muncul.

Sejauh ini, yang dipercaya mampu memperbaiki masalah NVRAM ini adalah hanya:

  1. jika ditemukan exploit berbasis iBoot atau bootrom,
  2. Apple merilis iTunes, atau mengikutkan patch pada update iOS berikutnya yang dapat mengembalikan nilai NVRAM ke semula,

Jadi, sebaiknya berhati-hati terhadap apa yang Anda install pada Cydia.

Beware ya guys! Be a good guy and stay away from pirate repo :)