Como lidar com alertas do gerenciador de erros de SSL do WebView nos seus apps.

Este artigo é destinado a desenvolvedores de apps com uma implementação não segura do gerenciador WebViewClient.onReceivedSslError.

O que está acontecendo

Um ou mais dos seus apps têm uma implementação não segura do gerenciador onReceivedSslError, o que os deixa vulneráveis a ataques man-in-the-middle. Um invasor poderia alterar o conteúdo do WebView afetado, ler dados transmitidos (como credenciais de login) e executar código no app usando JavaScript. Consulte o aviso no Play ConsoleApós os prazos exibidos no Play Console, todos os apps com vulnerabilidades de segurança não corrigidas poderão ser removidos do Google Play.

Ação necessária

  1. Faça login no Play Console e acesse a seção "Alertas" para ver os apps afetados e os prazos para resolver os problemas.
  2. Atualize esses apps e corrija a vulnerabilidade.
  3. Envie as versões atualizadas dos apps afetados.

Após o reenvio, seu app será revisado novamente. Esse processo pode levar várias horas. Se o app for aprovado na revisão e publicado, nenhuma outra ação será necessária. Se ele for reprovado, a nova versão não será publicada, e você receberá uma notificação por e-mail.

Detalhes adicionais

  1. Para corrigir o problema, atualize o código do app de modo que ele invoque SslErrorHandler.proceed() quando o certificado apresentado pelo servidor atender às suas expectativas ou SslErrorHandler.cancel() quando isso não acontecer. Lembre-se do seguinte ao verificar a validade do certificado:
    1. Os apps podem ser sinalizados quando não têm procedimentos suficientes para verificar a validade do certificado. Por exemplo, apenas conferir o valor de retorno de getPrimaryError não basta para determinar que o certificado é válido.

    2. Não é seguro ignorar a maioria dos erros SSL retornados por SslError.getPrimaryError. O getPrimaryError retorna o erro mais grave de um conjunto. Portanto, se getPrimaryError() != SSL_UNTRUSTED for verdadeiro, a conexão ainda poderá ter um erro SSL_UNTRUSTED nesse conjunto.

  2. Caso você use uma biblioteca de terceiros que é responsável por isso, notifique-os e trabalhe com eles para resolver o problema.

Para mais informações sobre o gerenciador de erros de SSL, consulte nossa documentação na Central de Ajuda do Desenvolvedor Android. Caso tenha outras dúvidas técnicas, poste em https://www.stackoverflow.com/questions (em inglês) e use as tags "android-security" e "SslErrorHandler".

Ainda que esses problemas específicos não afetem todos os apps que usam o SSL do WebView, recomendamos manter todos os patches de segurança atualizados. Os apps com vulnerabilidades que expõem os usuários a risco de comprometimento de dados podem ser considerados produtos perigosos que violam a Política de conteúdo e a seção 4.4 do Contrato de distribuição do desenvolvedor.

Estamos aqui para ajudar

Em caso de dúvidas técnicas, escreva uma postagem no Stack Overflow (em inglês) e use as tags "android-security" e "TrustManager". Se precisar de mais informações sobre as etapas necessárias para resolver esse problema, entre em contato com nossa equipe de suporte ao desenvolvedor.

Isso foi útil?
Como podemos melhorá-lo?