Kategori OWASP: MASVS-PLATFORM: Interaksi Platform
Ringkasan
Atribut android:exported
menetapkan apakah komponen (aktivitas, layanan, penerima siaran, dll.) dapat diluncurkan oleh komponen aplikasi lain:
- Jika
true
, aplikasi apa pun dapat mengakses aktivitas dan meluncurkannya berdasarkan nama class yang tepat. - Jika
false
, hanya komponen aplikasi yang sama, aplikasi dengan ID pengguna yang sama, atau komponen sistem dengan hak istimewa yang dapat meluncurkan aktivitas.
Logika di balik nilai default atribut ini berubah dari waktu ke waktu dan berbeda-beda, bergantung jenis komponen dan versi Android. Misalnya, pada level API 16 (Android 4.1.1) atau lebih rendah, nilai elemen <provider>
ditetapkan ke true
secara default. Tidak menetapkan atribut ini secara eksplisit berisiko memiliki nilai default yang berbeda di antara beberapa perangkat.
Dampak
Situasi dengan nilai default yang berbeda berarti Anda dapat secara tidak sengaja mengekspos komponen aplikasi internal. Beberapa contoh konsekuensinya adalah sebagai berikut:
Serangan denial of service. Aplikasi lain mengakses komponen internal secara tidak tepat untuk memodifikasi fungsi internal aplikasi Anda. Kebocoran data sensitif. Eksekusi kode dalam konteks aplikasi rentan.
Mitigasi
Selalu tetapkan atribut android:exported
secara eksplisit. Hal ini tidak akan memberikan ruang untuk penafsiran dan secara jelas menunjukkan niat Anda sehubungan dengan visibilitas komponen.
Direkomendasikan untuk Anda
- Catatan: teks link ditampilkan saat JavaScript nonaktif
- # Pengelolaan kunci {:#key-management}
- Menjalankan kode DEX tersemat langsung dari APK
- Tapjacking