Uso de regiões de SMS para proteger seu app contra abuso de SMS

Neste guia, mostramos como usar as regiões de SMS para restringir o uso da verificação por SMS do Identity Platform e visualizar 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 agente malicioso faz com que um serviço envie SMS por uma operadora com que tem um contrato de participação na receita. O abuso de SMS pode aumentar os custos e prejudicar a reputação do seu produto entre os clientes.

Como o Identity Platform permite autorizações de smartphone por SMS, pode haver abuso de SMS.

O recurso de regiões de SMS permite definir quais regiões podem receber autorizações de telefone 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 fundamentar 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ítica, e apenas uma pode estar ativa:

  • Somente para a lista de permissões:somente as regiões especificadas em uma lista de permissões podem receber solicitações de autorização por telefone.
  • Somente lista de bloqueio:todas as regiões podem receber solicitações de autorização de smartphone, exceto as especificadas em uma lista de bloqueio.

Após a alteração da configuração, o sistema imediatamente começa a aplicar a política. Ela bloqueia solicitações de autorização por telefone das regiões não permitidas pela política com base no código regional do número de telefone.

Política somente para 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 Allow (Permitir).

    3. Clique em Selecionar regiões.

  2. Adicione apenas as regiões para onde você quer enviar as mensagens SMS. As regiões que não estão na lista são bloqueadas.

  3. Clique em Save.

    É possível configurar uma lista de permissões ou de bloqueio, mas não ambas. Essa ação 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 para seu 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':{'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, como IN ou US.
  • PROJECT_ID: o ID do projeto.

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

Política apenas para lista de bloqueio

Para configurar uma política apenas para 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 onde você quer bloquear o envio de mensagens SMS. As regiões que não estiverem na lista serão permitidas.

  3. Clique em Save.

    É possível configurar uma lista de permissões ou de bloqueio, mas não ambas. Essa ação 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 para seu 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, como IN ou US.
  • PROJECT_ID: o ID do projeto.

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

Acessar métricas regionais de uso de SMS

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

Para visualizar 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 uma região específica. Normalmente, taxas de verificação acima de 75% são consideradas aceitáveis.

Um verification_success_rate baixo pode indicar abuso, principalmente em uma região em que não é esperado que haja usuários. Normalmente, 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.