Posts Tagged ‘iPhone’

Ok, it’s unlocked now, so?!

Sunday, January 11th, 2009

Tergantung bagaimana kita melihatnya, bagi pengguna biasa yang terpenting adalah iPhone 3G telah terunlocked, walaupun hanya bisa menyebutkan workaround-workaround tak menentu yang somehow bisa menghasilkan sinyal 3G terlihat pada iPhone namun itu saja sudah cukup.

Bagi skeptic lainnya, terunlock ataupun tidak sama saja…terlalu terlambat bagi suatu produk yang baru beberapa bulan terakhir membicarakan 3G sementara produk lain sudah melakukan riset tentang 4G, ah ya…they already manufactured it for testing.

Steve job dan Apple ternyata sangat cerdik, entah sengaja atau tidak namun iPhone 2G yang secara hardware sudah tidak bisa terselamatkan dari ‘official locked’ akibat ‘chain of trust’-nya telah terpatahkan oleh exploitasi dev-team menjadi penyempurna iPhone 3G yang hingga saat ini belum bisa terpecahkan metode untuk melakukan permanent unlock. iPhone 3G sendiri pada awalnya akan di rilis proses unlock-nya pada tahun baru 2009 dengan mengandalkan metode exploitasi bugs pada Jerry SIM (baseband 01.45.00) dimana bugs tersebut tidak diperbaiki oleh Apple (bugs telah ada pada versi baseband sebelumnya di iPhone 2G). Dengan baseband versi awal dari iPhone 3G ini, dev-team berencana menurunkan baseband ke versi sebelumnya dan mengeksploitasi baseband tersebut. Dev-team telah menemukan sedikit titik terang utk bugs baseband 02.11.07 (FW 2.1.0) namun sepertinya proses exploitasi masih butuh test lebih lama dan belum reliable. Hingga akhirnya geohot (bocah pertama yang unlock iPhone 2G secara hardware dan software) memberikan attack-vector plus exploit dengan memanfaatkan stack-based buffer overflow pada baseband 02.28.00 (FW 2.2 terbaru), exploit ini melakukan eksploitasi terhadap AT command AT+STKPROF (SimToolKit) dengan menginjeksi deretan karakter kedalam RAM. Dengan proses exploitasi ini maka state-table pada iPhone 3G dapat diubah menjadi unlocked.

yellowsn0w merupakan aplikasi yang akan berjalan setiap iPhone melakukan start-up (reboot), dan aplikasi ini akan melakukan beberapa hal diantaranya mengecek versi baseband (02.28.00), jika versi baseband sesuai akan dibuat buffer-overflow langsung pada RAM yang memanfaatkan command AT+STKPROF, setelah stack overflow paad RAM maka bisa diprediksi bahwa kita bisa sekaligus menyuntikan (injection) command untuk mengubah status ‘locked’ pada iPhone menjadi ‘unlocked’. And yeah, proses ini spesifik pada baseband 02.28.00, ada yg punya jawaban kenapa stack-based buffer overlow umumnya hanya spesifik pada satu versi aplikasi dan attack vector yg sama tidak bisa diberikan pada versi aplikasi yg lain?! anyone? :)

Jadi sebetulnya security pada iPhone 3G tidak sepenuhnya rusak seperti pada iPhone 2G, karena chain-of-trust belum benar-benar dipatahkan, hanya memanfaatkan overflow di memory.

Jika kalian sedang punya waktu santai selama 1 jam kedepan, silahkan lihat presentasi dev-team pada 25C3 kemarin dimana mereka memberikan presentasi mengenai teknologi iPhone dan bagaimana proses crack mereka terhadap platform unik ini. Apple tidak sembarangan memproduksi iPhone 3G, mempelajari teknologinya sama ketika saat pertama kali kita mempelajari arsitektur intel x86. Implementasi enkripsi dan kriptografi pada iPhone sungguh luar biasa, mulai dari proses boot hingga, load kernel, hingga load aplikasi semua dilakukan dengan proses digital signature untuk menjaga ‘chain-of-trust’. Design yang luar biasa ketat dan secure untuk sebuah embedded platform, dan untuk mempelajarinya dibutuhkan proses reverse-engineering karena dokumentasi cara kera internalnya tidak diketahui oleh publik.

iPhone dan Code Signing

Monday, November 10th, 2008

It’s weekend! Take some tea (somehow coffee used to make me dizzy), some bread and listen to some jazzy music. My browser just took me to old interesting article regarding iPhone code signing. Here’s my favorite quote:

With such a system in place, there’s no need for iPhone anti-virus software. Our children will never know why Symantec and Norton ever existed.

Artikel tersebut menarik karena memberikan penjelasan mengapa terdapat policy code signing pada iPhone. Code signing merupakan langkah kedua bagi para developer aplikasi iPhone setelah menyelesaikan aplikasinya dan melakukan beberapa testing menggunakan iPhone simulator. Sebelum melakukan testing pada real iPhone, maka developer diwajibkan mendapatkan provisioning profile untuk proses signing code aplikasi miliknya agar dapat berjalan pada real iPhone. Setelah aplikasi dapat berjalan dengan baik, maka sang developer dapat kembali berhubungan dengan apple untuk prosedur peletakan aplikasi miliknya di apple store. Disinilah apple akan bertindak sebagai ’sang dewa’ yang akan menentukan apakah suatu aplikasi dapat dimasukan pada apple store atau tidak. Kriteria apple cukup sulit, banyak developer yang ditolak aplikasinya karena aplikasi tersebut di-indikasikan akan menjadi attack vector terhadap iPhone. Sebagai contoh, menggunakan link pada window ‘about’ yang biasanya digunakan untuk memberikan referensi ke suatu website. Hal ini diindikasikan dapat menjadi attack vector terhadap iPhone jika ternyata pada link tersebut diletakan malicious code. Saat proses submit aplikasi ke apple, itulah saat mendebarkan apakah aplikasi kita akan diterima atau tidak. Terutama saat kita berharap aplikasi tersebut akan di bandrol dengan harga tertentu.

Kenapa harus begitu sulit?! alasannya dapat ditemukan pada artikel diatas. Jika kita lihat pada Wall-e seluruh umat manusia dapat dikontrol dengan baik melalui sistem yang telah disiapkan, semua dipaksa mengikuti aturan untuk kebaikan mereka sendiri namun sepertinya tidak demikian dengan kehidupan manusia yang sebenarnya. Walaupun apple telah memberikan sistem yang telah dipersiapkan dengan baik, dan memaksa semua pengguna untuk mengikuti aturan yang telah disediakan dengan tujuan melindungi end-user dari berbagai attack vector, namun kehadiran para hacker dengan penyakit rasa ingin tahunya yang tinggi membuat sistem tersebut di rusak hanya dalam hitungan bulan sejak rilis awalnya.

Charlie Miller menunjukan proses awal pencarian bugs aplikasi iPhone, hal ini dilakukan dengan memanfaatkan ‘jailbroken iPhone’. Salah satu hasilnya adalah bugs mobile safari yang dimanfaatkan sebagai metode jailbreak firmware awal iPhone. Pada presentasi tersebut Charlie Miller juga sekaligus menunjukan metode untuk bypass code signing pada aplikasi iPhone, walaupun tidak banyak yang menyadari efek keberhasilan menjalankan aplikasi C secara bebas pada suatu platform (shellcode development, low-level debugging, backdoor development, dll).

Bagi para creative evil thinker sebetulnya tidak harus menunggu ditemukan bugs pada aplikasi iPhone, cukup dengan memanfaatkan para pengguna hasil karya saurik dimana aplikasi-aplikasi iPhone dari un-official 3rd party dapat di-install dengan mudah melalui Cydia maka seharusnya sangat mudah membuat trojan ala iPhone, yang seakan-akan memberikan aplikasi lucu nan menarik namun ternyata menjelajah isi iPhone serta mengirimkan berbagai macam informasi didalamnya (contact, notes, sms, photo, dll).

Jadi, anak dan cucu kita masih tetap akan mengenal symantec sebagai produsen anti-virus / anti-trojan, bukan begitu?!