Panduan Lengkap Audit Keamanan Android Menggunakan Kali Linux: ADB, APKTool, MobSF, Frida, dan Analisis Aplikasi
Daftar Isi 15 bagian
Android merupakan sistem operasi mobile yang paling banyak digunakan di dunia. Popularitasnya menjadikan Android sebagai target utama bagi penyerang siber, malware developer, dan pelaku fraud digital.
Melakukan audit keamanan Android secara berkala membantu mengidentifikasi:
- Kerentanan aplikasi.
- Konfigurasi yang tidak aman.
- Kebocoran data sensitif.
- Implementasi autentikasi yang lemah.
- Penyimpanan kredensial yang tidak aman.
- Risiko reverse engineering.
- Potensi eksploitasi privilege escalation.
Artikel ini membahas metode audit Android secara profesional menggunakan Kali Linux dan berbagai tool yang umum digunakan oleh penetration tester serta mobile security researcher.
Disclaimer
Panduan ini ditujukan untuk:
- Pengujian perangkat milik sendiri.
- Audit aplikasi yang memiliki izin pengujian.
- Penelitian keamanan.
- Program bug bounty yang sah.
Jangan menggunakan teknik ini terhadap sistem atau aplikasi tanpa izin karena dapat melanggar hukum yang berlaku.
Persiapan Lingkungan Audit
Update Kali Linux
sudo apt update
sudo apt full-upgrade -y
Install Android Platform Tools
ADB (Android Debug Bridge) merupakan alat utama untuk berinteraksi dengan perangkat Android.
sudo apt install adb fastboot -y
Verifikasi instalasi:
adb version
fastboot --version
Aktifkan Developer Options
Pada perangkat Android:
Settings
└── About Phone
└── Tap Build Number 7x
Lalu aktifkan:
Developer Options
├── USB Debugging
├── Wireless Debugging (Opsional)
└── Stay Awake (Opsional)
Menghubungkan Android ke Kali Linux
Hubungkan perangkat menggunakan kabel USB.
Cek koneksi:
adb devices
Output:
List of devices attached
R58M123456A device
Jika muncul:
unauthorized
Izinkan koneksi pada perangkat Android.
Enumerasi Awal Perangkat Android
Informasi dasar perangkat:
adb shell getprop
Versi Android:
adb shell getprop ro.build.version.release
Informasi model:
adb shell getprop ro.product.model
Patch keamanan:
adb shell getprop ro.build.version.security_patch
Kernel:
adb shell uname -a
Enumerasi Paket Aplikasi
Menampilkan seluruh aplikasi:
adb shell pm list packages
Aplikasi pihak ketiga:
adb shell pm list packages -3
Aplikasi sistem:
adb shell pm list packages -s
Cari aplikasi tertentu:
adb shell pm list packages | grep bank
Mengambil APK dari Perangkat
Cari lokasi APK:
adb shell pm path com.example.app
Output:
package:/data/app/com.example.app/base.apk
Salin APK:
adb pull /data/app/com.example.app/base.apk
Reverse Engineering APK dengan APKTool
Instalasi
sudo apt install apktool -y
Verifikasi:
apktool --version
Dekompilasi APK
apktool d base.apk -o app_source
Struktur:
app_source/
├── AndroidManifest.xml
├── smali/
├── res/
├── assets/
└── lib/
Analisis AndroidManifest.xml
File ini merupakan sumber informasi penting.
Periksa:
- Permission berlebihan.
- Exported Activity.
- Broadcast Receiver.
- Deep Link.
- Service.
Contoh permission sensitif:
<uses-permission android:name="android.permission.READ_SMS"/>
<uses-permission android:name="android.permission.RECORD_AUDIO"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
Mencari API Key dan Secret
Cari string sensitif:
grep -R "apikey" .
grep -R "secret" .
grep -R "token" .
grep -R "password" .
grep -R "firebase" .
Analisis Kode Java dengan JADX
Instalasi
sudo apt install jadx -y
Jalankan GUI:
jadx-gui base.apk
Atau CLI:
jadx base.apk -d jadx_output
Cari:
- Hardcoded credential.
- URL API.
- Debug code.
- Fungsi autentikasi.
- Enkripsi yang lemah.
Audit Penyimpanan Data Lokal
Masuk ke shell:
adb shell
Lihat direktori aplikasi:
run-as com.example.app
Database:
cd databases
ls
Salin database:
adb pull /data/data/com.example.app/databases/app.db
Buka SQLite:
sqlite3 app.db
Daftar tabel:
.tables
Lihat data:
SELECT * FROM users;
Periksa apakah terdapat:
- Password plaintext.
- Token akses.
- Session cookie.
- Informasi pribadi pengguna.
Analisis Shared Preferences
Lokasi:
/data/data/com.example.app/shared_prefs/
Salin:
adb pull /data/data/com.example.app/shared_prefs/
Cari:
<password>
<token>
<apikey>
Audit Komunikasi Jaringan
Pantau koneksi:
adb shell netstat -an
Atau:
adb shell ss -tulpn
Menangkap Traffic dengan Burp Suite
Instal Burp:
sudo apt install burpsuite -y
Jalankan:
burpsuite
Atur proxy Android:
WiFi Settings
└── Proxy
├── Host: IP Kali Linux
└── Port: 8080
Periksa:
- Data sensitif.
- Token.
- API endpoint.
- Header keamanan.
- Validasi sertifikat.
Audit SSL Pinning
Banyak aplikasi menggunakan SSL Pinning untuk mencegah MITM.
Indikasi:
SSLHandshakeException
Certificate Pinning Failure
Deteksi implementasi:
jadx-gui base.apk
Cari:
CertificatePinner
TrustManager
HostnameVerifier
Dynamic Analysis Menggunakan Frida
Instalasi Frida
pip install frida-tools
Cek:
frida --version
Menjalankan Frida
Lihat proses:
frida-ps -U
Attach aplikasi:
frida -U -n com.example.app
Spawn:
frida -U -f com.example.app
Bypass Root Detection
Contoh:
frida -U -f com.example.app -l root-bypass.js
Bypass SSL Pinning
frida -U -f com.example.app -l ssl-bypass.js
Analisis Runtime Menggunakan Objection
Instal:
pip install objection
Jalankan:
objection -g com.example.app explore
Perintah:
android sslpinning disable
android root disable
memory list modules
memory search "token"
Audit Komprehensif Menggunakan MobSF
Mobile Security Framework (MobSF) merupakan salah satu platform audit Android terbaik.
Instalasi Docker
sudo apt install docker.io -y
Jalankan MobSF:
docker pull opensecurity/mobile-security-framework-mobsf
docker run -it -p 8000:8000 opensecurity/mobile-security-framework-mobsf
Akses:
http://localhost:8000
Upload APK dan lakukan analisis.
Hasil yang Umumnya Ditemukan oleh MobSF
- Hardcoded API Key.
- Insecure Cryptography.
- Exported Components.
- Weak SSL Validation.
- Debuggable Build.
- Insecure Storage.
- Dangerous Permissions.
- Third-party Library Vulnerabilities.
Audit Komponen Android yang Diekspos
Gunakan:
adb shell dumpsys package com.example.app
Cari:
Activity
Service
Receiver
Provider
Komponen exported tanpa autentikasi dapat menjadi titik serangan.
Pengujian Deep Link
Cari:
<intent-filter>
Uji:
adb shell am start \
-a android.intent.action.VIEW \
-d "app://login"
Periksa apakah deep link dapat dimanipulasi.
Pengujian Activity
Daftar Activity:
adb shell dumpsys package com.example.app
Jalankan:
adb shell am start -n \
com.example.app/.MainActivity
Pengujian Broadcast Receiver
Kirim broadcast:
adb shell am broadcast \
-a com.example.app.TEST
Periksa apakah aplikasi memproses data tanpa validasi.
Audit Logcat
Pantau log:
adb logcat
Filter aplikasi:
adb logcat | grep com.example.app
Cari:
- Password.
- Session ID.
- Token.
- Error sensitif.
- Stack trace.
Rooted Device Assessment
Jika perangkat root:
Verifikasi:
adb shell su
Lihat permission berbahaya:
find /data/data -type f 2>/dev/null
Cari file sensitif:
find /sdcard -iname "*.db"
find /sdcard -iname "*.xml"
find /sdcard -iname "*.txt"
Checklist Audit Android Profesional
Static Analysis
- AndroidManifest.xml
- Permission Audit
- Hardcoded Credential
- API Endpoint Review
- Source Code Review
- Third-party Libraries
Dynamic Analysis
- Traffic Interception
- SSL Pinning Assessment
- Runtime Hooking
- Authentication Testing
- Session Management
- Input Validation
Data Storage
- SQLite Database
- Shared Preferences
- Cache Storage
- External Storage
System Assessment
- Patch Level
- Device Configuration
- Root Detection
- Debug Configuration
Kesimpulan
Audit keamanan Android tidak hanya berfokus pada aplikasi, tetapi juga mencakup sistem operasi, penyimpanan data, komunikasi jaringan, serta perilaku aplikasi saat berjalan. Dengan memanfaatkan Kali Linux dan tool seperti ADB, APKTool, JADX, MobSF, Frida, Objection, Burp Suite, dan SQLite, seorang auditor dapat melakukan analisis menyeluruh untuk menemukan kelemahan yang berpotensi dieksploitasi.
Pendekatan terbaik adalah menggabungkan static analysis, dynamic analysis, network analysis, dan runtime instrumentation sehingga hasil audit menjadi lebih akurat dan mampu memberikan rekomendasi mitigasi yang efektif bagi pengembang maupun tim keamanan.