Solución para claves expuestas del servidor de Firebase Cloud Messaging (FCM)

Esta información está dirigida a desarrolladores cuyas apps contengan claves expuestas del servidor de Firebase Cloud Messaging (FCM).

Novedades

Una o más de tus apps contienen claves expuestas del servidor de FCM. Los atacantes maliciosos podrían usar las claves expuestas para enviar notificaciones push a todos los usuarios de tu app vulnerable. Los atacantes controlarían el contenido de esas notificaciones y podrían incluir desde mensajes ofensivos hasta imágenes explícitas o perturbadoras. Revisa los pasos detallados que aparecen a continuación para solucionar el problema. Las ubicaciones de tu app que exponen las claves del servidor de FCM se pueden encontrar en la notificación de Play Console de la app.

Acción obligatoria

  1. Actualiza la app y las claves expuestas de FCM mediante los pasos que se destacan a continuación.

    1. Si tienes la API de FCM heredada habilitada para tu app y no la usas para enviar notificaciones push, inhabilítala.
    2. Si tienes habilitada la API de FCM heredada y la usas para enviar notificaciones push, puedes seguir uno de estos dos pasos:
      1. (Recomendado) Migra a la API de FCM v1 y, luego, inhabilita la API de FCM heredada.
      2. Protege el uso de la API de FCM heredada mediante una de las acciones que se indican a continuación.
        1. Si usas la clave expuesta solo para la API de FCM, haz lo siguiente: 
          1. Ve a Firebase console > Configuración del proyecto > Cloud Messaging y haz clic en "Agregar clave de servidor" para generar una clave nueva. Cuando la tengas, úsala para enviar mensajes de FCM desde tu entorno de servidor seguro. Asegúrate de usar esta clave únicamente desde el entorno de servidor seguro y de que no esté incluida en tu código de cliente (apps, objetos binarios). 
          2. Una vez que hayas realizado la migración para enviar mensajes de FCM con la clave de servidor recién generada, borra las claves de servidor expuestas de GCP Console. Las ubicaciones de tu app que exponen las claves del servidor de FCM se pueden encontrar en el correo electrónico de notificación de Google Play. En el paso c. se describe cómo obtener las claves expuestas de estas ubicaciones. 
        2. Si usas la clave expuesta para otras API, incluido FCM, haz lo siguiente:
          1. Migra a la API de FCM v1 y, luego, inhabilita la API de FCM heredada.
          2. Para validar los usos futuros de la API, considera realizar la migración para dejar de usar la clave expuesta en las otras API y, cuando corresponda, borra la clave expuesta de GCP Console.
    3. Una vez que hayas llevado a cabo uno de los pasos anteriores, borra la clave expuesta del servidor de FCM del código de la app. Las ubicaciones de tu app que exponen las claves del servidor de FCM se pueden encontrar en el correo electrónico de notificación de Google Play. Para obtener las claves expuestas, revisa el código de tu app en la ubicación vulnerable. La clave podría estar incorporada en esa ubicación como una string o cargada en esa ubicación desde recursos XML de la app. En este último caso, verifica el archivo res/values/strings.xml de la app para obtener la clave expuesta. Ten en cuenta lo siguiente:
      • Si llevas a cabo los pasos anteriores, pero no borras las claves expuestas de la app, seguirás recibiendo notificaciones de vulnerabilidad en tu correo electrónico o Google Play Console. 
      • Si borras las claves expuestas de la app, pero no realizas los pasos anteriores, no solucionarás el problema, ya que un atacante simplemente puede encontrar la clave en una compilación anterior de tu app y usarla para atacarla.

2. Envía el APK actualizado

Para enviar un paquete de aplicación o APK actualizado, haz lo siguiente:

  1. Accede a Play Console.
  2. Selecciona la app.
  3. Ve al explorador de paquete de aplicación.
  4. Selecciona la compilación de la app correspondiente al paquete de aplicación o APK que no cumple con las políticas en el menú desplegable de la parte superior derecha y toma nota de las versiones en las que se encuentra.
  5. Ve al segmento que tiene el problema de incumplimiento de políticas. Este corresponderá a una de estas 4 páginas: Prueba interna, Prueba cerrada, Prueba abierta o Producción.
  6. Cerca de la parte superior derecha de la página, haz clic en Crear una versión nueva. (Es posible que primero debas hacer clic en Administrar segmento).
    • Si la versión que tiene el APK con el incumplimiento se encuentra en estado de borrador, descártala.
  7. Agrega la compilación de los paquetes de aplicaciones o APK que cumpla con las políticas.
    • Asegúrate de que la compilación de los paquetes de aplicaciones o APK que no cumple con las políticas esté en la sección No incluidos de esta versión. Para obtener más orientación, consulta la sección "No incluidos" (paquetes de aplicaciones y APK) en este artículo de ayuda de Play Console.
  8. Para guardar los cambios que realices en la versión, selecciona Guardar.
  9. Cuando hayas terminado de prepararla, selecciona Revisar la versión.

Si el APK que no cumple con las políticas se lanzó en múltiples segmentos, repite los pasos 5 a 9 en cada uno de ellos.

Una vez que las hayas reenviado, revisaremos tu app nuevamente. Este proceso puede demorar varias horas. Si la app pasa la revisión y se publica sin problemas, no se requerirá ninguna otra acción. Si la app no pasa la revisión, no se publicará la nueva compilación, y recibirás una notificación por correo electrónico.

Estamos aquí para ayudarte

Si tienes preguntas técnicas sobre la vulnerabilidad, puedes publicarlas en Stack Overflow con la etiqueta "android-security". Si necesitas aclaración sobre los pasos que debes seguir para resolver el problema, puedes comunicarte con nuestro equipo de asistencia para desarrolladores.

Menú principal
13961492268242754385
true
Buscar en el Centro de asistencia
true
true
true
true
true
5016068
false