Nämä tiedot on tarkoitettu kehittäjille, joiden sovellukset sisältävät Cross App Scripting ‑haavoittuvuuden.
Mistä on kyse?
Yhdessä tai useammassa sovelluksessasi on WebView'n Cross App Scripting ‑haavoittuvuus, joka voi sallia haitallisten sovellusten varastaa käyttäjäevästeitä ja muuta dataa. Lue lisää Play Consolen ilmoituksesta. Play Consolessa näkyvien määräaikojen jälkeen korjaamattomia tietosuojahaavoittuvuuksia sisältävät sovellukset voidaan poistaa Google Playsta.
Edellyttää toimenpiteitä
- Kirjaudu sisään Play Consoleen ja siirry ilmoitusosioon, niin näet, mihin sovelluksiin ongelmat vaikuttavat, ja määräajat niiden ratkaisemiselle.
- Päivitä kyseiset sovellukset ja korjaa haavoittuvuus.
- Lähetä sovellusten päivitetyt versiot.
Tänä aikana sovelluksesi tai sovelluspäivityksesi on odottaa julkaisua ‑tilassa, kunnes pyyntö tarkastetaan. Jos sovellusta ei ole päivitetty oikein, näet varoituksen edelleen.
Lisätietoja
WebView't, jotka käyttävät JavaScriptiä ja lataavat dataa epäluotettavista tavoitteista, voivat haitallisten sovellusten johdattelemina suorittaa JavaScript-koodia suojaamattomassa kontekstissa. Suosittelemme estämään tämän haavoittuvuuden jollakin seuraavista tavoista:
Vaihtoehto 1: Varmista, että kyseisiä toimintoja ei raportoida
Etsi toiminnot (Activity) ja niiden WebView't, joihin tämä vaikuttaa. Jos nämä toiminnot eivät edellytä tavoitteita (Intent) muilta sovelluksilta, voit määrittää luettelossa toimintojen arvoksi android:exported=false. Näin varmistat, että haitalliset sovellukset eivät voi lähettää haitallista sisältöä tällaisen toiminnon WebView'hin.
Vaihtoehto 2: Suojaa vietyjen toimintojen WebView't
Jos haluat luoda toiminnon, jonka WebView'hin tämä vaikuttaa viemisen yhteydessä, sinun kannattaa tehdä seuraavat muutokset:
- Suojaa evaluateJavascript- ja loadUrl-kutsut
Varmista, että kaikki evaluateJavascript-parametrit ovat luotettavia. Jos evaluateJavascript-kutsu tehdään epäluotettavien tavoitteiden turvattomalla sisällöllä, hyökkääjät voivat suorittaa haitallista skriptiä kyseisessä WebView'ssa. Jos loadUrl-kutsu tehdään turvattomalla sisällöllä, jossa on javascript:-skeeman URL:t, hyökkääjät voivat suorittaa haitallista skriptiä.
- Estä vaarallisten tiedostojen lataaminen
Varmista, että kyseiset WebView't eivät voi ladata evästetietokantaa. WebView't, jotka lataavat turvattomia file://-URL-osoitteita epäluotettavista tavoitteista, ovat alttiita haitallisten sovellusten hyökkäyksille seuraavasti: Ensimmäinen vaihe: Haitallinen verkkosivusto voi lisätä evästetietokantaan <script>-tageja. Toinen vaihe: Tämä muokattu evästetietokannan tiedosto voi latautua, jos haitallinen sovellus lähettää tavoitteen file://-URL:llä, joka osoittaa sinun WebView'si evästetietokantaan, tai jos haitallinen sivusto ohjaa WebView'si uudelleen tiedoston URL-osoitteeseen. Haitallinen evästetietokantaan tallennettu <script> ladataan ja suoritetaan, ja se voi varastaa istuntotietoja.
On kaksi tapaa varmistaa, että nämä WebView't eivät voi ladata WebView-evästetietokantaa.
- Estä pääsy kaikkiin tiedostoihin.
- Varmista, että WebView lataa vain file://-URL:t ja vahvista, että kaikki ladatut file://-URL:t osoittavat turvallisiin tiedostoihin. Muista, että hyökkääjä voi huijata URL-polun tarkistuksia symbolisella linkillä. Suojaudu tällaisilta hyökkäyksiltä tarkistamalla ennen latausta epäluotettavien file://-URL-osoitteiden ensisijainen polku (canonical path) pelkkien URL-polkujen sijaan.
- Jos haluat sallia http://-URL:t ja file://-URL:t, todenna file://-URL shouldOverrideUrlLoading- ja shouldInterceptRequest- komennoilla WebViewClientissä. Tämä varmistaa. että kaikki WebView'hin ladatut URL:t ovat todennettuja, kuten myös suoraan loadUrl()-toimintokutsuun toimitetut URL:t.
Autamme mielellämme
Voit esittää teknisiä kysymyksiä haavoittuvuudesta Stack Overflow‑sivustolla. Merkitse kysymyksesi android-security-tagilla. Jos tarvitset lisätietoja ongelman ratkaisun vaiheista, voit ottaa yhteyttä kehittäjien tukitiimiimme.