Solução para a vulnerabilidade de roubo de esquema de Intent

Estas informações destinam-se aos programadores com aplicações que contêm a vulnerabilidade de roubo de esquema de Intent.

O que está a acontecer

Uma ou mais das suas aplicações contêm um problema de roubo de esquema de Intent que pode permitir que redes e Websites maliciosos acedam a componentes de aplicações privadas.Consulte o aviso na Play ConsoleApó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

  1. 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.

  2. Atualize as aplicações afetadas ao seguir os passos realçados abaixo.

  3. 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 obtiver a aprovação 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

Os WebViews que acedem a conteúdo Web não fidedigno, analisam links intent:// através de Intent.parseUri e enviam essas intenções com startActivity são vulneráveis ao roubo de esquema de Intent. Estes WebViews podem ser levados a enviar intenções arbitrárias para componentes de aplicações privadas. Isto pode comprometer as aplicações, por exemplo, através do roubo de dados de aplicações privadas que esses componentes manipulam. Tenha em atenção que o conteúdo Web não fidedigno inclui conteúdo de domínios fidedignos que é carregado através de HTTP.

Recomendamos que impeça esta vulnerabilidade de uma das seguintes formas:

Opção 1: garanta que os WebViews não conseguem enviar intenções arbitrárias

As aplicações podem restringir as intenções criadas com Intent.parseUri para apenas serem enviadas como Implicit Intents para componentes com intent-filters BROWSABLE através do seguinte código:

     // 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: certifique-se de que os WebViews afetados não carregam conteúdo Web não fidedigno

Se um componente WebView precisar de analisar URLs de esquema intent:// arbitrários, deve certificar-se de que este não carrega conteúdo Web não fidedigno. O conteúdo Web não fidedigno inclui conteúdo Web carregado através de uma ligação não encriptada. Os programadores podem definir android:usesCleartextTraffic como falso no respetivo Manifesto ou definir uma Network Security Config que não permita tráfego HTTP. Em alternativa, podem assegurar que quaisquer WebViews afetados não carreguem URLs com esquemas HTTP através de loadUrl.

Recomendamos que os programadores se certifiquem de que os WebViews afetados não carregam URLs sem restrições obtidos de fontes não fidedignas (por exemplo, URLs obtidos de intenções não fidedignas). 

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
15199295427060464606
true
Pesquisar no Centro de ajuda
true
true
true
true
true
5016068
false
false