Corrigir uma vulnerabilidade de cross-app scripting

Estas informações destinam-se aos programadores com apps que contenham a vulnerabilidade de cross-app scripting.

O que está a acontecer

Uma ou mais das suas apps têm um problema de cross-app scripting no WebView que pode permitir que apps maliciosas roubem cookies dos utilizadores e outros dados. Consulte o aviso na Play Console. Após os prazos apresentados na Play Console, as apps que contenham vulnerabilidades de segurança não corrigidas poderão ser removidas do Google Play.

Ação necessária​

  1. Inicie sessão na Play Console e navegue até à secção Alertas para ver quais as apps afetadas e os prazos para resolver estes problemas.
  2. Atualize as apps afetadas e corrija a vulnerabilidade.
  3. Envie as versões atualizadas das apps afetadas.

Durante este período, a nova app ou atualização de app estará num estado de publicação pendente até que o seu pedido seja revisto. Se a app não tiver sido atualizada corretamente, continuará a ver o aviso.

Detalhes adicionais

As apps maliciosas podem enganar os componentes WebView que ativam o JavaScript e carregam dados lidos a partir de Intents não fidedignos de forma a levá-los a executar código JavaScript num contexto inseguro. Recomendamos que impeça esta vulnerabilidade de uma das seguintes formas:

Opção 1: certifique-se de que não são exportadas Activities afetadas

Localize todas as Activities com WebViews afetados. Se estas Activities não precisarem de ingerir Intents de outras apps, pode definir android:exported=false para as Activities no seu manifesto. Tal garante que as apps maliciosas não podem enviar entradas prejudiciais para quaisquer WebViews nestas Activities.

Opção 2: proteja os WebViews nas Activities exportadas

Se pretender definir uma Activity com um WebView afetado como exportada, recomendamos que efetue as seguintes alterações:

  1. Proteja as chamadas para evaluateJavascript e loadUrl

    Certifique-se de que os parâmetros enviados para evaluateJavascript são sempre fidedignos. Chamar evaluateJavascript através de entradas perigosas de Intents não fidedignos permite que os atacantes executem scripts prejudiciais no WebView afetado. Da mesma forma, chamar loadUrl com entradas perigosas que contenham URLs de esquema javascript: permite que os atacantes executem scripts prejudiciais.

  2. Impeça o carregamento de ficheiros inseguros

    Certifique-se de que os componentes WebView afetados não conseguem carregar a base de dados de cookies. As apps maliciosas podem atacar os WebViews que carregam URLs file:// perigosos de Intents não fidedignos em dois passos. Primeiro passo: uma página Web maliciosa pode escrever etiquetas <script> na base de dados de cookies. Segundo passo: este ficheiro de base de dados de cookies modificado pode ser carregado se uma app maliciosa enviar um Intent com um URL file:// que aponta para a sua base de dados de cookies do WebView ou se a página Web maliciosa redirecionar o seu WebView para o URL do ficheiro. O <script> malicioso armazenado na base de dados de cookies será carregado e executado, podendo roubar informações da sessão.

    Pode garantir que os WebViews afetados não conseguem carregar a base de dados de cookies do WebView de duas formas.

    1. Desative todo o acesso a ficheiros.
    2. Certifique-se de que o WebView apenas carrega os URLs file:// e valide que todos os URLs file:// carregados apontam para ficheiros seguros. Tenha em atenção que um atacante pode utilizar um symbolic link para enganar as verificações no caminho de URL. Para impedir estes ataques, certifique-se de que verifica o caminho canónico de qualquer URL file:// não fidedigno antes do carregamento, em vez de verificar apenas o caminho de URL.
    3. Se pretender permitir URLs http:// e URLs file://, implemente a validação do URL file:// através de shouldOverrideUrlLoading e shouldInterceptRequest em WebViewClient. Isto garante que todos os URLs carregados para o WebView são validados e não estão limitados aos URLs fornecidos diretamente a uma chamada de função loadUrl().

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.

false
Menu principal
2838220378633193150
true
Pesquisar no Centro de ajuda
true
true
true
true
true
5016068
false
false