Ove su informacije namijenjene razvojnim programerima aplikacija koje su izložene opasnosti od unakrsnog skriptiranja aplikacija.
Što se događa
Jedna ili više vaših aplikacija sadrže poteškoću unakrsnog skriptiranja aplikacija web-prikaza što zlonamjernim aplikacijama može omogućiti da kradu podatke o kolačićima korisnika i druge podatke. Pogledajte obavijest na Play konzoli. Aplikacije koje budu sadržavale neriješene sigurnosne ranjivosti nakon rokova prikazanih na vašoj Play konzoli mogu se ukloniti s Google Playa.
Potrebna je radnja
- Prijavite se na Play konzolu i u odjeljku Upozorenja pogledajte koje su aplikacije podložne ranjivostima i koji su rokovi za rješavanje tih poteškoća.
- Ažurirajte zahvaćene aplikacije i popravite ranjivosti.
- Pošaljite ažurirane verzije ranjivih aplikacija.
Za to vrijeme vaša nova aplikacija ili ažuriranje aplikacije imat će status Na čekanju za objavljivanje dok se vaš zahtjev ne pregleda. Ako aplikacija nije pravilno ažurirana, upozorenje će se prikazivati i dalje.
Dodatne pojedinosti
Zlonamjerne aplikacije mogu na prijevaru navesti web-prikaze koji omogućuju JavaScript i učitavaju podatke iščitane s nepouzdanih Intenta da u kontekstu koji nije siguran izvrše JavaScript kôd. Preporučujemo da spriječite tu ranjivost na jedan od sljedećih načina:
Prva opcija: onemogućite izvoz pogođenih aktivnosti
Pronađite aktivnosti s pogođenim web-prikazima. Ako te aktivnosti ne moraju preuzimati Intente iz drugih aplikacija, možete postaviti android:exported=false za aktivnosti u svojem manifestu. Time se osigurava da zlonamjerne aplikacije ne mogu slati štetne unose web-prikazima u tim aktivnostima.
Druga opcija: zaštitite web-prikaze u izvezenim aktivnostima
Ako Activity s pogođenom komponentom WebView želite postaviti kao izvezenu, preporučujemo da unesete sljedeće promjene:
- Zaštitite pozive za evaluateJavascript i loadUrl
Parametri za evaluateJavascript uvijek su pouzdani. Pozivanje evaluateJavascript nepročišćenim unosom s nepouzdanih objekata Intents omogućuje napadačima da izvrše štetne skripte u pogođenoj funkciji WebView. Slično tome, pozivanje loadUrl nepročišćenim unosom koji sadrži javascript: URL-ovi scheme omogućuje napadačima da izvrše štetne skripte.
- Spriječite nesigurna učitavanja datoteka
Osigurajte da pogođene funkcije WebViews ne mogu učitavati baze podataka kolačića. Zlonamjerne aplikacije u dva koraka mogu napasti WebViews koji učitavaju nepročišćene file:// URL-ove s nepouzdane funkcije Intents. Prvi korak: zlonamjerna web-stranica može upisati <script> oznake u bazu podataka kolačića. Drugi korak: ova izmijenjena datoteka baze podataka kolačića može se učitati ako zlonamjerna aplikacija šalje funkciju Intent s file:// URL-om koji usmjerava na bazu podataka kolačića vaše funkcije WebView ili ako zlonamjerna web-stranica sama preusmjerava vašu funkciju WebView na URL datoteke. Zlonamjerni <script> pohranjen u bazi podataka kolačića učitat će se i izvršiti, što može ukrasti podatke sesije.
Na tri načina možete osigurati da pogođena funkcija WebViews ne može učitavati bazu podataka kolačića WebView.
- Onemogućite pristup svim datotekama.
- Pazite da WebView učitava samo file:// URL-ove i potvrdite da svi učitani file:// URL-ovi usmjeravaju na sigurne datoteke. Napominjemo da napadač može upotrijebiti symbolic link kako bi zavarao provjere na putu URL-a. Da biste spriječili takav napad, umjesto da prije učitavanja provjerite samo put URL-a, provjerite kanonski put svih nepouzdanih file:// URL-ova.
- Ako želite omogućiti i http:// URL-ove i file:// URL-ove, implementirajte potvrdu file:// URL-a koristećishouldOverrideUrlLoading i shouldInterceptRequest u stavci WebViewClient. Time se osigurava da su svi URL-ovi učitani u WebView potvrđeni, a ne ograničava se na URL-ove koji se izravno otvaraju pozivom funkcije loadUrl().
Obratite nam se ako vam zatreba pomoć
Ako imate tehnička pitanja o toj ranjivosti, možete objaviti post na Stack Overflowu uz oznaku "android-security". Ako su vam potrebne upute za rješavanje te poteškoće, možete se obratiti našem timu za podršku razvojnim programerima.