Dynamic Analysis Aplikasi Mobile: Mengamati Perilaku Aplikasi saat Berjalan

Penetration-test.id
02 August 2026
Dynamic Analysis Aplikasi Mobile: Mengamati Perilaku Aplikasi saat Berjalan

Pendahuluan

Static analysis memberikan gambaran tentang apa yang bisa dilakukan sebuah aplikasi berdasarkan kode dan konfigurasinya. Tapi ada pertanyaan yang tidak bisa dijawab tanpa menjalankan aplikasi: apa yang sebenarnya dilakukan aplikasi saat berinteraksi dengan pengguna nyata, server nyata, dan sistem operasi yang nyata?

Dynamic analysis menjawab pertanyaan ini. Dengan mengamati perilaku aplikasi saat runtime, kita bisa menemukan kerentanan yang tidak terlihat di kode, memverifikasi hipotesis dari static analysis, dan memahami bagaimana data mengalir melalui aplikasi dari input pengguna hingga ke server dan kembali lagi.

Untuk aplikasi mobile khususnya, dynamic analysis mencakup beberapa dimensi: traffic jaringan, interaksi dengan storage, pemanggilan API sistem, dan perilaku autentikasi di lingkungan nyata.

Setup Lingkungan yang Tepat

Dynamic analysis yang efektif membutuhkan lingkungan yang terkontrol dan dapat diobservasi sepenuhnya. Beberapa komponen yang perlu disiapkan:

Proxy untuk intercept traffic adalah komponen paling fundamental. Burp Suite adalah standar industri, dikonfigurasi sebagai proxy di perangkat atau emulator yang menjalankan aplikasi. Semua traffic HTTP/HTTPS yang dikirim dan diterima aplikasi bisa diintersepsi, dianalisis, dan dimodifikasi.

Perangkat atau emulator masing-masing memiliki trade-off. Perangkat fisik lebih akurat untuk mendeteksi perilaku yang bergantung pada sensor atau hardware, dan beberapa aplikasi mendeteksi emulator. Emulator lebih mudah di-reset ke kondisi bersih dan lebih mudah diintegrasikan dengan tools analisis.

Frida atau objection untuk dynamic instrumentation, yang memungkinkan kita meng-hook fungsi di dalam aplikasi saat runtime untuk mengamati atau memodifikasi perilakunya.

Penulis sendiri lebih sering menggunakan perangkat fisik dibandingkan emulator. Pertimbangan utamanya adalah efisiensi sumber daya. Menjalankan emulator secara bersamaan dengan proxy, Frida, dan tools analisis lain membutuhkan spesifikasi host yang cukup tinggi, sementara perangkat yang digunakan penulis memiliki keterbatasan spesifikasi sehingga menjalankan emulator justru membebani proses pengujian. Perangkat fisik menghindari overhead virtualisasi tersebut, sehingga proses analisis berjalan lebih ringan dan stabil untuk kebutuhan penulis.

Intercept dan Analisis Traffic

Setelah proxy dikonfigurasi dan sertifikat CA di-install di perangkat, semua traffic HTTPS bisa di-decrypt dan dianalisis. Ini adalah langkah yang paling produktif dalam dynamic analysis untuk menemukan kerentanan di lapisan komunikasi.

Yang perlu diperhatikan saat menganalisis traffic:

Parameter yang dikirim dalam request. Apakah ada parameter yang mengontrol fungsi sensitif dan bisa dimanipulasi? Apakah ada ID yang bisa diubah untuk mengakses resource orang lain?

Data yang dikembalikan dalam response. Apakah response mengandung data yang tidak ditampilkan di UI tapi dikirim melalui jaringan? Apakah ada field yang seharusnya tidak tersedia bagi user level tersebut?

Header dan token. Bagaimana session token dikelola? Apakah ada informasi sensitif yang dikirim dalam header yang tidak perlu?

Alur autentikasi. Apa yang terjadi jika langkah-langkah autentikasi di-skip atau dimodifikasi? Apakah validasi dilakukan di server atau hanya di client?

Runtime Manipulation dengan Frida

Frida membuka dimensi yang tidak bisa dijangkau hanya dengan traffic interception. Dengan meng-hook fungsi di dalam aplikasi saat runtime, kita bisa:

Mengamati argumen dan return value dari fungsi yang dipanggil. Jika sebuah fungsi kriptografi dipanggil, kita bisa melihat apa yang dienkripsi dan hasil enkripsinya sebelum dikirim ke jaringan.

Memodifikasi perilaku fungsi. Fungsi yang melakukan validasi di sisi client bisa dimodifikasi untuk selalu mengembalikan nilai yang kita inginkan, menghindari pembatasan yang seharusnya diberlakukan.

Bypass mekanisme keamanan. Certificate pinning, root detection, dan emulator detection bisa di-bypass melalui hooking fungsi yang bertanggung jawab untuk pemeriksaan tersebut.

Memanggil fungsi tersembunyi. Fungsi yang tidak terekspos melalui UI normal bisa dipanggil langsung melalui Frida, membuka fungsionalitas yang mungkin tidak dimaksudkan untuk diakses oleh pengguna biasa.

Salah satu contohnya adalah script Frida yang ditulis penulis untuk melakukan bypass terhadap mekanisme verifikasi E-KYC berbasis face verification. Aplikasi yang diuji menyimpan hasil capture wajah pengguna dalam format base64 secara sementara di SharedPreferences sebelum data tersebut diproses lebih lanjut. Dengan meng-hook proses penyimpanan tersebut secara dinamis, penulis mengganti data capture wajah pengguna yang sah dengan capture wajah pihak lain, sehingga proses verifikasi identitas dapat dilewati tanpa terdeteksi oleh mekanisme keamanan aplikasi.

Pada kasus lain, penulis menemukan aplikasi yang mengenkripsi seluruh data request dan response sebelum melewati jaringan, sehingga data tersebut tidak bisa langsung dianalisis atau dimodifikasi lewat proxy interception biasa. Penulis kemudian menulis script Frida yang meng-hook fungsi enkripsi dan dekripsi di dalam aplikasi, sehingga data yang terenkripsi bisa didekripsi terlebih dahulu untuk diperiksa dan diubah, lalu dienkripsi kembali sebelum dikirim ke server atau diteruskan ke aplikasi. Pendekatan ini memungkinkan tampering terhadap parameter request maupun response meskipun data dilindungi enkripsi di level aplikasi, sebuah temuan yang tidak akan terungkap hanya dengan traffic interception konvensional.

Storage Analysis

Selain traffic jaringan, dynamic analysis juga mencakup pemeriksaan apa yang disimpan oleh aplikasi di perangkat selama dan setelah eksekusi.

Lokasi yang paling penting untuk diperiksa: SharedPreferences yang sering menyimpan konfigurasi dan credential, SQLite database yang mungkin menyimpan data transaksi atau cache, file yang dibuat di direktori aplikasi, dan Keychain/Keystore untuk data yang seharusnya disimpan dengan aman.

Pendekatan yang paling efektif adalah membandingkan state storage sebelum dan sesudah melakukan operasi yang sensitif, seperti login atau transaksi, untuk melihat apa yang disimpan sebagai hasil dari operasi tersebut.

Berdasarkan pengalaman penulis dalam berbagai engagement, data yang paling sering ditemukan tersimpan secara tidak aman di perangkat adalah PII pengguna yang sedang login beserta informasi sesi, seperti auth token dan user identifier. Data tersebut kerap disimpan dalam bentuk plaintext di SharedPreferences atau lokasi penyimpanan lain yang mudah diakses, tanpa proteksi tambahan seperti enkripsi maupun penyimpanan melalui Keychain atau Keystore.

Penulis tidak menemukan perbedaan signifikan antara platform iOS dan Android dalam hal ini. Pemeriksaan yang dilakukan pada kedua platform pun pada dasarnya serupa, karena pola kesalahan umum developer dalam menyimpan data sensitif, seperti menyimpan token atau data pengguna tanpa enkripsi, cenderung sama terlepas dari platform yang digunakan.

Monitoring System Calls

Untuk analisis yang lebih mendalam, monitoring system call yang dilakukan aplikasi memberikan visibility ke level yang tidak terlihat dari traffic network atau storage saja. Tools seperti strace di Android memungkinkan kita melihat setiap interaksi aplikasi dengan kernel: file yang dibuka, socket yang dibuat, proses yang di-spawn.

Ini sangat berguna untuk mendeteksi perilaku yang mencurigakan pada aplikasi yang mungkin mengandung komponen berbahaya, atau untuk memahami bagaimana sebuah fitur keamanan diimplementasikan di level yang paling rendah.

Menggabungkan Static dan Dynamic Analysis

Nilai tertinggi dari dynamic analysis muncul ketika digabungkan dengan temuan dari static analysis. Static analysis menghasilkan hipotesis: "fungsi ini tampaknya melakukan validasi di sisi client." Dynamic analysis memverifikasi: "ya, validasi memang hanya di client dan bisa di-bypass."

Workflow yang paling efektif adalah menggunakan static analysis untuk membangun peta aplikasi dan mengidentifikasi area yang perlu perhatian lebih, kemudian menggunakan dynamic analysis untuk memverifikasi dan mengeksploitasi temuan tersebut.

Kesimpulan

Dynamic analysis adalah komplemen yang tidak bisa digantikan dari static analysis dalam pengujian keamanan aplikasi mobile. Kerentanan yang paling berdampak sering hanya terlihat saat aplikasi sedang berjalan dan berinteraksi dengan lingkungannya yang nyata.

Untuk aplikasi yang menangani data sensitif atau transaksi finansial, dynamic analysis bukan opsional, tapi bagian fundamental dari setiap engagement pengujian keamanan yang komprehensif.

Jika Anda ingin memastikan keamanan aplikasi mobile Anda melalui pengujian yang menyeluruh, tim Security Squad LOGIQUE siap membantu.

Yuan

Yuan

adalah penetration tester di LOGIQUE Security Squad dengan spesialisasi di application security, khususnya Android dan iOS. Ia memegang sertifikasi CEH Master dan memiliki pengalaman langsung dalam pengujian keamanan aplikasi mobile di berbagai industri, termasuk fintech dan manufaktur. Selain praktik pengujian, ia aktif mengembangkan tools internal untuk static analysis dan security testing pada platform Android.

Lindungi Sebelum Diserang

Sistem Anda Rentan terhadap Attack Serupa?

LOGIQUE Security Squad membantu Anda menemukan celah sebelum penyerang menemukannya lebih dulu.