Odstranění zranitelnosti napadením objektu Intent

Tyto informace jsou určeny vývojářům aplikací, které nejsou zabezpečeny proti napadení objektu Intent.

Co se děje

Minimálně jedna vaše aplikace obsahuje chybu zabezpečení proti útokům typu Intent-Scheme Hijacking, která škodlivým sítím a webům může umožnit přístup k soukromým součástem aplikace.Další informace najdete v oznámení ve službě Play Console. Po termínech uvedených v Play Console mohou být aplikace s neopravenými chybami zabezpečení z Google Play odstraněny.

Vyžadovaná akce

  1. Přihlaste se do Play Console a přejděte do sekce Upozornění, kde zjistíte, kterých aplikací se tento problém týká a do kdy je potřeba jej vyřešit.

  2. Aktualizujte dotčené aplikace podle níže uvedených pokynů.

  3. Odešlete aktualizované verze dotčených aplikací.

Po odeslání bude aplikace znovu zkontrolována. Tento proces může trvat několik hodin. Pokud aplikace při kontrole projde a bude úspěšně publikována, není potřeba podnikat žádné další kroky. Jestliže aplikace při kontrole neprojde, nová verze aplikace nebude publikována a obdržíte e‑mailem oznámení.

Další podrobnosti

Zobrazení WebView, která navštěvují nedůvěryhodný webový obsah, analyzují odkazy intent:// pomocí metody Intent.parseUri a odesílají tyto objekty Intent pomocí metody startActivity, jsou zranitelná vůči útokům Intent-Scheme Hijacking. Tato zobrazení WebView mohou být škodlivým webovým obsahem podvodně přinucena odeslat upravené objekt Intent do soukromých součástí aplikace. To může vést k prolomení aplikace a odcizení soukromých dat, se kterými tyto součásti pracují. Upozorňujeme, že mezi nedůvěryhodný webový obsah patří i obsah z důvěryhodných domén načítaný přes HTTP.

Doporučujeme, abyste této chybě zabezpečení zabránili jedním z následujících způsobů:

Možnost 1: Zajistěte, aby zobrazení WebView neodesílala libovolné objekty Intent

Aplikace mohou omezit objekty Intent vytvořené metodou Intent.parseUri tak, aby se odesílaly pouze jako implicitní objekty Intent do součástí s filtry objektů Intent BROWSABLE. Lze to provést pomocí následujícího kódu:

     // 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);

Možnost 2: Zajistěte, aby zobrazení WebView nenahrávala nedůvěryhodný webový obsah

Pokud zobrazení WebView musí analyzovat libovolné adresy URL se schématem intent://, je třeba zajistit, aby nenačítalo nedůvěryhodný webový obsah. Nedůvěryhodný webový obsah zahrnuje položky načítané pomocí nešifrovaného připojení. Vývojáři mohou nastavit parametr android:usesCleartextTrafficManifestu na hodnotu false, případně nastavit konfiguraci zabezpečení sítě, která nebude povolovat provoz přes HTTP. Alternativně mohou zajistit, aby dotčená zobrazení WebView pomocí metody loadUrl nenačítala žádné adresy URL se schématem HTTP.

Vývojáři by také měli zajistit, aby ovlivněná zobrazení WebView nenačítala neomezené adresy URL získané z nedůvěryhodných zdrojů (např. z nedůvěryhodných objektů Intent). 

Rádi vám poradíme
Máte-li ohledně této zranitelnosti technické dotazy, publikuje příspěvek na webu Stack Overflow. Použijte štítek „android-security“. Pokud potřebujete poradit s jednotlivými kroky k řešení tohoto problému, obraťte se na náš tým podpory pro vývojáře.