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 uma operadora com a qual tenham um contrato de participação na 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 por SMS, pode ocorrer abuso de SMS.
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 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 delas 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 por 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 somente 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, execute o comando a seguir para imprimir um token de acesso do projeto:
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 que você gerou 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 da região 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 que você gerou 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 mudou.
Acessar métricas de uso de SMS regionais
Esta seção descreve como visualizar as métricas de uso de SMS.
Para visualizar 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
- 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 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 em que
você não espera ter usuários. Em geral, as taxas de
sucesso da verificação ficam abaixo de 75%,
são considerados baixos.
Se você suspeitar de abuso de SMS, defina uma política de região.