
वास्तविक समय npm/PyPI आपूर्ति-श्रृंखला खतरे का पता लगाना। व्यवहारिक श्रृंखला विश्लेषण, AST स्कैनिंग, IOC फ़ीड और समग्र स्कोरिंग इंजन।
स्थापना | उपयोग | विशेषताएँ | VS Code | CI/CD
npm और PyPI सप्लाई-चेन हमले तेज़ी से बढ़ रहे हैं। Shai-Hulud ने 2025 में 25K+ रिपॉज़िटरी से समझौता किया। मौजूदा टूल खतरों का पता तो लगाते हैं, लेकिन प्रतिक्रिया देने में आपकी मदद नहीं करते।
MUAD'DIB में 22 समानांतर स्कैनर (277 डिटेक्शन नियम), एक डी-ऑब्फस्केशन इंजन, इंटर-मॉड्यूल डेटाफ़्लो विश्लेषण, कंपाउंड स्कोरिंग (21 कंपाउंड नियम), और एक gVisor/Docker सैंडबॉक्स शामिल है, जो npm और PyPI पैकेजों में ज्ञात खतरों और संदिग्ध व्यवहारिक पैटर्न का पता लगाता है। कोडबेस में एक XGBoost क्लासिफ़ायर मौजूद है, लेकिन वह वर्तमान में निष्क्रिय है (मूल्यांकन देखें)।
MUAD'DIB npm और PyPI के लिए एक निःशुल्क, ओपन और पूरी तरह से ऑडिट-योग्य सप्लाई-चेन स्कैनर है। यह ज्ञात खतरों (225,000+ IOCs), इंस्टॉल-समय RCE, क्रेडेंशियल-फिर-एक्सफ़िल्ट्रेशन फ़्लो, ऑब्फस्केटेड पेलोड और अन्य संदिग्ध व्यवहारिक पैटर्न का पता लगाता है — स्थानीय रूप से, बिना किसी टेलीमेट्री के।
यह AGPL-3.0 के अंतर्गत लाइसेंस प्राप्त है; उन संगठनों के लिए एक वाणिज्यिक लाइसेंस उपलब्ध है जिन्हें इसे किसी मालिकाना उत्पाद में एम्बेड करना है या इसे बंद होस्टेड सेवा के रूप में चलाना है (लाइसेंस देखें)।
यह जानबूझकर सब कुछ करने की कोशिश नहीं करता — यह वास्तव में क्या पकड़ता है और क्या नहीं, इसके लिए स्कोप देखें।
पता लगाता है (npm और PyPI): ज्ञात-दुर्भावनापूर्ण पैकेज (नाम + SHA256 IOC मिलान), टाइपोस्क्वाट्स, इंस्टॉल-समय RCE (लाइफ़साइकिल preinstall/postinstall, curl | sh, Python इम्पोर्ट-समय, binding.gyp), क्रेडेंशियल रीड फिर नेटवर्क एक्सफ़िल्ट्रेशन (इंट्रा- और क्रॉस-फ़ाइल), ऑब्फस्केटेड / उच्च-एंट्रॉपी / स्टब-लोडर पेलोड, बाइनरी ड्रॉपर (chmod +x + exec/spawn), और एंटी-एनालिसिस बचाव मार्कर।
दायरे से बाहर: केवल-ब्राउज़र हमले (DOM/window, कोई Node.js API नहीं), नेटिव बाइनरी / WASM की सामग्री (कोई बाइनरी विश्लेषण नहीं), ज़ीरो-डे अज्ञात पैकेज (IOC फ़ीड प्रतिक्रियाशील है), और गैर-npm/PyPI इकोसिस्टम (RubyGems, Maven, Go)। दृढ़ एंटी-सैंडबॉक्स फ़िंगरप्रिंटिंग और मल्टी-स्टेज रिमोट पेलोड ज्ञात फ़ॉल्स-नेगेटिव जोखिम हैं। पूरा विवरण: थ्रेट मॉडल।
कोई टेलीमेट्री नहीं। आपका कोड और स्कैन परिणाम आपकी मशीन से कभी बाहर नहीं जाते — MUAD'DIB केवल थ्रेट-इंटेल फ़ीड डाउनलोड करता है (muaddib update) और, स्कोरिंग के लिए, सार्वजनिक npm रजिस्ट्री मेटाडेटा पढ़ता है। वेबहुक अलर्ट ऑप्ट-इन हैं।
npm install -g muaddib-scanner
git clone https://github.com/DNSZLSK/muad-dib
cd muad-dib
npm install
npm link
muaddib scan .
muaddib scan /path/to/project
npm (package.json, node_modules) और Python (requirements.txt, setup.py, pyproject.toml) दोनों की डिपेंडेंसी स्कैन करता है।
muaddib
muaddib install <package>
muaddib install lodash axios --save-dev
muaddib install suspicious-pkg --force # Force install despite threats
इंस्टॉल करने से पहले पैकेजों में खतरों का स्कैन करता है। ज्ञात दुर्भावनापूर्ण पैकेजों को ब्लॉक करता है।
प्रत्येक स्कैन 0-100 का जोखिम स्कोर प्रदर्शित करता है:
[SCORE] 58/100 [***********---------] HIGH
muaddib scan . --explain
प्रत्येक डिटेक्शन के लिए नियम ID, MITRE ATT&CK तकनीक, संदर्भ और प्रतिक्रिया प्लेबुक दिखाता है।
muaddib scan . --json > results.json # JSON
muaddib scan . --html report.html # HTML
muaddib scan . --sarif results.sarif # SARIF (GitHub Security)
muaddib scan . --fail-on critical # Fail only on CRITICAL
muaddib scan . --fail-on high # Fail on HIGH and CRITICAL (default)
muaddib scan . --paranoid
कम सहनशीलता के साथ अति-सख्त डिटेक्शन। किसी भी नेटवर्क एक्सेस, सबप्रोसेस निष्पादन, डायनामिक कोड मूल्यांकन और संवेदनशील फ़ाइल एक्सेस का पता लगाता है।
muaddib scan . --webhook "https://discord.com/api/webhooks/..."
सख्त फ़िल्टरिंग (v2.1.2): अलर्ट केवल IOC मिलान, सैंडबॉक्स-पुष्टि खतरों, या कैनरी टोकन एक्सफ़िल्ट्रेशन के लिए। प्राथमिकता ट्राइएज (v2.10.21): P1 (लाल, IOC/सैंडबॉक्स/कैनरी), P2 (नारंगी, उच्च-स्कोर/कंपाउंड), P3 (पीला, बाकी)।
muaddib scan . --temporal-full # All 4 temporal features
muaddib scan . --temporal # Sudden lifecycle script detection
muaddib scan . --temporal-ast # AST diff between versions
muaddib scan . --temporal-publish # Publish frequency anomaly
muaddib scan . --temporal-maintainer # Maintainer change detection
पैकेज संस्करणों के बीच परिवर्तनों का विश्लेषण करके IOC डेटाबेस में दिखाई देने से पहले सप्लाई-चेन हमलों का पता लगाता है। विवरण के लिए मूल्यांकन पद्धति देखें।
muaddib sandbox <package-name>
muaddib sandbox <package-name> --strict
एक पृथक Docker कंटेनर में डायनामिक विश्लेषण: strace, tcpdump, फ़ाइलसिस्टम diff, कैनरी टोकन, CI-जागरूक वातावरण, और टाइम-बम डिटेक्शन के लिए मंकी-पैचिंग प्रीलोड (मल्टी-रन [0h, 72h, 7d] ऑफ़सेट पर)।
muaddib watch . # Real-time monitoring
muaddib daemon # Daemon mode (auto-scan npm install)
muaddib update # Update IOCs (fast, ~5s)
muaddib scrape # Full IOC refresh (~5min)
muaddib diff HEAD~1 # Compare threats with previous commit
muaddib init-hooks # Pre-commit hooks (husky/pre-commit/git)
muaddib scan . --breakdown # Explainable score decomposition
muaddib replay # Ground truth validation (90/94 TPR@3, v2.11.48)
सभी नियम (272 RULES + 5 PARANOID) MITRE ATT&CK तकनीकों से मैप किए गए हैं। पूर्ण नियम संदर्भ के लिए SECURITY.md देखें।
VS Code एक्सटेंशन स्वचालित रूप से आपके npm प्रोजेक्ट्स को स्कैन करता है।
code --install-extension dnszlsk.muaddib-vscode
MUAD'DIB: Scan Project - पूरे प्रोजेक्ट को स्कैन करेंMUAD'DIB: Scan Current File - वर्तमान फ़ाइल को स्कैन करेंmuaddib.autoScan, muaddib.webhookUrl, muaddib.failLevelपूर्ण दस्तावेज़ीकरण के लिए vscode-extension/README.md देखें।
name: Security Scan
on: [push, pull_request]
jobs:
scan:
runs-on: ubuntu-latest
permissions:
security-events: write
contents: read
steps:
- uses: actions/checkout@v4
- uses: DNSZLSK/muad-dib@v1
with:
path: '.'
fail-on: 'high'
sarif: 'results.sarif'
muaddib init-hooks # Auto-detect (husky/pre-commit/git)
muaddib init-hooks --type husky # Force husky
muaddib init-hooks --mode diff # Only block NEW threats
प्री-कमिट फ्रेमवर्क के साथ:
repos:
- repo: https://github.com/DNSZLSK/muad-dib
rev: v2.11.139
hooks:
- id: muaddib-scan
अंतिम माप v2.11.48 (2026-05-26), केवल-नियम (ML क्लासिफ़ायर निष्क्रिय है — नीचे देखें)। ग्राउंड ट्रुथ: 94 इन-स्कोप वास्तविक-दुनिया के हमले + 200 रैंडम npm + 124 PyPI + 107 एडवरसैरियल/होल्डआउट।
ML क्लासिफ़ायर: निष्क्रिय। एक XGBoost मॉडल src/ml/ में मौजूद है, लेकिन इसे कभी muaddib scan में नहीं जोड़ा गया है, और यह 2026-04-08 से मॉनिटर में LOG-ONLY चलता है (प्रशिक्षित मॉडल विफल हो गया, पुनः-प्रशिक्षण लंबित)। ऊपर के सभी आँकड़े केवल-नियम हैं।
पूर्ण प्रोटोकॉल, प्रति-ट्रैक इतिहास, PyPI cap-35 चेतावनी, परिचालन (GHSA-आधारित) कवरेज, और ML पुनः-प्रशिक्षण पद्धति: मूल्यांकन पद्धति।
iocs/ में YAML फ़ाइलें संपादित करें:
- id: NEW-MALWARE-001
name: "malicious-package"
version: "*"
severity: critical
confidence: high
source: community
description: "Threat description"
references:
- https://example.com/article
mitre: T1195.002
git clone https://github.com/DNSZLSK/muad-dib
cd muad-dib
npm install
npm test
MUAD'DIB GNU Affero General Public License v3.0 only (AGPL-3.0-only) के अंतर्गत लाइसेंस प्राप्त है — LICENSE और NOTICE देखें।
आप इसे उपयोग, अध्ययन, संशोधित और पुनर्वितरित करने के लिए स्वतंत्र हैं — नेटवर्क पर भी — बशर्ते कि व्युत्पन्न कार्य और नेटवर्क-तैनात संशोधन उसी लाइसेंस के अंतर्गत जारी किए जाएँ।
वाणिज्यिक लाइसेंसिंग: MUAD'DIB को किसी मालिकाना / क्लोज़्ड-सोर्स उत्पाद में एम्बेड करने के लिए, या इसे AGPL के सोर्स-डिस्क्लोज़र दायित्वों के बिना होस्टेड सेवा के रूप में पेश करने के लिए, एक अलग वाणिज्यिक लाइसेंस उपलब्ध है। एक issue खोलें या लेखक से संपर्क करें (DNSZLSK)।
Copyright (C) 2026 DNSZLSK.
मसाला अवश्य बहना चाहिए। कीड़े अवश्य मरने चाहिए।
| स्कैनर | डिटेक्शन |
|---|
| AST Parse (acorn) | eval, Function, क्रेडेंशियल चोरी, बाइनरी ड्रॉपर, प्रोटोटाइप हुक |
| Pattern Matching | शेल कमांड, रिवर्स शेल, डेड मैन स्विच |
| Dataflow Analysis | क्रेडेंशियल रीड + नेटवर्क सेंड (इंट्रा-फ़ाइल और क्रॉस-फ़ाइल) |
| Obfuscation Detection | JS ऑब्फस्केशन पैटर्न (.min.js छोड़ें) |
| Deobfuscation Pre-processing | स्ट्रिंग कॉन्कैट, चारकोड, base64, hex ऐरे, const प्रोपेगेशन |
| Inter-module Dataflow | क्रॉस-फ़ाइल टेंट प्रोपेगेशन (3-हॉप चेन, क्लास मेथड) |
| Intent Coherence | इंट्रा-फ़ाइल सोर्स-सिंक पेयरिंग (क्रेडेंशियल + eval/नेटवर्क) |
| Typosquatting | npm + PyPI (लेवेनश्टीन दूरी) |
| Python Scanner | requirements.txt, setup.py, pyproject.toml, 14K+ PyPI IOCs |
| Shannon Entropy | उच्च-एंट्रॉपी स्ट्रिंग्स (5.5 बिट + न्यूनतम 50 अक्षर) |
| AI Config Scanner | .cursorrules, CLAUDE.md, copilot-instructions.md इंजेक्शन |
| Package/Dependencies | लाइफ़साइकिल स्क्रिप्ट, IOC मिलान (225K+ पैकेज) |
| GitHub Actions | Shai-Hulud बैकडोर डिटेक्शन |
| Hash Scanner | ज्ञात दुर्भावनापूर्ण फ़ाइल हैश |
| IOC Strings (intel-triage P1.1) | YARA-शैली स्ट्रिंग मिलान (Axios 2026, TeamPCP, GlassWorm, CanisterSprawl) |
| Anti-Forensic AST (intel-triage P1.2) | XOR लूप + सेल्फ-डिलीट + डिकॉय राइट कंपाउंड (csec autodelete) |
| Stub Package (intel-triage P1.3) | छोटी मुख्य फ़ाइल + बाहरी dep URL + लाइफ़साइकिल हुक (ltidi चेन) |
| Monorepo Scanner | Lerna/pnpm-workspace/turbo डिटेक्शन (Sprint 1 ऑडिट MR-C2 फ़िक्स) |
| Trusted-Dep-Diff (opt-in) | रजिस्ट्री से विश्वसनीय dep टारबॉल के विरुद्ध diff (v2.10.x) |
| Python Source (PYSRC) | __init__.py / setup.py में इम्पोर्ट-समय / इंस्टॉल-समय RCE पैटर्न (v2.11.41 — TrapDoor PyPI अंतर को बंद करता है) |
| Python AST (PYAST) | टेंट-जागरूक डिटेक्टरों के साथ Tree-sitter-Python AST (v2.11.42+) |
| Anti-Scanner Injection (ASI) | टिप्पणियों/स्ट्रिंग्स में प्रॉम्प्ट-इंजेक्शन टेक्स्ट जो LLM कोड समीक्षक को साफ़ निर्णय देने या ऑब्फस्केटेड पेलोड को छोड़ देने के लिए मजबूर करता है (ASI-001..004, Hades अभियान 2026-06) |
| अभियान | स्थिति |
|---|
| GlassWorm (2026, 433+ packages) | पता चला |
| Shai-Hulud v1/v2/v3 (2025) | पता चला |
| event-stream (2018) | पता चला |
| eslint-scope (2018) | पता चला |
| Protestware (node-ipc, colors, faker) | पता चला |
| Typosquats (crossenv, mongose, babelcli) | पता चला |
| इनपुट | विवरण | डिफ़ॉल्ट |
|---|
path | स्कैन करने का पथ | . |
fail-on | फ़ेल होने की न्यूनतम गंभीरता | high |
sarif | SARIF आउटपुट फ़ाइल पथ | |
paranoid | अति-सख्त डिटेक्शन | false |
| मेट्रिक | परिणाम |
|---|
| डिटेक्शन दर (TPR@3) | 95.74% (90/94) |
| अलर्ट दर (TPR@20) | 88.30% (83/94) |
| FPR — क्यूरेटेड npm (548) | 1.10% (6/545) |
| FPR — रैंडम npm (200) | 2.50% (5/200) |
| FPR — PyPI (132) | 9.68% (12/124) |
| ADR — एडवरसैरियल + होल्डआउट | 96.26% (103/107) |
| वाइल्ड TPR (Datadog 17K) | 92.8% (13,538/14,587) |