Usar regiões de SMS para proteger a sua app contra abusos de SMS

Este guia mostra como usar regiões de SMS para restringir a utilização da validação por SMS do Identity Platform e ver as métricas de utilização.

Vista geral das regiões de SMS

As regiões de SMS são uma funcionalidade da Identity Platform que pode usar para proteger as suas apps contra o abuso de SMS.

Normalmente, o abuso de SMS ocorre quando um ator malicioso faz com que um serviço envie SMS através de uma operadora com a qual tem um contrato de partilha de receita. O abuso de SMS pode resultar em custos mais elevados e prejudicar a reputação do seu produto junto dos clientes.

Uma vez que a Identity Platform permite autorizações de telemóvel por SMS, podem ocorrer abusos de SMS.

A funcionalidade de regiões de SMS permite-lhe definir que regiões podem receber autorizações por telefone via SMS.

A funcionalidade oferece o seguinte:

  • Uma interface da consola do Firebase para configurar a sua política de região de SMS.
  • Uma API para configurar a sua política de região de SMS.
  • Métricas que podem fundamentar a sua decisão de usar uma política de região de SMS.

Defina uma política da região

Esta secção descreve uma política regional da Identity Platform. Pode configurar os seguintes tipos de políticas, mas apenas uma pode estar ativa:

  • Apenas lista de autorizações: apenas as regiões que especificar numa lista de autorizações podem receber pedidos de autorização por telefone.
  • Apenas lista de recusa: todas as regiões podem receber pedidos de autorização por telefone, exceto as que especificar numa lista de recusa.

Depois de alterar a configuração, o sistema começa imediatamente a aplicar a política. Bloqueia pedidos de autorização por telefone das regiões que não são permitidas pela política com base no código da região do número de telefone.

Política apenas de listas de autorizações

Para configurar uma política apenas de lista de autorizações, siga estes passos:

consola do Firebase

  1. Na consola do Firebase, aceda à página Definições de autenticação do Firebase.

    Aceda às definições do Firebase Auth

    1. Selecione Política de região de SMS no painel de navegação.

    2. Selecione Permitir.

    3. Clique em Selecionar regiões.

  2. Adicione apenas as regiões para as quais quer que sejam enviadas mensagens SMS. As regiões que não constam da lista são bloqueadas.

  3. Clique em Guardar.

    Pode configurar uma lista de permissões ou uma lista de recusa, mas não ambas. Ao fazê-lo, substitui qualquer configuração anterior.

API Identity Toolkit

  1. Na Google Cloud consola, para imprimir um token de acesso para o seu projeto, execute o seguinte comando:

    gcloud auth print-access-token --project=PROJECT_ID
    
  2. Atualize a configuração do seu projeto para incluir a nova política através da 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'
    

Substitua o seguinte:

  • ACCESS_TOKEN: o token de acesso que gerou anteriormente.
  • REGION_LIST: uma ou mais regiões, por exemplo, IN ou US.
  • PROJECT_ID: o ID do seu projeto.

Tem de fornecer uma máscara de atualização para evitar que outros campos sejam alterados.

Política apenas de listas de negações

Para configurar uma política apenas de lista de exclusão, siga estes passos:

Consola do Firebase

  1. Na consola do Firebase, aceda à página Definições de autenticação do Firebase e selecione Política de regiões de SMS no painel de navegação.

    Aceda às definições do Firebase Auth

    1. Selecione Recusar.

    2. Clique em Selecionar regiões.

  2. Adicione as regiões para as quais quer bloquear o envio de mensagens SMS. As regiões que não constam da lista são permitidas.

  3. Clique em Guardar.

    Pode configurar uma lista de permissões ou uma lista de recusa, mas não ambas. Ao fazê-lo, substitui qualquer configuração anterior.

API Identity Toolkit

  1. Na Google Cloud consola, para imprimir um token de acesso para o seu projeto, execute o seguinte comando:

    gcloud auth print-access-token --project=PROJECT_ID
    
  2. Atualize a configuração do seu projeto para incluir a nova política através da 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'
    

Substitua o seguinte:

  • ACCESS_TOKEN: o token de acesso que gerou anteriormente.
  • REGION_LIST: uma ou mais regiões, por exemplo, IN ou US.
  • PROJECT_ID: o ID do seu projeto.

Tem de fornecer uma máscara de atualização para evitar que outros campos sejam alterados.

Aceda às métricas de utilização de SMS regionais

Esta secção descreve como ver as métricas de utilização de SMS.

Para ver as métricas, faça o seguinte:

  1. Na Google Cloud consola, aceda à página Explorador de métricas no Cloud Monitoring:

    Aceda ao Cloud Monitoring.

  2. Selecione os seguintes campos:

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

    Tenha em atenção que as métricas têm um campo region_code. Use este código para ver as regiões que recebem autorizações por SMS.

  3. Calcular a taxa de êxito da validação como verification_success_rate = phone_verification_count/sent_sms_count, numa região específica. Normalmente, as taxas de êxito da validação superiores a 75% são consideradas aceitáveis.

Uma verification_success_rate baixa pode indicar abuso, especialmente numa região na qual não esperaria ter utilizadores. Normalmente, as taxas de êxito da validação inferiores a 75% são consideradas baixas.

Se suspeitar de abuso de SMS, pode definir uma política de região.