Usar regiones de SMS para proteger tu aplicación frente al uso inadecuado de SMS

En esta guía se explica cómo usar las regiones de SMS para restringir el uso de la verificación por SMS de Identity Platform y ver las métricas de uso.

Descripción general de las regiones de SMS

Regiones de SMS es una función de Identity Platform que puedes usar para proteger tus aplicaciones frente a abusos por SMS.

El abuso de SMS suele producirse cuando un agente malicioso hace que un servicio envíe SMS a través de una operadora con la que tiene un acuerdo de reparto de ingresos. El abuso de SMS puede provocar un aumento de los costes y dañar la reputación de tu producto entre los clientes.

Como Identity Platform permite autorizaciones telefónicas por SMS, se puede producir un abuso de SMS.

La función de regiones de SMS te permite definir qué regiones pueden recibir autorizaciones telefónicas por SMS.

Esta función ofrece lo siguiente:

  • Una interfaz de la consola de Firebase para configurar tu política de regiones de SMS.
  • Una API para configurar tu política de región de SMS.
  • Métricas que pueden ayudarte a decidir si debes usar una política de región de SMS.

Definir una política de región

En esta sección se describe una política de regiones de Identity Platform. Puedes configurar los siguientes tipos de políticas, pero solo puede haber una activa:

  • Solo lista de permitidas: solo las regiones que especifiques en una lista de permitidas podrán recibir solicitudes de autorización telefónica.
  • Solo lista de no permitidas: todas las regiones pueden recibir solicitudes de autorización telefónica, excepto las que especifique en una lista de no permitidas.

Después de cambiar la configuración, el sistema empieza a aplicar la política inmediatamente. Bloquea las solicitudes de autorización telefónica de las regiones que no permite la política en función del código de región del número de teléfono.

Política de solo lista de permitidos

Para configurar una política de solo lista de permitidas, sigue estos pasos:

Consola de Firebase

  1. En la consola de Firebase, ve a la página Configuración de autenticación de Firebase.

    Ir a la configuración de Firebase Auth

    1. En el panel de navegación, selecciona Política de regiones para SMS.

    2. Selecciona Permitir.

    3. Haz clic en Seleccionar regiones.

  2. Añade solo las regiones a las que quieras enviar mensajes SMS. Las regiones que no estén en la lista se bloquearán.

  3. Haz clic en Guardar.

    Puedes configurar una lista de permitidos o una lista de denegados, pero no ambas. De esta forma, se sobrescribirá cualquier configuración anterior.

API Identity Toolkit

  1. En la consola de Google Cloud , ejecuta el siguiente comando para imprimir un token de acceso de tu proyecto:

    gcloud auth print-access-token --project=PROJECT_ID
    
  2. Actualiza la configuración de tu proyecto para incluir la nueva política mediante la API Identity Toolkit:

    curl -X PATCH -d "{'sms_region_config':{'allowlist_only':{'allowed_regions':['REGION_LIST']}}}" \
    -H 'Authorization: Bearer ACCESS_TOKEN' \
    -H 'Content-Type: application/json' \
    'https://identitytoolkit.googleapis.com/admin/v2/projects/PROJECT_ID/config?updateMask=sms_region_config'
    

Haz los cambios siguientes:

  • ACCESS_TOKEN: el token de acceso que has generado anteriormente.
  • REGION_LIST: una o varias regiones (por ejemplo, IN o US).
  • PROJECT_ID: tu ID de proyecto.

Debes proporcionar una máscara de actualización para evitar que se modifiquen otros campos.

Política de solo lista de no permitidas

Para configurar una política de solo lista de denegación, sigue estos pasos:

Consola de Firebase

  1. En la consola de Firebase, vaya a la página Configuración de autenticación de Firebase y seleccione Política de regiones de SMS en el panel de navegación.

    Ir a la configuración de Firebase Auth

    1. Selecciona Rechazar.

    2. Haz clic en Seleccionar regiones.

  2. Añade las regiones a las que quieras bloquear el envío de mensajes SMS. Se permitirán las regiones que no estén en la lista.

  3. Haz clic en Guardar.

    Puedes configurar una lista de permitidos o una lista de denegados, pero no ambas. De esta forma, se sobrescribirá cualquier configuración anterior.

API Identity Toolkit

  1. En la consola de Google Cloud , ejecuta el siguiente comando para imprimir un token de acceso de tu proyecto:

    gcloud auth print-access-token --project=PROJECT_ID
    
  2. Actualiza la configuración de tu proyecto para incluir la nueva política mediante la API Identity Toolkit:

    curl -X PATCH -d "{'sms_region_config':{'allow_by_default':{'disallowed_regions':['REGION_LIST']}}}" \
    -H 'Authorization: Bearer ACCESS_TOKEN' \
    -H 'Content-Type: application/json' \
    'https://identitytoolkit.googleapis.com/admin/v2/projects/PROJECT_ID/config?updateMask=sms_region_config'
    

Haz los cambios siguientes:

  • ACCESS_TOKEN: el token de acceso que has generado anteriormente.
  • REGION_LIST: una o varias regiones (por ejemplo, IN o US).
  • PROJECT_ID: tu ID de proyecto.

Debes proporcionar una máscara de actualización para evitar que se modifiquen otros campos.

Acceder a métricas de uso de SMS regionales

En esta sección se describe cómo ver las métricas de uso de SMS.

Para ver las métricas, haz lo siguiente:

  1. En la Google Cloud consola, ve a la página Explorador de métricas de Cloud Monitoring:

    Ve a Cloud Monitoring.

  2. Selecciona los siguientes campos:

    • identitytoolkit.googleapis.com/usage/sent_sms_count,
    • identitytoolkit.googleapis.com/usage/blocked_sms_count y
    • firebaseauth.googleapis.com/phone_auth/phone_verification_count.

    Ten en cuenta que las métricas tienen un campo region_code. Este código se usa para ver las regiones que reciben autorizaciones por SMS.

  3. Calcula la tasa de éxito de la verificación como verification_success_rate = phone_verification_count/sent_sms_count en una región concreta. Por lo general, se considera aceptable un porcentaje de éxito de la verificación superior al 75 %.

Un valor bajo de verification_success_rate puede indicar un abuso, sobre todo en una región en la que no esperas tener usuarios. Por lo general, se considera que las tasas de verificación inferiores al 75 % son bajas.

Si sospechas que se está produciendo un abuso de SMS, puedes definir una política de región.