Trending News

BTC
$23,728.59
+2.79
ETH
$1,643.84
+3.81
LTC
$100.26
+4.82
DASH
$62.89
+4.57
XMR
$178.20
+0.59
NXT
$0.00
+2.79
ETC
$22.44
+3.74

भंडारण भ्रष्टाचार बग का विश्लेषण

0


यह ब्लॉग पोस्ट पिछले सप्ताह स्टोरेज करप्शन बग की खोज के बाद हमारे निष्कर्षों पर अपडेट प्रदान करता है। संक्षेप में, बग जितना हमने शुरू में सोचा था उससे कहीं कम गंभीर था। हमें मिले प्रभावित अनुबंधों की छोटी संख्या या तो केवल स्वामी द्वारा शोषण योग्य है, या शोषण केवल उपयोगकर्ता इंटरफ़ेस में व्यवधान पैदा कर सकता है और वास्तविक अनुबंध तर्क में नहीं। हमारे द्वारा समीक्षा किए गए सभी शोषक अनुबंधों/डीएपी को अनुबंध को अपग्रेड किए बिना ही ठीक किया जा सकता है। बेशक, कृपया अभी भी सुरक्षित होने के लिए अपने अनुबंधों की जांच करें।

सॉलिडिटी कंपाइलर में स्टोरेज करप्शन बग की खोज के बाद और यह अहसास कि पहले से तैनात कॉन्ट्रैक्ट्स पर इसका गंभीर प्रभाव पड़ सकता है, जिन्हें अपडेट नहीं किया जा सकता है, हमने विश्लेषण करना शुरू किया कि बग कितना सामान्य है और कैसे शोषक अनुबंधों को संबोधित किया जा सकता है।

हमने इथरस्कैन पर प्रकाशित स्रोत कोड के साथ अनुबंधों पर ध्यान केंद्रित किया क्योंकि महत्वपूर्ण या लोकप्रिय स्मार्ट अनुबंधों में आमतौर पर उनके उपयोगकर्ताओं से विश्वास हासिल करने के लिए उनके स्रोत कोड प्रकाशित होते हैं, जो तब संकलन को सत्यापित कर सकते हैं। इसके अलावा, यदि स्रोत कोड उपलब्ध नहीं है, तो हमलावर के लिए उपयुक्त शोषण खोजना भी बहुत कठिन होता है। अंत में, अनुबंध जो निजी तौर पर उपयोग किए जाते हैं (और इस प्रकार उनके स्रोत कोड को प्रकाशित करने की आवश्यकता नहीं होती है) आमतौर पर जांचते हैं कि उन्हें एक निश्चित पते से बुलाया जाता है, और इस प्रकार एक हमलावर के पास उनके भंडारण में लिखने का कोई साधन नहीं होता है।

इथरस्कैन पर सभी अनुबंधों की जाँच की प्रक्रिया को स्वचालित करने के लिए, हमने सॉलिडिटी कंपाइलर का एक संशोधित संस्करण बनाया है जो बग को ट्रिगर करने के लिए स्वचालित रूप से स्थितियों का पता लगा सकता है। इस तकनीक ने संभावित रूप से कमजोर अनुबंधों की संख्या को पहले ही घटाकर 167 कर दिया है। फिर हमने उन अनुबंधों को भंडारण के संभावित भ्रष्टाचार के लिए मैन्युअल रूप से जांचा जो उन्हें हमलों के प्रति संवेदनशील बना देगा।

यह पता चला है कि केवल दस अनुबंध कमजोर थे, इसलिए हम अधिकांश अनुबंध मालिकों/डेवलपर्स से संपर्क करने में सक्षम थे। इनमें से दस अनुबंधों में से सात का स्वामी द्वारा केवल शोषण किया जा सकता है क्योंकि उन्हें अपनी अनुमत सीमा के बाहर कुछ मापदंडों को बदलने की अनुमति है, या पहले से बंद अनुबंध को अनलॉक करने की अनुमति है। एक अनुबंध का उपयोग विशेषाधिकार प्राप्त उपयोगकर्ताओं द्वारा किया जा सकता है, लेकिन इसके डिजाइन में अन्य प्रमुख खामियां हैं। अन्य दो अनुबंधों को विशेषाधिकार प्राप्त उपयोगकर्ताओं द्वारा शोषण योग्य पाया गया या तो शोषण करने पर कोई लाभ नहीं मिला या केवल उपयोगकर्ता इंटरफ़ेस को प्रभावित किया।

इतने कम अनुबंध ही क्यों शोषक हैं?

पहले, आइए परिभाषित करें कि “शोषणीय” से हमारा क्या मतलब है:

स्टोरेज करप्शन बग का शोषण किया जा सकता है यदि इसका उपयोग स्टोरेज में एक वेरिएबल को संशोधित करने के लिए किया जा सकता है जो बग के बिना संभव नहीं होगा, और इस संशोधन के व्यवहार और स्मार्ट अनुबंध के उपयोग के परिणाम हैं। उदाहरण के लिए, हम किसी अनुबंध को निम्नलिखित स्थितियों में शोषक नहीं मानते हैं:

  • वही खाता नियमित रूप से अनुबंध की समान स्थिति में चर को अधिलेखित करने में सक्षम होगा।
  • ओवरराइटिंग केवल निर्माण के समय ही हो सकती है (ध्यान दें कि हमने उस समय ओवरराइटिंग की जांच नहीं की थी)।
  • ओवरराइटिंग केवल असंभावित स्थितियों में शुरू होती है, जहां अनुबंध तर्क वैसे भी टूट गया था (उदाहरण के लिए, एक 32-बिट काउंटर जो प्रति ब्लॉक एक बार बढ़ता है, बहता है)।
  • वेरिएबल्स को अधिलेखित किया जा सकता है जो स्मार्ट अनुबंध में अप्रयुक्त हैं और गैर-महत्वपूर्ण दिखते हैं, लेकिन सार्वजनिक इंटरफ़ेस का हिस्सा हो सकते हैं।

यह महत्वपूर्ण बग इतने कम मामलों में ही क्यों शोषक है?

यह निम्नलिखित कारकों का एक संयोजन है जो एक साथ गुणा और नाटकीय रूप से शोषण की संभावना को कम करते हैं।

  1. चूंकि छोटे प्रकार केवल बहुत ही दुर्लभ मामलों में लाभ प्रदान करते हैं, इसलिए उनका उपयोग शायद ही कभी किया जाता है।
  2. भंडारण में छोटे प्रकार एक दूसरे के निकट होने चाहिए – उनके बीच में एक बड़ा प्रकार बग को ट्रिगर होने से रोकता है।
  3. स्टेट वेरिएबल्स को अक्सर एक के बाद एक असाइन किया जाता है, जो दूसरे असाइनमेंट में भ्रष्टाचार को दूर करता है।
  4. छोड़े गए मामलों में “पता” और “बूल” का संयोजन सबसे आम है, लेकिन यहां, पता चर अक्सर एक “स्वामी” होता है जिसे असाइन किया जाता है संदेश भेजने वाला और इस प्रकार शोषक नहीं। यहां तक ​​कि अगर मालिक को बदला जा सकता है, तो झंडा अक्सर एक झंडा होता है जिसे अभी भी मालिक द्वारा अन्य माध्यमों से सेट किया जा सकता है।

प्रभावित अनुबंधों को कैसे ठीक करें

शोषक अनुबंधों का एक बड़ा हिस्सा केवल अनुबंध मालिक, प्रशासक या डेवलपर द्वारा ही शोषण योग्य है, विशेष रूप से एक एकल फ़ंक्शन के माध्यम से जो मालिक को बदलने की अनुमति देता है। शोषण मालिक के लिए विशेषाधिकारों में और वृद्धि की अनुमति देता है। मालिक को इस शोषण का फायदा उठाने से रोकने के लिए, मालिक और प्रभावित अनुबंध के बीच एक प्रॉक्सी अनुबंध स्थापित किया जा सकता है। यह प्रॉक्सी अनुबंध स्वामी से कॉल अग्रेषित करता है, लेकिन शोषक कार्यों को कॉल करने से रोकता है। यदि शोषक कार्यों को कॉल करना अभी भी आवश्यक है, तो प्रॉक्सी अनुबंध दुर्भावनापूर्ण डेटा को अनुबंध पर अग्रेषित होने से रोक सकता है।

यदि आपके पास अपने अनुबंधों के बारे में विशिष्ट प्रश्न या चिंताएं हैं, तो कृपया हमसे संपर्क करें कर्कश.


कानूनी से एक दोस्ताना महत्वपूर्ण नोट

इस पोस्ट के बयान सॉलिडिटी कंपाइलर में स्टोरेज करप्शन बग को दूर करने के लिए सिफारिशें हैं। जैसा कि आप जानते हैं, हम एक उभरते हुए और विकसित होते तकनीकी क्षेत्र में काम कर रहे हैं। वही तत्व जो इस काम को रोमांचक बनाते हैं – नवाचार, प्रभाव, अनुबंध कैसे काम करते हैं, इसकी बढ़ती समझ – वही हैं जो इसे जोखिम भरा बनाते हैं। यदि आप इस पोस्ट में अनुशंसाओं को लागू करना चुनते हैं और भाग लेना जारी रखते हैं, तो आपको यह सुनिश्चित करना चाहिए कि आप समझते हैं कि यह आपके विशिष्ट अनुबंध को कैसे प्रभावित करता है और आपको यह समझना चाहिए कि इसमें जोखिम शामिल हैं। इन सिफारिशों को लागू करने का चयन करके, आप अकेले ही परिणामों के जोखिम को स्वीकार करते हैं।



Source link

Leave A Reply

Your email address will not be published.

Shares