Oprava chyby zabezpečení před útoky skriptováním mezi aplikacemi

Tyto informace jsou určeny vývojářům, jejichž aplikace nejsou zabezpečeny proti útokům, které využívají skriptování mezi aplikacemi.

K čemu dochází

V některých vašich aplikacích se vyskytuje problém se skriptováním mezi aplikacemi v zobrazeních WebView, který škodlivé aplikace mohou využít k odcizení souborů cookie a dalších dat. Další informace najdete v oznámení ve službě Play ConsolePo 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 a chybu zabezpečení opravte.
  3. Odešlete aktualizované verze dotčených aplikací.

Dokud nebude žádost zkontrolována, nová aplikace nebo aktualizace aplikace bude mít stav čeká na publikování. Pokud aplikace nebyla aktualizována správně, bude se upozornění zobrazovat i nadále.

Další podrobnosti

Zobrazení WebView, v nichž je povolen JavaScript a která načítají data z nedůvěryhodných objektů Intent, mohou být škodlivými aplikacemi zneužita ke spuštění kódu JavaScript v nebezpečném kontextu. 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 se dotčené aktivity neexportovaly

Najděte aktivity (Activity) s dotčenými zobrazeními WebView. Pokud tyto aktivity nepotřebují přijímat objekty Intent z jiných aplikací, můžete pro aktivitymanifestu nastavit android:exported=false. Tím zajistíte, aby škodlivé aplikace nemohly odesílat škodlivé vstupy do žádných zobrazení WebView v těchto aktivitách.

Možnost 2: Ochraňte zobrazení WebView v exportovaných aktivitách

Pokud aktivitu s dotčeným zobrazením WebView chcete exportovat, je namísto toho potřeba provést následující změny:

  1. Chraňte volání metod evaluateJavascript a loadUrl

    Zajistěte, aby parametry metody evaluateJavascript byly vždy důvěryhodné. Volání metody evaluateJavascript s použitím neupraveného vstupu z nedůvěryhodných objektů Intent útočníkům umožňuje spouštět v dotčeném zobrazení WebView škodlivé skripty. Podobně útočníkům umožňuje spouštět škodlivé skripty také volání metody loadUrl s použitím neupraveného vstupu obsahujícího identifikátory URL schématu javascript.

  2. Zabraňte nebezpečnému načítání souborů

    Zajistěte, aby dotčená zobrazení WebView nemohla načíst databázi souborů cookie.Zobrazení WebView, která načítají neupravené adresy URL file:// z nedůvěryhodných objektů Intent, mohou škodlivé aplikace napadnout ve dvou krocích. První krok: Škodlivá webová stránka může do databáze souborů cookie zapsat značky <script>. Druhý krok: Škodlivá aplikace odešle požadavek na objekt Intent pomocí adresy URL file://, která odkazuje na vaši databázi souborů cookie v rámci zobrazení WebView, a může tak načíst pozměněný soubor v databázi souborů cookie. Případně škodlivá webová stránka sama přesměruje vaše zobrazení WebView na adresu souboru. Škodlivý prvek <script> uložený v databázi souborů cookie se načte a spustí, což může odcizit informace o relaci.

    To, aby dotčená zobrazení WebView nemohla načítat databáze souborů cookie zobrazení WebView, lze zajistit dvěma způsoby.

    1. Zakázat veškerý přístup k souborům.
    2. Zajistěte, aby zobrazení WebView načítalo pouze adresy URL file:// a ověřovalo, zda odkazují na bezpečné soubory. Upozorňujeme, že útočník se kontrolu cesty adres URL může pokusit obejít pomocí symbolických odkazů. Abyste takovému útoku zabránili, před načtením u všech nedůvěryhodných adres URL file:// kontrolujte kanonickou cestu (nikoliv pouze cestu adresy URL).
    3. Pokud chcete používat adresy URL http:// i file://, použijte ověření adresy URL file:// shouldOverrideUrlLoadingshouldInterceptRequest v klientu WebViewClient. Bude tak zajištěno, že všechny adresy URL načtené do zobrazení WebView jsou ověřeny, bez omezení pouze na adresy URL přímo poskytnuté voláním funkce loadUrl().

Rádi vám pomůžeme
Máte-li ohledně této zranitelnosti technické dotazy, publikujte 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.

false
Hlavní nabídka
785777149650821299
true
Prohledat Centrum nápovědy
true
true
true
true
true
5016068
false
false