
muad-dib v2.11.179
Rilevamento in tempo reale delle minacce alla catena di fornitura npm/PyPI. Analisi comportamentale della catena, scansione AST, feed IOC e motore di punteggio composito.
Installazione | Utilizzo | Funzionalità | VS Code | CI/CD
Perché MUAD'DIB?
Gli attacchi alla supply chain di npm e PyPI stanno esplodendo. Shai-Hulud ha compromesso oltre 25.000 repository nel 2025. Gli strumenti esistenti rilevano le minacce ma non aiutano a rispondere.
MUAD'DIB combina 22 scanner paralleli (278 regole di rilevamento), un motore di deoffuscamento, analisi del flusso dati inter-modulo, punteggio composto (21 regole composte) e una sandbox gVisor/Docker per rilevare minacce note e modelli comportamentali sospetti nei pacchetti npm e PyPI. Un classificatore XGBoost esiste nel codebase ma è attualmente inattivo (vedi Valutazione).
Posizionamento
MUAD'DIB è uno scanner di supply chain gratuito, aperto e completamente verificabile per npm e PyPI. Rileva minacce note (oltre 225.000 IOC), RCE al momento dell'installazione, flussi di esfiltrazione di credenziali, payload offuscati e altri modelli comportamentali sospetti — localmente, senza telemetria.
È concesso in licenza AGPL-3.0; una licenza commerciale è disponibile per le organizzazioni che necessitano di integrarlo in un prodotto proprietario o di eseguirlo come servizio hosted chiuso (vedi Licenza).
Non cerca deliberatamente di fare tutto — vedi Ambito per cosa rileva esattamente e cosa non rileva.
Ambito
Rileva (npm e PyPI): pacchetti noti come dannosi (corrispondenza IOC nome + SHA256), typosquat, RCE al momento dell'installazione (script di ciclo di vita preinstall/postinstall, curl | sh, import-time Python, binding.gyp), lettura di credenziali seguita da esfiltrazione di rete (intra- e cross-file), payload offuscati / ad alta entropia / stub-loader, dropper binari (chmod +x + exec/spawn) e marcatori di evasione anti-analisi.
Fuori ambito: attacchi solo browser (DOM/window, nessuna API Node.js), il contenuto di binari nativi / WASM (nessuna analisi binaria), pacchetti sconosciuti zero-day (il feed IOC è reattivo) ed ecosistemi non npm/PyPI (RubyGems, Maven, Go). Il fingerprinting anti-sandbox determinato e i payload remoti multi-stadio sono rischi noti di falsi negativi. Dettagli completi: Modello di minaccia.
Nessuna telemetria. Il tuo codice e i risultati delle scansioni non lasciano mai la tua macchina — MUAD'DIB scarica solo i feed di threat intelligence (muaddib update) e, per il punteggio, legge i metadati pubblici del registro npm. Gli avvisi webhook sono opt-in.
Installazione
npm (consigliato)
npm install -g muaddib-scanner
Dal sorgente
git clone https://github.com/DNSZLSK/muad-dib
cd muad-dib
npm install
npm link
Utilizzo
Scansione di base
muaddib scan .
muaddib scan /path/to/project
Scansiona sia le dipendenze npm (package.json, node_modules) che Python (requirements.txt, setup.py, pyproject.toml).
Modalità interattiva
muaddib
Installazione sicura
muaddib install <package>
muaddib install lodash axios --save-dev
muaddib install suspicious-pkg --force # Forza l'installazione nonostante le minacce
Scansiona i pacchetti per individuare minacce PRIMA dell'installazione. Blocca i pacchetti noti come dannosi.
Punteggio di rischio
Ogni scansione mostra un punteggio di rischio da 0 a 100:
[SCORE] 58/100 [***********---------] HIGH
Modalità spiegazione
muaddib scan . --explain
Mostra l'ID della regola, la tecnica MITRE ATT&CK, i riferimenti e il playbook di risposta per ogni rilevamento.
Esportazione
muaddib scan . --json > results.json # JSON
muaddib scan . --html report.html # HTML
muaddib scan . --sarif results.sarif # SARIF (GitHub Security)
Soglia di gravità
muaddib scan . --fail-on critical # Fallisce solo su CRITICAL
muaddib scan . --fail-on high # Fallisce su HIGH e CRITICAL (predefinito)
Modalità paranoica
muaddib scan . --paranoid
Rilevamento ultra-stretto con tolleranza inferiore. Rileva qualsiasi accesso di rete, esecuzione di sottoprocessi, valutazione dinamica del codice e accesso a file sensibili.
Avvisi webhook
muaddib scan . --webhook "https://discord.com/api/webhooks/..."
Filtraggio rigoroso (v2.1.2): avvisi solo per corrispondenze IOC, minacce confermate dalla sandbox o esfiltrazione di canary token. Triage prioritario (v2.10.21): P1 (rosso, IOC/sandbox/canary), P2 (arancione, punteggi alti/composti), P3 (giallo, resto).
Rilevamento anomalie comportamentali (v2.0)
muaddib scan . --temporal-full # Tutte e 4 le funzionalità temporali
muaddib scan . --temporal # Rilevamento script di ciclo di vita improvvisi
muaddib scan . --temporal-ast # Diff AST tra versioni
muaddib scan . --temporal-publish # Anomalia frequenza di pubblicazione
muaddib scan . --temporal-maintainer # Rilevamento cambio di maintainer
Rileva gli attacchi alla supply chain prima che compaiano nei database IOC analizzando i cambiamenti tra le versioni dei pacchetti. Vedi Metodologia di valutazione per i dettagli.
Sandbox Docker
muaddib sandbox <package-name>
muaddib sandbox <package-name> --strict
Analisi dinamica in un contenitore Docker isolato: strace, tcpdump, diff del filesystem, canary token, ambiente CI-aware e preload di monkey-patching per il rilevamento di time-bomb (esecuzioni multiple a offset [0h, 72h, 7d]).
Altri comandi
muaddib watch . # Monitoraggio in tempo reale
muaddib daemon # Modalità daemon (auto-scan di npm install)
muaddib update # Aggiorna gli IOC (veloce, ~5s)
muaddib scrape # Aggiornamento completo IOC (~5min)
muaddib diff HEAD~1 # Confronta le minacce con il commit precedente
muaddib init-hooks # Hook pre-commit (husky/pre-commit/git)
muaddib scan . --breakdown # Scomposizione del punteggio spiegabile
muaddib replay # Validazione ground truth (90/94 TPR@3, v2.11.48)