Corrigir uma vulnerabilidade de cross-app scripting

Estas informações são destinadas a desenvolvedores com apps que contenham uma vulnerabilidade de cross-app scripting.

O que está acontecendo

Um ou mais dos seus apps têm um problema de Cross-App Scripting de WebView que pode permitir que apps maliciosos roubem cookies dos usuários e outros dados. 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

Os WebViews que ativam JavaScript e carregam dados lidos de Intents não confiáveis podem ser levados por apps maliciosos a executar código JavaScript em um contexto não seguro. Recomendamos evitar essa vulnerabilidade com um dos métodos a seguir:

Opção 1: impedir a exportação das atividades afetadas

Encontre atividades com WebViews afetados. Se essas atividades não precisarem usar intents de outros apps, você poderá definir android:exported=false nas atividades do Manifest. Isso não permite que os apps maliciosos enviem entradas prejudiciais para os WebViews nessas atividades.

Opção 2: proteger os WebViews em atividades exportadas

Para definir uma atividade com um WebView afetado como exportada, recomendamos que você faça as seguintes alterações:

  1. Atualizar o targetSdkVersion
    É preciso que o targetSdkVersion atenda ao requisito de segmentação de nível de API do Google Play. Apps com um targetSdkVersion de até 16 avaliam URLs JavaScript transmitidos para loadUrl no contexto da página atualmente carregada. Segmentar a versão 16 ou anterior do SDK e chamar o loadUrl usando entradas de intents não confiáveis sem correção permite que os invasores executem scripts nocivos no WebView afetado.
  2. Proteger chamadas para evaluateJavascript
    Os parâmetros de evaluateJavascript precisam sempre ser confiáveis. Chamar evaluateJavascript usando entradas de intents não confiáveis sem correção permite que os invasores executem scripts nocivos no WebView afetado.
  3. Evitar o carregamento não seguro de arquivos
    Não permita que os WebViews afetados carreguem o banco de dados de cookies. Os WebViews que carregam URLs file:// de intents não confiáveis sem correção podem ser atacados por apps maliciosos da maneira descrita a seguir. Uma página da Web maliciosa pode gravar tags <script> no banco de dados de cookies e, em seguida, um app malicioso pode enviar um intent com um URL file:// que leva ao banco de dados de cookies do WebView. O script malicioso será executado se o banco de dados de cookies for carregado em um WebView e poderá roubar informações da sessão.
    Há duas maneiras de impedir que os WebViews afetados carreguem o banco de dados de cookies do WebView. Você pode desativar todo o acesso a arquivos ou verificar se os file:// URLs carregados apontam para arquivos seguros. Um invasor pode usar um link simbólico para enganar as verificações no caminho do URL. Para evitar esse tipo de ataque, verifique o caminho canônico de qualquer URL file:// não confiável antes do carregamento em vez de simplesmente conferir o caminho do URL.

Estamos aqui para ajudar
Se você tiver dúvidas técnicas sobre a vulnerabilidade, escreva uma postagem no Stack Overflow e use a tag "android-security". 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?