
muad-dib v2.11.179
Detección de amenazas en la cadena de suministro de npm/PyPI en tiempo real. Análisis de cadenas de comportamiento, escaneo de AST, fuentes de IOC y motor de puntuación compuesta.
Instalación | Uso | Características | VS Code | CI/CD
¿Por qué MUAD'DIB?
Los ataques a la cadena de suministro de npm y PyPI están explotando. Shai-Hulud comprometió más de 25K repositorios en 2025. Las herramientas existentes detectan amenazas pero no ayudan a responder.
MUAD'DIB combina 22 escáneres paralelos (278 reglas de detección), un motor de desofuscación, análisis de flujo de datos entre módulos, puntuación compuesta (21 reglas compuestas) y un sandbox gVisor/Docker para detectar amenazas conocidas y patrones de comportamiento sospechosos en paquetes npm y PyPI. Existe un clasificador XGBoost en el código base, pero está actualmente inactivo (ver Evaluación).
Posicionamiento
MUAD'DIB es un escáner de cadena de suministro gratuito, abierto y totalmente auditable para npm y PyPI. Detecta amenazas conocidas (más de 225,000 IOCs), RCE en tiempo de instalación, flujos de robo de credenciales seguido de exfiltración, payloads ofuscados y otros patrones de comportamiento sospechosos — localmente, sin telemetría.
Está licenciado bajo AGPL-3.0; hay disponible una licencia comercial para organizaciones que necesiten integrarlo en un producto propietario o ejecutarlo como un servicio alojado cerrado (ver Licencia).
Deliberadamente no intenta hacerlo todo — ver Alcance para saber exactamente qué detecta y qué no.
Alcance
Detecta (npm y PyPI): paquetes maliciosos conocidos (coincidencia de IOC por nombre + SHA256), typosquats, RCE en tiempo de instalación (scripts de ciclo de vida preinstall/postinstall, curl | sh, tiempo de importación en Python, binding.gyp), lectura de credenciales seguida de exfiltración por red (intra- y entre archivos), payloads ofuscados / de alta entropía / stub-loader, droppers binarios (chmod +x + exec/spawn) y marcadores de evasión anti-análisis.
Fuera de alcance: ataques solo de navegador (DOM/window, sin API de Node.js), el contenido de binarios nativos / WASM (sin análisis binario), paquetes desconocidos de día cero (el feed de IOCs es reactivo) y ecosistemas que no sean npm/PyPI (RubyGems, Maven, Go). El fingerprinting anti-sandbox decidido y los payloads remotos de múltiples etapas son riesgos conocidos de falsos negativos. Detalle completo: Modelo de amenazas.
Sin telemetría. Tu código y los resultados de los escaneos nunca salen de tu máquina — MUAD'DIB solo descarga feeds de inteligencia de amenazas (muaddib update) y, para la puntuación, lee metadatos públicos del registro npm. Las alertas por webhook son opcionales.
Instalación
npm (recomendado)
npm install -g muaddib-scanner
Desde el código fuente
git clone https://github.com/DNSZLSK/muad-dib
cd muad-dib
npm install
npm link
Uso
Escaneo básico
muaddib scan .
muaddib scan /ruta/al/proyecto
Escanea tanto dependencias npm (package.json, node_modules) como Python (requirements.txt, setup.py, pyproject.toml).
Modo interactivo
muaddib
Instalación segura
muaddib install <paquete>
muaddib install lodash axios --save-dev
muaddib install paquete-sospechoso --force # Forzar instalación a pesar de las amenazas
Escanea los paquetes en busca de amenazas ANTES de instalarlos. Bloquea paquetes maliciosos conocidos.
Puntuación de riesgo
Cada escaneo muestra una puntuación de riesgo de 0 a 100:
[SCORE] 58/100 [***********---------] HIGH
Modo explicación
muaddib scan . --explain
Muestra el ID de la regla, la técnica MITRE ATT&CK, las referencias y el playbook de respuesta para cada detección.
Exportación
muaddib scan . --json > resultados.json # JSON
muaddib scan . --html reporte.html # HTML
muaddib scan . --sarif resultados.sarif # SARIF (GitHub Security)
Umbral de severidad
muaddib scan . --fail-on critical # Fallar solo en CRITICAL
muaddib scan . --fail-on high # Fallar en HIGH y CRITICAL (por defecto)
Modo paranoico
muaddib scan . --paranoid
Detección ultraestricta con menor tolerancia. Detecta cualquier acceso a red, ejecución de subprocesos, evaluación dinámica de código y acceso a archivos sensibles.
Alertas por webhook
muaddib scan . --webhook "https://discord.com/api/webhooks/..."
Filtrado estricto (v2.1.2): alertas solo para coincidencias de IOC, amenazas confirmadas por sandbox o exfiltración de canary tokens. Triaje por prioridad (v2.10.21): P1 (rojo, IOC/sandbox/canary), P2 (naranja, puntuación alta/compuestos), P3 (amarillo, resto).
Detección de anomalías de comportamiento (v2.0)
muaddib scan . --temporal-full # Las 4 características temporales
muaddib scan . --temporal # Detección de scripts de ciclo de vida repentinos
muaddib scan . --temporal-ast # Diferencia de AST entre versiones
muaddib scan . --temporal-publish # Anomalía en la frecuencia de publicación
muaddib scan . --temporal-maintainer # Detección de cambios de mantenedor
Detecta ataques a la cadena de suministro antes de que aparezcan en las bases de datos de IOCs analizando los cambios entre versiones de paquetes. Ver Metodología de evaluación para más detalles.
Sandbox Docker
muaddib sandbox <nombre-del-paquete>
muaddib sandbox <nombre-del-paquete> --strict
Análisis dinámico en un contenedor Docker aislado: strace, tcpdump, diff del sistema de archivos, canary tokens, entorno consciente de CI y precarga con monkey-patching para detección de bombas de tiempo (múltiples ejecuciones en desplazamientos de [0h, 72h, 7d]).
Otros comandos
muaddib watch . # Monitoreo en tiempo real
muaddib daemon # Modo daemon (auto-escaneo de npm install)
muaddib update # Actualizar IOCs (rápido, ~5s)
muaddib scrape # Actualización completa de IOCs (~5min)
muaddib diff HEAD~1 # Comparar amenazas con el commit anterior
muaddib init-hooks # Hooks de pre-commit (husky/pre-commit/git)
muaddib scan . --breakdown # Descomposición de puntuación explicable
muaddib replay # Validación de ground truth (90/94 TPR@3, v2.11.48)