Score Trust: arquitetura serverless na AWS para análise de risco (FIAP Challenge 2025)

Escrito por

em

O Score Trust foi o projeto que desenvolvemos para o FIAP Challenge 2025, como trabalho de conclusão de curso. É uma plataforma que analisa o comportamento do usuário no momento do login ou do checkout de uma aplicação e decide, em tempo real, se a operação deve ser liberada, revisada ou negada.

Todo o backend roda em uma arquitetura serverless na AWS. Neste post de apoio ao vídeo, explico o papel de cada serviço, como o score é calculado e as decisões de segurança do projeto.

O problema

Fraudes em e-commerce acontecem justamente nos pontos mais sensíveis: login com credenciais vazadas, criação de contas falsas e checkout com dados roubados. Bloquear tudo gera atrito e perde vendas. Liberar tudo gera prejuízo. A ideia do Score Trust é dar a cada tentativa uma nota de risco e agir de forma proporcional:

ScoreAção
0 a 30ALLOW: segue normalmente
31 a 75REVIEW: pede uma verificação extra (biometria facial)
76 a 100DENY: bloqueia a operação

A arquitetura na AWS

Arquitetura serverless do Score Trust na AWS: WAF, API Gateway, Lambda, DynamoDB, S3 e Rekognition

O e-commerce integra um SDK em JavaScript que coleta os sinais do usuário e chama a API do Score Trust. A partir daí, tudo é serverless:

Serviço AWSPapel no Score Trust
Route 53DNS e domínio das APIs
AWS Certificate ManagerCertificados TLS das APIs
AWS WAFProteção na borda, antes de qualquer requisição chegar à lógica. Veja como configurar: Como configurar o AWS WAF
Amazon API GatewayExpõe as rotas /identity/verify, /identity/face-verify e /getRiskEvents, com API Key e planos de uso
AWS Lambda (Python)Motor de risco, verificação facial, consulta de eventos e administração de regras
Amazon DynamoDBTabelas de eventos, regras, pesos e dispositivos conhecidos
Amazon S3Armazenamento das fotos usadas na biometria
Amazon RekognitionCompareFaces para comparar a foto atual com a foto base do usuário
AWS KMSCriptografia dos dados em repouso
IAMRoles com permissão mínima para cada Lambda
Amazon CloudWatchLogs e observabilidade de todas as funções

Por que serverless

  • Custo proporcional ao uso: sem servidor ligado esperando requisição. Para um projeto que começa pequeno, isso faz muita diferença.
  • Escala automática em picos, como Black Friday, sem planejamento de capacidade.
  • Menos superfície de ataque: não há sistema operacional para manter e corrigir.

Como o score é calculado

A Lambda RiskEngineEvaluate soma pesos de acordo com os sinais de risco encontrados. Os pesos ficam na tabela RuleWeights do DynamoDB, então dá para ajustar o motor sem mexer no código:

SinalPeso
País de origem diferente do Brasil80
User-Agent suspeito (ex.: navegador headless)50
Dispositivo não reconhecido40
IP privado ou suspeito40
Biometria facial não verificada25
Timezone inesperado (fora de America/Sao_Paulo e America/Buenos_Aires)20
IP com reputação ruim no AbuseIPDB20
Idioma diferente de português10

O score final é limitado a 100 pontos e convertido em ação pelas faixas da tabela ScoringRules. A resposta da API é simples e explicável:

{
  "score": 68,
  "action": "REVIEW",
  "reason": [
    "Dispositivo não reconhecido",
    "Timezone inesperado",
    "País de origem não é Brasil"
  ]
}

A lista de motivos (reason) é importante: quem opera o sistema entende por que uma decisão foi tomada, o que facilita ajustar os pesos e atender o cliente.

Verificação facial com Amazon Rekognition

Quando o resultado é REVIEW, o usuário pode confirmar a identidade com uma foto, pela Lambda faceVerify:

  1. Primeira captura: a foto é salva no S3 como imagem base do usuário. Nenhuma comparação é cobrada nesse momento.
  2. Capturas seguintes: a nova foto é comparada com a base usando o CompareFaces do Rekognition.
  3. Se a similaridade passa do limite configurado, o evento muda para ALLOW e o score é reduzido. Se não passa, vira DENY.

O evento original no DynamoDB é atualizado, e não duplicado, o que mantém a linha do tempo de cada usuário limpa para auditoria.

Decisões de segurança

  • AWS WAF na frente do API Gateway.
  • APIs separadas por tipo de uso: usuário final e administrador.
  • API Key e planos de uso no API Gateway, para limitar o consumo.
  • KMS para dados em repouso e TLS em todas as chamadas.
  • TTL no DynamoDB, para que eventos antigos expirem automaticamente (minimização de dados, alinhada à LGPD).
  • IAM Roles com privilégio mínimo em cada Lambda. É o mesmo princípio que mostro com o Secrets Manager: AWS Secrets Manager com Lambda.

Próximos passos do projeto

  • Portal de gestão para administrar regras e pesos.
  • Detecção de vivacidade (face liveness) na biometria.
  • Aprendizado contínuo para ajustar os pesos automaticamente com base nos resultados.

Equipe e material de apoio

O Score Trust foi desenvolvido por Adrian Wicke, Ana Carolina, Camille, Demetrio Paszko e Luiz Pessol.

Se você trabalha com prevenção a fraudes ou arquitetura serverless, conta nos comentários como você resolveria esse problema.

Comentários

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Visão geral de privacidade

Este site usa cookies para que possamos oferecer a melhor experiência de usuário possível. As informações dos cookies são armazenadas em seu navegador e executam funções como reconhecê-lo quando você retorna ao nosso site e ajudar nossa equipe a entender quais seções do site você considera mais interessantes e úteis.