TL, डॉ
एक एकल एनपीएम प्रकाशक, ddjidd5640ने मनगढ़ंत ब्रांडों के तहत नकली वेब3 सुरक्षा टूलिंग के 22 पैकेजों की सूची तैयार की है। क्रिप्टो सुरक्षा गिल्ड, वेब3 ऑडिट कलेक्टिव, तथा DeFi सुरक्षा गठबंधन.
ये पैकेज किसी साधारण टाइपोस्क्वैट अभियान की तरह नहीं दिखते। ये एक ब्रांडेड सुरक्षा इकोसिस्टम की तरह दिखते हैं, जो GitHub के खाली संगठनों और MCP टूल के आकर्षक नामों जैसे कि द्वारा समर्थित है। search_leaked_credentials, validate_chain_key, तथा deploy_safe.
अभियान दो भागों में बंट जाता है दो सक्रिय पेलोड परिवार और एक निष्क्रिय शाखा.
वेरिएंट ए इसमें 8 क्रेडेंशियल-हार्वेस्टिंग पैकेज शामिल हैं। एक पोस्टइंस्टॉल स्क्रिप्ट स्थानीय गुप्त भंडारों को पढ़ती है, जबकि एक बंडल की गई स्क्रिप्ट... scanner.js यह तब चलता है जब एक एआई एजेंट पैकेज के एमसीपी टूल को लागू करता है, वॉलेट कुंजी, बीआईपी39 मेमोनिक्स, एपीआई टोकन और अन्य क्रेडेंशियल की खोज करता है।
वेरिएंट बी इसमें 5 पिंगी-आधारित बाइनरी ड्रॉपर शामिल हैं। ये पैकेज पोस्टइंस्टॉल के दौरान एक रिमोट पेलोड को फ़ेच और एक्ज़ीक्यूट करते हैं। foundry-deploy-helper:1.8.96 एक अलग निष्पादन योग्य को गिराना /tmp/.node-cache.
वेरिएंट सी इसमें 9 निष्क्रिय पैकेज शामिल हैं जिनमें अभी तक कोई स्पष्ट पोस्टइंस्टॉल पेलोड नहीं है, लेकिन प्रकाशक, ब्रांडिंग पैटर्न और वेब3-केंद्रित नामकरण समान हैं।
हमारी जानकारी के अनुसार, 22 पैकेजों में से केवल 8 को ही चिह्नित किया गया था; शेष 14 विश्लेषण के समय भी एनपीएम पर सक्रिय थे।
गंभीरता: गंभीर।
हमला: एक अलमारी में दो पेलोड
कपड़ों का संग्रह ही ब्रांड है। क्रिप्टो-क्रेडेंशियल-स्कैनर की README फ़ाइल खोलें और आपको पता चलेगा कि यह क्रिप्टो सिक्योरिटी गिल्ड द्वारा बनाया गया एक क्रेडेंशियल स्कैनर है। डेफी-थ्रेट-स्कैनर का पेज खोलें और आपको पता चलेगा कि यह डेफी सिक्योरिटी एलायंस का एक टूल है। वेब3-सीक्रेट्स-डिटेक्टर खोलें और यह वेब3 ऑडिट कलेक्टिव है। इनमें से कोई भी कलेक्टिव संगठन के रूप में मौजूद नहीं है। ये केवल खाली GitHub ऑर्ग्स हैं जिनका एकमात्र उद्देश्य npm पेज के "लेखक" हाइपरलिंक को भरना है।
वेरिएंट ए: पोस्टइंस्टॉल प्री-फ्लाइट और एमसीपी-टाइम मुख्य एक्ट
सभी 8 वेरिएंट-ए पैकेज एक दो-चरण पेलोड साझा करते हैं - एक पोस्टइंस्टॉल प्री-फ्लाइट जो डिस्क पर पहले से मौजूद क्रेडेंशियल्स को सादे टेक्स्ट में प्राप्त करता है, और एक रनटाइम चरण जो एक एआई एजेंट द्वारा पैकेज के एमसीपी टूल में से किसी एक को कॉल करने पर सक्रिय हो जाता है।
"चरण 1, उड़ान से पहले की तैयारी" यह package.json में node -e नामक एक सिंगल लाइन कमांड के रूप में मौजूद है। यह सात प्रसिद्ध डॉटफाइलों को खोलता है और प्रत्येक के पहले 200 बाइट्स को C2 पर भेजता है।
200 बाइट्स ~/.ssh/id_ed25519 यह अपने आप हमलावर को आपकी निजी कुंजी नहीं देगा, लेकिन यह उसे दे देगा फ़ाइल का नाम, टिप्पणी और PEM हेडर की पहली पंक्तियाँ — यह पुष्टि करने के लिए पर्याप्त है कि वहां किस प्रकार की कुंजी मौजूद है, जो आगे के चरण को संचालित करने के लिए पर्याप्त है। 200 बाइट्स ~/.env आमतौर पर 200 बाइट्स एक संपूर्ण एपीआई टोकन को लीक करने के लिए पर्याप्त से अधिक होते हैं। ~/.गिट-क्रेडेंशियल्स ये आमतौर पर OAuth टोकन का एक पूरा सेट होते हैं।
"चरण 2, मुख्य कार्यक्रम"है, स्कैनर.jsइसे पैकेज द्वारा लोड किया जाता है। index.js और एआई एजेंट द्वारा विज्ञापित उपकरणों में से किसी को भी लागू करते ही एमसीपी अनुरोध हैंडलर के अंदर से इसे कॉल किया जाता है। यह फ़ाइल 8 वेरिएंट-ए पैकेजों में हूबहू एक जैसी है (b461106e47a1f5966159cd6e92541505), और यह अपने कार्यों के बारे में स्पष्ट है। शुरुआती टिप्पणी खंड में शब्दशः लिखा है:
| जावास्क्रिप्ट // wallet-scanner.js — एमसीपी पैकेजों के लिए एम्बेडेड सक्रिय स्कैनर // एआई एजेंट द्वारा किसी भी एमसीपी टूल को कॉल करने पर चुपचाप चलता है, वॉलेट/कुंजी के लिए वातावरण को स्कैन करता है // केवल Node.js बिल्ट-इन का उपयोग करता है, कोई बाहरी निर्भरता नहीं |
आगे जो दिखाया गया है वह 3 की गहराई वाला एक पुनरावर्ती मार्ग है:
होम डायरेक्टरी ही
फ़ाइलनामों को फ़िल्टर करना जिनमें निम्नलिखित में से कोई भी शामिल हो कुंजीस्टोर, wallet.json, Wallet.dat, ।गुप्त, बीज.txt, metamask, प्रेत, रब्बी, ट्रस्ट-वॉलेट, coinbase, निजी चाबी, स्मृति सहायक, गुप्त_कुंजी, api_key यानी, क्रिप्टो उपयोगकर्ता द्वारा कुंजी रखने के सभी स्थानों की एक विशेष रूप से तैयार की गई सूची। प्रत्येक मिलान के लिए, फ़ाइल खोली जाती है और छह नियमित अभिव्यक्तियों के विरुद्ध स्कैन की जाती है:
| प्रकार | पैटर्न | यह क्या पकड़ता है |
|---|---|---|
| निजी चाबी | (?:0x)?[a-fA-F0-9]{64} | एथेरियम की निजी कुंजी और सामान्य 32-बाइट हेक्साडेसिमल गुप्त कुंजी। |
| स्मृति सहायक | \b([a-z]+\s+){11,23}[a-z]+\b | BIP39 स्मरणात्मक बीज वाक्यांश 12 से 24 शब्दों तक के होते हैं। |
| api_key | (api[_-]?key\|API_KEY)\s*[:=]\s*["']?([A-Za-z0-9_\-]{20,}) | कॉन्फ़िगरेशन फ़ाइलों में एम्बेडेड जेनेरिक एपीआई टोकन और क्रेडेंशियल मान। |
| गुप्त | (?:secret\|private).{0,10}[:=]\s*["']?([A-Za-z0-9+/=]{20,}) | गुप्त और निजी मान आमतौर पर YAML, JSON और INI कॉन्फ़िगरेशन प्रारूपों में संग्रहीत होते हैं। |
| eth_address | 0x[a-fA-F0-9]{40} | पीड़ितों की पहचान और फिंगरप्रिंट प्राप्त करने के लिए एथेरियम वॉलेट पतों का उपयोग किया गया। |
| पासवर्ड | (?:PASSWORD\|PASSPHRASE)\s*=\s*["']?(\S{4,64}) | शेल-निर्यात शैली के पासवर्ड और पासफ़्रेज़ पर्यावरण चर। |
इसके बाद scanner.js छह और डॉटफाइलों को पूरी तरह पढ़ता है — ~/.env, ~/.bash_history, ~/.zsh_history, ~/.npmrc, ~/.gitconfig, ~/.git-credentials में से प्रत्येक 500 बाइट्स तक की होती है — और process.env में उन सभी वेरिएबल्स की खोज करता है जिनके नाम में key, secret, token, password, private, mnemonic, wallet, या seed शामिल हैं। अंत में यह execSync('whoami') के साथ-साथ os.hostname() और process.cwd() को कॉल करके डंप को पीड़ित की पहचान से टैग करता है। संपूर्ण पेलोड, साथ ही 100 तक व्यक्तिगत निष्कर्ष, एक एकल JSON ऑब्जेक्ट के रूप में POST किए जाते हैं।
एक्सफ़िल गंतव्य सीधे हार्डकोड नहीं किया गया है। पैकेज इसे रनटाइम पर निम्न स्थान से प्राप्त करता है:
https://ddjidd564.github.io/defi-security-best-practices/config.json
— हमलावर द्वारा नियंत्रित एक GitHub Pages दस्तावेज़। वर्तमान config.json निम्नलिखित लौटाता है।
यदि वह डेटा प्राप्त करने का प्रयास विफल हो जाता है, स्कैनर.js वापस उसी स्थिति में आ जाता है वेबहुक.साइट URL को एक स्थिरांक के रूप में हार्डकोड किया गया है। यह अप्रत्यक्षता ही इस अभियान की एकमात्र परिचालन संबंधी जटिलता है: यह हमलावर को पैकेज को पुनः प्रकाशित किए बिना डेटा लीक लक्ष्यों को बदलने की अनुमति देती है, और यह वास्तविक संग्राहक URL को npm आर्टिफैक्ट से बाहर रखती है, जिससे हस्ताक्षर-आधारित पहचान कठिन हो जाती है।
वेरिएंट बी: एक पिंगी टनल, एक बाइनरी और एक परसिस्टेंट वेरिएंट
दूसरा लाइव बैच काफी छोटा है—पांच पैकेज—और काफी कम चालाक है। लेखक ने एमसीपी का रूप पूरी तरह से त्याग दिया है। ये पैकेज वैध एथेरियम और सोलाना टूलिंग के लिए कॉन्फ़िगरेशन सहायक होने का दावा करते हैं।ट्रफल-कॉन्फ़िग-हेल्पर, चेनलिंक-प्राइस-फीड-एग्रीगेटर, गनाश-क्ली-प्रदाता, सोलाना-पीडीए-हेल्पर, फाउंड्री-तैनाती-सहायकपेलोड एक एकल है। https.get-तथा-कार्यकारी लाइन में पोस्टइंस्टॉल
C2 एक निःशुल्क है पिंगी टनल — एक सामान्य डेवलपर-टनलिंग सेवा जिसका उपयोग हमलावर अस्थायी C2 के रूप में कर रहा है। पैकेज टनल द्वारा लौटाए गए डेटा को डाउनलोड करता है और उसे इसमें डाल देता है। चाइल्ड_प्रोसेस.एक्सेकइसमें कोई सत्यता जांच नहीं होती, कोई हस्ताक्षर नहीं होते, कोई द्वितीय-चरण सुरक्षा नहीं होती। ऑपरेटर की सुरंग आज जिस भी चीज की सेवा कर रही है, वही चलती रहती है।
सबसे आक्रामक पैकेज, फाउंड्री-डिप्लॉय-हेल्पर:1.8.96इनलाइन को प्रतिस्थापित करता है https.get साथ में कर्ल और दृढ़ता बनाए रखने की एक तरकीब:
वेरिएंट सी: एक चिकना बाहरी आवरण, कोई डेटोनेटर नहीं (अभी तक)
शेष नौ पैकेज — वॉलेट-बैकअप-सत्यापनकर्ता, पर्यावरण-सुरक्षा-स्कैनर, फाउंडी-टूलकिट (फाउंड्री का जानबूझकर किया गया गलत अनुवाद), सोलना-वेब3 (सोलाना का एक टाइपोस्क्वाट), वॉलेट-सुरक्षा-जांचकर्ता, हार्डहैट-गैस-प्रोफाइलर-प्लगइन, ईथर-मल्टीकल-यूटिल्स, डेफी-एनवी-ऑडिटर, ईथरजेएस-यूटिल्स - पास होना कोई पोस्टइंस्टॉल स्क्रिप्ट नहीं पहली नज़र में कोई स्पष्ट रनटाइम डेटा लीक नहीं दिखता। ये सक्रिय वेरिएंट के साथ पब्लिशर, ब्रांड, वेब3 नामकरण पैटर्न और कुछ मामलों में एक समान README सामग्री साझा करते हैं। हम इन्हें एक ही अभियान का हिस्सा मान रहे हैं और इन्हें पहले से ही हटाने की सलाह दी है, लेकिन हमने अभी तक इनके रनटाइम ट्रिगर्स की पूरी सूची नहीं बनाई है। निष्क्रिय हिस्सा ऑपरेटर द्वारा भविष्य में बदलाव के लिए आरक्षित एक आधार हो सकता है - ठीक उसी पैटर्न का उपयोग फैंटमबॉट ने मई के मध्य में किया था, जहां ऑपरेटर ने पैकेज का नाम दोबारा प्रकाशित किए बिना क्रेडेंशियल स्टीलर को बॉटनेट रिक्रूट से बदल दिया था।
समयरेखा और सूची
इस अभियान में सबसे पहले दिनांकित पैकेज सबसे कम संस्करण वाला है: चेन-की-वैलिडेटर:0.2.3 और डेफी-एनवी-ऑडिटर:0.3.2 ये शुरुआती प्रायोगिक बूंदों की तरह दिखते हैं। जब तक प्रकाशक पहुंचा, तब तक ट्रफल-कॉन्फ़िग-हेल्पर:1.7.0 और फाउंड्री-डिप्लॉय-हेल्पर:1.8.96वर्ज़न में यह बदलाव जानबूझकर किया गया था — ऐसे नंबर चुने गए जो किसी स्थापित पैकेज की वंशावली की तरह लगते हों। इन 22 में से किसी का भी npm पर उस नाम से कोई वैध पूर्व इतिहास नहीं है।
विभिन्न प्रकारों के अनुसार वर्गीकृत संपूर्ण सूची:
### वेरिएंट ए — क्रेडेंशियल हार्वेस्टर (पोस्टइंस्टॉल + एमसीपी-टाइम स्कैनर.जेएस, एमडी5 b461106e47a1f5966159cd6e92541505)
| पैकेज | संस्करण | डिटेक्शन फ़ीड में चिह्नित |
|---|---|---|
mnemonic-safety-check | 0.5.2 | हाँ |
solidity-deploy-guard | 0.4.4 | हाँ |
web3-secrets-detector | 1.2.6 | हाँ |
eth-wallet-sentinel | 1.0.9 | हाँ |
deployment-key-auditor | 0.7.3 | हाँ |
defi-threat-scanner | 2.1.2 | हाँ |
crypto-credential-scanner | 2.0.2 | हाँ |
chain-key-validator | 0.2.3 | हाँ |
### वेरिएंट बी — पिंगी टनल https.get → exec (इस रिपोर्ट से पहले कोई डिटेक्शन-फीड दृश्यता नहीं थी)
| पैकेज | संस्करण | पोस्टइंस्टॉल फ्लेवर |
|---|---|---|
truffle-config-helper | 1.7.0 | https.get → exec(stdout) |
chainlink-price-feed-aggregator | 1.1.12 | https.get telemetry call |
ganache-cli-provider | 1.7.51 | https.get telemetry call |
solana-pda-helper | 1.0.46 | https.get telemetry call |
foundry-deploy-helper | 1.8.96 | curl + chmod +x /tmp/.node-cache & |
### वेरिएंट सी — निष्क्रिय, रनटाइम ट्रिगर होने का संदेह (इस रिपोर्ट से पहले डिटेक्शन-फीड में कोई दृश्यता नहीं थी)
| पैकेज | संस्करण | नोट्स |
|---|---|---|
wallet-backup-verifier | 1.0.1 | |
env-security-scanner | 1.6.0 | |
foundy-toolkit | 1.5.79 | फाउंड्री का टाइपोस्क्वाट |
solna-web3 | 1.5.98 | सोलाना का टाइपोस्क्वाट |
wallet-security-checker | 1.0.3 | |
hardhat-gas-profiler-plugin | 1.7.86 | |
ethers-multicall-utils | 1.3.15 | |
defi-env-auditor | 0.3.2 | |
etherjs-utils | 1.0.39 |
वेरिएंट-ए और वेरिएंट-बी कॉलम को यादृच्छिक रूप से नहीं चुना गया है। वेरिएंट-ए के सभी नाम अपने आप में ही विक्रय योग्य हैं। सुरक्षा ऑडिटिंग उपकरण — “सुरक्षा जांच”, “डिप्लॉय गार्ड”, “सीक्रेट्स डिटेक्टर”, “वॉलेट सेंटिनल”, “की ऑडिटर”, “थ्रेट स्कैनर”, “क्रेडेंशियल स्कैनर”, “चेन की वैलिडेटर”। ये सभी नाम उन डेवलपर्स या एआई एजेंटों के लिए हैं जो वेब3 प्रोजेक्ट की सुरक्षा का मूल्यांकन करने के लिए किसी टूल की तलाश में हैं। वेरिएंट-बी के सभी नाम खुद को इस प्रकार बेचते हैं: निर्माण और परिनियोजन सहायक एक ही Web3 इकोसिस्टम के लिए — Truffle, Chainlink, Ganache, Solana PDA टूलिंग, Foundry। यह विभाजन एक सामान्य Web3 डेवलपर के "ऑडिट चरण" बनाम "तैनाती चरण" के मानसिक मॉडल को दर्शाता है। आप जिस भी चरण में जाएं, प्रकाशक ने उसके लिए एक जाल बिछा रखा है।
समझौता के संकेतक
नेटवर्क और फ़ाइलें
| आईओसी | प्रकार | उद्देश्य |
|---|---|---|
https://ddjidd564.github.io/defi-security-best-practices/config.json | A | GitHub Pages के माध्यम से होस्ट किया गया डायनेमिक वेबहुक रिजॉल्वर। |
https://webhook.site/8d334534-1c63-4f4f-a0d7-95c446c8b233 | A | वर्तमान डेटा निकासी संग्राहक एंडपॉइंट, जिसे फॉलबैक के रूप में भी एम्बेड किया गया है। |
rqnyz-2605-7280-7--2000-c51.run.pinggy-free.link/npm/-/binary/telemetry | B | पिंगगी टनल का उपयोग दूरस्थ बाइनरी पेलोड वितरित करने के लिए किया जाता है। |
scanner.js MD5 b461106e47a1f5966159cd6e92541505 | A | सभी 8 वेरिएंट-ए पैकेजों में एक ही स्कैनर पेलोड का पुन: उपयोग किया गया। |
/tmp/.node-cache | B | अलग किया गया निष्पादन योग्य फ़ाइल द्वारा गिरा दिया गया foundry-deploy-helper:1.8.96. |
प्रकाशक
- एनपीएम उपयोगकर्ता नाम: ddjidd5640
- ईमेल: 1623682356@qq.com (असत्यापित)
- ईमेल और SCM सत्यापन: कोई नहीं
- खाते के अंतर्गत पैकेजों की संख्या: 22, सभी ऊपर सूचीबद्ध कैटलॉग में दिए गए हैं।
- सबसे पहली दृश्य गतिविधि: चेन-की-वैलिडेटर:0.2.3 (संस्करण ए)
- हाल ही में देखी गई गतिविधि: chain-key-validator:0.2.3 और crypto-credential-scanner:2.0.2 (दोनों इस लेख के लिखे जाने से 24 घंटे पहले की हैं)
ब्रांड फ्रंट (जिनमें प्रयुक्त होते हैं) लेखक / README / नकली GH org)
- “क्रिप्टो सिक्योरिटी गिल्ड” — एक खाली GitHub संगठन द्वारा समर्थित क्रिप्टोसेक-गिल्ड
- “वेब3 ऑडिट कलेक्टिव” — एक खाली गिटहब संगठन द्वारा समर्थित w3ऑडिट
- “DeFi सिक्योरिटी एलायंस” — एक खाली GitHub संगठन द्वारा समर्थित डेफी-सुरक्षा
- GH खाते ddjidd564 का संदर्भ लें — यह डायनामिक-वेबहुक config.json का होस्ट है।
व्यवहार
- नोड -ई पोस्टइंस्टॉल रीडिंग किसी भी .श, .एथेरियम, .बिटकॉइन, .env, .bash_इतिहास, .zsh_history, .git-क्रेडेंशियल साथ में .स्लाइस(0, 200) और इसके साथ जोड़ना | विभाजक, वेरिएंट ए के लिए लगभग अद्वितीय फिंगरप्रिंट है।
- आयात करना ./scanner.js एक ऐसे पैकेज से जो स्वयं को एमसीपी के रूप में पंजीकृत करता है सर्वर उपकरणों के साथ नाम लीक हुए क्रेडेंशियल खोजें या इसी तरह से तैयार किए गए "सुरक्षा ऑडिट" क्रियापद एक वेरिएंट-ए पुष्टिकरण है।
- एक नोड -ई पोस्टइंस्टॉल जो किसी भी *.run.pinggy-free.link होस्ट से डेटा प्राप्त करता है और प्रतिक्रिया को child_process.exec में भेजता है, रैपर की परवाह किए बिना एक वेरिएंट-बी पुष्टिकरण है।
आरोपण और प्रेरणा
प्रकाशक की आंशिक पहचान के लिए पर्याप्त सबूत मौजूद हैं, लेकिन वास्तविक पहचान के लिए पर्याप्त सबूत नहीं हैं। ईमेल 1623682356@qq.com यह एक QQ ईमेल पता है — Tencent की मुफ़्त वेबमेल सेवा, जो मुख्य भूमि चीन में लोकप्रिय है — और इसका स्थानीय संख्यात्मक भाग QQ उपयोगकर्ता आईडी है; हम इसे केवल एक सॉफ्ट सिग्नल मानते हैं, क्योंकि QQ प्रारूप वाले पते आसानी से पंजीकृत हो जाते हैं। npm खाते में कोई दो-कारक सुरक्षा जानकारी का खुलासा नहीं है, कोई सत्यापित ईमेल नहीं है, कोई सत्यापित SCM लिंक। "क्रिप्टो सिक्योरिटी गिल्ड" / "वेब3 ऑडिट कलेक्टिव" / "डीएफआई सिक्योरिटी एलायंस" ब्रांड त्रयी पूरी तरह से मनगढ़ंत है - इस अभियान के बाहर इनमें से कोई भी अस्तित्व में नहीं है - और समर्थित गिटहब संगठन केवल एनपीएम पेज लिंक भरने के लिए बनाए गए खोखले ढांचे हैं।
दो पैटर्न का उल्लेख करना उचित है, क्योंकि वे आसन्न अभियानों में दिखाई देते हैं। पहला है ब्रांड प्रीफैब्रिकेशन को सामाजिक प्रमाण के रूप में उपयोग करनाऑपरेटर ने टाइपोस्क्वैट करने के लिए मौजूदा प्रोजेक्ट नामों का चयन नहीं किया; उन्होंने पूरी तरह से एक भरोसे की कहानी शुरू से गढ़ी, यह जानते हुए कि एक एआई-एजेंट निर्माण pipeline या फिर कोई जल्दबाज़ी में काम करने वाला डेवलपर npm पेज को स्कैन करते समय "सुरक्षा संगठन जैसा दिखता है" के आधार पर पैटर्न-मैच करेगा, न कि "सुरक्षा संगठन है" के आधार पर। यही वह तरीका है जिसके बारे में स्लोपस्क्वैटिंग साहित्य में चेतावनी दी गई थी - ऐसे पैकेज जो LLM के नाम के अनुरूप हों। आविष्कार यदि वेब3 सुरक्षा उपकरण मांगा जाए, तो उसे इस तरह से प्रस्तुत किया जाना चाहिए कि एलएलएम इसकी दोबारा जांच न करे। स्लोपस्क्वेटिंग यह हाल ही में गढ़ा गया शब्द है उन दुर्भावनापूर्ण पैकेजों के लिए जिनके नाम उन प्लेसहोल्डर्स से मेल खाते हैं जिन्हें एलएलएम तब भ्रमित करते हैं जब कोई आधिकारिक पैकेज मौजूद नहीं होता है; यह अभियान इसका अधिक आक्रामक संस्करण है, जिसमें ऑपरेटर उस संगठन को भी गढ़ता है जिससे प्लेसहोल्डर संबंधित होना चाहिए।
दूसरा पैटर्न यह है एमसीपी-समय सक्रियण। जब तक स्कैनर.js यह प्रक्रिया चलती है, इंस्टॉलेशन पूरा हो चुका है और डेवलपर आगे बढ़ चुका है। इसका ट्रिगर एआई एजेंट द्वारा किसी टूल को कॉल करना है। लीक हुए क्रेडेंशियल खोजेंवेरिएंट-ए के मामले में—जो एजेंट निश्चित रूप से करेगा, क्योंकि पैकेज दिए जाने का पूरा कारण यही है। दुर्भावनापूर्ण कार्य इसके दौरान होता है। अच्छा वर्कफ़्लो का वह हिस्सा, जब डेवलपर के अपने एआई सहायक को उनके द्वारा दिए गए कार्य में सफल होते देखने की सबसे अधिक संभावना होती है। यह पुराने "एक्सफ़िल ऑन" से एक छोटा सा व्यवहारिक बदलाव है। एनएमपी स्थापित करेंयह "पैटर्न" का उपयोग करता है, और यह इंस्टॉलेशन के समय सैंडबॉक्सिंग से बड़ी चतुराई से बच निकलता है।
हम किसी भी खतरे पैदा करने वाले संगठन का नाम नहीं ले रहे हैं। संकेत (QQ ईमेल, एकल खाता, एक ही दिन में 22 पैकेज का विस्फोट, दो समानांतर C2 स्टैक) एक निरंतर ऑपरेटर, एक छोटी टीम, या उन पैकेज-फ्लड क्रू में से किसी एक के साथ समान रूप से सुसंगत हैं जो 2025-2026 के दौरान npm टेलीमेट्री में दिखाई दिए हैं। कर सकते हैं यह कहा जा रहा है कि इस ऑपरेटर के पास एक स्पष्ट पसंदीदा पारिस्थितिकी तंत्र (एथेरियम + सोलाना + फाउंड्री/हार्डहैट टूलिंग), एक स्पष्ट पसंदीदा शिकार (वेब3 डेवलपर और वेब3 परियोजनाओं पर काम करने वाले एआई एजेंट), और एक स्पष्ट पसंदीदा दृढ़ता मॉडल (एमसीपी-टाइम रनटाइम ट्रिगर प्लस एक अलग बाइनरी फॉलबैक) है।
प्रभाव, रुझान और बचावकर्ता क्या कर सकते हैं
हमारी प्रारंभिक चेतावनी pipeline पकड़ा 8 के 22 अभियान की पूरी अवधि के दौरान पैकेज जारी किए गए - शुरुआती चरण में छह और अभियान-क्लस्टरिंग के दौरान उसी दिन बाद में दो और पैकेज आए। बाकी 14 पैकेज कई दिनों से npm पर उपलब्ध थे। हमारे द्वारा निगरानी किए जाने वाले किसी भी डिटेक्शन फीड में कभी भी सामने आए बिना।और लेखन के समय तक ये अभी भी इंस्टॉल करने योग्य हैं। यह अंतर महत्वपूर्ण है क्योंकि:
- वेरिएंट A इंस्टॉलेशन के दौरान साइलेंट रहता है।डॉटफाइल रीड प्रक्रिया तो होती है, लेकिन बल्क एक्सफ़िल्ट तभी शुरू होती है जब कोई एआई एजेंट पैकेज के एमसीपी टूल्स को इनवोक करता है। standard पोस्टइंस्टॉल-वॉचिंग सैंडबॉक्स देखेगा नोड -ई ब्लॉक करें और तय करें कि यह छोटा है और स्पष्ट रूप से निष्क्रिय है।
- वेरिएंट बी एक सिंगल लाइन है। मैलवेयर क्लासिफायर के लिए सीखने के लिए कुछ भी नहीं है — न कोई अस्पष्टीकरण, न कोई एन्कोडेड पेलोड, न ही कोई संदिग्ध दिखने वाला डोमेन। पिंगी टनल एक वैध डेवलपर सेवा है। एकमात्र संदिग्ध बात यह है कि एक "कॉन्फ़िगरेशन हेल्पर" को घर से संपर्क करने की आवश्यकता क्यों पड़ती है।
- वेरिएंट सी पूरी तरह से साफ-सुथरा दिखता है। इसमें कोई इंस्टॉलेशन नहीं है। hooksप्रत्येक स्थिर संकेत के लिए यह सामान्य है।
एमसीपी-टूल युग के लिए एक संक्षिप्त डिफेंडर चेकलिस्ट
तीन ठोस कदम जिनसे इस अभियान को पहले ही रोका जा सकता था:
- प्रकाशक का वजन करें, पैकेज का नहीं। एक साल पुराने क्यूक्यू-मेल खाते के अंतर्गत बाईस पैकेज, जिनमें कोई पहचान नहीं है। SCM सत्यापन किसी भी प्रति-पैकेज सुविधा की तुलना में कहीं अधिक प्रभावी संकेत है। हमारी प्रारंभिक चेतावनी कार्यप्रणाली ने पहले पैकेजों का पता लगा लिया क्योंकि प्रकाशक का फिंगरप्रिंट स्पष्ट था - जिससे प्रकाशक की प्रतिष्ठा का ऐसा स्कोर सुझाया गया जिसे सुरक्षित, अनिश्चित या मैलवेयर प्रति-पैकेज वर्गीकरण में से कोई भी कम महत्व दे सकता है।
- जब तक अन्यथा सिद्ध न हो जाए, डायनामिक-कॉन्फ़िगरेशन के अप्रत्यक्ष उपयोगों को दुर्भावनापूर्ण मानें। एक पैकेज जो रनटाइम पर किसी तृतीय-पक्ष दस्तावेज़ (गिटहब पेजेस, गिटहब गिस्ट, पेस्टबिन, एस3 ऑब्जेक्ट, या कहीं और) से अपने आउटबाउंड एंडपॉइंट को हल करता है, टेलीमेट्री के लिए ऐसा करने का कोई वैध कारण नहीं है। वास्तविक टेलीमेट्री एंडपॉइंट हार्डकोड किए जाते हैं और प्रलेखित होते हैं।
- MCP-सर्वर पैकेजों का उनके विज्ञापित टूल सरफेस के आधार पर ऑडिट करें। वेरिएंट-ए पैकेज में सभी टूल का विज्ञापन किया गया है जिनके नाम हैं
search_leaked_credentials,validate_chain_key,deploy_safeऔर इसी तरह के “ऑडिट” क्रियापद। एक एमसीपी होस्ट जो एक ऐसे टूल को प्रदर्शित करता है जिसका विवरण क्रेडेंशियल के लिए प्रोजेक्ट डायरेक्टरी को स्कैन करने का दावा करता है, उसे एजेंट द्वारा वास्तविक कोडबेस पर इसे लागू करने से पहले ऑपरेटर की स्पष्ट सहमति की आवश्यकता होनी चाहिए। एमसीपी का उद्देश्य यह है कि एजेंट लूप को यह जानने का कोई तरीका नहीं है किsearch_leaked_credentialsयह क्रेडेंशियल सर्च है या क्रेडेंशियल एक्सफिल्ट्रेटर है।
उन डेवलपर्स के लिए जिन्होंने पहले से ही 22 पैकेजों में से एक इंस्टॉल कर लिया है: मान लें कि किसी भी प्लेनटेक्स्ट कुंजी में ~ / .ssh, ~/.एथेरियम, ~/.बिटकॉइन, ~/.सोलाना, ~/.envया, ~/.गिट-क्रेडेंशियल्स यदि सुरक्षा में सेंधमारी हुई है, तो ऊपर दी गई env-variable फ़िल्टर सूची से मेल खाने वाले नाम वाले प्रत्येक क्रेडेंशियल को बदलें, और Linux/macOS पर निष्पादन योग्य फ़ाइल की जाँच करें। /tmp/.नोड-कैश (और इससे शुरू हुई कोई भी अनाथ प्रक्रिया)। प्रतिरूपित टूलिंग के वैध संस्करण को पुनः स्थापित करना (फाउंड्री, कवक, कठोर टोपी, ganache, आदि) ड्रॉप की गई बाइनरी को नहीं हटाता है।
इस कहानी का सबसे खराब पहलू निष्क्रिय वेरिएंट-सी ट्रेंच है। एक साफ इंस्टॉलेशन प्रोफाइल और एक स्थापित प्रकाशक वाले नौ पैकेज ठीक उसी तरह की इन्वेंट्री हैं जिन्हें एक ऑपरेटर रिजर्व में रखता है। अगर वे बाद में विस्फोट करते हैं - जैसा कि फैंटमबॉट के साथ हुआ था - तो एक्सोइस-यूटिल्स क्रेडेंशियल चोरी से हटकर, रीपैकेजिंग का उद्देश्य बॉटनेट में भर्ती करना हो गया है — ये पैकेज आज से लेकर इस कार्रवाई तक वेरिएंट-सी पैकेज को पिन करने वाले किसी भी रजिस्ट्री उपभोक्ता के खिलाफ सक्रिय हो जाएंगे। किसी दुर्भावनापूर्ण पैकेज को संस्करण के आधार पर पिन करने से आपको उस प्रकाशक से सुरक्षा नहीं मिलती जो हर संस्करण को नियंत्रित करता है।
संदर्भ
- [एनपीएम प्रकाशक पृष्ठ के लिए] ddjidd5640](https://www.npmjs.com/~ddjidd5640)— इस खाते के अंतर्गत वर्तमान में 22 पैकेज सूचीबद्ध हैं। लेखन के समय सूची का आधिकारिक स्रोत।
- [एनपीएम पैकेज पृष्ठ के लिए] क्रिप्टो-क्रेडेंशियल-स्कैनर](https://www.npmjs.com/package/crypto-credential-scanner) — उदाहरण के लिए, वेरिएंट-ए आर्टिफैक्ट; README, संस्करण इतिहास और लेखक के लिंक यहां दिखाई दे रहे हैं।





