Don’t mess with NVRAM!
Baru-baru ini komunitas jailbreaker di Reddit sedang dihebohkan dengan “penemuan” cara melakukan permanent brick (brick/rusak permanen) pada perangkat iOS.
Seperti yang kita ketahui bersama, tidak mudah merusak perangkat iOS (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 kalau memang butuh. Kena bootloop? 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 perangkat iOS dari kerusakan berat.
Karena adanya DFU Mode ini, kita sangat jarang mendengar adanya perangkat iOS 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 corrupt.
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 perangkat iOS-nya menjadi gagal booting (bootloop 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 perangkat iOS 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 perangkat iOS. Dan bahwa bricked juga bisa disebabkan dari kegagalan software, yang tentu saja hanya bisa terjadi pada perangkat iOS yang ter-jailbreak.
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 perangkat iOS itu nyata. Tweak-nya berupa sebuah paket .DEB yang bisa di-install dari repo Cydia (yang kemudian dihapus oleh pembuatnya). Tetapi selain meng-install 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 perangkat iOS yang sehat atau sangat normal pun bisa dirusak dalam hitungan detik saja. Hanya dengan sekali install paket, reboot, dan perangkat iOS pun menjadi rusak. Ini bisa sangat berbahaya kalau ada orang yang tidak bertanggung jawab yang dengan sengaja menggunakan cara ini untuk merusak perangkat iOS milik orang lain. Entah apa pun motifnya. Tapi, kalau Anda tidak punya musuh, yang harus Anda lebih waspadai kemudian adalah meng-install aplikasi atau tweak yang asalnya dari repo yang tidak jelas asal usul dan pembuatnya. Dan juga hindari meng-install 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.
- Anda bukan penggemar jailbreak dan perngkat iOS Anda belum di-jailbreak? Bagus. Teruskan seperti itu. Jangan jailbreak kalau Anda merasa tidak butuh.
- Kalau Anda senang melakukan jailbreak, maka:
- Kalau Anda sering menggunakan fitur SSH pada perangkat iOS Anda, sebaiknya ubah password root bawaannya. Ini bisa mengamankan perangkat Anda dari perintah-perintah berbahaya.
- Kalau Anda jarang atau tidak pernah mengakses perangkat iOS Anda melalui SSH, maka sebaiknya tidak perlu meng-install OpenSSH.
- Jangan memasukkan repo yang tidak jelas asal usulnya. Bisa saja pembuatnya iseng menaruh paket yang bisa berbahaya untuk perangkat 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 meng-install aplikasi atau tweak bajakan, pastinya.
- Jangan asal copy-paste perintah ke Mobile Terminal. 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:
- jika ditemukan exploit berbasis iBoot atau bootrom,
- 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 🙂