Die folgenden Informationen richten sich an Entwickler von Apps, die die Sicherheitslücke "Intent-Diebstahl" enthalten.
Aktuelle Informationen
Eine oder mehrere Ihrer Apps enthalten die Sicherheitslücke "Intent-Diebstahl". Dadurch können schädliche Netzwerke und Websites auf private App-Komponenten zugreifen.Weitere Informationen dazu finden Sie in der entsprechenden Nachricht in der 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 mithilfe der unten beschriebenen Schritte.
-
Reichen Sie aktualisierte Versionen Ihrer betroffenen Apps ein.
Nachdem Ihre App neu eingereicht wurde, wird sie noch einmal überprüft. Dieser Vorgang kann mehrere Stunden dauern. Wenn die App die Überprüfung besteht und veröffentlicht wird, sind keine weiteren Maßnahmen erforderlich. Falls die App die Überprüfung nicht besteht, wird die neue App-Version nicht veröffentlicht und Sie erhalten eine Benachrichtigung per E-Mail.
Zusätzliche Informationen
WebViews, mit denen nicht vertrauenswürdige Webinhalte aufgerufen, intent://-Links mithilfe von Intent.parseUri geparst und diese Intents mithilfe von startActivity gesendet werden, sind anfällig für Intent-Diebstahl. Diese WebViews werden eventuell durch schädliche Webinhalte veranlasst, beliebige Intents an private App-Komponenten zu senden. Dies kann dazu führen, dass die App manipuliert werden kann, z. B. durch Diebstahl privater App-Daten. Als nicht vertrauenswürdige Webinhalte gelten in diesem Fall auch Inhalte von vertrauenswürdigen Domains, die über HTTP geladen werden.
Wir empfehlen Ihnen, diese Sicherheitslücke auf eine der folgenden Weisen zu vermeiden:
Option 1: Sorgen Sie dafür, dass WebViews keine beliebigen Intents senden können.
Sie können festlegen, dass Apps Intents, die mit Intent.parseUri erstellt wurden, nur als Implicit Intents an Komponenten mit BROWSABLE-Intent-Filtern senden dürfen. Verwenden Sie dazu den folgenden Code:
// convert Intent scheme URL to Intent object
Intent intent = Intent.parseUri(url);
// forbid launching activities without BROWSABLE category
intent.addCategory("android.intent.category.BROWSABLE");
// forbid explicit call
intent.setComponent(null);
// forbid Intent with selector Intent
intent.setSelector(null);
// start the activity by the Intent
view.getContext().startActivity(intent, -1);
Option 2: Sorgen Sie dafür, dass die betroffenen WebViews keine Webinhalte laden, die nicht vertrauenswürdig sind.
Wenn ein WebView beliebige URLs mit intent://
-Schemata parsen muss, sorgen Sie dafür, dass keine Webinhalte geladen werden, die nicht vertrauenswürdig sind. Zu nicht vertrauenswürdigen Webinhalten gehören Webinhalte, die über eine unverschlüsselte Verbindung geladen werden. Entwickler haben die Möglichkeit, in ihrem Manifest
für android:usesCleartextTraffic "false" festzulegen oder eine Network Security Config einzurichten, die HTTP-Datenverkehr blockiert. Alternativ können sie angeben, dass die betroffenen WebViews keine URLs mit HTTP-Schemata über loadUrl
laden dürfen.
Entwickler sollten außerdem gewährleisten, dass die betroffenen WebViews keine unbeschränkten URLs laden, die aus nicht vertrauenswürdigen Quellen stammen, z. B. URLs, die aus nicht vertrauenswürdigen Intents stammen.
Hilfe und Support
Technische Fragen zu dieser Sicherheitslücke können Sie bei Stack Overflow posten. Bitte 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.