Die folgenden Informationen richten sich an Entwickler von Apps, die Sicherheitslücken wegen Cross-App-Scripting aufweisen.
Aktuelle Informationen
Eine oder mehrere Ihrer Apps enthalten ein WebView, das eine durch Cross-App-Scripting bedingte Sicherheitslücke aufweist. Dadurch können sich schädliche Apps Zugriff auf Nutzercookies und andere Daten verschaffen. Weitere Informationen dazu finden Sie in der entsprechenden Mitteilung in Ihrer Play Console. Nachdem die in der Play Console angezeigten Fristen abgelaufen sind, werden alle Apps, die nicht behobene Sicherheitslücken enthalten, aus Google Play entfernt.
Erforderliche Maßnahmen
- Melden Sie sich in der Play Console an und gehen Sie zum Bereich "Warnmeldungen". Dort sehen Sie, welche Apps betroffen sind und bis wann Sie diese Probleme beheben müssen.
- Aktualisieren Sie die betroffenen Apps und beheben Sie die Sicherheitslücke.
- Reichen Sie die aktualisierte Versionen Ihrer betroffenen Apps ein.
Bis diese Überprüfung abgeschlossen ist, hat Ihre neue App oder Ihre App-Aktualisierung den Status Ausstehende Veröffentlichung. Wenn die App nicht richtig aktualisiert wurde, wird die Warnung weiter angezeigt.
Weitere Details
WebViews, bei denen JavaScript aktiviert ist und Daten aus nicht vertrauenswürdigen Intents geladen werden, können von schädlichen Apps dazu veranlasst werden, JavaScript-Code in einem unsicheren Kontext auszuführen. Wir empfehlen Ihnen, diese Sicherheitslücke auf eine der folgenden Weisen zu vermeiden:
Option 1: Dafür sorgen, dass die betroffenen Activities nicht exportiert werden
Suchen Sie alle Activities mit betroffenen WebViews. Wenn für diese Activities keine Intents aus anderen Apps erforderlich sind, können Sie in Ihrem Manifest für die Activities android:exported=false angeben. Dadurch wird sichergestellt, dass schädliche Apps keine problematischen Eingaben an WebViews in diesen Activities senden.
Option 2: WebViews in exportierten Activities schützen
Wenn Sie eine Activity mit einem betroffenen WebView als exportiert festlegen möchten, sind die folgenden Änderungen erforderlich:
- Aufrufe von „evaluateJavascript“ und „loadUrl“ schützen
Bei Parametern für evaluateJavascript muss es sich immer um vertrauenswürdige Parameter handeln. Wenn evaluateJavascript mit unbereinigten Eingaben von nicht vertrauenswürdigen Intents aufgerufen wird, können Angreifer schädliche Skripts im betroffenen WebView ausführen. Ebenso können Angreifer durch Aufrufen von loadUrl mit unbereinigten Eingaben mit javascript: Schema-URLs schädliche Skripts ausführen.
- Laden unsicherer Dateien verhindern
Die Cookie-Datenbank darf von betroffenen WebViews nicht geladen werden. WebViews, die unbereinigte file:// URLs von nicht vertrauenswürdigen Intents laden, können von schädlichen Apps in zwei Schritten angegriffen werden. Erster Schritt: Eine schädliche Webseite fügt <script>-Tags in die Cookie-Datenbank ein. Zweiter Schritt: Diese geänderte Cookie-Datenbankdatei kann geladen werden, wenn eine schädliche App einen Intent mit einer file:// URL sendet, die auf Ihre WebView-Cookie-Datenbank verweist, oder wenn die schädliche Webseite selbst Ihr WebView an die Datei-URL weiterleitet. Das in der Cookie-Datenbank gespeicherte schädliche <script>-Element wird geladen und ausgeführt, wodurch Sitzungsinformationen abgegriffen werden können.
Sie haben drei Möglichkeiten, um zu verhindern, dass betroffene WebViews die WebView-Cookie-Datenbank laden können.
- Deaktivieren Sie jeglichen Dateizugriff.
- Vergewissern Sie sich, dass das WebView nur file:// URLs lädt und dass alle geladenen file:// URLs auf sichere Dateien verweisen. Angreifer können einen symbolic Link verwenden, um Überprüfungen des URL-Pfads zu hintergehen. Damit Angriffe dieser Art verhindert werden können, müssen Sie den canonical Pfad aller nicht vertrauenswürdigen file:// URLs vor dem Laden überprüfen, anstatt nur den URL-Pfad zu kontrollieren.
- Wenn sowohl http:// URLs als auch file:// URLs zulässig sein sollen, implementieren Sie die file:// URLs-Verifizierung anhand von shouldOverrideUrlLoading und shouldInterceptRequest in WebViewClient. Dadurch wird sichergestellt, dass alle in WebView geladenen URLs verifiziert werden und nicht nur die URLs, die direkt bei einem „loadUrl()“-Funktionsaufruf bereitgestellt werden.
Wir sind für Sie da
Wenn Sie technische Fragen zu der Sicherheitslücke haben, können Sie sie bei Stack Overflow posten. Verwenden Sie dabei das Tag "android-security". Weitere Informationen zu den Maßnahmen, die zur Lösung dieses Problems erforderlich sind, erhalten Sie von unserem Entwicklersupportteam.