Cómo solucionar las alertas del controlador de errores SSL de WebView en aplicaciones

Este artículo va dirigido a los desarrolladores que tengan alguna aplicación que utilice una implementación no segura del controlador WebViewClient.onReceivedSslError.

¿Qué está pasando?

Una o varias de tus aplicaciones contienen una implementación no segura del controlador onReceivedSslError que hace que la aplicación sea vulnerable a los ataques de intermediarios. Un atacante podría cambiar el contenido de la vista WebView afectada, leer los datos que se hayan transmitido (como las credenciales de inicio de sesión) y ejecutar código en la aplicación con JavaScript. Consulta el aviso en Play Console.Una vez que finalice el plazo indicado en Play Console, es posible que las aplicaciones que contengan vulnerabilidades de seguridad sin corregir se retiren de Google Play.

¿Qué tienes que hacer?​

  1. Inicia sesión en Play Console y ve a la sección Alertas para consultar qué aplicaciones están afectadas y las fechas límite para resolver estos problemas.
  2. Actualiza las aplicaciones afectadas y corrige la vulnerabilidad.
  3. Envía las versiones actualizadas de las aplicaciones afectadas.

Cuando vuelvas a enviar tus aplicaciones, se revisarán de nuevo. Este proceso puede tardar varias horas en completarse. Si una aplicación supera el proceso de revisión y se publica, no tendrás que hacer nada más. Si no lo supera, la nueva versión de la aplicación no se publicará y recibirás una notificación por correo electrónico.

Información adicional

  1. Para corregir el problema, actualiza el código de tus aplicaciones para ejecutar SslErrorHandler.proceed() cuando el certificado presentado por el servidor cumpla tus expectativas. En caso contrario, ejecuta SslErrorHandler.cancel(). Cuando vayas a comprobar la validez del certificado, ten en cuenta lo siguiente:
    1. Es posible que se marquen las aplicaciones en las que no se haya comprobado suficientemente la validez de sus certificados. Por ejemplo, comprobar únicamente el valor que devuelve getPrimaryError no es suficiente para establecer la validez del certificado.

    2. No es seguro ignorar la mayoría de los errores SSL que devuelve SslError.getPrimaryError. Ten en cuenta que getPrimaryError devuelve los errores más graves de cada conjunto de errores. Por eso, si el valor que se le asigna a getPrimaryError() != SSL_UNTRUSTED es "true", es posible que la conexión siga teniendo un error SSL_UNTRUSTED en el conjunto de errores.

  2. Si la causa es que utilizas una biblioteca externa, ponte en contacto con el fabricante en cuestión para solucionar el problema.

Para obtener más información sobre el controlador de errores SSL, consulta la documentación disponible en el Centro de Ayuda para desarrolladores de Android. Si tienes otras preguntas técnicas, puedes publicarlas en https://www.stackoverflow.com/questions y utilizar las etiquetas "android-security" y "SslErrorHandler".

Aunque es posible que estos problemas específicos no afecten a todas las aplicaciones que utilizan SSL de WebView, te recomendamos que mantengas todos los parches de seguridad actualizados. Las aplicaciones con vulnerabilidades que suponen un riesgo para la seguridad de los usuarios se pueden considerar productos peligrosos que infringen la política de contenido y la sección 4.4 del Acuerdo de Distribución para Desarrolladores.

Queremos ayudarte

Si tienes alguna pregunta técnica sobre esta vulnerabilidad, puedes publicarla en Stack Overflow con la etiqueta "android-security". Ponte en contacto con nuestro equipo de asistencia para desarrolladores si necesitas más información para resolver este problema.

¿Te ha resultado útil esta información?

¿Cómo podemos mejorar esta página?
false
Menú principal
15512737755663718186
true
Buscar en el Centro de ayuda
true
true
true
true
true
5016068
false
false