Šī informācija ir paredzēta tādu lietotņu izstrādātājiem, kurās ir starplietotņu skriptēšanas ievainojamība.
Problēma
Vienā vai vairākās jūsu lietotnēs ir WebView starplietotņu skriptēšanas problēma, kas ļaunprātīgām lietotnēm var ļaut nozagt lietotāja sīkfailus un citus datus. Lūdzu, skatiet paziņojumu savā Play Console kontā. Pēc jūsu Play Console kontā norādīto termiņu beigām visas lietotnes, kurās nav novērsta drošības ievainojamība, var tikt noņemtas no pakalpojuma Google Play.
Nepieciešamā rīcība
- Pierakstieties savā Play Console kontā un sadaļā Brīdinājumi skatiet ietekmētās lietotnes un termiņus šo problēmu novēršanai.
- Atjauniniet savas ietekmētās lietotnes un novērsiet ievainojamību.
- Iesniedziet savu ietekmēto lietotņu atjauninātās versijas.
Līdz pieprasījuma pārskatīšanai jaunās lietotnes vai lietotnes atjauninājuma statuss būs Gaida publicēšanu. Ja lietotne netiks atjaunināta pareizi, joprojām tiks rādīts brīdinājums.
Papildinformācija
Komponentus WebView, kas iespējo JavaScript un ielādē no neuzticamām Intent struktūrām nolasītos datus, var maldināt ļaunprātīgas lietotnes, liekot nedrošā kontekstā izpildīt JavaScript kodu. Iesakām šo ievainojamību novērst kādā no tālāk norādītajiem veidiem.
1. iespēja: novērsiet ietekmēto darbību eksportēšanu
Atrodiet visas darbības ar ietekmētajiem komponentiem WebView. Ja šīm darbībām nav jāizmanto Intent struktūras no citām lietotnēm, darbībām savā manifestā varat iestatīt vērtību android:exported=false. Tādējādi ļaunprātīgas lietotnes nevarēs nosūtīt kaitīgus ievades datus šo darbību komponentiem WebView.
2. iespēja: komponentu WebView aizsardzība eksportētās darbībās
Ja vēlaties iestatīt darbību ar skartu komponentu WebView kā eksportētu, ieteicams veikt tālāk norādītās izmaiņas.
- Funkciju evaluateJavascript un loadUrl aktivizēšanas aizsardzība
Funkcijas evaluateJavascript parametriem vienmēr ir jābūt uzticamiem. Ja funkcija evaluateJavascript tiek aktivizēta, izmantojot nepiemērotus ievades datus no neuzticamām nolūka struktūrām, uzbrucēji ietekmētajos komponentos WebView var izpildīt kaitīgus skriptus. Līdzīgi, ja funkcija loadUrl tiek aktivizēta, izmantojot nepiemērotus ievades datus, kas satur javascript: shēmas vietrāžus URL, uzbrucēji var izpildīt kaitīgus skriptus.
- Nedrošu failu ielādes novēršana
Novērsiet ietekmētajiem komponentiem WebView iespēju ielādēt sīkfailu datu bāzi. Komponentiem WebView, kas ielādē nepiemērotus file:// vietrāžus URL no neuzticamām nolūka struktūrām, var uzbrukt ļaunprātīgas lietotnes, veicot divas darbības. Pirmā darbība: ļaunprātīga tīmekļa lapa var sīkfailu datu bāzē ievietot <script> tagus. Otrā darbība: šis pārveidotais sīkfailu datu bāzes fails var tikt ielādēts, ja ļaunprātīga lietotne nosūta nolūka struktūru ar file:// vietrādi URL, kas norāda uz jūsu WebView sīkfailu datu bāzi vai pati ļaunprātīgā tīmekļa lapa novirza jūsu komponentu WebView uz faila vietrādi URL. Sīkfailu datu bāzē uzglabātais ļaunprātīgais <script> kods tiks ielādēts un izpildīts, un tādējādi var tikt nozagta informācija par sesiju.
Ir trīs veidi, kā varat novērst WebView sīkfailu datu bāzes ielādi ietekmētos komponentos WebView.
- Atspējojiet visus failu piekļuves iestatījumus.
- Pārliecinieties, ka komponents WebView ielādē tikai file:// vietrāžus URL un visi ielādētie file:// vietrāži URL norāda uz drošiem failiem. Ņemiet vērā, ka uzbrucējs šādās URL ceļu pārbaudēs maldināšanai var izmantot simbolisku saiti. Lai novērstu šādu uzbrukumu, pirms ielādes pārbaudiet ne tikai URL ceļu, bet arī to, vai kanoniskajā ceļā nav neuzticamu file:// vietrāžu URL.
- Ja vēlaties atļaut gan http:// vietrāžus URL, gan file:// vietrāžus URL, veiciet file:// vietrāžu URL verifikāciju, objektā WebViewClient izmantojot metodi shouldOverrideUrlLoading un shouldInterceptRequest. Tādējādi tiks verificēti visi komponentā WebView ielādētie URL, ne tikai tie URL, kas tiek tieši sniegti funkcijas loadUrl() izsaukumā.
Mēs varam palīdzēt
Ja jums ir tehniski jautājumi par ievainojamību, varat tos publicēt vietnē Stack Overflow, izmantojot atzīmi “android-security”. Lai uzzinātu, kā novērst šo problēmu, varat sazināties ar mūsu izstrādātāju atbalsta komandu.