Αποκατάσταση για εκτεθειμένα κλειδιά διακομιστή Firebase Cloud Messaging (FCM)

Αυτές οι πληροφορίες προορίζονται για προγραμματιστές με εφαρμογές που περιέχουν εκτεθειμένα κλειδιά διακομιστή Firebase Cloud Messaging (FCM).

Τι συμβαίνει

Μία ή περισσότερες από τις εφαρμογές σας περιέχουν εκτεθειμένα κλειδιά διακομιστή FCM. Ένας κακόβουλος εισβολέας θα μπορούσε να χρησιμοποιήσει τα εκτεθειμένα κλειδιά για την αποστολή ειδοποιήσεων push σε όλους τους χρήστες της ευπαθούς εφαρμογής. Ο εισβολέας θα είχε τον έλεγχο του περιεχομένου των εν λόγω ειδοποιήσεων που θα μπορούσαν να είναι από προσβλητικά μηνύματα έως ενοχλητικές εικόνες. Ανατρέξτε στα λεπτομερή βήματα παρακάτω, για να διορθώσετε το πρόβλημα με τις εφαρμογές σας.  Οι θέσεις όπου τα κλειδιά διακομιστή FCM εκτίθενται στην εφαρμογή σας αναφέρονται στην ειδοποίηση του Play Console για την εφαρμογή σας.

Απαιτείται ενέργεια

  1. Ενημερώστε την εφαρμογή σας και τα εκτεθειμένα κλειδιά FCM ακολουθώντας τα βήματα που επισημαίνονται παρακάτω.

    1. Εάν έχετε ενεργοποιημένο το API FCM παλαιού τύπου για την εφαρμογή σας και δεν το χρησιμοποιείτε για την αποστολή ειδοποιήσεων push, τότε απενεργοποιήστε το API FCM παλαιού τύπου
    2. Εάν έχετε ενεργοποιημένο το API FCM παλαιού τύπου και το χρησιμοποιείτε για την αποστολή ειδοποιήσεων push, τότε μπορείτε να ακολουθήσετε οποιοδήποτε από τα δύο παρακάτω βήματα:
      1. (Συνιστάται) Κάντε μετεγκατάσταση για χρήση του API FCM v1 και απενεργοποιήστε το API FCM παλαιού τύπου.
      2. Δημιουργήστε ένα ασφαλές περιβάλλον χρήσης του API FCM παλαιού τύπου ως εξής:
        1. Εάν χρησιμοποιείτε το εκτεθειμένο κλειδί μόνο για το API FCM: 
          1. Δημιουργήστε ένα νέο κλειδί επιλέγοντας Firebase Console > Ρυθμίσεις έργου > Ανταλλαγή μηνυμάτων cloud και κάνοντας κλικ στην επιλογή Προσθήκη κλειδιού διακομιστή.  Χρησιμοποιήστε αυτό το νέο κλειδί διακομιστή για την αποστολή μηνυμάτων FCM από το ασφαλές περιβάλλον διακομιστή. Βεβαιωθείτε ότι χρησιμοποιείτε αυτό το κλειδί μόνο από το ασφαλές περιβάλλον διακομιστή και ότι το κλειδί δεν περιλαμβάνεται στον κώδικα πελάτη (εφαρμογές, δυαδικά). 
          2. Μόλις κάνετε μετεγκατάσταση ώστε τα μηνύματα FCM να αποστέλλονται μέσω του νέου κλειδιού διακομιστή, διαγράψτε τα εκτεθειμένα κλειδιά διακομιστή από την Κονσόλα GCP. Οι θέσεις όπου τα κλειδιά διακομιστή FCM εκτίθενται στην εφαρμογή σας αναφέρονται στο μήνυμα ηλεκτρονικού ταχυδρομείου ειδοποίησης από το Google Play. Το βήμα γ περιγράφει πώς μπορείτε να λάβετε τα εκτεθειμένα κλειδιά από αυτές τις θέσεις. 
        2. Εάν χρησιμοποιείτε το εκτεθειμένο κλειδί για άλλα API, συμπεριλαμβανομένου του FCM, τότε:
          1. Κάντε μετεγκατάσταση για χρήση του API FCM v1 και απενεργοποιήστε το API FCM παλαιού τύπου.
          2. Για να διασφαλίσετε ότι οι άλλες χρήσεις του API δεν θα παρουσιάζουν προβλήματα στο μέλλον, εξετάστε το ενδεχόμενο να διακόψετε τη χρήση του εκτεθειμένου κλειδιού για τα άλλα API και να το διαγράψετε από την Κονσόλα GCP.
    3. Αφού ολοκληρώσετε ένα από τα παραπάνω βήματα, διαγράψτε το εκτεθειμένο κλειδί διακομιστή FCM από τον κώδικα της εφαρμογής σας. Οι θέσεις όπου τα κλειδιά διακομιστή FCM εκτίθενται στην εφαρμογή σας αναφέρονται στο μήνυμα ηλεκτρονικού ταχυδρομείου ειδοποίησης από το Google Play. Για να λάβετε τα εκτεθειμένα κλειδιά, ελέγξτε τον κώδικα της εφαρμογής σας στην ευάλωτη θέση. Το κλειδί θα μπορούσε να είναι ενσωματωμένο σε αυτήν τη θέση ως συμβολοσειρά ή να φορτώνεται σε αυτήν τη θέση από τους πόρους XML της εφαρμογής σας. Στην τελευταία περίπτωση, εξετάστε το αρχείο res/values/strings.xml της εφαρμογής για να λάβετε το εκτεθειμένο κλειδί. Λάβετε υπόψη τα εξής:
      • Εάν εκτελέσετε τα παραπάνω βήματα, αλλά δεν διαγράψετε τα εκτεθειμένα κλειδιά από την εφαρμογή σας, θα συνεχίσετε να λαμβάνετε ειδοποιήσεις ευπάθειας στο ηλεκτρονικό ταχυδρομείο/στο Google Play Console. 
      • Εάν διαγράψετε τα εκτεθειμένα κλειδιά από την εφαρμογή σας, αλλά δεν εκτελέσετε τα παραπάνω βήματα, το πρόβλημα δεν θα διορθωθεί, αφού ο εισβολέας μπορεί απλώς να βρει το κλειδί σε μια παλαιότερη έκδοση της εφαρμογής σας και να το χρησιμοποιήσει για να επιτεθεί στην εφαρμογή.

2. Υποβάλετε το ενημερωμένο APK

Για να υποβάλετε ένα ενημερωμένο πακέτο εφαρμογής ή APK:

  1. Μεταβείτε στο Play Console.
  2. Επιλέξτε την εφαρμογή.
  3. Μεταβείτε στον Εξερευνητή πακέτου εφαρμογής.
  4. Επιλέξτε τη μη συμβατή έκδοση εφαρμογής APK/πακέτου εφαρμογής που εμφανίζεται στο επάνω δεξί αναπτυσσόμενο μενού και σημειώστε τις κυκλοφορίες στις οποίες ανήκει.
  5. Μεταβείτε στο κανάλι με το ζήτημα πολιτικής. Θα είναι μία από τις ακόλουθες τέσσερις σελίδες: Εσωτερική, Κλειστή, Ανοικτή δοκιμή ή Παραγωγή.
  6. Κοντά στην επάνω δεξιά γωνία της σελίδας, κάντε κλικ στην επιλογή Δημιουργία νέας κυκλοφορίας. (Ίσως χρειαστεί πρώτα να κάνετε κλικ στην επιλογή Διαχείριση καναλιού.)
    • Εάν η κυκλοφορία με το APK που παραβαίνει τις πολιτικές είναι σε κατάσταση προχείρου, απορρίψτε την κυκλοφορία.
  7. Προσθέστε την έκδοση των πακέτων εφαρμογών ή των APK που συμμορφώνεται με την πολιτική.
    • Βεβαιωθείτε ότι η μη συμμορφούμενη έκδοση των πακέτων εφαρμογών ή των APK βρίσκεται στην ενότητα Δεν περιλαμβάνονται αυτής της κυκλοφορίας. Για περισσότερες οδηγίες, ανατρέξτε στην ενότητα Δεν περιλαμβάνονται (πακέτα εφαρμογών και APK) σε αυτό το άρθρο βοήθειας του Play Console.
  8. Για να αποθηκεύσετε τυχόν αλλαγές που κάνατε στην κυκλοφορία, επιλέξτε Αποθήκευση.
  9. Όταν ολοκληρώσετε την προετοιμασία της κυκλοφορίας, επιλέξτε Έλεγχος κυκλοφορίας.

Εάν το APK που δεν συμμορφώνεται κυκλοφορεί σε πολλά κανάλια, επαναλάβετε τα βήματα 5-9 σε κάθε κανάλι.

Μετά την επανυποβολή, η εφαρμογή σας θα ελεγχθεί ξανά. Αυτή η διαδικασία μπορεί να διαρκέσει αρκετές ώρες. Εάν ο έλεγχος της εφαρμογής ολοκληρωθεί χωρίς προβλήματα και η εφαρμογή δημοσιευτεί με επιτυχία, τότε δεν απαιτείται καμία άλλη ενέργεια. Εάν ο έλεγχος της εφαρμογής αποτύχει, τότε η νέα έκδοση της εφαρμογής δεν θα δημοσιευτεί και θα λάβετε σχετική ειδοποίηση με ένα μήνυμα ηλεκτρονικού ταχυδρομείου.

Είμαστε εδώ για να σας βοηθήσουμε

Εάν έχετε τεχνικές ερωτήσεις σχετικά με την ευπάθεια, μπορείτε να τις δημοσιεύσετε στο Stack Overflow και να χρησιμοποιήσετε την ετικέτα android-security. Για διευκρινίσεις σχετικά με τα βήματα που πρέπει να ακολουθήσετε για την επίλυση αυτού του προβλήματος, μπορείτε να επικοινωνήσετε με την ομάδα υποστήριξης για προγραμματιστές.

Κύριο μενού
7937086345930292751
true
Αναζήτηση στο Κέντρο Βοήθειας
true
true
true
true
true
5016068
false