सप्लाई चेन पॉइज़न: जब 'npm install' आपको धोखा देता है

सारांश (Summary): आप सुरक्षित कोड लिखते हैं। आप अपने स्मार्ट कॉन्ट्रैक्ट्स का ऑडिट करते हैं। लेकिन आप एक गुप्त बैकडोर के साथ लाइब्रेरी स्थापित करते हैं। यह लेख "सप्लाई चेन हमलों" को कवर करता है, कुख्यात Ledger Connect Kit हैक का संदर्भ देता है, और बताता है कि निर्भरताओं को कैसे लॉक किया जाए।
1. अवधारणा: कुएं में जहर मिलाना
आधुनिक विकास "लेगो ईंटों" (लाइब्रेरी) पर बनाया गया है। एक सामान्य React dApp 1000 से अधिक निर्भरताओं (dependencies) का उपयोग कर सकता है।
हैकर्स जानते हैं कि वे आपको हैक नहीं कर सकते (आप पागल हैं)। इसलिए वे उन उपकरणों को हैक करते हैं जिनका आप उपयोग करते हैं।
यदि वे axios या web3.js जैसी लाइब्रेरी से समझौता करते हैं, तो नए संस्करण में अपडेट होने वाला प्रत्येक ऐप स्वचालित रूप से संक्रमित हो जाता है।

2. केस स्टडी: Ledger Connect Kit (2023)
दिसंबर 2023 में, क्रिप्टो दुनिया जम गई।
एक पूर्व लेजर (Ledger) कर्मचारी फिशिंग का शिकार हो गया। हैकर्स ने उनके NPM प्रकाशन कुंजी तक पहुंच प्राप्त की।
हमला:
- उन्होंने
@ledgerhq/connect-kitको एक दुर्भावनापूर्ण अपडेट दिया। - Sushiswap, Revoke.cash और सैकड़ों dApps वॉलेट कनेक्ट करने के लिए इस लाइब्रेरी का उपयोग करते हैं।
- परिणाम: जब उपयोगकर्ता वैध साइटों (जैसे Sushiswap) पर गए, तो एक नकली "Connect Wallet" पॉप-अप दिखाई दिया। यह Sushiswap की गलती नहीं थी - लाइब्रेरी सप्लाई चेन से दुर्भावनापूर्ण कोड लोड कर रही थी।
- पॉप-अप पर हस्ताक्षर करने वाले उपयोगकर्ताओं को खाली कर दिया गया।

3. अटैक वेक्टर: टाइपोस्क्वाटिंग (Typosquatting)
स्कैमर्स लोकप्रिय पैकेज के लगभग समान नामों वाले पैकेज प्रकाशित करते हैं।
- असली:
react-dom - नकली:
react-dom-core(याrreact-dom)
यदि आप गलती से npm install react-dom-core टाइप करते हैं, तो आप एक ऐसा पैकेज स्थापित करेंगे जो React की तरह काम करता है... लेकिन आपकी .env फ़ाइल भी चुरा लेता है।
4. अपने dApp की सुरक्षा कैसे करें
वर्जन लॉक करें (Lock Your Versions)
महत्वपूर्ण लाइब्रेरी के लिए, package.json में कभी भी कैरेट ^ या टिल्ड ~ का उपयोग न करें।
- बुरा:
"web3": "^1.9.0"(ऑटो-अपडेट 1.9.9 तक, जो संक्रमित हो सकता है)। - अच्छा:
"web3": "1.9.0"(ठीक उसी संस्करण पर रहता है जिसकी आपने समीक्षा की थी)।
npm audit और Snyk का उपयोग करें
प्रत्येक परिनियोजन (deployment) से पहले npm audit चलाएं। यह ज्ञात कमजोरियों के डेटाबेस के खिलाफ निर्भरताओं की जांच करता है।
एंटरप्राइज़-ग्रेड सुरक्षा के लिए, Snyk या Socket.dev जैसे उपकरण पैकेज के व्यवहार का विश्लेषण करते हैं (उदाहरण: "यह CSS लाइब्रेरी नेटवर्क से जुड़ने की कोशिश क्यों कर रही है?")।
चेतावनी: दुर्भावनापूर्ण पैकेज अक्सर संक्रामक साक्षात्कार स्कैम के माध्यम से नौकरी चाहने वालों और डेवलपर्स को टार्गेट करते हैं। यदि आपको संदेह है कि आपने खराब पैकेज स्थापित किया है, तो Revoke.cash के माध्यम से वॉलेट अनुमतियों की तुरंत जांच करें।
"कैनरी" परीक्षण
शुक्रवार की रात को उत्पादन (production) के लिए अपडेट पुश न करें। समुदाय को कुछ दिनों के लिए नए लाइब्रेरी संस्करणों का परीक्षण करने दें। सप्लाई चेन हमलों को आमतौर पर 24-48 घंटों के भीतर पकड़ लिया जाता है।

निष्कर्ष
Web3 में, आप अपनी परियोजना में कोड की हर पंक्ति के लिए जिम्मेदार हैं - यहां तक कि वे भी जो आपने नहीं लिखी हैं। npm update के साथ उसी सावधानी से व्यवहार करें जैसे आप वित्तीय लेनदेन के साथ करते हैं।
संबंधित लेख
द लॉन्ग कॉन (Pig Butchering): कैसे वे आपका दिल और वॉलेट चुराते हैं
'गलत नंबर' वाले टेक्स्ट से शुरू होता है। आपकी सेवानिवृत्ति (Retirement) के नुकसान के साथ समाप्त होता है। 'Pig Butchering' घोटाले की मनोवैज्ञानिक स्क्रिप्ट का विश्लेषण।
जहाँ खेलते हो वहाँ ट्रेड मत करो: आपको अलग क्रिप्टो लैपटॉप की आवश्यकता क्यों है
आपका गेमिंग पीसी छिद्रों (holes) से भरा है। आपका फोन ट्रैकर्स से भरा है। क्यों एक अलग 'बैंकिंग डिवाइस' पर $200 खर्च करना सबसे अच्छा बीमा है जो आप खरीद सकते हैं।
हिडन बैकडोर (Hidden Backdoor): आपको अनुमतियां रद्द करने की आवश्यकता क्यों है
आपने अपना वॉलेट डिस्कनेक्ट कर दिया, लेकिन हैकर अभी भी इसे खाली कर सकता है। जानें कि 'अनलिमिटेड अप्रूवल्स' कैसे काम करते हैं और डिजिटल बैकडोर को कैसे लॉक करें।
