Case Study

PhishLens — Detector de URLs de Phishing (CLI)

Ferramenta de linha de comando para detecção de URLs de phishing, combinando heurísticas com Threat Intelligence (Google Safe Browsing — opcional), gerando um score explicável (0–100) e classificação objetiva: SAFE, SUSPICIOUS ou DANGEROUS.

Resumo (executivo)

  • Problema: links maliciosos chegam ao usuário antes da validação
  • Solução: análise por camadas + score explicável + TI real (opcional)
  • Entrega: CLI (URL única ou lote) + export JSON
AppSec • Detection

Capacidades

  • Detecção de padrões comuns de phishing (técnicas e sinais)
  • Typosquatting / homoglyph (ex.: g00gle.com)
  • Encurtadores, IP-host, portas incomuns, subdomínios abusivos
  • Threat Intel opcional via Google Safe Browsing
  • Score 0–100 com justificativas (explainable)
Heuristics

Threat scenario

Em rotinas de suporte/segurança, é comum receber URLs via e-mail/chat. O risco é o usuário clicar antes de uma triagem adequada. O PhishLens foi pensado para reduzir tempo de decisão e gerar uma saída padronizada (incluindo JSON) para automação e registro de evidências.

  • Entrada: URL (individual) ou arquivo .txt (lote)
  • Saída: score, classificação e indicadores que justificam o resultado
Use case

Como funciona

1) Análise estrutural

  • Comprimento excessivo
  • Caracteres codificados/suspeitos
  • Padrões de ofuscação comuns
Structure

2) Domínio & reputação

  • TLDs frequentemente abusados
  • Encurtadores de URL
  • Hosts baseados em IP
  • Portas não padrão
Reputation

3) Typosquatting / homoglyph

  • Similaridade com domínios legítimos
  • Normalização: 0→o, 1→l, rn→m
  • Heurísticas para reduzir falsos positivos
Look-alike

4) Threat intelligence (opcional)

  • Consulta ao Google Safe Browsing
  • Retorna sinais como phishing/malware/engenharia social
  • Sem API? O motor heurístico continua funcionando
TI

Score & classificação

O score final (0–100) soma pontos por indicador detectado e retorna justificativas claras. Isso facilita explicar o “porquê” de uma URL ser considerada suspeita.

Tabela de risco

  • 0 – 34: SAFE
  • 35 – 69: SUSPICIOUS
  • 70 – 100: DANGEROUS

Saídas

  • Classificação
  • Score
  • Indicadores / motivos
  • Export JSON (para integração)
Explainable

Como usar

Exemplo de execução via CLI:

$ python -m phishlens https://example.com
        
CLI

Limitações e próximos passos

Limitações (esperadas)

  • Heurísticas podem gerar falsos positivos em casos borderline
  • Threat Intel depende de API key/configuração
  • Detecção não substitui investigação completa (contexto importa)

Roadmap

  • Melhorar explicações (mensagens mais acionáveis)
  • Adicionar testes automatizados e casos de regressão
  • Padronizar schema JSON e versionamento
  • Adicionar modo “report” (sumário + evidências)
Roadmap