iOS App Reverse Engineering (Ebook)

“iOS App Reverse Engineering” adalah sebuah ebook buatan seorang hacker/developer asal China @iOSAppRE yang diperuntukkan bagi orang-orang (terutama hacker/developer) yang ingin mempelajari proses reverse engineering pada iOS/aplikasi iOS dan juga struktur dan masalah keamanan pada iOS secara mendalam.

Meski begitu ebook ini juga layak dibaca untuk pemula terutama yang ingin mengetahui hal-hal yang berhubungan dengan keamanan iOS dan jailbreak.

There are four parts in this book. They are concepts, tools, theories and practices, respectively. The first three parts will introduce the background, knowledge and its associated tools as well as theories. The fourth part consists of four examples so that readers will have a deeper understanding of previous knowledge in a practical way.

Download: iOSAppReverseEngineering.pdf

Daftar isi bisa dilihat di halaman ini.

Passcode 6 digit

Di mulai sejak iOS 9, iPhone dan iPad yang ber-Touch ID akan membutuhkan passcode yang berjumlah 6 digit.

Passcode 6 digit

Sebagai bagian dari pengumuman iOS 9, Apple juga mengumumkan bahwa semua pengguna iDevice terbaru yang dilengkapi Touch ID harus meng-upgrade passcode yang sebelumnya hanya berjumlah 4 digit menjadi 6 digit angka. Passcode tetap bersifat opsional, tetapi jumlah 6 digit angka adalah standar untuk membuat passcode.

Bagaimana menurut Anda dengan pembaruan ini, lebih suka pakai yang 4 digit atau lebih pilih pakai alphanumeric (kombinasi huruf dan angka)?

Rootless di iOS 9

Menurut rumor yang saya baca dari 9to5Mac, Apple akan memperkenalkan sebuah fitur keamanan baru pada iOS 9 (dan OS X 10.11) nantinya yang bernama “Rootless”:

Rootless will prevent even administrative-level users from being able to access certain protected files on Apple devices. Sources say that Rootless will be a heavy blow to the jailbreak community on iOS, though it can supposedly be disabled on OS X. Even with this Rootless feature coming to OS X, sources say that the standard Finder-based file system is not going away this year.

Kalau diterjemahkan secara langsung, Rootles ini berarti “tanpa root” (root = hak akses administratif). Tetapi dalam konteks ini, artinya adalah (kalau saya tidak salah menerjemahkan) Apple akan mengamankan sistem iOS 9 sehingga user dengan level root sekalipun tidak mampu mengubah/memodifikasi file yang diproteksi.

Singkatnya, jailbreak hanya akan muncul setahun sekali, atau yang paling parah dua tahun sekali.

Touch ID vs. anak 7 tahun

Touch ID sangat aman bahkan untuk pencuri atau polisi/FBI sekalipun. Tapi, bagi Harrison (anaknya @matthew_d_green), cara “meng-crack” Touch ID dan mengakses file-file penting seperti Minecraft atau Angry Birds Transformers tidak begitu sulit. Hanya butuh jempol ayahnya yang sedang tidur.

Dikutip dari CNNMoney:

Green owns an iPhone 6 Plus. That means everything on the phone is encrypted until Green — and only he — unlocks it with his finger.

But Tuesday morning at dawn, little Harrison crept into his parents’ bedroom and walked over to his dad’s side of the bed. He quietly reached for his father’s iPhone, grabbed his right hand and pressed his large thumb onto the fingerprint scanner.

Green woke up and couldn’t blame the kid. After all, it was dad who loaded the phone with Minecraft and Angry Birds Transformers.

Anak yang pintar. Mungkin turunan dari ayahnya yang seorang ahli keamanan komputer.

Menggunakan SSH (iOS)

SSH
SSH (Secure Socket Shell) (bukan SHSH) atau yang sering disebut Secure shell adalah protokol jaringan berbasis UNIX yang memungkinkan kita untuk mengakses sebuah komputer (remote) melalui jaringan secara aman. Dikarenakan SSH menggunakan jaringan yang dienkripsi, maka SSH ini banyak digunakan oleh seorang admin jaringan untuk mengontrol sebuah server web atau sebuah komputer dari jauh (remote).
Continue reading “Menggunakan SSH (iOS)”

Rooting vs. Jailbreaking

Jailbreaking
Jailbreakin’ by Oliver Quinlan

Jailbreaking dan rooting pada dasarnya sama saja. Keduanya digunakan oleh orang-orang yang menginginkan kebebasan dan menentang sistem operasi standar mereka. Kedua istilah ini sangat populer pada perangkat mobile (smartphone/tablet). Bedanya, kedua istilah tersebut seringkali dikaitkan dengan platform yang berbeda.

Rooting adalah istilah yang umumnya ditujukan untuk perangkat-perangkat berbasis Android (root adalah hak akses tertinggi pada sistem operasi berbasis Linux), sedangkan jailbreak ditujukan untuk perangkat iOS (yang disebut iDevice) seperti iPhone, iPod touch atau iPad. Dan sebenarnya, pengguna iDevice juga memperoleh hak akses root ketika iDevicenya telah dijailbreak.

Kebanyakan orang berpikir perbedaan antara kedua istilah tersebut hanya sebatas istilah atau perbedaan jenis perangkatnya saja. Dan seringkali orang salah menyebut atau menukar kedua istilah tersebut. Namun secara teknis proses rooting dan jailbreak sama sekali berbeda.
Continue reading “Rooting vs. Jailbreaking”

Apps Cydia yang berguna untuk keperluan pentesting

Pentesting? There’s an app for that!

Cydia menyimpan benyak sekali aplikasi yang sangat berguna, baik itu untuk pengguna awam sampai pengguna advance. Khusus untuk penujian keamanan, beberapa aplikasi Cydia berikut ini sangat mendukung keperluan pentest (penetration testing):

  • OpenSSH: Untuk berhubungan dengan iDevice melalui koneksi SSH.
  • Adv-cmds: Untuk mengakses perintah perintah finger, fingerd, last, lsvfs, md, ps, dll.
  • Sqlite3 : Klien database Sqlite.
  • GNU Debugger: Untuk analisa program dan reverse engineering.
  • Syslogd : Untuk mengakses file log pada iDevices.
  • Veency: Memungkinkan kita untuk mengontrol iDevice via VNC.
  • Tcpdump: Untuk analisa jaringan
  • Erica Utilities: Kumpulan program berbasis command-line untuk beragam keperluan.
  • Grep: Untuk pencarian file.
  • Odcctools (Darwin CC tools): otool – object file displaying tool
  • Crackulous: Untuk men-decrypt iOS.
  • Hackulous: Untuk menginstall aplikasi iOS yang telah ter-decrypt.
  • Cycript: Run time analysis & reverse engineering

Failbreak

Dibandingkan dengan istilah “jailbreak”, istilah “failbreak” mungkin lebih jarang terdengar. Tapi buat yang sudah mendalami dunia jailbreaking pasti tidak asing, soalnya keduanya masih mirip-mirip, ada break break-nya.

Istilah ini sering muncul dan digunakan oleh para developer atau hacker pada masa-masa sulitnya jailbreak, biasanya pas muncul versi iOS atau perangkat Apple yang baru.

Apasih failbreak itu? Dari segi bahasa saja kita sudah bisa menebaknya. Failbreak = fail + jailbreak, artinya jailbreak yang gagal.

Namun ada pula yang mengartikannya sebagai sebuah jailbreak yang dihasilkan dari sebuah atau beberapa exploit terhadap kode-kode yang membutuhkan hak akses developer (iOS), sehingga jailbreak tersebut tidak boleh dipublikasikan karena hanya kalangan developer atau orang yang memiliki akun developer saja yang berhak mengakses kode-kode tersebut. Sama seperti yang diungkapkan pada tweet @planetbeing di atas.

Tapi pengertian sebenarnya dari failbreak lain dari itu.

Berikut penjelasan dari Saurik, pembuat Cydia:

Specifically, a “failbreak” is one that has malfunctioning kernel patches that prevent Substrate from operating. I provide a tool called “vmcheck” that people developing jailbreaks use to “unit test” their patches, and when it fails… well, that’s a “failbreak”. If you ran that tool on the jailbreak from chpwn/pheonix, that tool would fail.
The term was actually first used years ago by chpwn on a released jailbreak as there was something wrong with it that caused Substrate to only work in some processes; I was then later using it with regards to jailbreaks where the kernel patches didn’t support the various memory protection changes required by C Substrate.

Singkatnya begini, failbreak adalah kondisi di mana sebuah jailbreak yang tidak stabil karena terdapat kegagalan fungsi pada kernel iOS yang dapat menyebabkan Substrate (Mobile Substrate, dan beberapa tweaks) tidak dapat bekerja dengan sempurna (atau hanya bekerja pada proses tertentu).

Mengapa Apple melawan jailbreaking?

Jailbreak, sampai sekarang masih merupakan tindakan yang legal. Namun, bagaimanapun juga Apple tetap saja melawan jailbreaking. Jika Anda membaca salah satu halaman support dari Apple maka Anda akan mengetahui mengapa Apple melawan jailbreaking:

As designed by Apple, the iOS ensures that the iPhone, iPad, and iPod touch operate reliably. Some customers have not understood the risks of installing software that makes unauthorized modifications to the iOS (“jailbreaking”) on their iPhone, iPad, or iPod touch. Customers who have installed software that makes these modifications have encountered numerous problems in the operation of their hacked iPhone, iPad, or iPod touch.

Dengan membaca penjelasan Apple tersebut, mungkin masih ada yang ngotot kalau jailbreak itu tetap ilegal, “kalau memang legal terus kenapa Apple melawan jailbreak?”

Kids, lemme tell you something about jailbreaking.
Continue reading “Mengapa Apple melawan jailbreaking?”

Tipe-tipe exploit

Lokasi dari kerentanan keamanan berdapak pada level akses ke perangkat, khususnya iDevice yang menjalankan iOS.

Bootrom Level

Kerentanan keamanan pada tingkat bootrom adalah kerentanan paling kuat berdasarkan sudut pandang hacker/jailbreaker. Bootrom berada pada hardware iDevice dan kerentanan keamanan pada lokasi tersebut tidak akan bisa diperbaiki hanya dengan pembaruan iOS. Sebaliknya, kerentanan keamanan tersebut hanya bisa diperbaiki dengan merilis hardware terbaru, yang artinya merilis iDevice yang baru pula.
Continue reading “Tipe-tipe exploit”