Archive for the ‘Various Vulnerability’ Category

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.

MD5 Collision attack stories

Friday, January 2nd, 2009

Mumpung masih hangat mengenai MD5 collision attack, ada satu referensi yang cukup simple namun sangat membantu untuk memahami apa efek dari keberhasilan serangan MD5 collision ini. Cerita lengkapnya bisa didapatkan dari sini.

Dari cerita tersebut, kita bisa melihat ada 2 buah surat yang isinya berbeda namun memiliki hash MD5 yang sama persis:

Isi dari: Letter_of_rec.ps

Julius. Caesar
Via Appia 1
Rome, The Roman Empire
May, 22, 2005

To Whom it May Concern: 

Alice Falbala fulfilled all the requirements of the Roman Empire
intern position. She was excellent at translating roman into her gaul
native language, learned very rapidly, and worked with considerable
independence and confidence.
Her basic work habits such as punctuality, interpersonal deportment,
communication skills, and completing assigned and self-determined
goals were all excellent.
I recommend Alice for challenging positions in which creativity,
reliability, and language skills are required.
I highly recommend hiring her.  If you’d like to discuss her attributes
in more detail, please don’t hesitate to contact me.

Sincerely,
Julius Caesar
Isi dari: order.ps.eps

Julius. Caesar
Via Appia 1
Rome, The Roman Empire
May, 22, 2005 

Order:
Alice Falbala is given full access to all confidential and secret
information about GAUL.

Sincerely,
Julius Caesar

Teori dasar dari mekanisme hash adalah tidak mungkin 2 binary yang berbeda walaupun perbedaannya hanya 1 bit memiliki hash yang sama. Let’s see hasil dari kedua file diatas:

$ md5 letter_of_rec.ps.eps
MD5 (letter_of_rec.ps.eps) = a25f7f0b29ee0b3968c860738533a4b9
$ md5 order.ps.eps
MD5 (order.ps.eps) = a25f7f0b29ee0b3968c860738533a4b9

Kedua file yang telah dimodifikasi tsb bisa didapatkan dari sini dan sini.