Como usar regiões de SMS para proteger seu app contra abuso de SMS

Este guia mostra como usar regiões de SMS para restringir o SMS do Identity Platform verificar o uso e conferir as métricas de uso.

Visão geral das regiões de SMS

As regiões de SMS são um recurso do Identity Platform que pode ser usado para proteger seus apps contra abuso de SMS.

O abuso de SMS geralmente acontece quando um usuário malicioso faz com que um serviço envie SMS por meio de uma operadora com a qual ele tem um acordo de compartilhamento de receita. O abuso de SMS pode aumentar os custos e prejudicar a reputação do seu produto com os clientes.

Como o Identity Platform permite autorizações de SMS, o abuso de SMS pode ocorrer.

O recurso de regiões de SMS permite definir quais regiões podem receber autorizações de telefone por SMS.

O recurso oferece o seguinte:

  • Uma interface do Console do Firebase para você configurar sua política de região de SMS.
  • Uma API para você configurar sua política de região de SMS
  • Métricas que podem informar sua decisão de usar uma política de região de SMS.

Definir uma política de região

Nesta seção, descrevemos uma política de região do Identity Platform. É possível configurar os seguintes tipos de políticas, e apenas uma pode estar ativa:

  • Somente na lista de permissões:somente as regiões especificadas em uma lista de permissões podem receber números de telefone. solicitações de autorização.
  • Somente lista de bloqueio: todas as regiões podem receber solicitações de autorização de telefone, exceto as especificadas em uma lista de bloqueio.

Quando a configuração é alterada, o sistema imediatamente começa a aplicar as política. Ele bloqueia solicitações de autorização por telefone das regiões não permitido pela política com base no código regional do número de telefone.

Política somente da lista de permissões

Para configurar uma política somente de lista de permissões, siga estas etapas:

Console do Firebase

  1. No Console do Firebase, acesse a página Configurações do Firebase Auth.

    Acessar as configuraçõ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 você quer enviar mensagens SMS. As regiões que não estão na lista são bloqueadas.

  3. Clique em Salvar.

    É possível configurar uma lista de permissões ou de proibições, mas não as duas. Isso substitui qualquer configuração anterior.

API Identity Toolkit

  1. No console do Google Cloud, para imprimir um token de acesso para seu projeto, execute o seguinte comando:

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

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

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

Política somente de lista de bloqueio

Para configurar uma política somente da lista de bloqueio, siga estas etapas:

Console do Firebase

  1. No Console do Firebase, acesse a página Configurações do Firebase Auth e selecione Política de região de SMS no painel de navegação.

    Acessar as configurações do Firebase Auth

    1. Selecione Negar.

    2. Clique em Selecionar regiões.

  2. Adicione as regiões para as quais você quer bloquear o envio de mensagens SMS. As regiões que não estiverem na lista serão permitidas.

  3. Clique em Salvar.

    É possível configurar uma lista de permissões ou de proibições, mas não as duas. Isso substitui qualquer configuração anterior.

API Identity Toolkit

  1. No console do Google Cloud, execute o comando a seguir para imprimir um token de acesso do projeto:

    gcloud auth print-access-token --project=PROJECT_ID
    
  2. Atualize a configuração do projeto para incluir a nova política usando a API Identity Toolkit:

    curl -X PATCH -d "{'sms_region_config':{'denylist_only':{'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:

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

É necessário fornecer uma máscara de atualização para evitar que outros campos sejam alterado.

Acessar métricas de uso de SMS regionais

Esta seção descreve como conferir as métricas de uso de SMS.

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

  1. No console do Google Cloud, acesse a página Metrics Explorer do Cloud Monitoring:

    Acesse o Cloud Monitoring.

  2. Selecione os seguintes campos:

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

    As métricas têm um campo region_code. Use esse código para ver as regiões que recebem autorizações por SMS.

  3. Calcule a taxa de sucesso da verificação como verification_success_rate = phone_verification_count/sent_sms_count, em um em uma região específica. Normalmente, taxas de sucesso de verificação acima de 75% são consideradas aceitáveis.

Um verification_success_rate baixo pode indicar abuso, especialmente em uma região do que você não espera que tenha usuários. Normalmente, as taxas de sucesso de verificação abaixo de 75% são consideradas baixas.

Se você suspeitar de abuso de SMS, defina uma política de região.