Este artigo destina-se a programadores com aplicações que utilizam uma implementação não segura do controlador WebViewClient.onReceivedSslError.
O que está a acontecer
Uma ou mais das suas aplicações contêm uma implementação insegura do controlador onReceivedSslError, o que torna a aplicação vulnerável a ataques de intrusos. Um utilizador mal-intencionado pode alterar o conteúdo do WebView afetado, ler os dados transmitidos (tais como credenciais de início de sessão) e executar código na aplicação através de JavaScript. Consulte o aviso na Play Console. Após os prazos apresentados na Play Console, as aplicações que contenham vulnerabilidades de segurança não corrigidas poderão ser removidas do Google Play.
Ação necessária
- Inicie sessão na Play Console e navegue até à secção Alertas para ver quais as aplicações afetadas e os prazos para resolver estes problemas.
- Atualize as aplicações afetadas e corrija a vulnerabilidade.
- Envie as versões atualizadas das aplicações afetadas.
Depois de voltar a enviar, a sua aplicação será revista novamente. Este processo pode demorar várias horas. Se a aplicação passar na revisão e for publicada com êxito, não será necessária qualquer ação adicional. Se a aplicação falhar na revisão, a nova versão da aplicação não será publicada e receberá uma notificação por email.
Detalhes adicionais
- Para corrigir o problema, atualize o código das aplicações para invocar SslErrorHandler.proceed() sempre que o certificado apresentado pelo servidor cumpra as suas expetativas e para invocar SslErrorHandler.cancel() caso contrário. Tenha em atenção os seguintes aspetos ao verificar a validade do certificado:
-
Uma aplicação pode ser sinalizada se não contiver verificações suficientes para a validade do certificado; por exemplo, apenas verificar o valor devolvido de getPrimaryError não é suficiente para estabelecer a validade do certificado.
-
Não é seguro ignorar a maioria dos erros de SSL devolvidos por SslError.getPrimaryError. Tenha em atenção que getPrimaryError devolve o erro mais grave num conjunto de erros, como tal, se
getPrimaryError() != SSL_UNTRUSTED
for verdadeiro, a ligação ainda pode conter um erro SSL_UNTRUSTED no conjunto de erros.
-
-
Se estiver a utilizar uma biblioteca de terceiros responsável por isto, notifique a parte em questão e colabore com a mesma para resolver o problema.
Para obter mais informações acerca do controlador de erros do SSL, consulte a nossa documentação no Centro de Ajuda para programadores Android. Para outras questões técnicas, pode publicar uma mensagem em https://www.stackoverflow.com/questions e utilizar as etiquetas "android-security" e "SslErrorHandler".
Apesar de estes problemas específicos poderem não afetar todas as aplicações que utilizam o WebView SSL, é preferível manter-se a par de todos os patches de segurança. As aplicações com vulnerabilidades que expõem os utilizadores ao risco de comprometimento podem ser consideradas produtos perigosos e, consequentemente, violar a Política de Conteúdos e a secção 4.4 do Contrato de Distribuição para Programadores.
Estamos aqui para ajudar
Se tiver perguntas técnicas acerca da vulnerabilidade, pode publicar uma mensagem no Stack Overflow e utilizar a etiqueta "android-security". Para obter um esclarecimento sobre os passos que tem de efetuar para resolver este problema, pode contactar a nossa equipa de apoio técnico a programadores.