Imagem de capa do projeto: NEXUS SecurityTrails EM ANDAMENTO

Resumo técnico

Plugin do NEXUS que enriquece domínios detectados em tarefas e comentários com WHOIS, DNS histórico (IP History), subdomínios e IPs atuais via API v1 do SecurityTrails, alimentando o Intelligence Hub com sinais de severidade. Consultas com cache local com TTL configurável, aba dedicada com lookup, histórico e configurações, e detecção automática de domínios em textos.

Escopo executado

  • Registro: plugin.json v1.0.0, ícone lucide globe, icon_bg #0ea5e9, icon.png próprio; registerTab('securitytrails','SecurityTrails','globe',tab.php,'OSINT & Enrichment') + registerDoc('securitytrails','SecurityTrails','globe',doc.md); sem cronjob.json (plugin sob demanda).
  • Aba dedicada (Alpine.js): 3 abas (Consultar / Histórico / Configurações); badge API Online/Offline no topo (valida via GET /v1/ping); 4 stats cards do cache (total, hoje, com histórico, com subdomínios); lookup com checkbox Forçar (ignora o cache) e resultado com registrar, org/registrant, criado/expira, IPs atuais, subdomínios (até 24) e tabela DNS History (first/last seen + IPs); histórico de cache recente clicável que reconsulta com um clique.
  • Configuração: API key em DB::setConfig('plugin.securitytrails'); toggles enrich_tasks/enrich_comments/include_whois/include_subdomains/include_dns_history; TTL de cache 1–168h (default 24h); campo de chave vazio mantém a chave salva.
  • API v1 via cURL: base https://api.securitytrails.com/v1, header APIKEY, UA NEXUS-SecurityTrails/1.0, timeout de conexão 8s e total 30s; endpoints GET /ping, /domain/{hostname}, /domain/{hostname}/whois, /domain/{hostname}/subdomains (children_only=false) e /history/{hostname}/dns/a (page=1); trata 401/403 (chave inválida), 429 (rate limit), 404 (sem dados na base).
  • Detecção automática: st_extract_domains() extrai URLs e FQDNs de tarefas/comentários (ignora localhost, example.*, IPs e extensões de arquivo), até 3 domínios por documento; o enriquecimento injeta bloco ### SecurityTrails — OSINT com registrar, org, criado/expira, NS, IPs, subdomínios (até 8 na prévia) e histórico A.
  • Cache local MySQL: tabela securitytrails_cache (domain único com ON DUPLICATE KEY UPDATE) guardando current_ips_json, subdomains_json, subdomains_count, whois_json, dns_history_json, summary_json, raw_response e checked_at; TTL configurável; force ignora; falha de escrita/criação de tabela tratada silenciosamente.
  • Enricher do Intelligence Hub: nx_intel_register_enricher('securitytrails', ['domain'], 'st_intel_enrich', 44) — sinais ok/needs_key/error/skipped; sem chave → needs_key ("API Key necessária"); orçamento slice ≤ min(5, max_live_lookups); severidade 35 quando há mais de 50 subdomínios, senão 15; summary "N IP(s) · N subdomínio(s) · N reg. DNS hist.".
  • Fast Responses: /securitytrails <domínio> (argumento obrigatório) → st_lookup.
  • API com 6 actions: st_lookup (cache-first + force), st_stats (totais do cache + api_online), st_history (cache recente paginado, limit ≤ 100), st_settings (config pública com chave mascarada), st_settings_save e st_delete (limpa o cache de um domínio).
  • Normalização: st_normalize_domain (remove scheme, porta, path e www., valida FQDN, rejeita IPs); WHOIS normalizado (registrar, registrant, name servers ≤ 12, contact email); DNS history com records ≤ 15 e IPs ≤ 20 por registro; summary com alexa_rank, apex_domain e NS/MX atuais (≤ 8).

Stack e ferramentas

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

Tags

SecurityTrails, OSINT, WHOIS, DNS, Subdomínios, Intelligence Hub, Plugin NEXUS

Resultado operacional

  • OSINT em um clique: domínios citados em tarefas/comentários viram WHOIS, DNS e subdomínios sem sair do NEXUS.
  • 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.
  • Badge de disponibilidade: status API Online/Offline visível no topo da aba.
  • Histórico navegável: cache recente clicável reconsulta o domínio com um clique.

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 enriquece domínios detectados em tarefas e comentários com WHOIS, DNS histórico (IP History), subdomínios e IPs atuais via API v1 do SecurityTrails, alimentando o Intelligence Hub com sinais de severidade. Consultas com cache local com TTL configurável, aba dedicada com lookup, histórico e configurações, e detecção automática de domínios em textos.

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.