Как устранить проблему, связанную с раскрытием серверных ключей Firebase Cloud Messaging (FCM)

Эта информация предназначена для разработчиков, в приложениях которых есть раскрытые серверные ключи Firebase Cloud Messaging (FCM).

Что происходит

В одном или нескольких ваших приложениях содержатся раскрытые серверные ключи FCM. Злоумышленник может использовать их, чтобы отправлять push-уведомления всем пользователям уязвимого приложения. Кроме того, он может управлять контентом таких уведомлений и добавлять в них оскорбления, шокирующие изображения и т. д. Чтобы устранить уязвимость, выполните описанные ниже действия. Информацию о том, где в приложении раскрываются серверные ключи FCM, вы найдете в уведомлении Play Console.

Что нужно сделать

  1. Обновите приложение и раскрытые ключи, выполнив указанные ниже действия.

    1. Если для вашего приложения включен устаревший FCM API и вы не используете его для отправки push-уведомлений, отключите его.
    2. Если для вашего приложения включен устаревший FCM API и вы используете его для отправки push-уведомлений, выполните одно из следующих действий:
      1. Рекомендуется. Начните использовать FCM v1 API и отключите устаревший FCM API.
      2. Сделайте так, чтобы можно было безопасно использовать устаревший FCM API. Для этого выполните перечисленные ниже действия.
        1. Если раскрытый ключ используется только для FCM API:
          1. Создайте новый ключ. Для этого откройте консоль Firebase, выберите "Настройки проекта" > Cloud Messaging и нажмите кнопку "Добавить ключ сервера". Используйте этот ключ для отправки сообщений FCM из безопасной серверной среды. Не добавляйте его в код клиента (приложения, исполняемые файлы).
          2. Затем удалите раскрытые серверные ключи из GCP Console. Части приложения, в которых раскрываются серверные ключи FCM, указаны в электронном письме, отправленном вам от Google Play. В шаге C описано, как получить из них раскрытые ключи.
        2. Если раскрытый ключ используется для нескольких API, включая FCM API:
          1. Начните использовать FCM v1 API и отключите устаревший FCM API.
          2. Чтобы безопасно использовать другие API, мы рекомендуем отказаться от раскрытых ключей и удалить их из GCP Console.
    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. Откройте версию тестирования с нарушением правила. Появится одна из четырех страниц: "Внутреннее тестирование", "Закрытое тестирование", "Открытое тестирование" или "Рабочая версия".
  6. В правом верхнем углу страницы выберите Создать новый выпуск Возможно, перед этим вам потребуется нажать кнопку "Управлять версией".
    • Если выпуск с APK-файлом, нарушающим правила, сохранен как проект, удалите его.
  7. Добавьте обновленную версию наборов App Bundle или файлов APK.
    • Убедитесь, что версия с нарушениями находится в разделе Не включены. Дополнительные инструкции представлены в разделе "Не включены" этой справочной статьи.
  8. Чтобы сохранить изменения в выпуске, выберите Сохранить.
  9. Подготовив версию, нажмите Проверка выпуска.

Если файл APK с нарушениями выпущен в нескольких версиях тестирования, повторите шаги 5–9 для каждой из них.

После этого мы проведем повторную проверку, которая может занять несколько часов. Если мы убедимся, что уязвимость устранена, то опубликуем приложение и дополнительных действий с вашей стороны не потребуется. В противном случае новая версия не будет опубликована, а вы получите уведомление по электронной почте.

Мы всегда готовы помочь

Если у вас есть вопросы об уязвимости, задайте их на сайте Stack Overflow, используя тег android-security. Чтобы получить более подробные разъяснения, обратитесь в нашу службу поддержки для разработчиков.

Главное меню
3828604153801710063
true
Поиск по Справочному центру
true
true
true
true
true
5016068
false