ब्लग

स्वचालित रूपमा अनुवाद गरिएको · अंग्रेजीमा पढ्नुहोस्

SSO मोड्युल २ - स्मार्ट कन्ट्र्याक्ट जोखिमहरू: रिएन्ट्रेन्सी आक्रमणहरूको गहिरो अध्ययन

स्मार्ट कन्ट्र्याक्टहरूले पारदर्शिता प्रदान गर्छन् तर जोखिम पनि बोक्छन्। यो लेखले रिएन्ट्रेन्सी जस्ता जोखिमहरू उजागर गर्छ, जसमा DAO को $150M घाटा एउटा उदाहरण हो। इन्टिजर ओभरफ्लोले BeautyChain को $900M क्षतिको कारण बन्यो। DAOMaker ले एक्सेस कन्ट्रोल त्रुटिका कारण $4M गुमायो। फ्ल्यासलोन आक्रमणमा Harves Finance ले $38M गुमायो।

द्वारा Markos Mebellis

SSO मोड्युल २ - स्मार्ट कन्ट्र्याक्ट जोखिमहरू: रिएन्ट्रेन्सी आक्रमणहरूको गहिरो अध्ययन
यो पृष्ठमा

स्मार्ट कन्ट्र्याक्टहरूले आफ्नो दक्षता, पारदर्शिता र अपरिवर्तनीय विशेषताहरूका साथ विश्वव्यापी उद्योगहरूमा क्रान्ति ल्याइरहेका छन्। तैपनि, तिनीहरूको खुला र स्वचालित डिजाइनले तिनीहरूलाई जोखिमहरूमा पनि पर्दाफास गर्छ। तिनीहरूको सम्भावनालाई अधिकतम बनाउँदै खतराहरूलाई न्यूनतम गर्न, तिनीहरूका जोखिमहरू र सम्भावित आक्रमण मार्गहरू बुझ्नु महत्त्वपूर्ण छ। यी कन्ट्र्याक्टहरू निर्माण र मर्मत गर्न सावधानीपूर्ण ध्यान र उत्तम अभ्यासहरूको पालना आवश्यक छ। यो लेखले सामान्य जोखिमहरूमा गहिरो अध्ययन गर्दै बुझाइ बढाउन वास्तविक-विश्वका उदाहरणहरूसँग चित्रण गर्छ। Salus Security को सौजन्यमा रहेको निम्न लेख हेरौं।

मुख्य जोखिमहरू:

**रिएन्ट्रेन्सी:** यहाँ आक्रमणकारीहरूले मुख्य कार्यहरू पूरा हुनु वा मानहरू अद्यावधिक हुनुअघि फङ्सनहरूमा पुनः प्रवेश गर्दै एउटा खाडलको शोषण गर्छन्।

एकल-फङ्सन रिएन्ट्रेन्सी: यो तब हुन्छ जब एउटा कन्ट्र्याक्टले दुर्भावनापूर्ण कन्ट्र्याक्टसँग अन्तरक्रिया गर्छ, जसले पछिल्लालाई फङ्सनमा पुनः प्रवेश गर्न अनुमति दिन्छ। उदाहरणका लागि, दुर्भावनापूर्ण कन्ट्र्याक्टहरूले 'withdrawBalance' फङ्सनमा लगातार पुनः प्रवेश गर्दै ब्यालेन्सहरू अद्यावधिक हुनुअघि थप इथर तान्न सक्छन्।

उल्लेखनीय आक्रमणहरू:

  • The DAO (२०१६): $150 मिलियन संकलन गरेपछि, कोडिङ कमजोरीका कारण यसमा ह्याक भयो। यसले Ethereum नेटवर्कमा विभाजन ल्यायो।
  • PolyDex (२०२१): PLX Locker Smart Contract मा reentrancy आक्रमणका कारण $500k गुमायो।
  • Bacon Protocol (२०२२): lend() function मा reentrancy बगका कारण $1M घाटा भोग्यो।
  • Lendf.Me (२०२०): विभिन्न क्रिप्टोकरेन्सीहरूमा करिब $24.7 मिलियन गुमायो।

**क्रस-फंक्शन रिएन्ट्रेन्सी:** विभिन्न फंक्शनहरूबीचको साझा स्टेट र कमजोर पुनःप्रवेश सुरक्षाबाट उत्पन्न हुन्छ। माथिको 'balances' उदाहरणले देखाउँछ कि 'withdrawAll' मा सुरक्षा भए पनि आक्रमणकारीहरूले 'transfer' फंक्शनको दुरुपयोग गर्न सक्छन्।

कुख्यात घटनाहरू:

  • DFX Finance (2022): पुनःप्रवेश सुरक्षा नभएको फंक्शनको दुरुपयोग गर्ने आक्रमणका कारण $7 मिलियनभन्दा बढी गुमायो।
  • Hundred Finance (2022): रिएन्ट्रेन्सी आक्रमणले borrowFresh फंक्शनको दुरुपयोग गरेपछि करिब $6.5 मिलियन गुमायो।
  • Fei Protocol (2022): रीएन्ट्रेन्सी त्रुटिको दुरुपयोग गर्ने आक्रमणबाट करिब $८० मिलियन गुमाइयो।

**क्रस-कन्ट्र्याक्ट रीएन्ट्रेन्सी:** विभिन्न कन्ट्र्याक्टहरूमा साझा गरिएका अवस्थाहरू र गलत भेरिएबल परिमार्जन क्रमबाट उत्पन्न हुन्छ। फङ्सनहरूमा सुरक्षा भए पनि 'burnAccount' जस्ता अन्य फङ्सनहरूको दुरुपयोग गर्न सकिन्छ।

प्रमुख आक्रमणहरू:

  • Rari Capital (२०२१): एक घण्टाभन्दा कम समयमा करिब $१० मिलियन (~२६०० ETH) गुमाइयो।
  • ValueDefi (२०२१): बाह्य डेटामा निर्भर अवैध सेयर गणनाका कारण ५३४५.३१४ WBNB गुमाइयो।

रिड-ओन्ली रीएन्ट्रेन्सी:

Read-only reentrancy ले एउटा यस्तो फंक्शनको दुरुपयोग गर्छ, जसले कन्ट्र्याक्टको स्थिति नबदले पनि स्थिति सुसंगत नहुँदा गलत आउटपुट दिन सक्छ।

उल्लेखनीय आक्रमणहरू:

  • QuickSwap (2022): दुरुपयोगकर्ताहरूले फ्ल्यास लोनको दुरुपयोग गरी सम्पत्तिको स्पट मूल्य परिवर्तन गरेर 138 ETH र 700 MATIC टोकन ठगी गरे। Curve LP oracle मा रहेको त्रुटिका कारण यो सम्भव भयो।
  • dForce (2023): Arbitrum र Optimism चेनहरूमा Curve Finance सँग मूल्य oracle पहुँच गर्ने कोडमा read-only reentrancy बग थियो।
  • Sentimente (2023): read-only reentrancy त्रुटिको दुरुपयोग गर्ने आक्रमणले $1 मिलियनको चोरी गर्‍यो। सौभाग्यवश, 90% रकम अपराधीले फिर्ता गर्‍यो।
  • Sturdy (2023): Balancer को read-only reentrancy समस्याका कारण लगभग 442 ETH गुम्यो, जहाँ B-stETH-STABLE को मूल्यमा हेरफेर भयो।

Reentrancy जोखिम रोकथाम:

  1. सधैं check-effect-interaction ढाँचाको पालना गर्नुहोस्।
  2. सबै संवेदनशील कार्यहरूका लागि re-entry सुरक्षा प्रयोग गर्नुहोस्।
  3. हरेक बाह्य कललाई सावधानीपूर्वक व्यवस्थापन गर्नुहोस्।

Integer Overflow:

जब गणनाहरू सीमा नाघ्छन्, तिनीहरू overflow हुन्छन्, जसले प्रायः अत्यन्त सानो वा विशाल मानहरू निम्त्याउँछ।

उदाहरणात्मक आक्रमणहरू:

  • BeautyChain (2018): आक्रमणकारीहरूले इन्टिजर ओभरफ्लोमार्फत 10^58 BEC हात पारे, जसले $900 मिलियनको ठूलो क्षति पुर्‍यायो।
  • Poolz (2023): Ethereum, Binance र Polygon को अन-चेनमा करिब $665,000 को क्षति भयो।

इन्टिजर ओभरफ्लोका प्रतिरोधात्मक उपायहरू:

  1. safeMath लाइब्रेरीजस्ता सुरक्षित गणना विधिहरू प्रयोग गर्नुहोस्।
  2. नतिजाहरू दायराभित्रै रहने सुनिश्चित गर्न बाउन्ड्स चेकिङलाई प्राथमिकता दिनुहोस्।
  3. अन्तर्निहित ओभरफ्लो पत्ता लगाउनका लागि solidity कम्पाइलर संस्करण 0.8.0 वा त्यसपछिको प्रयोग गर्नुहोस्।

पहुँच नियन्त्रण:
महत्त्वपूर्ण कार्यहरू सम्हाल्ने फङ्सनहरूमा कडा पहुँच प्रतिबन्धहरूको अभावका कारण पहुँच नियन्त्रणका जोखिमहरू उत्पन्न हुन्छन्।

  • प्रमुख आक्रमणहरू:
  • DAOMaker (2021): फङ्सन जोखिमपूर्ण रूपमा छाडिएपछि झन्डै $4M ठूलो मात्रामा अपचलन गरियो। init फङ्सन जोखिमपूर्ण रूपमा छाडियो।
  • GymNetwork (2022): शोषकहरूले depositFromOtherContract() मा प्रमाणीकरणको लापरवाहीको फाइदा उठाए, जसले वास्तविक भुक्तानी बिनै अवैध रूपमा ब्यालेन्स बढाउन सहयोग गर्‍यो। नोक्सानी? करिब 2,475.91 WBNB।
  • Tempdao (2023): migrateStake फंक्शनको पहुँच नियन्त्रणमा ढिलो दृष्टिकोणले $2.34 मिलियनभन्दा बढीको नोक्सानी निम्त्यायो।

पहुँच नियन्त्रण कमजोरी

  • विवरण: प्रणालीभित्रका विशिष्ट कार्यहरूमा पहुँच र विशेषाधिकार नियन्त्रण गर्ने अपर्याप्त प्रतिबन्ध संयन्त्रका कारण उत्पन्न हुने कमजोरीहरू।

रोकथाम उपायहरू:

  1. कडा अनुमति जाँच: कार्यहरूका लागि सधैं कडा अनुमति प्रोटोकलहरू लागू गर्नुहोस्, विशेष गरी ती जसले संवेदनशील कार्यहरू ह्यान्डल गर्छन्।
  2. बहु-हस्ताक्षर संयन्त्र: संयुक्त निर्णय आवश्यक पर्ने कार्यहरूका लागि बहु-हस्ताक्षर प्रोटोकलहरू प्रयोग गर्नुहोस् जसका लागि संवेदनशील कार्यहरू कार्यान्वयन गर्नुअघि धेरै स्वीकृतिहरू आवश्यक हुन्छन्।

सामान्य आक्रमण मार्गहरू

  • विवरण: विभिन्न विधि वा माध्यम जसद्वारा आक्रमणकारीहरूले प्रणालीमा रहेका कमजोरीहरूको दुरुपयोग गर्छन्, मुख्यतया स्मार्ट कन्ट्र्याक्टहरूमा।

उल्लेखनीय उदाहरणहरू:

  • फ्ल्यास लोन आक्रमणहरू: दुर्भावनापूर्ण गतिविधिहरू सम्पादन गर्न विकेन्द्रीकृत वित्त प्रणालीहरूको तत्काल ऋण लिने सुविधाको दुरुपयोग गर्छ।
  • फ्रन्ट-रनिङ: आक्रमणकारीहरूले अर्को प्रयोगकर्ताको पेन्डिङ लेनदेनको जानकारी पाउँछन् र उच्च ग्यास शुल्क प्रस्ताव गरेर त्यसमा कार्य गर्छन्।

फ्ल्यास लोन आक्रमण

  • विवरण: स्वभावैले आक्रमण नभए पनि, FlashLoan एउटा DeFi सुविधा हो जसले प्रयोगकर्ताहरूलाई धितो बिना नै तत्काल ठूलो रकम ऋण लिन दिन्छ। सम्झौता अन्तरक्रिया र सम्बन्धहरूमा रहेका तार्किक त्रुटिहरूका कारण यसको दुरुपयोग गरिएको छ।

उल्लेखनीय आक्रमणहरू:

  1. Harves Finance (2020.10.26): यसबाट $38 मिलियनको घाटा भयो।
  2. InverseFinance (2022.6.16): यसले 53.2445 WBTC र 99,976.29 USDT को घाटा निम्त्यायो।
  3. NewFreeDAO (2022.9.8): ४,४८१ WBNB निकालियो, जुन करिब $१.२५ मिलियन बराबर हो।
  4. Lodestar (२०२२.१२.११): ओराकल मूल्य हेरफेरमार्फत शोषण गरियो।
  5. 0vix (२०२३.४.२८): Polygon चेनमा $२ मिलियनको क्षति भयो।

रोकथामका सिफारिसहरू:

  1. परियोजना विकासका क्रममा Flashloan का विशेषताहरू पहिचान गर्नुहोस्।
  2. सटीक मूल्य निर्धारणका लागि समय-भारित औसत वा धेरै ओराकलहरू प्रयोग गर्नुहोस्।

फ्रन्ट-रनिङ

  • विवरण: आक्रमणकारीले memPool बाट अर्को प्रयोगकर्ताको लेनदेनको जानकारी पाउँछ र उच्च ग्यास शुल्क प्रस्ताव गरेर त्यसको फाइदा उठाउँछ।

उल्लेखनीय आक्रमणहरू:

  1. Sushi Badger Digg (2021.1.25): 81.68 ETH को क्षतिमा परिणत भयो।
  2. Sushiswap Ape-ETH पूल (2022.5.17): आक्रमणकारीले लगभग 0.3 ETH नाफा कमायो।
  3. Uniswap (2023.4.2): स्यान्डविच आक्रमणमार्फत करिब २५ मिलियन डलरको हानि भयो।

रोकथामका सिफारिसहरू:

  1. ट्रेडिङ गर्दा स्लिपेज सुरक्षा प्रयोग गर्नुहोस्।
  2. विशेष गरी अस्थिर बजारहरूमा, व्यस्त नभएका समयमा ट्रेडहरू कार्यान्वयन गर्नुहोस्।
  3. memPool बाइपास गर्दै ट्रेडहरू सिधै माइनरहरूकहाँ पठाउन 1inch को FlashBot rpc प्रयोग गर्नुहोस्।

सारांश

बधाई छ! तपाईंले मोड्युल २ - स्मार्ट कन्ट्र्याक्ट जोखिमहरू: रिएन्ट्रेन्सी आक्रमण र सामान्य शोषणहरूको गहिरो अध्ययन पूरा गर्नुभयो।

तपाईंको सिकाइको समीक्षा गरौं:

पुनःप्रवेश जोखिमहरू - आक्रमणकारीहरूले फङ्क्सनहरू पूर्ण रूपमा सम्पन्न हुनुअघि पुनःप्रवेश गर्दै खाडलहरूको दुरुपयोग गर्छन्।

  • एकल-फङ्क्सन पुनःप्रवेश: एउटा दुर्भावनापूर्ण कन्ट्रयाक्टले अर्को कन्ट्रयाक्टको फङ्क्सनमा पुनःप्रवेश गर्छ।
  • क्रस-फङ्क्सन पुनःप्रवेश: कमजोर पुनःप्रवेश सुरक्षाका कारण विभिन्न फङ्क्सनहरूबीचको साझा अवस्थाहरूको दुरुपयोग गरिन्छ।
  • क्रस-कन्ट्रयाक्ट पुनःप्रवेश: विभिन्न कन्ट्र्याक्टहरूमा साझा गरिएका स्टेटहरूको शोषण गर्छ।
  • रिड-ओन्ली रिएन्ट्रेन्सी: स्टेट सुसंगत नहुँदा त्रुटिपूर्ण आउटपुट उत्पादन गर्ने फङ्सनको शोषण गर्छ।

इन्टिजर ओभरफ्लो - निर्धारित सीमा नाघ्ने गणनाहरू, जसले चरम मानहरू उत्पन्न गर्छ।

पहुँच नियन्त्रण कमजोरीहरू - आवश्यक फङ्सनहरूमा कडा पहुँच प्रतिबन्धको अभावबाट उत्पन्न हुन्छन्।

सामान्य आक्रमण भेक्टरहरू - आक्रमणकारीहरूले प्रणालीका कमजोरीहरूको शोषण गर्ने तरिकाहरू।

**FlashLoan आक्रमण** - DeFi को एउटा सुविधा जसले धितो बिना तत्काल ठूलो ऋण लिन अनुमति दिन्छ तर तार्किक त्रुटिहरूका कारण यसको दुरुपयोग हुन्छ।

फ्रन्ट-रनिङ आक्रमण- आक्रमणकारीहरूले पेन्डिङ कारोबारहरूको जानकारी पाउँछन् र उच्च ग्यास शुल्क प्रस्ताव गरेर फाइदा उठाउँछन्।

यो लेख तपाईंका लागि प्रस्तुत गरिएको हो:

सारांश — चित्रण