Imagem de capa do projeto: NEXUS Kaspersky OpenTIP EM ANDAMENTO

Resumo técnico

Plugin do NEXUS que enriquece IOCs — hashes MD5/SHA1/SHA256, IPs, domínios e URLs — com o veredito do Kaspersky OpenTIP. O enricher do Intelligence Hub consulta a API oficial com cache local de 7 dias, mapeia campanhas e MITRE ATT&CK e devolve sinais com severidade; a aba traz busca com auto-detecção de tipo, histórico paginado e alertas de IOCs maliciosos.

Escopo executado

  • Registro: plugin.json v1.0.0, icon_bg #00A88E, ícone lucide brain e icon.png próprio (sem is_core — plugin adicional); registerTab('kaspersky-tip','Kaspersky OpenTIP','brain',tab.php,'Threat Intel') e registerDoc('kaspersky-tip','Kaspersky OpenTIP','brain',doc.md); sem modais dedicados e sem cronjob (nenhuma rotina periódica).
  • Tabela tip_cache via tip_install(): ioc_hash VARCHAR(32) PK (md5 de tipo:valor), ioc_type VARCHAR(20), ioc_value TEXT, verdict VARCHAR(50), detection VARCHAR(255), category VARCHAR(100), campaigns/mitre/related_iocs/raw_response JSON e enriched_at DATETIME — com índices por tipo, veredito e data (InnoDB, utf8mb4).
  • API Kaspersky OpenTIP via cURL (https://opentip.kaspersky.com/api/v1/search/{ip|domain|url|hash}?request=): header X-Api-Key, Accept: application/json, URL urlencoded, timeouts de conexão 3s e resposta 5s, SSL_VERIFYPEER habilitado; HTTP 429 mapeado para "Quota diária excedida (100 requests/dia)".
  • Auto-detecção do tipo de IOC: MD5 (32 hex), SHA1 (40), SHA256 (64), IP via FILTER_VALIDATE_IP, URL (^https?://) e domínio por regex — tip_enrich identifica o tipo sem parâmetro explícito.
  • Mapeamento da resposta: Zone → veredito (Grey por padrão); hash via FileGeneralInfo (FileStatus/Type + até 3 DetectionNames), IP via IpGeneralInfo (Status + Categories), domínio via DomainGeneralInfo (Status/DomainStatus) e URL via UrlGeneralInfo (Status/UrlStatus); campanhas, MITRE ATT&CK (tactics/techniques) e IOCs relacionados.
  • Cache local de 7 dias: tip_enrich() responde do cache (cached: true) antes da chamada remota, com upsert (ON DUPLICATE KEY UPDATE) no miss — hits instantâneos e 100 req/dia do plano gratuito rendem mais.
  • API com 6 actions: tip_enrich (value + type opcional), tip_stats (totais + api_configured + api_online por pulso com 2 URLs de teste), tip_history (paginado, limit 1–200), tip_alerts (verdicts malware/malicious/suspicious/dangerous), tip_settings (chave configurada?) e tip_settings_save (api_key via DB::setConfig('kaspersky_tip_settings')).
  • Enricher do Intelligence Hub: nx_intel_register_enricher('kaspersky-tip', ['ip','domain','url','hash'], 'tip_intel_enrich', 48) — signals com status ok/error/needs_key/skipped, severity 85 (verdicts maliciosos) ou 10 (limpos), summary com a detecção ou o veredito, respeita o orçamento max_live_lookups (slice ≤ min(8, orçamento × 2)) e marca cached.
  • Fast Responses: manifesto fastr.json com /tip (argumento IOC obrigatório — hash, IP, domínio ou URL), action tip_enrich.
  • Sob demanda: sem cronjob.json (nenhuma rotina periódica necessária); sem CLI.
  • Interface: aba Alpine.js (tab.php, 475 linhas) com badge "API Online/Offline" (3 estados: verde pulso, vermelho, âmbar), cards de stats (Total IOCs, Maliciosos, Limpos, Hoje com barras de proporção), busca com auto-detecção e resultado rico (veredito colorido rose/emerald, tipo/categoria/veredito/consultado, campanhas com países-alvo, chips de MITRE ATT&CK, IOCs relacionados), histórico paginado com linha expansível, alertas de maliciosos e configuração com howto de 4 passos.
  • Legado: tip_filter_task_read/tip_filter_comment_read desativados (comentados em plugin.php) — anexavam bloco markdown "Kaspersky Threat Intel — IOCs Detectados"; o enriquecimento automático migrou para o Intelligence Hub (core/intel.php).

Stack e ferramentas

  • PHP 8 backend (sem framework) + MySQL 8 (tabela tip_cache)
  • Kaspersky OpenTIP API via cURL (opentip.kaspersky.com/api/v1/search)
  • Alpine.js + Tailwind CSS (aba do painel) + Plugin API interno (tabs/actions + fastr.json + Intel Hub)

Tags

Kaspersky, OpenTIP, IOC, Threat Intelligence, Intelligence Hub, Plugin NEXUS

Resultado operacional

  • 4 tipos de IOC: hashes MD5/SHA1/SHA256, IPs, domínios e URLs com veredito oficial da Kaspersky.
  • Auto-detecção de tipo: cole o IOC e o plugin identifica sozinho — sem dropdown nem erro de formato.
  • Contexto de ataque: campanhas (com países-alvo), MITRE ATT&CK e IOCs relacionados no resultado da busca.
  • Cache de 7 dias: hits instantâneos; a cota de 100 requests/dia do plano gratuito é preservada.
  • Severidade nos sinais: 85 para verdicts maliciosos, 10 para limpos — correlação fácil no painel Intel.
  • Sem rotinas: plugin puramente sob demanda — sem cron nem CLI.

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 IOCs — hashes MD5/SHA1/SHA256, IPs, domínios e URLs — com o veredito do Kaspersky OpenTIP. O enricher do Intelligence Hub consulta a API oficial com cache local de 7 dias, mapeia campanhas e MITRE ATT&CK e devolve sinais com severidade; a aba traz busca com auto-detecção de tipo, histórico paginado e alertas de IOCs maliciosos.

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.