Vorgehensweise bei preisgegebenen FCM-Serverschlüsseln (Firebase Cloud Messaging)
Die folgenden Informationen richten sich an Entwickler von Apps, die preisgegebene FCM-Serverschlüssel (Firebase Cloud Messaging) enthalten.
Problembeschreibung
Mindestens eine Ihrer Apps enthält preisgegebene FCM-Serverschlüssel. Ein Angreifer könnte mithilfe der preisgegebenen Schlüssel Push-Benachrichtigungen an alle Nutzer Ihrer gefährdeten App senden. Der Angreifer hätte dann Kontrolle über den Inhalt solcher Benachrichtigungen, die alles enthalten könnten, von anstößigen Nachrichten bis hin zu nicht jugendfreien oder grausamen Bildern. Bitte lesen Sie die folgenden detaillierten Schritte, um das Problem in Ihren Apps zu beheben. Die Bereiche in Ihrer App, in denen FCM-Serverschlüssel preisgegeben werden, finden Sie in der Play Console-Benachrichtigung für Ihre App.
Maßnahme erforderlich
-
Aktualisieren Sie Ihre App und die preisgegebenen FCM-Schlüssel folgendermaßen:
- Wenn Sie die alte FCM API für Ihre App aktiviert haben und nicht für den Versand von Push-Benachrichtigungen verwenden, deaktivieren Sie die alte FCM API.
- Wenn Sie die alte FCM API aktiviert haben und zum Versand von Push-Benachrichtigungen verwenden, führen Sie einen der folgenden zwei Schritte aus:
- (Empfohlen) Migrieren Sie zur FCM v1 API und deaktivieren Sie die alte FCM API.
- Führen Sie folgende Schritte aus, um die Nutzung der alten FCM API sicher zu machen:
- Wenn Sie den preisgegebenen Schlüssel nur für die FCM API verwenden, gehen Sie so vor:
- Generieren Sie einen neuen Schlüssel unter Firebase Console > Projekteinstellungen > Cloud Messaging, indem Sie auf „Serverschlüssel hinzufügen“ klicken. Verwenden Sie diesen zum Senden von FCM-Nachrichten aus Ihrer sicheren Serverumgebung. Achten Sie darauf, dass Sie diesen Schlüssel nur in Ihrer sicheren Serverumgebung verwenden und er nicht in Ihrem Clientcode, also in Apps und Binärprogrammen, enthalten ist.
- Nachdem Sie zur neuen FCM API migriert sind und FCM-Nachrichten künftig mit dem neu generierten Serverschlüssel senden können, löschen Sie die preisgegebenen Serverschlüssel aus der GCP Console. Die Bereiche in Ihrer App, in denen FCM-Serverschlüssel preisgegeben werden, finden Sie in der Benachrichtigungs-E-Mail von Google Play. In Schritt c. wird beschrieben, wie Sie die preisgegebenen Schlüssel in diesen Bereichen abrufen können.
- Wenn Sie den preisgegebenen Schlüssel nicht nur für die FCM API, sondern auch für andere APIs verwenden, gehen Sie so vor:
- Migrieren Sie zur FCM v1 API und deaktivieren Sie die alte FCM API.
- Damit die Nutzung der anderen APIs auch in Zukunft sicher ist, sollten Sie den preisgegebenen Schlüssel für die anderen APIs nicht mehr verwenden und ihn aus der GCP Console löschen.
- Wenn Sie den preisgegebenen Schlüssel nur für die FCM API verwenden, gehen Sie so vor:
- Nachdem Sie einen der oben beschriebenen Schritte ausgeführt haben, löschen Sie den preisgegebenen FCM-Serverschlüssel aus dem App-Code. Die Bereiche in Ihrer App, in denen FCM-Serverschlüssel preisgegeben werden, sind in der Benachrichtigungs-E-Mail von Google Play aufgeführt. Um die preisgegebenen Schlüssel zu finden, prüfen Sie den Code Ihrer App im gefährdeten Bereich. Der Schlüssel kann in diesem Bereich entweder als String eingebettet sein oder aus den XML-Ressourcen Ihrer App dorthin geladen werden. In letzterem Fall können Sie den preisgegebenen Schlüssel der Datei
res/values/strings.xml
Ihrer App entnehmen. Beachten Sie Folgendes:- Wenn Sie die oben genannten Schritte ausführen, aber die preisgegebenen Schlüssel nicht aus Ihrer App löschen, erhalten Sie in Ihrer Google Play Console / per E-Mail weiterhin Benachrichtigungen über Sicherheitslücken.
- Wenn Sie die preisgegebenen Schlüssel aus Ihrer App löschen, aber die oben genannten Schritte nicht ausführen, beheben Sie das Problem nicht, da ein Angreifer den Schlüssel in einer älteren Version Ihrer App finden und für Angriffe auf Ihre App verwenden kann.
2. Reichen Sie Ihr aktualisiertes App Bundle oder APK folgendermaßen ein:
To submit an updated app bundle or APK:
- Rufen Sie die Play Console auf.
- Wählen Sie die App aus.
- Rufen Sie den App Bundle Explorer auf.
- Wählen Sie rechts oben im Drop-down-Menü die App-Version des nicht konformen APKs / App Bundles aus und merken Sie sich, in welchen Releases es vorhanden ist.
- Gehen Sie zum Track mit dem Richtlinienverstoß. Das wird eine der folgenden vier Seiten sein: Interner Test, Geschlossener Test, Offener Test oder Produktion.
- Wählen Sie rechts oben auf der Seite die Option Neuen Release erstellen aus. Unter Umständen müssen Sie zuerst auf „Track verwalten“ klicken.
- Wenn sich der Release mit dem APK, das gegen die Richtlinien verstößt, im Entwurfsstatus befindet, verwerfen Sie den Release.
- Fügen Sie die richtlinienkonforme Version der App Bundles oder APKs hinzu.
- Achten Sie darauf, dass sich die nicht konforme Version von App Bundles oder APKs im Abschnitt Nicht enthalten dieses Release befindet. Weitere Informationen finden Sie in diesem Play Console-Hilfeartikel im Abschnitt „Nicht inbegriffen“.
- Um an dem Release vorgenommene Änderungen zu speichern, wählen Sie Speichern aus.
- Wenn Sie mit der Vorbereitung des Releases fertig sind, wählen Sie Release überprüfen aus.
Wenn das nicht konforme APK in mehreren Tracks veröffentlicht wird, wiederholen Sie die Schritte 5 bis 9 in jedem Track.
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. Wenn sie die Überprüfung nicht besteht, wird die neue App-Version nicht veröffentlicht und Sie erhalten eine Benachrichtigung per E-Mail.
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.