Reduzir falsos positivos na detecção de VPN: guia prático
Falsos positivos na detecção de VPN acontecem quando um endereço IP é marcado como VPN, proxy ou anonimizador mesmo que a pessoa por trás dele seja um usuário comum, e as causas mais frequentes são endereços compartilhados, pontos de saída hospedados em nuvem e dados de listas desatualizados. Reduzi-los é, na maior parte, entender o que um indicador realmente significa e decidir o que o seu aplicativo faz com ele.
Por que o tráfego legítimo é marcado
A detecção de VPN é inferência, não observação. Um serviço vê apenas um endereço de origem e precisa deduzir, a partir dele, a que tipo de rede ele pertence. Duas grandes técnicas estão em jogo: comparar o endereço com listas publicadas de VPNs conhecidas e de nós de saída do Tor, e observar quem opera a rede em que o endereço está. Ambas podem errar de maneiras previsíveis.
A primeira fonte de erro é o compartilhamento de endereços. O CGNAT permite que um ISP coloque milhares de assinantes atrás de um pequeno conjunto de endereços públicos, e muitas empresas, universidades e hotéis fazem o mesmo com NAT comum. Visto de fora, um endereço produz um grande volume de sessões não relacionadas de muitas pessoas, que é exatamente o que uma saída de VPN comercial parece quando você só tem logs de requisição. Heurísticas comportamentais que disparam com volume ou com muitas contas distintas por endereço vão, portanto, errar em redes perfeitamente normais.
A segunda fonte é a hospedagem. Usuários corporativos frequentemente acessam a internet por um secure web gateway, um proxy em nuvem ou um serviço zero-trust cujos endereços de saída ficam dentro de uma rede de datacenter. Trabalhadores remotos em uma VPN da empresa, que é um arranjo legítimo e comum, parecem vir desse datacenter. Uma regra que trata todo endereço de datacenter como suspeito pegará essas pessoas junto com os abusadores. A terceira fonte é o tempo: um provedor de VPN abandona um endereço, outro locatário o herda e uma lista que não foi atualizada continua informando o status antigo.
Leia a rede, não apenas o indicador
Um booleano é a parte menos informativa de uma consulta. A consulta de IP do ipto retorna is_vpn, is_tor, is_abuser, is_datacenter e os campos bogon e bogon_type, junto com o ASN e a organização que operam o endereço. Esses campos devem ser lidos em conjunto. Um endereço com is_datacenter verdadeiro e is_vpn falso pertence a uma rede de hospedagem, mas não correspondeu a nenhuma fonte de VPN conhecida; isso é diferente de uma correspondência em uma lista de saída publicada, e sua política pode tratá-los de forma distinta.
O verificador de VPN, Tor e proxy mostra as mesmas evidências para um único endereço, incluindo a rede e qual fonte produziu a correspondência, o que é útil quando você investiga a reclamação específica de um usuário que diz ter sido bloqueado injustamente. Quanto à propriedade, uma consulta de ASN diz se o operador é um ISP residencial, uma operadora móvel, uma universidade ou um provedor de nuvem. Se o seu endereço marcado resolve para um ISP de consumo, um veredito de VPN merece mais ceticismo do que o mesmo veredito em um provedor de hospedagem.
Para o contexto de como os sinais de lista e de ASN são combinados, o post sobre como funciona a detecção de VPN percorre a mecânica.
Projete políticas que toleram erros
A maior redução de falsos positivos geralmente vem de mudar o que um resultado positivo desencadeia, não de ajustar o detector. Usar uma VPN é legal e comum; muitas pessoas usam uma em Wi-Fi público ou no trabalho. Bloquear de forma definitiva apenas por um indicador de VPN sempre punirá alguns usuários legítimos, então reserve o bloqueio para situações em que o risco é concreto, como um pagamento de uma conta nova, e use respostas mais brandas no restante.
- Escale a verificação em vez de bloquear. Peça uma etapa extra de verificação, adicione um CAPTCHA ou atrase uma ação de alto valor em vez de recusar a requisição de imediato.
- Combine sinais independentes. Um indicador de VPN mais um domínio de e-mail descartável mais uma região de telefone incompatível significa mais do que qualquer um deles isoladamente. O verificador de pontuação de fraude combina sinais de IP, e-mail, telefone e User-Agent em uma única pontuação de 0 a 100 para esse fim.
- Coloque em lista de permissão o que você conhece. Se o seu próprio escritório, um parceiro ou o gateway conhecido de um cliente for marcado, registre a faixa e isente-a. Revise a lista periodicamente, porque os endereços são reatribuídos.
- Registre o motivo. Armazene qual campo desencadeou a decisão para que o suporte possa explicá-la e você possa medir com que frequência um indicador foi revertido.
- Reverifique periodicamente. Os feeds de ameaças do ipto são atualizados a cada 6 horas e os conjuntos de dados de IP e ASN diariamente, então um veredito em cache mais antigo que isso já pode estar desatualizado.
Conheça os limites de qualquer detector
Nenhuma lista é completa, então um resultado negativo significa "não conhecido", nunca "definitivamente não é uma VPN". O ipto não detecta proxies residenciais, que roteiam o tráfego por conexões domésticas comuns e são, por concepção, difíceis de separar de usuários reais. Medir a sua própria taxa de falsos positivos é, portanto, importante: amostre sessões marcadas, verifique quantas eram clientes legítimos e ajuste a ação que você associa a cada sinal. A página de feeds de ameaças mostra as próprias listas de VPN, Tor e alto risco, o que ajuda quando você quer confirmar se um endereço realmente está em uma lista publicada ou foi marcado por outro motivo.
Você pode testar tudo isso sem se cadastrar: o plano gratuito permite 1.000 requisições por dia, e a documentação da API lista o endpoint de consulta e os campos da resposta.