SSO मॉड्यूल 2 - स्मार्ट कॉन्ट्रैक्ट कमज़ोरियाँ: रीएंट्रेंसी हमलों की गहन जाँच
स्मार्ट कॉन्ट्रैक्ट पारदर्शिता देते हैं, लेकिन जोखिम भी उठाते हैं। यह लेख रीएंट्रेंसी जैसी कमज़ोरियों को उजागर करता है, जिसमें DAO का $150M का नुकसान एक उदाहरण है। इंटीजर ओवरफ़्लो के कारण BeautyChain को $900M का नुकसान हुआ। एक्सेस कंट्रोल की खामियों के कारण DAOMaker को $4M का नुकसान हुआ। फ़्लैशलोन हमलों में Harves Finance को $38M का नुकसान हुआ।
द्वारा Markos Mebellis

इस पेज पर
स्मार्ट कॉन्ट्रैक्ट अपनी दक्षता, पारदर्शिता और अपरिवर्तनीय विशेषताओं के साथ वैश्विक उद्योगों में क्रांति ला रहे हैं। फिर भी, उनका खुला और स्वचालित डिज़ाइन उन्हें जोखिमों के प्रति भी उजागर करता है। उनकी क्षमता को अधिकतम करते हुए खतरों को कम करने के लिए, उनकी कमज़ोरियों और संभावित हमले के रास्तों को समझना आवश्यक है। इन कॉन्ट्रैक्ट को बनाने और बनाए रखने के लिए सावधानीपूर्वक ध्यान और सर्वोत्तम प्रथाओं का पालन आवश्यक है। यह लेख सामान्य कमज़ोरियों की गहराई से जाँच करता है और समझ बढ़ाने के लिए उन्हें वास्तविक दुनिया के उदाहरणों से समझाता है। आइए Salus Security द्वारा प्रदान किए गए निम्नलिखित लेख को देखें।
मुख्य कमज़ोरियाँ:
**रीएंट्रेंसी:** यहाँ, हमलावर एक खाई का फ़ायदा उठाते हैं और मुख्य कार्यों के पूरा होने या मानों के अपडेट होने से पहले फ़ंक्शन में फिर से प्रवेश करते हैं।
एकल-फ़ंक्शन रीएंट्रेंसी: यह तब होता है जब कोई कॉन्ट्रैक्ट किसी दुर्भावनापूर्ण कॉन्ट्रैक्ट के साथ इंटरैक्ट करता है, जिससे बाद वाले को किसी फ़ंक्शन में फिर से प्रवेश करने की अनुमति मिलती है। उदाहरण के लिए, दुर्भावनापूर्ण कॉन्ट्रैक्ट 'withdrawBalance' फ़ंक्शन में लगातार फिर से प्रवेश कर सकते हैं और बैलेंस अपडेट होने से पहले अधिक ether निकाल सकते हैं।
उल्लेखनीय हमले:
- The DAO (2016): $150 million जुटाने के बाद, कोडिंग कमज़ोरियों के कारण इसे हैक कर लिया गया। इससे Ethereum नेटवर्क में विभाजन हुआ।
- PolyDex (2021): PLX Locker Smart Contract पर reentrancy हमले के कारण $500k का नुकसान हुआ।
- Bacon Protocol (2022): lend() फ़ंक्शन में reentrancy बग के कारण $1M का नुकसान हुआ।
- Lendf.Me (2020): कई क्रिप्टोकरेंसी में लगभग $24.7 मिलियन का नुकसान हुआ।
**क्रॉस-फंक्शन रीएंट्रेंसी:** विभिन्न फंक्शन्स के बीच साझा स्टेट्स और कमजोर रीएंट्री सुरक्षा से उत्पन्न होती है। ऊपर दिया गया 'balances' उदाहरण दर्शाता है कि 'withdrawAll' में सुरक्षा होने के बावजूद, हमलावर अभी भी 'transfer' फंक्शन का शोषण कर सकते हैं।
कुख्यात घटनाएँ:
- DFX Finance (2022): रीएंट्रेंसी सुरक्षा के बिना एक फंक्शन का शोषण करने वाले हमले के कारण $7 मिलियन से अधिक का नुकसान हुआ।
- Hundred Finance (2022): borrowFresh फंक्शन का शोषण करने वाले रीएंट्रेंसी हमले के बाद लगभग $6.5 मिलियन का नुकसान हुआ।
- Fei Protocol (2022): Reentrancy दोष का उपयोग करते हुए एक हमले में लगभग $80 मिलियन का नुकसान हुआ।
**Cross-Contract Reentrancy:** विभिन्न कॉन्ट्रैक्ट्स में साझा स्टेट्स और गलत वेरिएबल संशोधन क्रम से होता है। भले ही फ़ंक्शन्स में सुरक्षा हो, अन्य फ़ंक्शन्स, जैसे 'burnAccount', का अभी भी शोषण किया जा सकता है।
प्रमुख हमले:
- Rari Capital (2021): एक घंटे से कम समय में लगभग $10 मिलियन (~2600 ETH) का नुकसान हुआ।
- ValueDefi (2021): बाहरी डेटा पर निर्भर अमान्य शेयर गणनाओं के कारण 5345.314 WBNB का नुकसान हुआ।
Read-Only Reentrancy:
Read-only reentrancy एक ऐसे फ़ंक्शन का फ़ायदा उठाती है, जो कॉन्ट्रैक्ट की स्थिति न बदलते हुए भी, स्थिति के असंगत होने पर गलत आउटपुट दे सकता है।
उल्लेखनीय हमले:
- QuickSwap (2022): हमलावरों ने फ़्लैश लोन का दुरुपयोग करके एसेट की स्पॉट कीमत में बदलाव किया और 138 ETH तथा 700 MATIC टोकन हड़प लिए। यह Curve LP oracle में एक खामी के कारण संभव हुआ।
- dForce (2023): Arbitrum और Optimism चेन पर Curve Finance के साथ प्राइस oracles को एक्सेस करने वाले कोड में read-only reentrancy बग था।
- Sentimente (2023): read-only reentrancy खामी का फ़ायदा उठाने वाले एक हमले के कारण $1 million की चोरी हुई। सौभाग्य से, अपराधी ने 90% लौटा दिया।
- Sturdy (2023): Balancer की read-only reentrancy समस्या के कारण लगभग 442 ETH का नुकसान हुआ, जिसमें B-stETH-STABLE की कीमत में छेड़छाड़ की गई।
Reentrancy Vulnerability की रोकथाम:
- हमेशा check-effect-interaction पैटर्न का पालन करें।
- सभी संवेदनशील कार्यों के लिए पुनः-प्रवेश सुरक्षा लागू करें।
- हर बाहरी कॉल को सावधानी से संभालें।
इंटीजर ओवरफ़्लो:
जब गणनाएँ सीमाओं से अधिक हो जाती हैं, तो वे ओवरफ़्लो हो जाती हैं, जिससे अक्सर या तो अत्यंत छोटे या विशाल मान उत्पन्न होते हैं।
उदाहरणात्मक हमले:
- BeautyChain (2018): हमलावरों ने integer overflow के ज़रिए 10^58 BEC हासिल किए और चौंकाने वाले $900 million बेच दिए।
- Poolz (2023): इससे Ethereum, Binance और Polygon की on-chain पर लगभग $665,000 का नुकसान हुआ।
Integer Overflow के उपाय:
- safeMath लाइब्रेरी जैसी सुरक्षित गणना विधियों का उपयोग करें।
- परिणाम सीमा के भीतर रहें, यह सुनिश्चित करने के लिए bounds checking को प्राथमिकता दें।
- अंतर्निहित ओवरफ़्लो डिटेक्शन के लिए solidity कंपाइलर संस्करण 0.8.0 या उससे बाद का उपयोग करें।
एक्सेस कंट्रोल:
एक्सेस कंट्रोल कमज़ोरियाँ महत्वपूर्ण ऑपरेशन संभालने वाले फ़ंक्शन्स पर सख्त एक्सेस प्रतिबंधों की अनुपस्थिति से उत्पन्न होती हैं।
- प्रमुख हमले:
- DAOMaker (2021): लगभग ~$4M की भारी रकम तब निकाल ली गई जब
initफ़ंक्शन कमज़ोर छोड़ दिया गया था। - GymNetwork (2022): हमलावरों ने depositFromOtherContract() में एक प्रमाणीकरण चूक का फायदा उठाया, जिससे बिना किसी वास्तविक भुगतान के अवैध बैलेंस वृद्धि संभव हो गई। नुकसान? लगभग 2,475.91 WBNB।
- Tempdao (2023): migrateStake फ़ंक्शन के लिए एक्सेस कंट्रोल में ढीले दृष्टिकोण के कारण $2.34 मिलियन से अधिक का नुकसान हुआ।
एक्सेस कंट्रोल भेद्यता
- विवरण: किसी सिस्टम के भीतर विशिष्ट ऑपरेशनों तक पहुंच और विशेषाधिकारों को नियंत्रित करने वाले अपर्याप्त प्रतिबंध तंत्र के कारण उत्पन्न होने वाली भेद्यताएं।
रोकथाम के उपाय:
- सख्त अनुमति जांच: फ़ंक्शन्स के लिए हमेशा सख़्त अनुमति प्रोटोकॉल लागू करें, विशेष रूप से वे जो संवेदनशील कार्यों को संभालते हैं।
- मल्टी-सिग्नेचर तंत्र: जिन कार्यों में संयुक्त निर्णय लेने की आवश्यकता होती है, उनके लिए मल्टी-सिग्नेचर प्रोटोकॉल का उपयोग करें जिनमें संवेदनशील कार्यों को निष्पादित करने से पहले कई अनुमतियाँ आवश्यक होती हैं।
सामान्य हमले के तरीके
- विवरण: विभिन्न तरीके या माध्यम जिनसे हमलावर किसी सिस्टम की कमज़ोरियों का फायदा उठाते हैं, मुख्य रूप से स्मार्ट कॉन्ट्रैक्ट्स में।
उल्लेखनीय उदाहरण:
- FlashLoan हमले: विकेंद्रीकृत वित्त प्रणालियों की तत्काल उधार सुविधा का दुरुपयोग करके दुर्भावनापूर्ण गतिविधियाँ अंजाम देता है।
- फ्रंट-रनिंग: हमलावर किसी अन्य उपयोगकर्ता के लंबित लेनदेन की जानकारी प्राप्त करते हैं और अधिक gas शुल्क देकर उस पर कार्य करते हैं।
FlashLoan हमला
- विवरण: हालांकि यह स्वभाव से कोई हमला नहीं है, FlashLoan एक DeFi सुविधा है जो उपयोगकर्ताओं को बिना जमानत के तुरंत बड़ी रकम उधार लेने देती है। कॉन्ट्रैक्ट इंटरैक्शन और संबंधों में तार्किक खामियों के कारण इसका दुरुपयोग किया गया है।
उल्लेखनीय हमले:
- Harves Finance (2020.10.26): इसके परिणामस्वरूप $38 मिलियन का नुकसान हुआ।
- InverseFinance (2022.6.16): इससे 53.2445 WBTC और 99,976.29 USDT का नुकसान हुआ।
- NewFreeDAO (2022.9.8): 4,481 WBNB निकाले गए, जो लगभग $1.25 मिलियन के बराबर है।
- Lodestar (2022.12.11): ऑरेकल मूल्य हेरफेर के माध्यम से शोषण किया गया।
- 0vix (2023.4.28): इसके परिणामस्वरूप Polygon चेन पर $2 मिलियन का नुकसान हुआ।
रोकथाम संबंधी सिफ़ारिशें:
- प्रोजेक्ट विकास के दौरान Flashloan की विशेषताओं को पहचानें।
- सटीक मूल्य निर्धारण के लिए, समय-भारित औसत या कई ऑरेकल का उपयोग करें।
फ्रंट-रनिंग
- विवरण: एक हमलावर memPool से किसी अन्य उपयोगकर्ता के लेन-देन की जानकारी प्राप्त करता है और अधिक गैस शुल्क देकर उसका लाभ उठाता है।
उल्लेखनीय हमले:
- Sushi Badger Digg (2021.1.25): इसके परिणामस्वरूप 81.68 ETH का नुकसान हुआ।
- Sushiswap Ape-ETH pool (2022.5.17): हमलावर ने लगभग 0.3 ETH का लाभ कमाया।
- Uniswap (2023.4.2): सैंडविच अटैक के ज़रिए लगभग $25 मिलियन का नुकसान हुआ।
रोकथाम के सुझाव:
- ट्रेडिंग करते समय स्लिपेज प्रोटेक्शन का इस्तेमाल करें।
- गैर-पीक घंटों में ट्रेड निष्पादित करें, खासकर अस्थिर बाज़ारों में।
- 1inch के FlashBot rpc का उपयोग करके ट्रेड सीधे माइनर्स को भेजें, जिससे memPool को बायपास किया जा सके।
सारांश
बधाई हो! आपने Module 2 - Smart Contract Vulnerabilities: A Deep Dive into Reentrancy Attacks and Common Exploits पूरा कर लिया है
आइए आपकी सीखों की समीक्षा करें:
रीएंट्रेंसी कमज़ोरियाँ - हमलावर खामियों का फ़ायदा उठाते हैं और फ़ंक्शन पूरी तरह पूरे होने से पहले उनमें फिर से प्रवेश करते हैं।
- सिंगल-फ़ंक्शन रीएंट्रेंसी: एक दुर्भावनापूर्ण कॉन्ट्रैक्ट किसी दूसरे कॉन्ट्रैक्ट के फ़ंक्शन में फिर से प्रवेश करता है।
- क्रॉस-फ़ंक्शन रीएंट्रेंसी: कमज़ोर पुनःप्रवेश सुरक्षा के कारण विभिन्न फ़ंक्शनों के बीच साझा स्थितियों का फ़ायदा उठाया जाता है।
- क्रॉस-कॉन्ट्रैक्ट रीएंट्रेंसी: विभिन्न कॉन्ट्रैक्ट्स में साझा स्टेट्स का शोषण करता है।
- रीड-ओनली रीएंट्रेंसी: जब स्टेट सुसंगत न हो तो गलत आउटपुट देने वाले फ़ंक्शन का शोषण करता है।
इंटीजर ओवरफ़्लो - निर्धारित सीमाओं से अधिक गणनाएँ, जिससे चरम मान उत्पन्न होते हैं।
एक्सेस कंट्रोल कमज़ोरियाँ - आवश्यक फ़ंक्शन्स पर सख्त एक्सेस प्रतिबंधों की अनुपस्थिति से उत्पन्न होती हैं।
सामान्य हमला वेक्टर - हमलावरों द्वारा सिस्टम की कमज़ोरियों का शोषण करने के तरीके।
**FlashLoan Attack **- एक DeFi सुविधा जो बिना गारंटी के तुरंत बड़ी उधारी की अनुमति देती है, लेकिन तार्किक खामियों के कारण इसका शोषण किया जाता है।
फ्रंट-रनिंग अटैक- हमलावर लंबित लेनदेन की जानकारी प्राप्त करते हैं और अधिक gas शुल्क देकर लाभ उठाते हैं।
यह लेख आपके लिए प्रस्तुत किया गया है:
