
muad-dib v2.12.0
वास्तविक समय npm/PyPI आपूर्ति-श्रृंखला खतरे का पता लगाना। व्यवहारिक श्रृंखला विश्लेषण, AST स्कैनिंग, IOC फ़ीड और समग्र स्कोरिंग इंजन।
स्थापना | उपयोग | विशेषताएँ | VS Code | CI/CD
MUAD'DIB क्यों?
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 (अनुशंसित)
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 (पीला, बाकी)।
व्यवहारिक विसंगति डिटेक्शन (v2.0)
muaddib scan . --temporal-full # सभी 4 टेम्पोरल फीचर्स
muaddib scan . --temporal # अचानक लाइफसाइकिल स्क्रिप्ट डिटेक्शन
muaddib scan . --temporal-ast # संस्करणों के बीच AST अंतर
muaddib scan . --temporal-publish # प्रकाशन आवृत्ति विसंगति
muaddib scan . --temporal-maintainer # मेंटेनर परिवर्तन डिटेक्शन
पैकेज संस्करणों के बीच परिवर्तनों का विश्लेषण करके IOC डेटाबेस में दिखाई देने से पहले सप्लाई-चेन हमलों का पता लगाता है। विवरण के लिए देखें मूल्यांकन पद्धति।
Docker सैंडबॉक्स
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)
विशेषताएँ
22 समानांतर स्कैनर
| स्कैनर | डिटेक्शन |
|---|---|
| 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) |
278 डिटेक्शन नियम
सभी नियम (273 RULES + 5 PARANOID) MITRE ATT&CK तकनीकों से मैप किए गए हैं। पूर्ण नियम संदर्भ के लिए देखें SECURITY.md।
पता लगाए गए अभियान
| अभियान | स्थिति |
|---|---|
| GlassWorm (2026, 433+ पैकेज) | पता चला |
| Shai-Hulud v1/v2/v3 (2025) | पता चला |
| event-stream (2018) | पता चला |
| eslint-scope (2018) | पता चला |
| Protestware (node-ipc, colors, faker) | पता चला |
| Typosquats (crossenv, mongose, babelcli) | पता चला |
VS Code
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।
CI/CD
GitHub Actions (Marketplace)
न्यूनतम (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'
इनपुट
| इनपुट | विवरण | डिफ़ॉल्ट |
|---|---|---|
path | स्कैन करने का पथ | . |
fail-on | विफल करने के लिए न्यूनतम गंभीरता (critical/high/medium/low/none) | high |
sarif | SARIF आउटपुट फ़ाइल पथ — Security टैब पर अपलोड करने के लिए भी सेट करें | |
paranoid | अति-सख्त डिटेक्शन (उच्च FPR) | false |
version | इंस्टॉल करने के लिए muaddib-scanner npm संस्करण | latest |
आउटपुट (बाद के चरणों में steps.<id>.outputs.* के माध्यम से उपभोग करें)
| आउटपुट | विवरण |
|---|---|
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 सेट नहीं है तो खाली) |
प्री-कमिट हुक
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 प्रतिकूल/होल्डआउट।
| मीट्रिक | परिणाम |
|---|---|
| डिटेक्शन दर (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) |
ML क्लासिफायर: निष्क्रिय। एक XGBoost मॉडल src/ml/ में मौजूद है लेकिन muaddib scan में कभी वायर्ड नहीं है, और 2026-04-08 से मॉनिटर में केवल LOG-ONLY चलता है (प्रशिक्षित मॉडल ढह गया, पुनः प्रशिक्षण लंबित)। उपरोक्त सभी संख्याएँ केवल-नियम हैं।
पूर्ण प्रोटोकॉल, प्रति-ट्रैक इतिहास, PyPI cap-35 चेतावनी, परिचालन (GHSA-नामित) कवरेज, और ML पुनः प्रशिक्षण पद्धति: मूल्यांकन पद्धति।
योगदान
IOCs जोड़ें
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
परीक्षण
- 4545 परीक्षण 155 मॉड्यूलर परीक्षण फ़ाइलों में
- 56 फ़ज़ परीक्षण - दूषित इनपुट, ReDoS, यूनिकोड, बाइनरी
- Datadog 17K बेंचमार्क - 14,587 पुष्टि किए गए मैलवेयर नमूने (इन-स्कोप)
- ग्राउंड ट्रुथ सत्यापन - 96 वास्तविक-विश्व हमले (95.74% TPR@3, 88.30% TPR@20 — 94 इन-स्कोप पर v2.11.48 पूर्ण माप)
- फॉल्स पॉज़िटिव सत्यापन (v2.11.48 माप) - 1.10% FPR नियम (6/545 स्कैन किए गए), 200 रैंडम पर 2.50%, 124/132 PyPI पर 9.68% (Track-D डाउनलोड फिक्स के बाद पहला ईमानदार माप)। ML क्लासिफायर वर्तमान में निष्क्रिय है — मूल्यांकन मीट्रिक्स → ML क्लासिफायर देखें।
समुदाय
- Discord: https://discord.gg/y8zxSmue
दस्तावेज़ीकरण
- ब्लॉग - सप्लाई-चेन खतरा डिटेक्शन पर तकनीकी लेख
- Carnet de bord - विकास जर्नल (फ्रेंच में)
- दस्तावेज़ीकरण सूचकांक - सभी दस्तावेज़ एक स्थान पर
- मूल्यांकन पद्धति - प्रयोगात्मक प्रोटोकॉल, होल्डआउट स्कोर
- थ्रेट मॉडल - MUAD'DIB क्या पता लगाता है और क्या नहीं
- सुरक्षा नीति - डिटेक्शन नियम संदर्भ (278 नियम)
- सुरक्षा ऑडिट - बायपास सत्यापन रिपोर्ट
- FP विश्लेषण - ऐतिहासिक फॉल्स पॉज़िटिव विश्लेषण
लाइसेंस
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.