Як вирішити проблему, пов’язану з розкриттям серверних ключів Хмарної системи обміну повідомленнями Firebase (FCM)

Ця інформація призначена для розробників, чиї додатки містять розкриті серверні ключі Хмарної системи обміну повідомленнями Firebase (FCM).

У чому проблема

Принаймні один ваш додаток містить розкриті серверні ключі FCM. За допомогою розкритих ключів зловмисник може надсилати push-сповіщення всім користувачам вашого вразливого додатка. При цьому зловмисник контролюватиме вміст таких сповіщень – від образливих повідомлень до відвертих чи відразливих зображень. Нижче докладно описано, як вирішити таку проблему. Місця в додатку, де розкриваються серверні ключі FCM, указано в сповіщенні Play Console для додатка.

Потрібна дія

  1. Оновіть додаток і розкриті ключі FCM, виконавши вказані нижче дії.

    1. Якщо ви ввімкнули застарілий інтерфейс FCM API і не використовуєте його для надсилання push-сповіщень, вимкніть такий API.
    2. Якщо ви ввімкнули застарілий інтерфейс FCM API і використовуєте його для надсилання push-сповіщень, виконайте наведені нижче дії.
      1. (Рекомендовано) Почніть використовувати FCM v1 API і вимкніть застарілий FCM API.
      2. Зробіть використання застарілого інтерфейсу FCM API безпечнішим. Для цього:
        1. Якщо ви використовуєте розкритий ключ лише для FCM API: 
          1. Створіть новий ключ у розділі Firebase Console (Консоль Firebase) > Project Settings (Налаштування проекту) > Cloud Messaging (Хмарна система обміну повідомленнями). Для цього натисніть Add Server Key (Додати серверний ключ). Використовуйте цей новий серверний ключ, щоб надсилати повідомлення FCM із захищеного серверного середовища. Переконайтеся, що ви використовуєте цей ключ лише із захищеного серверного середовища та що його не включено в код клієнта (додатків, двійкових кодів). 
          2. Коли ви почнете надсилати повідомлення FCM за допомогою щойно створеного серверного ключа, видаліть розкриті серверні ключі з консолі GCP. Місця в додатку, де розкриваються серверні ключі FCM, указані в сповіщенні електронною поштою від Google Play. У пункті "с" описано, як отримати розкриті ключі з цих місць. 
        2. Якщо ви використовуєте розкритий ключ також для інших API, а не лише FCM:
          1. Почніть використовувати інтерфейс FCM v1 API і вимкніть застарілий FCM API.
          2. Щоб додатково захистити використання інших API, радимо припинити застосовувати для них розкритий ключ і видалити його з консолі GCP.
    3. Щойно ви виконаєте одну з наведених вище дій, видаліть розкритий серверний ключ FCM із коду свого додатка. Місця в додатку, де розкриваються серверні ключі FCM, указані в сповіщенні електронною поштою від Google Play. Щоб отримати розкриті ключі, перевірте код додатка в уразливому місці. Ключ може бути вбудований у це місце як рядок або завантажуватися там із ресурсів XML додатка. В останньому випадку перевірте файл res/values/strings.xml додатка, щоб отримати розкритий ключ. Зверніть увагу на наведену нижче інформацію.
      • Якщо виконати вказані вище дії, але не видалити розкриті ключі з додатка, ви й надалі отримуватимете сповіщення про загрози безпеці електронною поштою та/або в Google Play Console. 
      • Якщо видалити розкриті ключі з додатка, але не виконати вказані вище дії, ви насправді не вирішите проблему, оскільки зловмисник зможе просто знайти ключ у попередній версії та використати його для зламу додатка.

2. Надішліть оновлений файл APK.

Щоб надіслати оновлений набір App Bundle або файл APK:

  1. Відкрийте Play Console.
  2. Виберіть потрібний додаток.
  3. Відкрийте App Bundle Explorer.
  4. У спадному меню вгорі праворуч виберіть APK або набір App Bundle, що не відповідає правилам. Зверніть увагу, до яких випусків вони належать.
  5. Перейдіть до версії, де виявлено порушення правил. Це може бути одна з 4 сторінок: "Внутрішнє тестування", "Закрите тестування", "Відкрите тестування" або "Робоча версія".
  6. Угорі праворуч натисніть Створити новий випуск. Можливо, спочатку знадобиться натиснути "Керувати версією".
    • Якщо випуск із файлом APK, який порушує правила, має статус чернетки, видаліть такий випуск.
  7. Додайте версію наборів App Bundle або файлів APK, що відповідає правилам.
    • Переконайтеся, що версія наборів App Bundle або файлів APK, яка не відповідає правилам, міститься в розділі Не включено такого випуску. Щоб дізнатися більше, прочитайте розділ "Не включено (набори App Bundle і файли APK)" цієї статті Довідкового центру Play Console.
  8. Щоб зберегти зміни випуску, натисніть Зберегти.
  9. Коли ви підготуєте додаток до випуску, виберіть Перевірити випуск.

Якщо файл APK, який не відповідає правилам, випущено для кількох версій, повторіть пункти 5–9 для кожної з них.

Коли ви надішлете оновлені версії, ми знову перевіримо їх. Це може зайняти кілька годин. Якщо додаток буде успішно перевірено й опубліковано, більше нічого не потрібно робити. Якщо додаток не пройде перевірку, його нову версію не буде опубліковано, а ви отримаєте сповіщення електронною поштою.

Ми завжди готові допомогти

Якщо у вас є технічні запитання про цю загрозу безпеці, опублікуйте їх на сайті Stack Overflow з тегом android-security. Щоб дізнатися більше про те, як вирішити цю проблему, зв’яжіться з нашою службою підтримки розробників.

Головне меню
1551525545680660656
true
Пошук у довідковому центрі
true
true
true
true
true
5016068
false