Threat Intelligence Engine para o ecossistema npm
Detecta, analisa e cataloga malware no ecossistema npm em tempo real.
O NpmProtect é um sistema completo de Threat Intelligence focado no ecossistema npm. Ele monitora feeds de malware em tempo real, gera relatórios técnicos profissionais com IA, publica análises no VirusTotal e notifica via Discord.
Componentes:
- 🖥️ Dashboard Web — Interface pública em tempo real com busca e filtros
- 🤖 Hunter — Engine que monitora feeds, analisa com IA e cataloga malware automaticamente
- 💻 CLI (
np) — Ferramenta de linha de comando para verificar pacotes e consultar a base
pip install npmprotectnp --helpCrie um arquivo .env no seu diretório home (~/.env) ou na raiz do projeto:
# ─── Supabase ───────────────────────────────
SUPABASE_URL=https://xxxx.supabase.co
SUPABASE_KEY=sua_anon_key_publica
SUPABASE_SERVICE_ROLE=sua_service_role_key
# ─── VirusTotal ─────────────────────────────
VT_API_KEY1=sua_chave_vt_1
VT_API_KEY2=sua_chave_vt_2 # opcional
# ─── Groq AI ────────────────────────────────
GROQ_API_KEY=gsk_...
# ─── Threat.rip (fallback) ──────────────────
T_RIP_API_KEY=sua_chave_threat_rip # opcional
# ─── Discord (opcional) ─────────────────────
DISCORD_WEBHOOK=https://discord.com/api/webhooks/...
# ─── Hunter Config ──────────────────────────
MIN_DETECTIONS=3 # mínimo de detecções VT pra processar
COOLDOWN_SECONDS=45 # intervalo entre análises
FEED_REFRESH=3600 # recarrega feed a cada N segundosNota: A CLI procura o
.envautomaticamente em~/,~/.npmprotect/,~/NpmProtect/e no diretório atual.
Verifica se um pacote npm é seguro.
np check lodash
np check expresss # detecta typosquatting
np check axios --vt # inclui análise do VirusTotalOutput:
╔══════════════════════════════════════╗
║ 🛡️ NpmProtect · Vynex Labs ║
╚══════════════════════════════════════╝
PACOTE lodash
VERSÃO 4.17.21
AUTOR jdalton
DOWNLOADS 25,847,392 / semana
BASE Nenhuma ameaça registrada. ✔
Busca o relatório completo de um hash SHA-256.
np report 25411e3f056d4be6cee0033da6208f661c9566c50022d5be81dbcab13fe5c240Lista os últimos malwares detectados.
np latest
np latest --limit 20Output:
01. 25411e3f056d4be6... [85/100 CRITICAL] 15/02/2026 13:19
02. 4eeeb2ebc9d6cb31... [75/100 HIGH] 15/02/2026 13:22
03. 8ec809c41cba7fc6... [10/100 LOW] 15/02/2026 13:30
Estatísticas gerais da base de inteligência.
np stats Total 347
Críticos 89
Última 15/02/2026 13:30
Dashboard https://npmprotect.vercel.app
O hunter é o coração do NpmProtect. Ele roda em loop infinito 24/7:
- Busca hashes de malware do MalwareBazaar
- Verifica duplicatas no banco de dados
- Tenta obter dados do VirusTotal
- Se VT esgotado (429), usa Threat.rip como fallback
- Gera relatório técnico profissional com IA (Groq Llama 3.3 70B)
- Calcula score de severidade (0–100)
- Publica comentário no VirusTotal
- Salva no Supabase com Realtime
- Notifica no Discord com embed colorido
- Aguarda cooldown e repete
Desenvolvimento:
cd servidor
python hunter.pyProdução (Railway):
- Conecta o repositório no Railway
- Root Directory:
servidor - Adiciona variáveis do
.envno painel - Deploy automático via GitHub push
# 🛡️ MALWARE ANALYSIS REPORT: NpmProtect Security Engine
Date: February 15, 2026
Analyst: Mozart_Dev (Analyst ID: 4821)
Security Level: Critical 🔴
## 1. Executive Summary
## 2. File Metadata ← tabela com dados reais do VT/Threat.rip
## 3. Detection Metrics ← X / Y engines
## 4. Behavioral Analysis
## 5. MITRE ATT&CK Matrix
## 6. IOCs
## 7. Final Verdict & Recommendation| Score | Nível | Cor |
|---|---|---|
| 0–39 | LOW | 🟢 |
| 40–59 | MEDIUM | 🟡 |
| 60–79 | HIGH | 🟠 |
| 80–100 | CRITICAL | 🔴 |
Acesse npmprotect.vercel.app para:
- Ver todos os malwares catalogados em tempo real
- Buscar por hash SHA-256
- Ler relatórios técnicos completos
- Filtrar por severidade
- Visualizar estatísticas globais
Configure o webhook e receba alertas assim:
🔴 Novo Malware Detectado — Severidade CRITICAL
🔑 SHA-256 25411e3f...
📊 Score 85/100 — CRITICAL
🆔 Report ID #4821
📄 Preview # 🛡️ MALWARE ANALYSIS REPORT...
🔍 Acesse npmprotect.vercel.app e pesquise por:
25411e3f056d4be6cee0033da6208f661c9566c50022d5be81dbcab13fe5c240
Schema da tabela reports no Supabase:
CREATE TABLE reports (
id SERIAL PRIMARY KEY,
hash TEXT UNIQUE NOT NULL,
report_id INTEGER,
analyst TEXT DEFAULT 'Mozart_Dev',
content TEXT,
score INTEGER DEFAULT 50,
created_at TIMESTAMPTZ DEFAULT NOW()
);
-- Adicionar coluna score se já existir a tabela:
ALTER TABLE reports ADD COLUMN IF NOT EXISTS score INTEGER DEFAULT 50;| Serviço | Uso |
|---|---|
| MalwareBazaar | Feed de hashes de malware |
| VirusTotal | Metadados e publicação de análises |
| Threat.rip | Fallback quando VT esgota |
| Groq | IA para geração de relatórios (Llama 3.3 70B) |
| Supabase | Banco de dados com Realtime |
| Discord | Notificações via Webhook |
| Vercel | Hospedagem do dashboard |
| Railway | Hospedagem do hunter 24/7 |
git clone https://github.com/mozartdev-0/NpmProtect
cd NpmProtect
# Instalar dependências
pip install -r requirements.txt
# Configurar .env
cp .env.example .env
# editar .env com suas chaves
# Rodar o hunter
cd servidor
python hunter.py
# Rodar a CLI localmente
cd cli
pip install -e .
np --helpcd cli
# Atualizar versão no setup.py
rm -rf dist/
python -m build
twine upload dist/*# Arquivos necessários na pasta servidor/:
# - hunter.py
# - requirements.txt
# - Procfile
# - nixpacks.toml
# Push para o GitHub
git add .
git commit -m "update hunter"
git push
# Railway faz deploy automáticoMIT © 2026 Mozart_Dev · Vynex Labs
npmprotect.vercel.app · Feito com 🛡️ por Mozart_Dev