Construindo o Antifraude: De Jogos a Segurança Digital
Construindo o Antifraude: De Jogos a Segurança Digital
Recentemente, mergulhei no desenvolvimento do Antifraude, um sistema robusto projetado para proteger transações digitais. Mas a inspiração para este sistema técnico veio de um lugar inesperado: o desenvolvimento de jogos e a pureza de ensinar programação.
🕹️ A Origem: Do Matheusinho Space ao Anticheat
Tudo começou com o Jogo do Matheusinho. Criamos esse jogo com um propósito educacional: ensinar lógica de programação para o meu filho, Matheus. Enquanto nos divertíamos criando mecânicas espaciais, esbarramos em um problema clássico de jogos online: cheaters.
Precisávamos validar se a pontuação enviada era humanamente possível. Isso me fez perceber que as mesmas técnicas usadas para detectar um "bot" farmando pontos em um jogo — análise comportamental, verificação de integridade de dispositivo, validação de latência — são a base da segurança bancária e de e-commerce moderna.
Assim nasceu a ideia do Antifraude: aplicar a mentalidade de "Game Security" para transações financeiras.
🏗️ Arquitetura do Backend
O coração do sistema é construído em Go (Golang), escolhido por sua performance bruta e concorrência nativa, essenciais para processar transações em tempo real.
Stack Tecnológico e Componentes
- Linguagem: Go 1.24 (com
Echo Frameworkpara alta performance HTTP). - Core Services:
FraudDetectionService: O orquestrador central que paraleliza as verificações.RulesEngineService: Motor de regras configuráveis (velocidade, produto) com cache em Redis.GraphAnalyticsService: Detecta anéis de fraude complexos.
- Bancos de Dados:
- PostgreSQL: Para dados transacionais (
Customer,Request,Alert). - ClickHouse: Nossa "besta" de OLAP. Ingere logs de eventos massivos para analytics em tempo real.
- Neo4j: Banco de grafos para detectar relacionamentos suspeitos (ex: "Dispositivo compartilhado por 50 contas diferentes").
- Redis: Cache L2 e Rate Limiting distribuído.
- PostgreSQL: Para dados transacionais (
- Mensageria: RabbitMQ desacoplando a ingestão da análise pesada, garantindo tolerância a falhas.
Fluxo do Sistema
🧠 Inteligência Artificial e Machine Learning
Não basta ter regras estáticas (embora tenhamos um motor de regras também). O sistema precisa aprender.
Pipeline de Treinamento e Performance
Utilizamos Python (FastAPI) para o serviço de inferência, mas a mágica acontece na integração.
-
Modelos em Produção:
- Random Forest: Nosso modelo principal, entregando latência de 10-20ms.
- XGBoost: Usado para casos que exigem maior precisão (F1-Score ~0.95).
- GenAI Explainer: LLMs geram explicações humanizadas para alertas críticos.
-
Métricas Reais:
- P99 Latecy: < 50ms para decisão completa.
- Throughput: Suporta > 5k req/s em batch.
-
Key Features: O modelo não "chuta". Ele analisa features calculadas em tempo real como
ip_risk_score,velocity_score(comportamento de velocidade de transações) edevice_trust_level. -
Experimentação com MLflow: Cada alteração nos hiperparâmetros ou nos dados de treino é registrada no MLflow. Isso nos permite rastrear a evolução dos nossos modelos e garantir que não estamos degradando a performance (accurancy/recall) ao longo do tempo.
-
Geração de Dados Sintéticos: Um dos maiores desafios em antifraude é o desbalanceamento de classes (muito mais transações legítimas do que fraudes). Criamos o
FraudDatasetGenerator, um script Python que enriquece nossos dados reais com amostras sintéticas de fraude baseadas em padrões conhecidos, permitindo treinar modelos mais robustos.
🕵️ O SDK: Capturando o Invisível
Para alimentar essa inteligência, precisamos de dados. Dados ricos. O Device Fingerprinting SDK (JavaScript) é o olho do sistema no dispositivo do usuário.
Inspirado nos sistemas anticheat que verificam a integridade do cliente do jogo, nosso SDK coleta centenas de sinais para gerar um hash único (SHA256).
Coleta de Sinais (Entropy Sources)
- Fingerprinting Gráfico:
- Canvas: Renderizamos textos invisíveis com gradientes complexos. Diferenças na GPU e drivers geram pixels ligeiramente diferentes.
- WebGL: Extraímos informações do renderizador e vendor da placa de vídeo.
- Audio Fingerprinting:
- Utilizamos um oscilador de áudio para medir como o hardware processa sinais sonoros (sem gravar som do microfone!).
- Biometria Comportamental:
- Keystroke Dynamics: Ritmo de digitação, tempo entre teclas.
- Mouse Dynamics: Bots fazem linhas retas; humanos fazem curvas com micro-tremores.
- Verificações de Privacidade & Segurança:
- Detecção de Modo Incógnito.
- Verificação de AdBlockers e extensões de privacidade.
- Detecção de emuladores e automação (Selenium/Puppeteer).
Web Workers & Performance
Para não travar a UI do cliente, toda a criptografia e geração de hash pesada é delegada a Web Workers. O resultado é um payload seguro enviado ao backend sem impactar o FPS da aplicação principal.
🚀 Desafios e Aprendizados
Construir o Antifraude reforçou que a segurança é uma corrida contínua.
- Dados são poder (ClickHouse): A capacidade de ingerir milhões de eventos e consultar agregados (ex: "quantas compras esse IP fez nos últimos 10 minutos?") em milissegundos é o que viabiliza a detecção em tempo real.
- O contexto importa (Neo4j): Transações isoladas enganam. Grafos revelam a verdade. Se um dispositivo está ligado a 50 contas diferentes, o grafo mostra isso instantaneamente como um "Fraud Ring".
- Risk Scoring Ponderado: Não existe "fraude sim/não". Existe risco. Implementamos um sistema de pesos onde fatores como Novo Dispositivo (+15 pts) e VPN Detectada (+15 pts) somam-se para uma decisão granular.
Espero que este post inspire outros desenvolvedores a olharem para sistemas de segurança não apenas como barreiras, mas como sistemas inteligentes e vivos — assim como um bom jogo deve ser.
🔗 Referências:

Comentarios (0)