SSL Pinning dan Pentester Ngawur

Tulisan ini saya buat untuk mengkritik para pentester yang nggak paham apa tujuan SSL pinning dan menyusahkan programmer. Kasusnya adalah SSL Pinning yang bisa dibypass dianggap sebagai bug, sedangkan cara bypassnya memerlukan Magisk dan Frida. Ibaratnya di dunia fisik begini: kalau ada jendela terbuka, itu bug. Tapi setelah jendelanya ditutup, dilaporkan lagi begini: pak, ini ada celah keamanannya: kalau kita masuk ke dalam rumah, ternyata jendelanya bisa dibuka dari dalam pak. Logikanya: kalau seseorang sudah bisa masuk, ngapain lagi buka jendela?

Maksud dan Tujuan SSL Pinning

Mari kita mundur sejenak, sebenarnya apa sih tujuan SSL Pinning? Saya sudah membuat artikel yang lebih detail di sini, tapi sekarang saya akan membahas versi sederhananya saja: tujuan SSL pinning adalah memastikan kita terhubung ke server yang memang kita tuju. Ini untuk mencegah MITM (Man In the Middle Attack) jika attacker dapat membuat certificate baru yang dipercaya oleh aplikasi/sistem operasi.

Jika aplikasi mengecek tidak melakukan SSL Pinning maka ada dua kelemahan yang bisa dieksploitasi. Pertama adalah melakukan attack terhadap ponsel spesifik, dan kedua adalah membuat certificate yang dipercaya secara default oleh sistem operasi.

Lanjutkan membaca “SSL Pinning dan Pentester Ngawur”

MacBook Pro M1

Setelah membahas laptop Windows ARM64 dan Linux ARM64, sekarang saya ingin membahas laptop macoS ARM64. Perlu dicatat bahwa di semua platform, sekarang ini perkembangannya masih sangat cepat, ketika saya menulis tentang Surface Pro X Minggu lalu, sekarang sudah ada perubahan baru: sudah mendukung emulasi Intel 64 bit. Di sisi macOS, perkembangannya juga sangat cepat. Tulisan ini saya cicil selama beberapa hari dan hampir tiap hari ada update baru, jadi jika Anda baca artikel ini beberapa hari atau beberapa minggu kemudian, mungkin hal-hal sudah berubah.

Di tulisan ini saya akan menggunakan istilah “Intel” untuk arsitektur Intel x86/Amd64. Saya akan menggunakan Mac M1 untuk mencakup semua produk Apple yang saat ini memakai M1 (MacBook Pro M1, MacBook Air M1, Mac Mini M1). Saya akan menuliskan “Prosessor M1” karena terdengar lebih enak, meskipun secara teknis ini bukan sekedar prosessor tapi SOC (system on a chip), yaitu prosessor dan berbagai device lain (memori, RAM dsb) masuk ke satu chip.

Lanjutkan membaca “MacBook Pro M1”

Masalah aneh MacBook 2015

Posting kali ini setengah teknis, tapi sebenarnya hanya sekedar cerita. Ceritanya tentang masalah MacBook yang tiba-tiba tidak bisa login, hingga akhirnya bisa diperbaiki setelah menginstall Ubuntu, dan kembali menginstall macOS.

Risna memakai MacBook sampai tahun lalu, dan tiba-tiba suatu hari: nggak bisa login. Tepatnya begini: layar login ada, bisa memasukkan username dan password, tapi setelah itu proses login tidak kunjung selesai. Saya pikir ini masalah sederhana, ada beberapa petunjuk di berbagai forum dan website. Misalnya ini dan ini dan masih banyak lagi.

Sebagai background: Macbooknya adalah tahun 2015 (kode: MacBook8.1 bukan MacBook Pro), dan saya beli di tahun 2018 (second hand, sudah habis garansi + apple carenya). Saya beli agak buru-buru untuk mengikuti konferensi BEVX karena Macbook pro saya terkena tumpahan kopi dan butuh segera komputer Apple untuk pelatihan exploitasi iOS. Setelah konferensi itu tidak saya pakai lagi dan dipakai oleh Risna (karena saya benci keyboardnya).

Saya sudah mengaktifkan SSH di Mac tersebut jadi bisa login dari remote dengan SSH, tapi remote desktop tidak bisa. Mungkin ada setting yang stuck, jadi saya juga sudah mengikuti petunjuk untuk menghapus NVRAM/PRAM, tapi masih gagal. Sudah saya cek syslog dan berbagai log lain via command line, tidak ada pesan error.

Lanjutkan membaca “Masalah aneh MacBook 2015”

Protokol Penelusuran Kontak Google/Apple

Dalam masa pandemi ini, Google dan Apple bekerja sama dalam proyek untuk penelusuran kontak yang tetap menjaga privasi. Ini merupakan salah satu dari beberapa protokol tracing yang saat ini sedang bersaing di berbagai negara. Sebagian protokol yang direncanakan di berbagai negara sifatnya tersentralisasi, dan sebagian terdesentralisasi. Apple dan Google membuat protokol terdesentralisasi dan menyerahkan masalah pembuatan aplikasi untuk end user ke masing-masing negara.

Saat ini hampir semua ponsel sudah memiliki fitur Bluetooth Low Energy (BLE). BLE ini sekarang digunakan untuk koneksi berbagai device yang sudah sangat populer, misalnya jam pintar dan timbangan pintar. Dengan protokol contact tracing, BLE bisa digunakan untuk menyiarkan data yang mengumumkan keberadaan kita dan sekaligus mencatat keberadaan ponsel-ponsel di sekitar kita. Jika ada orang yang kemudian hari didapati positif, kita bisa diberi tahu jika pernah berdekatan dengan orang tersebut.

Protokol Google/Apple Privacy-Preserving Contact Tracing Project  dibuat diilhami oleh protokol DP-3T (Decentralized Privacy-Preserving Proximity Tracing). Salah satu alasan Google dan Apple mengimplementasikan ini di level sistem operasi karena berbagai batasan aplikasi biasa ketika mengakses bluetooth di latar belakang. Dengan implementasi dari Apple dan Google, kendali bluetooth ini bisa dilakukan di level sistem operasi dan akan lebih mulus dan hemat batere. Google dan Apple juga merupakan dua penguasa sistem operasi mobile saat ini dan jika keduanya membuat protokol yang kompatibel, maka dipastikan bisa berjalan lancar untuk hampir semua orang.

Lanjutkan membaca “Protokol Penelusuran Kontak Google/Apple”

Reverse Engineering Aplikasi iOS

Sudah lama saya menuliskan tentang reverse engineering Android tapi sampai saat ini belum menuliskan untuk iOS. Tulisan ini akan memperkenalkan cara reverse engineering aplikasi iOS dengan berbagai pendekatan. Tujuan utamanya di sini adalah untuk pentesting. Reversing untuk tujuan lain (misalnya Tweak development) sebagian akan sama, tapi masih butuh usaha dan tool ekstra dan hanya akan saya bahas sekilas.

Mesin macOS dan XCode

Memiliki mesin macOS akan sangat membantu dalam reverse engineering. Mesin ini bisa fisik asli dari Apple (Macbook, MacMini atau yang lain), mesin tidak resmi (Hackintosh), atau bahkan Virtual Machine. Pengunaan utamanya adalah untuk menjalankan Xcode terbaru dan iTunes.

Sebenarnya ini tidak 100% wajib, karena kebanyakan tool bisa berjalan di OS Lain. Misalnya di Linux saya memakai libimobiledevice untuk menginstall IPA, membaca log dari device, dsb. Tapi biasanya jika ada iOS baru, berbagai tool di luar OS X akan berhenti bekerja sampai beberapa hari atau bulan, menunggu developernya memahami apa yang diubah Apple dan bagaimana memperbaikinya.

Lanjutkan membaca “Reverse Engineering Aplikasi iOS”

Kesan kembali memakai iOS

Selama beberapa tahun terakhir saya memakai iOS hanya untuk pentesting (dan juga ikut pelatihan iOS security di Hong Kong). Tadinya meskipun punya iPad dan iPhone, keduanya usianya cukup tua (keduanya > 5tahun). iPhone 5S sudah terasa sangat lambat, sementara iPad lebih sering dipakai untuk main oleh Joshua (dan sesekali oleh saya jika ada pentest aplikasi iPad). Sebelum iPhone 5S saya memakai iOS di iPod touch dan iPod touch 2nd generation.

Bulan Januari saya membeli iPhone XR (ini yang termurah yang mendukung prosessor A12) dan bulan ini saya membeli iPad (yang biasa bukan yang mini ataupun Pro). Pembelian iPhone tujuannya untuk pentesting (dan sudah terpakai), sementara iPad untuk membaca buku dan melihat materi Coursera (sekaligus hadiah untuk diri sendiri sudah menyelesaikan 6 Course di Coursera).

Lanjutkan membaca “Kesan kembali memakai iOS”

Produk Apple

Komputer pertama saya adalah Apple II, jadi saya sudah lama memakai produk Apple. Saya juga sempat memakai notebook apple ketika masih memakai Power PC (waktu itu namanya adalah Apple iBook, beda dengan software Apple iBooks ya). Saya membeli Macbook generasi pertama tak lama setelah keluar. Saya yang menyarankan semua komputer di kantor memakai produk Apple (dan sampai sekarang di kantor masih memakai Apple). Saya punya iPod Nano generasi kedua, dan sekarang juga masih punya iPod Touch, iPad, iPhone 5s, MacBook Pro, dan Mac Mini.

2874448573_84f2871238_b

Meski saya cukup suka produk Apple,saat ini saya mulai menghindari banyak produk Apple.

Hal pertama yang saya tidak suka dari produk Apple adalah harga. Dari dulu harganya memang cukup mahal, tapi sekarang ini untuk kategori tertentu (misalnya kategori laptop) harganya sudah berlebihan. Contoh: MacBook Pro (non retina) sekitar 15 juta, memorinya masih 4 GB, Masih Core i5, HD 500 GB. Sedangkan laptop Windows saya harga sekitar 7 juta, sudah Core i7, HD 1 TB memorinya mudah diupgrade, harddisknya juga, bahkan saya bisa memakai mSata 256 GB SSD + 1 TB HDD.

Saya cukup senang ketika Apple masih membolehkan kita mengupgrade komponen sendiri, karena upgrade memori atau HDD bisa kita lakukan dengan lebih murah (karena dari vendor lain, atau karena kita mengupgrade 1 tahun setelahnya, sehingga harganya sudah turun).

Lanjutkan membaca “Produk Apple”