Correção da vulnerabilidade de invasão de esquema de intent

Estas informações são destinadas a desenvolvedores de apps com a vulnerabilidade de invasão de esquema de intent.

O que está acontecendo

Um ou mais dos seus apps têm um problema de Intent-Scheme Hijacking. Isso pode permitir que redes e sites maliciosos acessem componentes privados dos apps.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. Siga as etapas destacadas abaixo para fazer as atualizações necessárias.

  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 acessam conteúdo não confiável da Web, analisam links intent:// usando Intent.parseUri e enviam esses intents com startActivity são vulneráveis a Intent-Scheme Hijacking. De maneira enganosa, os conteúdos da Web maliciosos podem induzir esses WebViews a transmitir intents arbitrários para componentes de apps particulares. Isso pode levar ao comprometimento do conteúdo, como o roubo de dados dos apps particulares que são manipulados por esses componentes. O conteúdo da Web não confiável inclui material de domínios confiáveis que são carregados em HTTP.

Recomendamos evitar essa vulnerabilidade com um dos métodos a seguir:

Opção 1: impedir que os WebViews enviem intents arbitrários

É possível fazer com que os apps restrinjam os intents criados com Intent.parseUri de modo que eles só sejam enviados como intents implícitos a componentes com filtros de intent BROWSABLE. Para isso, use o código a seguir:

     // convert Intent scheme URL to Intent object
  Intent intent = Intent.parseUri(url);
  // forbid launching activities without BROWSABLE category
  intent.addCategory("android.intent.category.BROWSABLE");
  // forbid explicit call
  intent.setComponent(null);
  // forbid Intent with selector Intent
  intent.setSelector(null);
  // start the activity by the Intent
  view.getContext().startActivity(intent, -1);

Opção 2: impedir que os WebViews afetados carreguem conteúdo da Web que não seja confiável

Caso um WebView precise analisar URLs arbitrários de esquema intent://, impeça o carregamento de conteúdos da Web que não sejam confiáveis. Isso inclui material da Web carregado por meio de uma conexão não criptografada. Os desenvolvedores podem definir android:usesCleartextTraffic como "false" no Manifest ou usar uma configuração de segurança de rede que proíba o tráfego HTTP. Outra opção é impedir todos os WebViews afetados de carregar URLs com esquemas HTTP por meio do loadUrl.

Recomendamos que os desenvolvedores impeçam os WebViews afetados de carregar URLs irrestritos de fontes duvidosas (por exemplo, URLs de intents não confiáveis). 

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?