Tieto informácie sú určené pre vývojárov aplikácií, ktoré obsahujú nedostatok zabezpečenia spočívajúci v skriptovaní naprieč aplikáciami.
Čo sa deje
Jedna alebo viacero aplikácií obsahuje problém so skriptovaním naprieč aplikáciami v prvkoch WebView, ktorý môže umožniť škodlivým aplikáciám ukradnúť súbory cookie a ďalšie údaje používateľa. Informácie nájdete v upozornení služby Play Console. Po termínoch uvedených v službe Play Console môžu byť zo služby Google Play odstránené všetky aplikácie, ktoré obsahujú neodstránené nedostatky zabezpečenia.
Vyžaduje sa akcia
- Prihláste sa do služby Play Console, prejdite do sekcie Upozornenia a pozrite si termíny, dokedy treba problémy vyriešiť, ako aj aplikácie, ktorých sa to týka.
- Aktualizujte príslušné aplikácie a chybu zabezpečenia odstráňte.
- Odošlite aktualizované verzie dotyčných aplikácií.
Počas tohto obdobia bude mať nová aplikácia alebo aktualizácia aplikácie stav Čaká na zverejnenie, dokým nebude vaša žiadosť skontrolovaná. Ak aplikácia nebola správne aktualizovaná, upozornenie sa bude naďalej zobrazovať.
Ďalšie podrobnosti
Prvky WebView s povoleným JavaScriptom a načítavaním údajov z nedôveryhodných intencií môžu škodlivé aplikácie oklamať, aby spustili kód JavaScript v nebezpečnom obsahu. Túto chybu zabezpečenia odporúčame vyriešiť jedným z nasledujúcich spôsobov:
1. možnosť: zaistite, aby nedošlo k exportovaniu ovplyvnených aktivít
Nájdite všetky aktivity s ovplyvnenými prvkami WebView. Ak tieto aktivity nepotrebujú prijímať intencie z ostatných aplikácií, môžete nastaviť hodnotu android:exported=false pre aktivity v manifeste. Zaistíte tým, že škodlivé aplikácie nebudú môcť odosielať škodlivé vstupy do žiadnych prvkov WebView v týchto aktivitách.
2. možnosť: ochráňte prvky WebView v exportovaných aktivitách
Ak chcete nastaviť aktivitu s ovplyvneným prvkom WebView ako exportovanú, odporúčame vykonať nasledujúce zmeny:
- Chráňte hovory smerované na evaluateJavascript a loadUrl
Zaistite, aby parametre odoslané funkcii evaluateJavascript boli vždy dôveryhodné. Volaním metódy evaluateJavascript pomocou neupraveného vstupu z nedôveryhodných intencií umožníte útočníkom spustiť v ovplyvnenom prvku WebView škodlivé skripty. Podobne volaním metódy loadUrl pomocou neupraveného vstupu obsahujúceho javascript: identifikátory URI schémy umožníte útočníkom spustiť škodlivé skripty.
- Zabráňte načítavaniu nebezpečných súborov
Zaistite, aby ovplyvnené prvky WebView nemohli načítať databázu súborov cookie. Prvky WebView, ktoré načítavajú nevyčistené webové adresy file:// z nedôveryhodných intencií, môžu byť napadnuté škodlivými aplikáciami v dvoch krokoch. Prvý krok: škodlivá webová stránka môže zapísať do databázy súborov cookie značky <script>. Druhý krok: tento upravený súbor databázy súborov cookie môže byť načítaný, keď škodlivá aplikácia odošle intenciu s webovou adresou file:// smerujúcou na vašu databázu súborov cookie prvku WebView alebo váš prvok WebView presmeruje na webovú adresu daného súboru príslušná škodlivá webová stránka. Načíta sa a spustí škodlivá značka <script> uložená v databáze súborov cookie, ktorá môže ukradnúť informácie o relácii.
Môžete zaistiť, aby ovplyvnené prvky WebView nemohli načítať databázu súborov cookie prvku WebView. Urobíte to troma spôsobmi.
- Zakážte prístup k všetkým súborom.
- Zaistite, aby prvok WebView načítaval iba webové adresy file:// a overoval, že každá z nich smerovala na bezpečné súbory. Upozorňujeme, že útočník môže pomocou symbolického odkazu predstierať kontroly cesty príslušnej webovej adresy. Ak chcete tomuto útoku zabrániť, nekontrolujte iba cestu webovej adresy, ale aj kanonickú cestu všetkých nedôveryhodných webových adries file:// ešte pred načítaním.
- Ak chcete povoliť webové adresy http:// aj file://, implementujte overenie webových adries file:// pomocou parametra shouldOverrideUrlLoading a shouldInterceptRequest v klientovi WebViewClient. Zaistíte tým, že všetky webové adresy načítané do prvku WebView sú overené a že sa neobmedzujú na webové adresy priamo poskytnuté do volania funkcie loadUrl().
Sme tu pre vás
V prípade technických otázok týkajúcich sa tohto nedostatku zabezpečenia môžete uverejniť príspevok na webe Stack Overflow. Použite v ňom značku „android-security“. Ak potrebujete objasniť kroky potrebné na vyriešenie tohto problému, kontaktujte tím podpory pre vývojárov.