
वास्तविक समय npm/PyPI आपूर्ति-श्रृंखला खतरे का पता लगाना। व्यवहारिक श्रृंखला विश्लेषण, AST स्कैनिंग, IOC फ़ीड और समग्र स्कोरिंग इंजन।
स्थापना | उपयोग | विशेषताएँ | VS Code | CI/CD
npm और PyPI सप्लाई-चेन हमले तेजी से बढ़ रहे हैं। Shai-Hulud ने 2025 में 25K+ रिपॉजिटरी से समझौता किया। मौजूदा टूल खतरों का पता लगाते हैं लेकिन प्रतिक्रिया देने में मदद नहीं करते।
MUAD'DIB 22 समानांतर स्कैनर (278 डिटेक्शन नियम), एक डीओबफस्केशन इंजन, इंटर-मॉड्यूल डेटाफ्लो विश्लेषण, कंपाउंड स्कोरिंग (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 # खतरों के बावजूद फोर्स इंस्टॉल
इंस्टॉल करने से पहले पैकेजों को खतरों के लिए स्कैन करता है। ज्ञात दुर्भावनापूर्ण पैकेजों को ब्लॉक करता है।
प्रत्येक स्कैन 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 # केवल CRITICAL पर विफल
muaddib scan . --fail-on high # HIGH और CRITICAL पर विफल (डिफ़ॉल्ट)
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 # सभी 4 टेम्पोरल फीचर्स
muaddib scan . --temporal # अचानक लाइफसाइकिल स्क्रिप्ट डिटेक्शन
muaddib scan . --temporal-ast # संस्करणों के बीच AST अंतर
muaddib scan . --temporal-publish # प्रकाशन आवृत्ति विसंगति
muaddib scan . --temporal-maintainer # मेंटेनर परिवर्तन डिटेक्शन
पैकेज संस्करणों के बीच परिवर्तनों का विश्लेषण करके IOC डेटाबेस में दिखाई देने से पहले सप्लाई-चेन हमलों का पता लगाता है। विवरण के लिए देखें मूल्यांकन पद्धति।
muaddib sandbox <package-name>
muaddib sandbox <package-name> --strict
पृथक Docker कंटेनर में डायनामिक विश्लेषण: strace, tcpdump, फाइलसिस्टम अंतर, कैनरी टोकन, CI-जागरूक वातावरण, और टाइम-बम डिटेक्शन के लिए मंकी-पैचिंग प्रीलोड ([0h, 72h, 7d] ऑफसेट पर मल्टी-रन)।
muaddib watch . # रीयल-टाइम मॉनिटरिंग
muaddib daemon # डेमॉन मोड (npm install का ऑटो-स्कैन)
muaddib update # IOCs अपडेट करें (तेज़, ~5s)
muaddib scrape # पूर्ण IOC रिफ्रेश (~5min)
muaddib diff HEAD~1 # पिछले कमिट के साथ खतरों की तुलना करें
muaddib init-hooks # प्री-कमिट हुक (husky/pre-commit/git)
muaddib scan . --breakdown # व्याख्यात्मक स्कोर विघटन
muaddib replay # ग्राउंड ट्रुथ सत्यापन (90/94 TPR@3, v2.11.48)
सभी नियम (273 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।
न्यूनतम (HIGH+ खतरों पर बिल्ड विफल करें, एकल स्कैन):
name: Security Scan
on: [push, pull_request]
jobs:
scan:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: DNSZLSK/[email protected] # रिलीज़ किए गए टैग पर पिन करें
with:
fail-on: 'high'
Security टैब पर SARIF अपलोड के साथ (security-events: write की आवश्यकता है; SARIF उत्सर्जित करने के लिए दूसरा पास चलाता है):
jobs:
scan:
runs-on: ubuntu-latest
permissions:
contents: read
security-events: write
steps:
- uses: actions/checkout@v4
- uses: DNSZLSK/[email protected]
with:
path: '.'
fail-on: 'high'
sarif: 'results.sarif'
इनपुट
आउटपुट (बाद के चरणों में steps.<id>.outputs.* के माध्यम से उपभोग करें)
muaddib init-hooks # ऑटो-डिटेक्ट (husky/pre-commit/git)
muaddib init-hooks --type husky # फोर्स husky
muaddib init-hooks --mode diff # केवल नए खतरों को ब्लॉक करें
pre-commit फ्रेमवर्क के साथ:
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 की स्रोत-प्रकटीकरण बाध्यताओं के बिना होस्टेड सेवा के रूप में पेश करने के लिए, एक अलग वाणिज्यिक लाइसेंस उपलब्ध है। एक इश्यू खोलें या लेखक से संपर्क करें (DNSZLSK)।
कॉपीराइट (C) 2026 DNSZLSK।
The spice must flow. The worms must die.
| स्कैनर | डिटेक्शन |
|---|
| AST Parse (acorn) | eval, Function, क्रेडेंशियल चोरी, बाइनरी ड्रॉपर, प्रोटोटाइप हुक |
| Pattern Matching | शेल कमांड, रिवर्स शेल, डेड मैन स्विच |
| Dataflow Analysis | क्रेडेंशियल पढ़ना + नेटवर्क भेजना (इंट्रा-फाइल और क्रॉस-फाइल) |
| Obfuscation Detection | JS ओबफस्केशन पैटर्न (.min.js छोड़ें) |
| Deobfuscation Pre-processing | स्ट्रिंग concat, charcode, base64, hex array, const प्रसार |
| Inter-module Dataflow | क्रॉस-फाइल टेंट प्रसार (3-हॉप चेन, क्लास मेथड) |
| Intent Coherence | इंट्रा-फाइल सोर्स-सिंक पेयरिंग (क्रेडेंशियल + eval/नेटवर्क) |
| Typosquatting | npm + PyPI (Levenshtein दूरी) |
| 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 (ऑप्ट-इन) | रजिस्ट्री से विश्वसनीय dep tarballs के विरुद्ध अंतर (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+ पैकेज) | पता चला |
| Shai-Hulud v1/v2/v3 (2025) | पता चला |
| event-stream (2018) | पता चला |
| eslint-scope (2018) | पता चला |
| Protestware (node-ipc, colors, faker) | पता चला |
| Typosquats (crossenv, mongose, babelcli) | पता चला |
| इनपुट | विवरण | डिफ़ॉल्ट |
|---|
path | स्कैन करने का पथ | . |
fail-on | विफल करने के लिए न्यूनतम गंभीरता (critical/high/medium/low/none) | high |
sarif | SARIF आउटपुट फ़ाइल पथ — Security टैब पर अपलोड करने के लिए भी सेट करें | |
paranoid | अति-सख्त डिटेक्शन (उच्च FPR) | false |
version | इंस्टॉल करने के लिए muaddib-scanner npm संस्करण | latest |
| आउटपुट | विवरण |
|---|
risk-score | जोखिम स्कोर 0–100 |
risk-level | SAFE / LOW / MEDIUM / HIGH / CRITICAL |
threats-count | कुल पता लगाए गए खतरे |
critical-count / high-count | गंभीरता के अनुसार खतरे |
exit-code | 0 = fail-on गेट पास किया, अन्यथा गैर-शून्य |
sarif-file | SARIF फ़ाइल का पथ (यदि sarif सेट नहीं है तो खाली) |
| मीट्रिक | परिणाम |
|---|
| डिटेक्शन दर (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) |