Remediasi untuk Kerentanan Peretasan Skema Intent

Informasi ini ditujukan bagi developer yang memiliki aplikasi dengan Kerentanan Peretasan Skema Intent.

Yang terjadi

Satu atau beberapa aplikasi Anda memiliki masalah Pembajakan Skema Intent yang dapat memungkinkan jaringan dan situs jahat mengakses komponen aplikasi pribadi.Lihat pemberitahuan di Konsol Play Anda. Setelah batas waktu ditampilkan di Konsol Play, aplikasi apa pun yang memiliki kerentanan keamanan yang tidak diperbaiki akan dihapus dari Google Play.

Perlu tindakan

  1. Login ke Konsol Play, dan buka bagian Notifikasi untuk melihat aplikasi mana yang terpengaruh dan batas waktu untuk menyelesaikan masalah ini.

  2. Update aplikasi Anda yang terpengaruh sesuai dengan langkah-langkah yang dijelaskan di bawah ini.

  3. Kirimkan versi terupdate aplikasi Anda yang terpengaruh.

Setelah pengiriman ulang, aplikasi Anda akan ditinjau kembali. Proses ini dapat memerlukan waktu beberapa jam. Jika aplikasi berhasil melewati peninjauan dan dipublikasikan, Anda tidak perlu melakukan tindakan lebih lanjut. Jika aplikasi gagal ditinjau, versi aplikasi baru tidak akan dipublikasikan dan Anda akan menerima notifikasi email.

Detail tambahan

WebViews yang mengunjungi konten web yang tidak dipercaya, mengurai link intent:// menggunakan Intent.parseUri, dan mengirim Intent tersebut menggunakan startActivity rentan terhadap Pembajakan Skema Intent. WebViews ini dapat ditipu oleh konten web berbahaya untuk mengirimkan Intent arbiter ke komponen aplikasi pribadi. Ini dapat menyebabkan kompromi aplikasi seperti pencurian data aplikasi pribadi yang dimanipulasi komponen tersebut. Perhatikan bahwa konten web tidak tepercaya menyertakan konten dari domain tepercaya yang dimuat melalui HTTP.

Sebaiknya Anda mencegah kerentanan ini dengan salah satu cara berikut:

Opsi 1: Pastikan WebView tidak dapat mengirim Intent arbitrer

Aplikasi dapat membatasi Intent yang dibuat dengan Intent.parseUri untuk dikirim hanya sebagai Implicit Intent bagi komponen dengan Filter Intent BROWSABLE menggunakan kode berikut:

     // convert Intent scheme URL to Intent object
  Intent intent = Intent.parseUri(url);
  // forbid launching activities without BROWSABLE category
  intent.addCategory("android.intent.category.BROWSABLE");
  // forbid explicit call
  intent.setComponent(null);
  // forbid Intent with selector Intent
  intent.setSelector(null);
  // start the activity by the Intent
  view.getContext().startActivity(intent, -1);

Opsi 2: Pastikan WebView yang terpengaruh tidak memuat konten web tidak tepercaya

Jika WebView perlu mengurai URL skema intent:// arbitrer, pastikan WebView tidak memuat konten web tidak tepercaya. Konten web yang tidak tepercaya mencakup konten web yang dimuat melalui sambungan yang tidak terenkripsi. Developer dapat menetapkan android:usesCleartextTraffic ke false dalam Manifestasinya atau menetapkan Network Security Config yang tidak mengizinkan traffic HTTP. Selain itu, Anda dapat menggunakan loadUrl untuk memastikan bahwa WebView apa pun yang terpengaruh tidak memuat URL dengan skema HTTP.

Sebaiknya developer memastikan bahwa WebViews yang terpengaruh tidak memuat URL yang tidak dibatasi yang diperoleh dari sumber yang tidak tepercaya (misalnya, URL yang diperoleh dari Intent yang tidak dipercaya). 

Kami siap membantu
Jika ada pertanyaan teknis tentang kerentanan, Anda dapat mengirim postingan ke Stack Overflow dan menggunakan tag “android-security”. Untuk penjelasan mengenai langkah-langkah yang diperlukan untuk mengatasi masalah ini, Anda dapat menghubungi tim dukungan developer.

Apakah ini membantu?
Bagaimana cara meningkatkannya?