Cara menangani notifikasi Pengendali Error SSL WebView di aplikasi.

Artikel ini ditujukan bagi developer yang memiliki aplikasi yang menggunakan penerapan tidak aman dari pengendali WebViewClient.onReceivedSslError.

Yang terjadi

Satu atau beberapa aplikasi Anda berisi penerapan yang tidak aman dari pengendali onReceivedSslError, yang membuat aplikasi rentan terhadap serangan man-in-the-middle. Penyerang dapat mengubah konten WebView yang terpengaruh, membaca data yang dikirim (seperti kredensial login), dan mengeksekusi kode dalam aplikasi menggunakan JavaScript. Silakan lihat notifikasi di Konsol Play Anda. Setelah batas waktu yang ditampilkan di Konsol Play, aplikasi apa pun 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 Anda yang terpengaruh.

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

Detail tambahan

  1. Untuk memperbaiki masalah ini, perbarui kode aplikasi untuk memanggil SslErrorHandler.proceed() setiap kali sertifikat yang ditampilkan oleh server sesuai dengan keinginan Anda, atau panggil SslErrorHandler.cancel(). Harap perhatikan hal-hal berikut saat memeriksa validitas sertifikat:
    1. Aplikasi dapat ditandai jika tidak berisi pemeriksaan validitas sertifikat yang memadai. Misalnya, untuk menetapkan validitas sertifikat tidak cukup dengan hanya memeriksa nilai hasil dari getPrimaryError.

    2. Tidaklah aman untuk mengabaikan sebagian besar error SSL yang dihasilkan oleh SslError.getPrimaryError. Perlu diperhatikan bahwa  getPrimaryError menampilkan error paling parah dalam sekumpulan error. Jadi jika getPrimaryError() != SSL_UNTRUSTED ditetapkan ke true, koneksi Anda mungkin masih berisi error SSL_UNTRUSTED dalam sekumpulan error.

  2. Jika Anda menggunakan library pihak ketiga yang bertanggung jawab atas hal ini, beri tahu pihak ketiga tersebut dan bekerja samalah dengan mereka untuk mengatasi masalah ini.

Untuk informasi selengkapnya tentang pengendali error SSL, lihat dokumentasi di Pusat Bantuan Developer Android. Untuk pertanyaan teknis lainnya, Anda dapat memposting pertanyaan ke https://www.stackoverflow.com/questions dengan menggunakan tag “android-security” dan “SslErrorHandler”.

Meski masalah ini mungkin tidak memengaruhi setiap aplikasi yang menggunakan SSL WebView, sebaiknya selalu update semua patch keamanan. Aplikasi yang memiliki kerentanan sehingga membuat pengguna berpotensi disusupi dapat dianggap sebagai produk berbahaya, karena melanggar Kebijakan Konten dan pasal 4.4 dalam Perjanjian Distribusi Developer.

Kami siap membantu

Jika memiliki pertanyaan teknis tentang kerentanan, Anda dapat mempostingnya ke Stack Overflow dan menggunakan tag “android-security”. Untuk mengklarifikasi langkah-langkah yang perlu Anda ambil guna mengatasi masalah ini, Anda dapat menghubungi tim dukungan developer kami.

Apakah ini membantu?
Bagaimana cara meningkatkannya?