android:exported

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.