Memperbaiki Kerentanan Penulisan Skrip Lintas Aplikasi

Informasi ini ditujukan bagi developer yang memiliki aplikasi dengan kerentanan Penulisan Skrip Lintas Aplikasi.

Apa yang terjadi

Satu atau beberapa aplikasi Anda memiliki masalah Penulisan Skrip Lintas Aplikasi WebView yang memungkinkan aplikasi berbahaya mencuri cookie pengguna dan data lainnya. Harap lihat notifikasi di Konsol Play Anda. Setelah melewati batas waktu yang ditampilkan di Konsol Play, semua aplikasi yang memiliki kerentanan keamanan yang belum diperbaiki akan dihapus dari Google Play.

Tindakan yang diperlukan​

  1. Login ke Konsol Play Anda, lalu buka bagian Notifikasi untuk melihat aplikasi yang terpengaruh dan batas waktu untuk mengatasi masalah ini.
  2. Update aplikasi yang terpengaruh dan perbaiki kerentanannya.
  3. Kirimkan versi terupdate aplikasi yang terpengaruh.

Selama proses ini, aplikasi baru atau update aplikasi akan berada dalam status publikasi menunggu keputusan hingga permintaan Anda ditinjau. Jika aplikasi belum diupdate dengan benar, peringatan akan tetap ditampilkan.

Detail tambahan

WebView yang mengaktifkan JavaScript dan memuat data yang dibaca dari Intent tidak tepercaya dapat ditipu oleh aplikasi berbahaya, sehingga mengeksekusi kode JavaScript dalam konteks yang tidak aman. Sebaiknya Anda mencegah kerentanan ini dengan salah satu cara berikut:

Opsi 1: Pastikan bahwa aktivitas yang terpengaruh tidak diekspor

Temukan semua Aktivitas dengan WebView yang terpengaruh. Jika Aktivitas tidak perlu mengambil Intent dari aplikasi lain, Anda dapat menetapkan android:exported=false untuk Aktivitas tersebut dalam Manifes. Dengan begitu, aplikasi berbahaya tidak dapat mengirim input berbahaya ke WebView mana pun dalam Aktivitas ini.

Opsi 2: Lindungi WebView dalam aktivitas yang diekspor

Jika Anda ingin menetapkan Aktivitas dengan WebView yang terpengaruh untuk diekspor, sebaiknya lakukan perubahan berikut:

  1. Lindungi panggilan ke evaluateJavascript dan loadUrl

    Pastikan parameter untuk evaluateJavascript selalu tepercaya. Jika Anda memanggil evaluateJavascript menggunakan input bermasalah dari Intent yang tidak tepercaya, penyerang dapat mengeksekusi skrip berbahaya dalam WebView yang terpengaruh. Demikian pula, jika Anda memanggil loadUrl dengan input bermasalah yang berisi javascript: URL skema, penyerang dapat mengeksekusi skrip berbahaya.

  2. Cegah pemuatan file yang tidak aman

    Pastikan WebViews yang terpengaruh tidak dapat memuat database cookie. WebView yang memuat URL file:// bermasalah dari Intent tidak tepercaya dapat diserang oleh aplikasi berbahaya melalui dua langkah. Langkah pertama: halaman web berbahaya dapat menulis tag <script> ke dalam database cookie. Langkah kedua: file database cookie yang dimodifikasi ini dapat dimuat jika aplikasi berbahaya mengirimkan Intent dengan URL file:// yang mengarah ke database cookie WebView Anda, atau jika halaman web berbahaya itu sendiri mengalihkan WebView Anda ke URL file. <script> berbahaya yang disimpan dalam database cookie akan dimuat dan dieksekusi, yang dapat mencuri informasi sesi.

    Anda dapat memastikan bahwa WebViews yang terpengaruh tidak dapat memuat database cookie WebView melalui tiga cara.

    1. Nonaktifkan semua akses file.
    2. Pastikan bahwa WebView hanya memuat URL file:// dan semua URL file:// yang dimuat mengarah ke file yang aman. Perlu diingat bahwa penyerang dapat menggunakan link simbolis untuk mengelabui pemeriksaan pada jalur URL. Untuk mencegah serangan semacam itu, pastikan untuk memeriksa jalur kanonis setiap URL file:// tidak tepercaya sebelum memuatnya, bukan sekadar memeriksa jalur URL.
    3. Jika Anda ingin mengizinkan URL http:// dan URL file://, terapkan verifikasi URL file:// menggunakanshouldOverrideUrlLoading dan shouldInterceptRequest di WebViewClient. Tindakan ini akan memastikan bahwa semua URL yang dimuat ke WebView diverifikasi, bukan hanya URL yang langsung diberikan ke panggilan fungsi loadUrl().

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

Apakah ini membantu?

Bagaimana cara meningkatkannya?
false
Menu utama
12550851134183730965
true
Pusat Bantuan Penelusuran
true
true
true
true
true
5016068
false
false