Usar regiões de SMS para proteger seu app contra abusos de SMS
Este guia mostra como usar regiões de SMS para restringir o uso da verificação por SMS do Identity Platform e conferir 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 você pode usar para proteger seus apps contra abusos de SMS.
O abuso de SMS geralmente acontece quando um ator mal-intencionado faz com que um serviço envie SMS por uma operadora com quem ele tem 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 de telefone por SMS, pode ocorrer abuso de SMS.
Com o recurso de regiões de SMS, é possível definir quais regiões podem receber autorizações por telefone via SMS.
O recurso oferece o seguinte:
- Uma interface do console do Firebase para 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
Esta seção descreve uma política de região do Identity Platform. É possível configurar os seguintes tipos de políticas, mas apenas uma pode estar ativa:
- Somente lista de permissão:apenas as regiões especificadas em uma lista de permissão podem receber solicitações de autorização por telefone.
- 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 de mudar a configuração, o sistema começa imediatamente a aplicar a política. Ela bloqueia solicitações de autorização por 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 disponível apenas mediante 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 em que você planeja 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 uma lista de bloqueio, mas não ambas. Isso substitui qualquer configuração anterior.
API Identity Toolkit
No console Google Cloud , para imprimir um token de acesso do seu projeto, execute o seguinte comando:
gcloud auth print-access-token --project=PROJECT_IDAtualize 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: BearerACCESS_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,INouUS. Para limitar o abuso, recomendamos que você permita apenas as regiões em que planeja enviar mensagens SMS.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 em que você quer bloquear o envio de mensagens SMS. As regiões que não estiverem na lista serão permitidas. Para ter mais proteção contra abuso, recomendamos usar uma política de permissão e desativar todas as regiões em que você não planeja enviar mensagens SMS.
Clique em Salvar.
É possível configurar uma lista de permissões ou uma lista de bloqueio, mas não ambas. Isso substitui qualquer configuração anterior.
API Identity Toolkit
No console Google Cloud , para imprimir um token de acesso do seu projeto, execute o seguinte comando:
gcloud auth print-access-token --project=PROJECT_IDAtualize a configuração do projeto para incluir a nova política usando a API Identity Toolkit:
curl -X PATCH -d "{'sms_region_config':{'allow_by_default':{'disallowed_regions':['REGION_LIST']}}}" \ -H 'Authorization: BearerACCESS_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,INouUS.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 regionais de uso de SMS
Esta seção descreve como ver as métricas de uso de SMS.
Para conferir as métricas, faça o seguinte:
No console 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_countem uma região específica. Normalmente, taxas de sucesso de verificação acima de 75% são consideradas aceitáveis.
Uma verification_success_rate baixa pode indicar abuso, especialmente em uma região em que você não espera ter 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.