Usar regiões de SMS para proteger seu app contra abusos
Este guia mostra como usar regiões de SMS para restringir o uso da verificação de SMS do Identity Platform e conferir as métricas de uso.
Informações gerais sobre as regiões de SMS
As regiões de SMS são um recurso do Identity Platform que você pode usar para proteger seus apps contra abusos 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 configurar a política de região de SMS.
- Uma API para você configurar a 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
Esta seção descreve 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:apenas 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 telefone, exceto as especificadas em uma lista de bloqueio.
Depois que você muda a configuração, o sistema começa a aplicar a política imediatamente. Ele bloqueia solicitações de autorização de telefone das regiões que são proibidas pela política com base no código de região do número de telefone.
Política de lista de permissões
Para configurar uma política de lista de permissões, siga estas etapas:
Console do Firebase
No console do Firebase, acesse a página Configurações do Firebase Auth.
Acessar as configurações do Firebase Auth
Selecione Política de região de SMS no painel de navegação.
Selecione Permitir.
Clique em Selecionar regiões.
Adicione apenas as regiões para onde você quer enviar mensagens SMS. As regiões que não estão na lista são bloqueadas.
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
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
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 gerado anteriormente.REGION_LIST
: uma ou mais regiões, por exemplo,IN
ouUS
.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 de lista de bloqueio, siga estas etapas:
Console do Firebase
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
Selecione Negar.
Clique em Selecionar regiões.
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.
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
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
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 gerado anteriormente.REGION_LIST
: uma ou mais regiões, por exemplo,IN
ouUS
.PROJECT_ID
: o ID do projeto.
É necessário fornecer uma máscara de atualização para evitar que outros campos sejam alterados.
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:
No console do Google Cloud, acesse a página Metrics Explorer no Cloud Monitoring:
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.
As métricas têm um campo region_code. Use esse código para ver as regiões que recebem autorizações por SMS.
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 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 em
que você não espera ter 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.