Penetration Testing Aplikasi Mobile: iOS & Android, Dijelaskan
Penetration testing aplikasi mobile menguji tiga lapisan sekaligus: aplikasi yang berjalan di perangkat, data sensitif yang disimpan secara lokal, dan API backend yang dihubunginya. Penguji melakukan reverse-engineering terhadap binary, memeriksa penyimpanan di perangkat untuk mencari secret, mencoba mengalahkan proteksi sisi klien seperti certificate pinning, dan menyerang backend — semuanya diukur terhadap OWASP Mobile Application Security Verification Standard (MASVS). Fakta penentu keamanan mobile adalah aplikasi Anda berjalan di perangkat yang sepenuhnya dikendalikan penyerang, sehingga aplikasi itu sendiri menjadi bagian dari permukaan serangan.
Jika Anda menyusun ruang lingkup pentest aplikasi mobile, panduan ini menjelaskan ketiga lapisan, standar yang kami uji, dan teknik khas tiap platform yang membuat mobile berbeda dari web.
Standarnya: OWASP MASVS dan MASTG
Pengujian mobile punya kerangka kerjanya sendiri yang diakui. OWASP Mobile Application Security Verification Standard (MASVS) mendefinisikan apa yang harus dilakukan aplikasi mobile yang aman, dikelompokkan ke area kontrol: storage, kriptografi, autentikasi, komunikasi jaringan, interaksi platform, kualitas kode, dan ketahanan terhadap reverse engineering. Pendampingnya, Mobile Application Security Testing Guide (MASTG), menyediakan prosedur dan test case konkret. Menguji terhadap MASVS berarti cakupan diukur terhadap tolok ukur publik, bukan kebiasaan masing-masing penguji — dan memberi Anda jawaban yang dapat dipertanggungjawabkan saat pelanggan atau auditor bertanya standar mana yang Anda uji.
Lapisan 1: aplikasi di perangkat
Aplikasi mobile didistribusikan langsung ke perangkat penyerang, dan itu mengubah segalanya. Di perangkat yang sudah di-jailbreak atau di-root, penguji punya kendali yang sama atas aplikasi Anda seperti penyerang:
- Analisis statis dan reverse engineering — IPA atau APK di-decompile untuk memeriksa kode, konfigurasi, dan resource. Hal pertama yang muncul adalah hardcoded secret: API key, kunci enkripsi, dan kredensial yang ditanam di binary, yang mudah diekstrak karena aplikasi dikirim ke penyerang. Alat seperti MobSF mengotomasi pass pertama.
- Instrumentasi runtime — menggunakan Frida dan objection, penguji mengaitkan diri ke aplikasi berjalan untuk membobol logika, membaca variabel di memori, dan memanggil fungsi internal secara langsung. Inilah cara kontrol sisi klien dikalahkan saat runtime, bukan di kode.
- Anti-tampering dan ketahanan — deteksi root/jailbreak, anti-debugging, dan obfuscation diuji untuk bypass. Ini pertahanan berlapis, bukan pengganti pemeriksaan sisi server, dan pengujian memastikan penyerang tidak bisa sekadar menonaktifkannya.
Lapisan 2: penyimpanan data lokal
Apa yang ditinggalkan aplikasi di perangkat adalah salah satu temuan mobile yang paling umum dan serius. Penguji memeriksa setiap tempat data ditulis:
- Insecure storage — data sensitif tersimpan sebagai plaintext di
SharedPreferences(Android),NSUserDefaultsatau fileplist(iOS), basis data SQLite tanpa proteksi, cache, atau log. - Penyimpanan secret platform — apakah secret ditempatkan dengan benar di Android Keystore atau iOS Keychain, dengan kontrol akses yang tepat, bukan dibuat sendiri secara manual.
- Kebocoran data — informasi sensitif terekspos melalui backup aplikasi, screenshot saat aplikasi di-background, clipboard, atau logging SDK pihak ketiga.
Prinsipnya sederhana: asumsikan perangkat bisa hilang, dicuri, atau dikompromikan, dan pastikan apa yang tersimpan di dalamnya tidak menyerahkan kunci kepada penyerang.
Lapisan 3: permukaan serangan platform dan backend
Aplikasi mobile mengekspos komponen ke sistem operasi dan aplikasi lain, dan antarmuka itu adalah permukaan serangan tersendiri:
- Inter-process communication (IPC) — di Android, exported activities, services, content providers, dan broadcast receivers yang bisa dipanggil aplikasi lain; di iOS, permukaan antar-aplikasi yang setara. Export yang salah konfigurasi memungkinkan aplikasi jahat di perangkat yang sama memicu aksi istimewa atau membaca data terlindung.
- Deep link dan URL scheme — handler URL kustom yang, jika mempercayai inputnya, bisa disalahgunakan untuk mendorong aplikasi ke keadaan tak diinginkan atau membocorkan data ke tujuan yang dikendalikan penyerang.
- Komunikasi jaringan dan certificate pinning — penguji mencegat lalu lintas aplikasi dengan proxy (Burp Suite), dan di tempat aplikasi memakai certificate pinning untuk mencegahnya, penguji mencoba membobolnya dengan Frida. Pinning adalah kontrol berharga, tetapi pengujian memastikan apakah ia benar-benar bertahan — dan begitu lalu lintas terlihat, API backend mendapat pemeriksaan setara pentest web: broken object-level authorization (IDOR), penanganan JWT lemah, injection, dan penyalahgunaan logika bisnis.
Poin terakhir itulah yang paling sering diremehkan tim: API backend di balik aplikasi mobile sering kali mata rantai terlemahnya, karena developer mengasumsikan hanya aplikasi resmi yang akan memanggilnya. Penyerang tidak mengikuti aturan itu. Itulah mengapa engagement mobile yang serius selalu mencakup lapisan API, bukan hanya klien.
Mengapa tes mobile bukan sekadar tes web
Backend memang beririsan dengan pengujian web, tetapi lapisan perangkat sama sekali tidak ada di web. Reverse engineering, penyimpanan di perangkat, penanganan Keychain/Keystore, eksposur IPC, penyalahgunaan deep link, dan bypass certificate pinning bersifat khas mobile, dan di situlah temuan unik platform berasal. Menguji API saja melewatkan separuh gambaran; menguji binary saja melewatkan separuh lainnya. Asesmen lengkap mencakup ketiga lapisan, pada setiap platform yang Anda rilis — iOS dan Android cukup berbeda implementasinya sehingga perbaikan di satu tak menjamin yang lain.
Kesimpulan
Penetration testing aplikasi mobile menerima kenyataan yang tak nyaman bahwa aplikasi Anda berjalan di perangkat milik penyerang, dan menguji sesuai itu: binary di-reverse-engineer, penyimpanan lokal diperiksa untuk apa pun yang sensitif, proteksi sisi klien seperti certificate pinning ditantang, permukaan IPC dan deep link diselidiki, dan API backend diserang penuh — semuanya diukur terhadap OWASP MASVS. Hasilnya adalah pandangan terprioritaskan dan berbukti tentang apa yang sebenarnya bisa dicapai penyerang yang memiliki aplikasi Anda di ponselnya.
Untuk bagaimana ruang lingkup menentukan biaya, lihat panduan biaya pentest kami, dan untuk memilih kedalaman akses yang tepat, jenis-jenis penetration testing. Siap menguji aplikasi Anda? Hubungi kami.
Pertanyaan yang sering diajukan
Apa itu penetration testing aplikasi mobile? add
Penetration testing aplikasi mobile adalah pengujian keamanan aplikasi iOS atau Android yang memeriksa tiga lapisan: aplikasi yang berjalan di perangkat, data yang disimpan secara lokal, dan API backend yang dihubunginya. Penguji melakukan reverse-engineering aplikasi, memeriksa penyimpanan lokal untuk mencari secret, mencoba membobol proteksi seperti certificate pinning, dan menyerang backend — semuanya diukur terhadap OWASP Mobile Application Security Verification Standard (MASVS).
Standar apa yang diikuti pentest mobile? add
Standar yang diakui adalah OWASP Mobile Application Security Verification Standard (MASVS), dipadukan dengan Mobile Application Security Testing Guide (MASTG) untuk prosedur pengujiannya. MASVS mendefinisikan persyaratan keamanan pada storage, kriptografi, autentikasi, komunikasi jaringan, interaksi platform, kualitas kode, dan ketahanan terhadap reverse engineering, sehingga cakupan konsisten dan terukur terhadap tolok ukur publik.
Mengapa menguji API backend saja tidak cukup? add
Karena aplikasi di perangkat itu sendiri adalah permukaan serangan. Aplikasi mobile dikirim ke ponsel milik penyerang, di mana ia punya kendali penuh: ia bisa men-decompile aplikasi, membaca secret yang di-hardcode, memeriksa data yang ditulis ke perangkat, mengaitkan (hook) aplikasi berjalan dengan alat seperti Frida, dan membobol proteksi sisi klien. Insecure local storage, certificate pinning lemah, dan komponen inter-process yang terekspos adalah temuan nyata yang umum dan tak pernah terlihat oleh pengujian backend saja.
Apakah kalian menguji iOS dan Android? add
Ya. Kedua platform berbagi threat model yang sama tetapi berbeda implementasi — Keychain versus Keystore untuk penyimpanan secret, model App Transport Security dan entitlements di iOS versus exported activities, services, dan content providers di Android. Asesmen lengkap mencakup platform mana pun yang Anda rilis, karena kelemahan yang diperbaiki di satu platform tidak menjamin platform lain aman.