Keamanan aplikasi mobile menjadi perhatian utama bagi perusahaan yang mengembangkan aplikasi Android maupun iOS. Selain meningkatnya jumlah pengguna perangkat mobile, aplikasi juga semakin sering menyimpan data sensitif seperti informasi pelanggan, transaksi keuangan, hingga kredensial autentikasi. Kondisi ini menjadikan aplikasi mobile sebagai salah satu target utama serangan siber.
Dalam proses mobile penetration testing, terdapat dua pendekatan utama yang hampir selalu digunakan, yaitu Static Analysis dan Dynamic Analysis. Keduanya memiliki tujuan yang sama, yaitu menemukan kerentanan keamanan, namun dilakukan dengan teknik dan sudut pandang yang berbeda.
Artikel ini membahas secara lengkap mengenai static dynamic analysis mobile pentest, perbedaan keduanya, kelebihan masing-masing metode, serta mengapa keduanya perlu digunakan secara bersamaan dalam proses metode pentest mobile.
Apa Itu Mobile Penetration Testing?
Mobile Penetration Testing atau mobile pentest merupakan proses pengujian keamanan terhadap aplikasi Android maupun iOS untuk menemukan kelemahan yang berpotensi dimanfaatkan oleh penyerang.
Pengujian tidak hanya berfokus pada aplikasi itu sendiri, tetapi juga mencakup komunikasi dengan backend API, penyimpanan data lokal, mekanisme autentikasi, konfigurasi keamanan perangkat, hingga proses enkripsi data.
Dalam praktiknya, pengujian biasanya mengacu pada standar seperti OWASP Mobile Application Security Verification Standard (MASVS) agar hasil evaluasi lebih sistematis.
Apa Itu Static Analysis?
Static Analysis merupakan metode pengujian keamanan dengan menganalisis aplikasi tanpa menjalankannya. Investigator akan memeriksa struktur aplikasi, source code (apabila tersedia), maupun hasil dekompilasi file APK atau IPA untuk mengidentifikasi potensi kelemahan keamanan.
Pada tahap ini, penguji berusaha memahami bagaimana aplikasi dibangun, bagaimana data diproses, serta apakah terdapat konfigurasi atau implementasi yang berisiko terhadap keamanan.
Aktivitas dalam Static Analysis
- Reverse engineering aplikasi.
- Analisis source code atau bytecode.
- Pemeriksaan konfigurasi keamanan.
- Analisis AndroidManifest atau Info.plist.
- Pemeriksaan library pihak ketiga.
- Analisis penyimpanan data sensitif.
- Review implementasi autentikasi.
- Evaluasi penggunaan kriptografi.
Kelebihan Static Analysis
- Mampu menemukan kelemahan sejak awal pengembangan.
- Dapat mengidentifikasi insecure coding.
- Menemukan hardcoded credentials maupun API key.
- Menganalisis seluruh struktur aplikasi.
- Tidak membutuhkan aplikasi berjalan.
Keterbatasan Static Analysis
- Tidak menunjukkan perilaku aplikasi saat dijalankan.
- Tidak dapat melihat komunikasi jaringan secara langsung.
- Tidak selalu mampu memvalidasi apakah suatu kerentanan benar-benar dapat dieksploitasi.
Apa Itu Dynamic Analysis?
Berbeda dengan Static Analysis, Dynamic Analysis dilakukan ketika aplikasi sedang berjalan. Penguji akan mengamati perilaku aplikasi secara langsung selama proses penggunaan.
Pada tahap ini, berbagai skenario serangan dilakukan untuk mengetahui apakah aplikasi benar-benar rentan terhadap eksploitasi tertentu.
Aktivitas dalam Dynamic Analysis
- Monitoring network traffic.
- Intercept komunikasi HTTPS.
- Runtime manipulation.
- Pengujian autentikasi.
- Session management testing.
- API testing.
- Runtime debugging.
- Memory analysis.
Kelebihan Dynamic Analysis
- Melihat perilaku aplikasi secara nyata.
- Memvalidasi apakah kerentanan benar-benar dapat dieksploitasi.
- Menganalisis komunikasi dengan backend.
- Menguji mekanisme autentikasi dan otorisasi.
- Mengidentifikasi kelemahan yang tidak terlihat melalui analisis statis.
Keterbatasan Dynamic Analysis
Meskipun sangat efektif untuk mengamati perilaku aplikasi saat dijalankan, Dynamic Analysis juga memiliki beberapa keterbatasan. Pengujian hanya dapat dilakukan pada fitur atau alur yang benar-benar dijalankan selama proses testing. Akibatnya, beberapa kerentanan yang berada pada bagian aplikasi yang tidak diuji mungkin tidak terdeteksi.
Selain itu, Dynamic Analysis membutuhkan lingkungan pengujian yang telah dikonfigurasi dengan baik, termasuk perangkat uji, proxy untuk menginspeksi lalu lintas jaringan, hingga alat debugging. Oleh karena itu, metode ini umumnya dipadukan dengan Static Analysis agar hasil pengujian lebih komprehensif.
Perbandingan Static Analysis dan Dynamic Analysis
| Aspek | Static Analysis | Dynamic Analysis |
|---|---|---|
| Waktu Pengujian | Sebelum aplikasi dijalankan | Saat aplikasi berjalan |
| Fokus | Source code, konfigurasi, struktur aplikasi | Perilaku aplikasi saat runtime |
| Analisis Network | Tidak | Ya |
| Validasi Eksploitasi | Terbatas | Ya |
| Deteksi Hardcoded Secret | Sangat baik | Terbatas |
| Analisis API | Terbatas | Sangat baik |
| Komunikasi Backend | Tidak langsung | Dapat diamati secara langsung |
Mengapa Static dan Dynamic Analysis Harus Digunakan Bersama?
Salah satu kesalahan yang masih sering terjadi adalah menganggap salah satu metode sudah cukup untuk menilai keamanan aplikasi. Padahal, Static Analysis dan Dynamic Analysis memiliki tujuan yang berbeda sehingga hasilnya saling melengkapi.
Static Analysis sangat efektif untuk menemukan kelemahan pada implementasi kode, konfigurasi aplikasi, penggunaan library, hingga penyimpanan data sensitif. Sementara itu, Dynamic Analysis digunakan untuk memastikan bagaimana aplikasi benar-benar berperilaku ketika digunakan oleh pengguna maupun saat berinteraksi dengan backend.
Dengan menggabungkan kedua metode tersebut, penguji dapat memperoleh gambaran keamanan aplikasi secara lebih menyeluruh, mulai dari struktur internal hingga perilaku aplikasi pada kondisi nyata.
Hubungan dengan Standar OWASP MASVS
Dalam praktik profesional, pengujian keamanan aplikasi mobile umumnya mengacu pada OWASP Mobile Application Security Verification Standard (MASVS). Standar ini menyediakan kerangka kerja untuk mengevaluasi berbagai aspek keamanan aplikasi Android dan iOS.
Baik Static Analysis maupun Dynamic Analysis digunakan untuk memverifikasi kontrol keamanan yang direkomendasikan oleh OWASP MASVS, seperti penyimpanan data, komunikasi jaringan, autentikasi, pengelolaan sesi, perlindungan terhadap reverse engineering, hingga implementasi kriptografi.
Dengan mengacu pada standar tersebut, hasil mobile pentest menjadi lebih sistematis, konsisten, dan mudah dipahami oleh tim pengembang maupun pemilik aplikasi.
Kapan Mobile Pentest Sebaiknya Dilakukan?
Pengujian keamanan aplikasi mobile idealnya dilakukan sejak tahap pengembangan dan diulang secara berkala, terutama ketika terdapat perubahan signifikan pada aplikasi.
Beberapa kondisi yang disarankan untuk melakukan mobile pentest antara lain:
- Sebelum aplikasi dipublikasikan ke Google Play atau App Store.
- Setelah penambahan fitur baru.
- Sebelum integrasi dengan layanan pihak ketiga.
- Setelah migrasi backend atau API.
- Sebagai bagian dari audit keamanan berkala.
- Untuk memenuhi kebutuhan kepatuhan atau regulasi.
Temika Mendukung Pengujian Keamanan Aplikasi Mobile
Memahami perbedaan Static Analysis dan Dynamic Analysis merupakan langkah awal dalam membangun aplikasi yang lebih aman. Namun, agar hasil pengujian benar-benar memberikan nilai bagi bisnis, proses mobile pentest perlu dilakukan secara menyeluruh dengan metodologi yang sesuai dengan praktik terbaik industri.
Temika menyediakan layanan Mobile Penetration Testing untuk aplikasi Android, iOS, maupun backend API. Proses pengujian dilakukan menggunakan kombinasi Static Analysis dan Dynamic Analysis dengan mengacu pada standar seperti OWASP MASVS untuk membantu mengidentifikasi kerentanan sebelum dimanfaatkan oleh pihak yang tidak bertanggung jawab.
Didukung pengalaman sekitar 8 tahun, penerapan standar ISO 27001, serta tim profesional dengan sertifikasi OSCP, CRTO, dan CRTP, Temika membantu perusahaan meningkatkan keamanan aplikasi mobile secara komprehensif.
Kesimpulan
Static Analysis dan Dynamic Analysis merupakan dua metode utama dalam mobile penetration testing yang memiliki fungsi berbeda tetapi saling melengkapi. Static Analysis berfokus pada analisis struktur dan implementasi aplikasi, sedangkan Dynamic Analysis mengevaluasi perilaku aplikasi saat dijalankan.
Dengan mengombinasikan kedua metode tersebut, organisasi dapat memperoleh hasil pengujian yang lebih komprehensif, menemukan lebih banyak potensi kerentanan, serta meningkatkan keamanan aplikasi Android maupun iOS sebelum digunakan oleh pengguna.







