Usa regiones de SMS para proteger tu app del abuso de SMS

En esta guía, se muestra 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

Las regiones de SMS son una función de Identity Platform que puedes usar para proteger tus apps del abuso de SMS.

Por lo general, el abuso de SMS ocurre cuando un agente malicioso hace que un servicio envíe SMS a través de un operador con el que tiene un acuerdo de participación en los ingresos. El abuso de SMS puede generar costos más altos y dañar la reputación de tu producto entre los clientes.

Dado que Identity Platform permite las autorizaciones telefónicas por SMS, se puede producir abuso de SMS.

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

La función proporciona lo siguiente:

  • Una interfaz de Firebase console para que configures tu política de región de SMS
  • Una API para que configures tu política de región de SMS
  • Métricas que pueden fundamentar tu decisión de usar una política de región de SMS

Establece una política regional

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

  • Solo en la lista de entidades permitidas: Solo las regiones que especifiques en una lista de entidades permitidas pueden recibir solicitudes de autorización telefónica.
  • Solo lista de bloqueo: Todas las regiones pueden recibir solicitudes de autorización telefónica, excepto las que especifiques en una lista de bloqueo.

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

Política de solo lista de entidades permitidas

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

Firebase console

  1. En Firebase console, ve a la página Firebase Auth Settings.

    Ir a la configuración de Firebase Authentication

    1. Selecciona Política regional de SMS en el panel de navegación.

    2. Selecciona Permitir.

    3. Haz clic en Seleccionar regiones.

  2. Agrega solo las regiones a las que planeas enviar mensajes SMS. Las regiones que no se encuentran en la lista están bloqueadas.

  3. Haz clic en Guardar.

    Puedes configurar una lista de entidades permitidas o una lista de entidades bloqueadas, pero no ambas. Si lo haces, se anulará cualquier configuración anterior.

API de Identity Toolkit

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

    gcloud auth print-access-token --project=PROJECT_ID
    
  2. Actualiza la configuración de tu proyecto para incluir la nueva política con la API de 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'
    

Reemplaza lo siguiente:

  • ACCESS_TOKEN: Es el token de acceso que generaste antes.
  • REGION_LIST: Una o más regiones, por ejemplo, IN o US. Para limitar el abuso, te recomendamos que solo permitas las regiones a las que planeas enviar mensajes SMS.
  • PROJECT_ID: el ID de tu proyecto

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

Política de solo lista de bloqueo

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

Firebase console

  1. En Firebase console, ve a la página Configuración de Firebase Authentication y selecciona Política de regiones para SMS en el panel de navegación.

    Ir a la configuración de Firebase Authentication

    1. Selecciona Rechazar.

    2. Haz clic en Seleccionar regiones.

  2. Agrega 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. Para obtener una mayor protección contra el abuso, te recomendamos que uses una política solo de lista de entidades permitidas y que inhabilites todas las regiones en las que no planeas enviar mensajes SMS.

  3. Haz clic en Guardar.

    Puedes configurar una lista de entidades permitidas o una lista de entidades bloqueadas, pero no ambas. Si lo haces, se anulará cualquier configuración anterior.

API de Identity Toolkit

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

    gcloud auth print-access-token --project=PROJECT_ID
    
  2. Actualiza la configuración de tu proyecto para incluir la nueva política con la API de 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'
    

Reemplaza lo siguiente:

  • ACCESS_TOKEN: Es el token de acceso que generaste antes.
  • REGION_LIST: Una o más regiones, por ejemplo, IN o US.
  • PROJECT_ID: el ID de tu proyecto

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

Accede a las 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 consola de Google Cloud , ve a la página Explorador de métricas en Cloud Monitoring:

    Ir a Cloud Monitoring

  2. Selecciona los siguientes campos:

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

    Ten en cuenta que las métricas tienen un campo region_code. Usas este código 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 específica. Por lo general, se consideran aceptables las tasas de éxito de la verificación superiores al 75%.

Un valor bajo de verification_success_rate puede indicar abuso, especialmente en una región en la que no esperarías tener usuarios. Por lo general, se consideran bajas las tasas de éxito de la verificación inferiores al 75%.

Si sospechas que hay abuso de SMS, puedes establecer una política de región.