Deze informatie is bedoeld voor ontwikkelaars met een of meer apps die een kwetsbaarheid met betrekking tot cross-app-scripting bevatten.
Wat er gebeurt
Een of meer van je apps bevatten een probleem met cross-app-scripting in WebViews, waardoor schadelijke apps cookies en andere gegevens van gebruikers kunnen stelen. Bekijk de melding in je Play Console. Na de deadlines die worden weergegeven in de Play Console, kunnen apps met niet-opgeloste beveiligingsproblemen worden verwijderd van Google Play.
Actie vereist
- Log in bij de Play Console en navigeer naar het gedeelte Meldingen om te zien welke apps het betreft en wat de deadlines zijn om deze problemen op te lossen.
- Update de betreffende apps en verhelp de kwetsbaarheid.
- Dien de geüpdatete versies van de betreffende apps in.
Gedurende deze tijd heeft je nieuwe app of app-update de status In afwachting van publicatie totdat je verzoek is beoordeeld. Als de app niet correct is geüpdatet, blijf je de waarschuwing zien.
Aanvullende details
WebViews die JavaScript inschakelen en gegevens laden van niet-vertrouwde intenties, kunnen door schadelijke apps worden misleid zodat ze JavaScript-code in een onveilige context uitvoeren. We raden je aan deze kwetsbaarheid op een van de volgende manieren voorkomen:
Optie 1: Voorkomen dat de getroffen activiteiten worden geëxporteerd
Ga op zoek naar Activities met getroffen WebViews. Als deze Activities geen Intents uit andere apps hoeven over te nemen, stel je android:exported=false in voor de Activities in je manifest. Dit zorgt ervoor dat schadelijke apps geen schadelijke invoer naar WebViews in deze Activities kunnen sturen.
Optie 2: WebViews in geëxporteerde activiteiten beveiligen
Als je een Activity met een getroffen WebView als geëxporteerd wilt instellen, raden we je aan de volgende wijzigingen aan te brengen:
- Beveilig aanroepen van evaluateJavaScript en loadUrl
Zorg ervoor dat de parameters voor evaluateJavascript altijd vertrouwd zijn. Als je evaluateJavascript aanroept met niet-opgeschoonde invoer van niet-vertrouwde Intents, kunnen aanvallers schadelijke scripts in de betreffende WebView uitvoeren. En als je loadUrl aanroept met niet-opgeschoonde invoer met javascript: scheme-URL's, kunnen aanvallers schadelijke scripts uitvoeren.
- Voorkom dat onveilige bestanden worden geladen
Zorg ervoor dat de getroffen WebViews de cookiedatabase niet kunnen laden. WebViews die niet-opgeschoonde URL's met file:// van niet-vertrouwde Intents laden, kunnen in 2 stappen door schadelijke apps worden aangevallen. Eerste stap: Een schadelijke webpagina kan <script>-tags wegschrijven naar de cookiedatabase. Tweede stap: Dit aangepaste databasebestand voor cookies kan worden geladen als een schadelijke app een Intent stuurt met een file://-URL die naar je WebView-cookiedatabase verwijst, of als de schadelijke webpagina je WebView doorstuurt naar de bestands-URL. Het schadelijke <script> dat is opgeslagen in de cookiedatabase, wordt geladen en uitgevoerd, waardoor sessie-informatie kan worden onderschept.
Je kunt er op 3 manieren ervoor zorgen dat getroffen WebViews de WebView-cookiedatabase niet kunnen laden:
- Schakel alle bestandstoegang uit.
- Zorg ervoor dat de WebView alleen URL's met file:// laadt en controleer of alle geladen file://-URL's naar beveiligde bestanden verwijzen. Houd er rekening mee dat een aanvaller een symbolische link kan gebruiken om controles van het URL-pad om de tuin te leiden. Als je een dergelijke aanval wilt voorkomen, moet je het canonieke pad van elke niet-vertrouwde file://-URL controleren voordat deze wordt geladen in plaats van alleen het URL-pad te controleren.
- Als je zowel http://-URL's als file://-URL's wilt toestaan, implementeer je de URL-verificatie van file:// met shouldOverrideUrlLoading en shouldInterceptRequest in WebViewClient. Hiermee zorg je ervoor dat alle URL's die in WebView worden geladen, worden gecontroleerd. Dit is niet beperkt tot de URL's die rechtstreeks zijn doorgegeven aan een loadUrl()-functieaanroep.
We helpen je graag
Als je technische vragen over de kwetsbaarheid hebt, kun je een post plaatsen op Stack Overflow en de tag 'android-security' gebruiken. Neem contact op met ons supportteam voor ontwikkelaars voor meer informatie over de stappen die je moet uitvoeren om dit probleem op te lossen.