Guias

Crie uma verificação simples de reputação de IP para cadastros

Um serviço dedicado de detecção de fraudes é mais do que a maioria dos pequenos formulários de cadastro precisa. Uma verificação simples que compara o que um endereço IP sugere com o que o formulário de cadastro declara já identifica, por si só, uma parcela razoável das tentativas claramente incoerentes.

Obtendo os detalhes do IP no cadastro

GET /v1/ip?ip=198.51.100.200
{
  "status": "ok",
  "ip": "198.51.100.200",
  "version": 4,
  "found": true,
  "country": "Brazil",
  "country_code": "BR",
  "region": "Sao Paulo",
  "city": "Sao Paulo",
  "postcode": "01310",
  "lat": -23.5505,
  "lon": -46.6333,
  "timezone": "America/Sao_Paulo",
  "asn": 8901,
  "org": "Example Cloud Provider"
}

Comparando o país com os dados do formulário

Se o formulário de cadastro pede um país de cobrança e o valor informado não corresponde ao country_code da consulta de IP, isso por si só não prova que há algo errado, já que viagens e o uso de VPN são comuns e legítimos. Trate uma divergência como um ponto somado a uma pontuação simples, e não como uma rejeição automática.

Avaliando o tipo de rede

O campo org muitas vezes revela se um endereço pertence a um provedor de internet residencial ou a um data center ou provedor de hospedagem em nuvem. Um cadastro vindo de uma rede de hospedagem em nuvem, de onde um cliente pessoa física real raramente estaria navegando, merece uma pontuação maior do que um vindo de um provedor residencial reconhecível, embora, novamente, isso por si só não seja motivo de rejeição automática.

Um segundo exemplo: uma pequena lista de ASNs conhecidos

Se você notou determinados valores de ASN aparecendo repetidamente em cadastros abusivos, manter uma lista curta desses números de asn específicos e somar uma pontuação fixa sempre que um novo cadastro corresponder a um deles é uma forma leve de registrar esse padrão daqui para a frente, sem precisar de uma base completa de reputação de ASN de terceiros para uma verificação com um escopo tão modesto.

if ip_info["asn"] in known_abuse_asns:
    score += 2

Combinando os sinais em uma pontuação

Some um pequeno número de verificações simples, divergência de país, origem em rede de hospedagem e qualquer outra coisa específica do seu próprio fluxo de cadastro, em uma única pontuação numérica. Encaminhe tudo o que ficar acima de um limite definido por você para revisão manual ou para uma etapa extra de verificação, como a confirmação por e-mail, em vez de bloquear de imediato.

Um erro comum a evitar

Não pontue automaticamente todo cadastro vindo de VPN ou de faixa de hospedagem como de alto risco sem nenhum outro contexto. Muitos clientes legítimos navegam a partir de uma rede corporativa que por acaso passa por uma faixa de IP de data center, ou de uma VPN que usam por motivos de privacidade totalmente comuns. Considerar o tipo de rede como um sinal entre vários, e não como um critério único de desqualificação, evita que a verificação afaste clientes reais por causa de um falso positivo.

Um caso extremo: muitos cadastros a partir de um endereço compartilhado

Uma rede de escritório compartilhada ou o CGNAT (carrier-grade NAT) de uma grande operadora móvel pode colocar muitos cadastros legítimos e sem relação entre si atrás do mesmo endereço IP em pouco tempo. Se você também acompanha o volume de cadastros por IP como parte da sua verificação, defina esse limite com folga suficiente para permitir isso, ou observe-o junto com os sinais de país e de rede em vez de usá-lo como uma regra isolada.

Mantendo a proporção

Esse tipo de verificação serve para pegar abusos evidentes e de baixo esforço, não para substituir um sistema real de prevenção de fraudes em um negócio em que as perdas com fraude são uma preocupação séria. Trate-a como um primeiro filtro, não como um veredito final.

Custo das requisições

Uma consulta por tentativa de cadastro é uma requisição. Mesmo um formulário que recebe um fluxo constante de cadastros fica bem dentro das 2.500 requisições gratuitas por dia incluídas em toda chave para volumes típicos. Os cabeçalhos de resposta X-Quota-Used e X-Quota-Free-Remaining são uma forma simples de acompanhar quanto dessa cota um pico repentino de tentativas de cadastro está consumindo.

Uma pontuação leve, construída a partir de alguns sinais derivados do IP, pega mais do que não fazer nada, sem o custo de uma plataforma dedicada contra fraudes. A documentação de consulta de IPv4 lista todos os campos disponíveis para esse tipo de verificação.