Imagem de capa do projeto: NEXUS PhishTank EM ANDAMENTO

Resumo técnico

Plugin do NEXUS que verifica URLs contra a base colaborativa de phishing do PhishTank via endpoint checkurl, alimentando o Intelligence Hub com sinais de severidade. Consultas com cache local MySQL com TTL de 24h, aba dedicada com verificação manual, histórico paginado e configuração da API Key.

Escopo executado

  • Registro: plugin.json v1.0.0, ícone lucide alert-triangle, icon_bg #f97316, icon.svg próprio; registerTab('phishtank','PhishTank','alert-triangle',tab.php,'Segurança & OSINT') + registerDoc('phishtank','PhishTank','alert-triangle',doc.md); sem cronjob.json (plugin sob demanda).
  • Aba dedicada (Alpine.js, tema âmbar): 3 abas (Verificar URL / Histórico / Configurações); badge API Online/Offline no topo; 4 stats cards (Cache Total, Phishing, Seguras, Hoje) com barras proporcionais; verificação com resultado Phishing Confirmado! / URL Segura / Sem Confirmação (cards coloridos) + badges cached/checked_at + link externo phish_detail_page; histórico paginado (URL/Status/Phish ID/Data) com Anterior/Próxima.
  • Configuração: API Key em DB::setConfig('phishtank_settings'); guia "Como obter a API Key" (phishtank.com → endpoint checkurl.phishtank.com); aviso de free tier/rate limits.
  • API checkurl via cURL: POST https://checkurl.phishtank.com/checkurl/ com url + format=json + app_key; UA NEXUS-PhishTank/1.0; timeouts de conexão 4s e total 10s; IPRESOLVE_V4 e SSL ativo; parse de in_database/verified/valid (booleans com fallback 'y'/'n'); classificação: in_database && verified && valid → malicious, in_database && verified && !valid → safe, senão unknown.
  • Cache local MySQL: tabela phishtank_cache (PK url_hash SHA-256; url, status, in_database, verified, valid, phish_id, phish_detail_page, checked_at; índices status/checked_at) com INSERT ... ON DUPLICATE KEY UPDATE; TTL de 24h; falha de instalação/escrita não quebra o painel (task_log).
  • Enricher do Intelligence Hub: nx_intel_register_enricher('phishtank', ['url'], 'pt_intel_enrich', 39) — sinais ok/needs_key/error/skipped; sem chave → needs_key ("API Key necessária"); orçamento slice ≤ min(5, max_live_lookups × 2); severidade 90 (malicious) / 8 (demais); summary "Phishing confirmado [· verificado]" ou "Status: X"; data com status/verified/valid/phish_id.
  • Fast Responses: /phishtank <URL> (argumento obrigatório) → phishtank_check.
  • API com 5 actions: phishtank_stats (totais do cache + api_online calculado só pela presença da chave — sem ping para evitar rate limit), phishtank_check (cache-first TTL 24h), phishtank_history (paginado, limit ≤ 100), phishtank_settings e phishtank_settings_save.
  • Filtro legado pt_filter_task_read desativado em plugin.php (comentado) — a injeção "### PhishTank — URLs de Phishing Confirmadas" (tabela URL/Verified/Valid/Phish ID, máx 5 URLs e 3 hits) permanece no código, mas a via atual de enriquecimento é o Intelligence Hub.

Stack e ferramentas

  • PHP 8 backend (sem framework) + cURL (PhishTank checkurl API)
  • Alpine.js + Tailwind CSS (aba dedicada no NEXUS)
  • Plugin API interno (actions + enricher + fastr.json + cache MySQL + system_settings)

Tags

PhishTank, Phishing, URL, Reputação, OSINT, Intelligence Hub, Plugin NEXUS

Resultado operacional

  • Phishing em um clique: URLs de tarefas/comentários viram sinais de severidade 90 no hub.
  • Cache com TTL: consultas repetidas respondem do cache local sem gastar a cota do free tier.
  • Sem chave? Sem ruído: o hub sinaliza "API Key necessária" e o fluxo da tarefa segue intacto.
  • Confirmação verificada: malicious exige in_database + verified + valid da base colaborativa.
  • Histórico navegável: cache paginado com status, phish_id e link de detalhe.

Andamento no GitHub (issues)

Painel em tempo real com as issues mais recentes do repositório.

abertas (amostra): -- fechadas (amostra): -- base: -- ultimas issues

carregando andamento...

Resultados reais

Plugin do NEXUS que verifica URLs contra a base colaborativa de phishing do PhishTank via endpoint checkurl, alimentando o Intelligence Hub com sinais de severidade. Consultas com cache local MySQL com TTL de 24h, aba dedicada com verificação manual, histórico paginado e configuração da API Key.

Arquitetura e organização

Execução e operação

O projeto segue fluxo reprodutível de execução com validação técnica em ambiente de produção/similar.

Screenshots

Falar sobre este projeto

Aplique este modelo no seu ambiente e acelere a entrega com consistência técnica.