Problemų dėl atskleistų „Firebase“ pranešimų siuntimo per debesį (FCM) serverio raktų sprendimas
Ši informacija skirta kūrėjams, kurių programose yra atskleistų „Firebase“ pranešimų siuntimo per debesį (angl. „Firebase Cloud Messaging“, FCM) serverio raktų.
Kas vyksta
Mažiausiai vienoje iš jūsų programų yra atskleistų FCM serverio raktų. Kenkėjiškos atakos vykdytojas gali pasinaudojęs atskleistais raktais siųsti iš karto gaunamus pranešimus visiems pažeidžiamos programos naudotojams. Atakos vykdytojas taip gali valdyti tokių pranešimų turinį, kuris gali apimti nuo įžeidžiančių pranešimų iki atvirų ar trikdančių vaizdų. Jei norite išspręsti su programomis susijusią problemą, peržiūrėkite toliau išsamiai aprašytus veiksmus. Programos vietas, kuriose atskleidžiamas (-i) FCM serverio raktas (-ai), galima rasti programai skirtame „Play Console“ pranešime.
Privalomas veiksmas
-
Atnaujinkite programą ir atskleistus FCM raktus atlikdami toliau nurodytus veiksmus.
- Jei jūsų programoje įgalinta pasenusi FCM API ir ji nenaudojama iš karto gaunamiems pranešimams siųsti, išjunkite pasenusią FCM API.
- Jei esate įgalinę pasenusią FCM API ir naudojate ją iš karto gaunamiems pranešimams siųsti, galite atlikti bet kurį iš toliau nurodytų dviejų veiksmų.
- (Rekomenduojama) Pradėkite naudoti 1 versijos FCM API ir išjunkite pasenusią FCM API.
- Apsaugokite pasenusios FCM API naudojimą atlikdami toliau nurodytus veiksmus.
- Jei atskleistą raktą naudojate tik FCM API, atlikite toliau nurodytus veiksmus.
- Sugeneruokite naują raktą nuėję į skiltį „Firebase“ pultas > Projekto nustatymai > Pranešimų siuntimas per debesį ir spustelėję „Pridėti serverio raktą“. Naudokite šį naują serverio raktą siųsdami FCM pranešimus iš saugios serverio aplinkos. Įsitikinkite, kad šį raktą naudojate tik iš saugaus serverio aplinkos ir kad jis neįtrauktas į kliento kodą (programas, dvejetaines programas).
- Kai perkelsite FCM pranešimus, naudodami naują sugeneruotą serverio raktą, ištrinkite atskleistus serverio raktus iš GCP pulto. Programos vietas, kuriose atskleidžiamas (-i) FCM serverio raktas (-ai), galima rasti iš „Google Play“ gautame pranešimo el. laiške. C veiksme aprašoma, kaip galite gauti atskleistus raktus iš šių vietų.
- Jei atskleistą raktą naudojate kitoms API, įskaitant FCM, atlikite toliau nurodytus veiksmus.
- Pradėkite naudoti 1 versijos FCM API ir išjunkite pasenusią FCM API.
- Jei norite ateityje patikrinti kitus API naudojimo atvejus, apsvarstykite galimybę atsisakyti atskleisto rakto kitose API ir galiausiai ištrinti atskleistą raktą iš GCP pulto.
- Jei atskleistą raktą naudojate tik FCM API, atlikite toliau nurodytus veiksmus.
- Atlikę vieną iš anksčiau nurodytų veiksmų, ištrinkite atskleistą programos FCM serverio raktą iš programos kodo. Programos vietas, kuriose atskleidžiamas (-i) FCM serverio raktas (-ai), galima rasti iš „Google Play“ gautame pranešimo el. laiške. Norėdami gauti atskleistus raktus, patikrinkite programos kodą pažeidžiamoje vietoje. Raktą galima toje vietoje įterpti kaip eilutę arba įkelti iš programos XML išteklių; pastaruoju atveju patikrinkite programos failą
res/values/strings.xml
, kad gautumėte atskleistą raktą. Atminkite toliau nurodytus dalykus.- Jei atliksite anksčiau nurodytus veiksmus, bet neištrinsite atskleistų raktų iš programos, ir toliau gausite pranešimus apie pažeidimus el. paštu ir (ar) „Google Play Console“.
- Jei iš programos ištrinsite atskleistus raktus, bet neatliksite anksčiau nurodytų veiksmų, problemos iš tikrųjų neišspręsite, nes atakos vykdytojas gali tiesiog rasti raktą senesnėje programos versijoje ir naudoti jį atakuodami programą.
2. Pateikite atnaujintą APK
Jei norite pateikti atnaujintą programos komponentų rinkinį arba APK, atlikite toliau nurodytus veiksmus.
- Eikite į „Play Console“.
- Pasirinkite programą.
- Eikite į programos komponentų rinkinio naršyklę.
- Viršuje, dešinėje, pateiktame išskleidžiamajame meniu pasirinkite reikalavimų neatitinkančio APK ir (arba) programos komponentų rinkinio programos versiją ir pasižymėkite, kurie leidimai jiems taikomi.
- Eikite į takelį, kuriame yra politikos problema. Tai bus vienas iš šių keturių puslapių: „Vidinis bandymas“, „Uždaras bandymas“, „Atviras bandymas“, „Produkcija“.
- Netoli puslapio viršaus, dešinėje, spustelėkite Kurti naują leidimą. (Gali reikėti pirmiausia spustelėti „Tvarkyti takelį“.)
- Jei leidimas su politiką pažeidžiu APK yra juodraščio būsenos, atmeskite leidimą.
- Pridėkite politiką atitinkančią programos komponentų rinkinių ar APK versiją.
- Įsitikinkite, kad reikalavimų neatitinkanti programos komponentų rinkinių ar APK versija pateikta šio leidimo skiltyje Neįtraukta. Jei reikia daugiau patarimų, žr. šio „Play Console“ pagalbos centro straipsnio skiltį „Neįtraukta (programos komponentų rinkiniai ir APK)“.
- Jei norite išsaugoti leidimo pakeitimus, pasirinkite Išsaugoti.
- Baigę ruošti leidimą, pasirinkite Peržiūrėti leidimą.
Jei reikalavimų neatitinkantis APK išleistas keliuose takeliuose, pakartokite penktą–devintą veiksmus kiekviename takelyje.
Pateikus iš naujo, programa bus peržiūrėta dar kartą. Tai gali užtrukti kelias valandas. Jei programa po peržiūros įvertinama kaip tinkama ir sėkmingai paskelbiama, kitų veiksmų imtis nereikia. Jei programa po peržiūros įvertinama kaip netinkama, nauja jos versija skelbiama nebus, o jūs gausite pranešimą el. paštu.
Esame pasirengę padėti
Jei kyla su pažeidimais susijusių techninių klausimų, galite juos paskelbti „Stack Overflow“ naudodami žymą „android-security“. Jei reikia daugiau informacijos apie veiksmus, kuriuos turite atlikti, kad išspręstumėte šią problemą, galite susisiekti su mūsų kūrėjų palaikymo komanda.