Skip to content

mozartdev-0/NpmProtect

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

40 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

NpmProtect Logo

🛡️ NpmProtect

Threat Intelligence Engine para o ecossistema npm

PyPI version Python License Dashboard

Detecta, analisa e cataloga malware no ecossistema npm em tempo real.

Dashboard · PyPI · Reportar Bug


📋 Sobre

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

🚀 Instalação da CLI

pip install npmprotect
np --help

⚙️ Configuração

Crie 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 segundos

Nota: A CLI procura o .env automaticamente em ~/, ~/.npmprotect/, ~/NpmProtect/ e no diretório atual.


💻 Comandos CLI

np check <pacote>

Verifica se um pacote npm é seguro.

np check lodash
np check expresss          # detecta typosquatting
np check axios --vt        # inclui análise do VirusTotal

Output:

  ╔══════════════════════════════════════╗
  ║  🛡️  NpmProtect  ·  Vynex Labs        ║
  ╚══════════════════════════════════════╝

  PACOTE        lodash
  VERSÃO        4.17.21
  AUTOR         jdalton
  DOWNLOADS     25,847,392 / semana
  BASE          Nenhuma ameaça registrada. ✔

np report <sha256>

Busca o relatório completo de um hash SHA-256.

np report 25411e3f056d4be6cee0033da6208f661c9566c50022d5be81dbcab13fe5c240

np latest

Lista os últimos malwares detectados.

np latest
np latest --limit 20

Output:

  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

np stats

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

🤖 Hunter

O hunter é o coração do NpmProtect. Ele roda em loop infinito 24/7:

  1. Busca hashes de malware do MalwareBazaar
  2. Verifica duplicatas no banco de dados
  3. Tenta obter dados do VirusTotal
  4. Se VT esgotado (429), usa Threat.rip como fallback
  5. Gera relatório técnico profissional com IA (Groq Llama 3.3 70B)
  6. Calcula score de severidade (0–100)
  7. Publica comentário no VirusTotal
  8. Salva no Supabase com Realtime
  9. Notifica no Discord com embed colorido
  10. Aguarda cooldown e repete

Rodar o Hunter

Desenvolvimento:

cd servidor
python hunter.py

Produção (Railway):

  1. Conecta o repositório no Railway
  2. Root Directory: servidor
  3. Adiciona variáveis do .env no painel
  4. Deploy automático via GitHub push

Formato do Relatório

# 🛡️ 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 de Severidade

Score Nível Cor
0–39 LOW 🟢
40–59 MEDIUM 🟡
60–79 HIGH 🟠
80–100 CRITICAL 🔴

🌐 Dashboard

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

🔔 Notificações Discord

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

🗄️ Banco de Dados

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;

🔗 Integrações

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

🛠️ Desenvolvimento

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 --help

📦 Publicar nova versão da CLI

cd cli
# Atualizar versão no setup.py
rm -rf dist/
python -m build
twine upload dist/*

🚀 Deploy do Hunter (Railway)

# 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ático

📄 Licença

MIT © 2026 Mozart_Dev · Vynex Labs


npmprotect.vercel.app · Feito com 🛡️ por Mozart_Dev

About

We don't like malware, so we fight it automatically. This project is indie.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors