← नवीनतम पेपर
💻 computer science

Pre-Model Representation Failures in GNN-Based Smart Contract Vulnerability Detection

यह शोध पत्र GNN-आधारित स्मार्ट कॉन्ट्रैक्ट भेद्यता (vulnerability) डिटेक्टरों का एक विफलता विश्लेषण प्रस्तुत करता है, जो यह प्रकट करता है कि ग्राफ प्रतिनिधित्व परत (graph representation layer) में महत्वपूर्ण दोष—जैसे कि हार्डकोडेड वेरिएबल व्हाइटलिस्ट, संरचनात्मक अस्पष्टताएं और लुप्त सिमेंटिक नोड्स—एक ही कोड को अलग-अलग ग्राफ उत्पन्न करने और पूरी तरह से शोषण योग्य (exploitable) कॉन्ट्रैक्ट्स को सुरक्षित के रूप में गलत वर्गीकृत करने का कारण बन सकते हैं, जिससे बाद के मॉडल सुधार अप्रभावी हो जाते हैं।

मूल लेखक: Birindwa Prisca Hondi, Chinoso Philip Nwishienyi, Charity Wanja Mwaura, Alia Teto, Jema David Ndibwile

प्रकाशित 2026-08-18
📖 7 मिनट में पढ़ें🧠 गहराई से पढ़ें

मूल लेखक: Birindwa Prisca Hondi, Chinoso Philip Nwishienyi, Charity Wanja Mwaura, Alia Teto, Jema David Ndibwile

मूल पेपर CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) के तहत लाइसेंस किया गया है। नीचे दिए गए पेपर की यह व्याख्या AI से तैयार की गई है। इसे लेखकों ने न तो लिखा है, न इसका समर्थन किया है। तकनीकी सटीकता के लिए मूल पेपर देखें। पूरा डिस्क्लेमर पढ़ें

विकेंद्रीकृत वित्त (decentralized finance) की डिजिटल दुनिया में, पैसा स्व-निष्पादित कंप्यूटर प्रोग्रामों के माध्यम से चलता है जिन्हें स्मार्ट कॉन्ट्रैक्ट कहा जाता है। ये प्रोग्राम एक ब्लॉकचेन पर रहते हैं, जो एक सार्वजनिक लेजर (ledger) है जो हर लेनदेन को रिकॉर्ड करता है, और इन्हें बिना किसी मानवीय मध्यस्थ के वास्तविक संपत्तियों को संभालने के लिए डिज़ाइन किया गया है। क्योंकि ये कॉन्ट्रैक्ट मूल्यवान धन का प्रबंधन करते हैं, इसलिए एक एकल छिपी हुई खामी तत्काल और अपरिवर्तनीय चोरी का कारण बन सकती है। इससे बचने के लिए, शोधकर्ताओं ने स्वचालित प्रणालियाँ विकसित की हैं जो कोड की कमजोरियों को शोषण होने से पहले खोजने के लिए उसे स्कैन करती हैं। एक लोकप्रिय दृष्टिकोण एक प्रकार के आर्टिफिशियल इंटेलिजेंस का उपयोग करता है जिसे ग्राफ न्यूरल नेटवर्क (graph neural network) कहा जाता है। यह कैसे काम करता है इसे समझने के लिए, कल्पना करें कि आप कोड के एक जटिल टुकड़े को जुड़े हुए बिंदुओं और रेखाओं के एक मानचित्र में बदल रहे हैं, जहाँ बिंदु प्रोग्राम के हिस्सों का प्रतिनिधित्व करते हैं और रेखाएँ दिखाती हैं कि वे कैसे परस्पर क्रिया करते हैं। कंप्यूटर फिर इस मानचित्र का अध्ययन करता है ताकि यह तय किया जा सके कि प्रोग्राम सुरक्षित है या खतरनाक। उम्मीद यह है कि कोड को केवल पंक्ति दर पंक्ति पढ़ने के बजाय उसकी संरचना को देखकर, ये प्रणालियाँ उन सूक्ष्म जाल को पहचान सकेंगी जिन्हें इंसान शायद मिस कर दें।

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

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

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

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

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

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

अपने क्षेत्र के पेपरों की भीड़ में उलझे हुए हैं?

आपके रिसर्च कीवर्ड से मेल खाने वाले सबसे नए और अलग सोच वाले पेपरों का रोज़ाना Digest पाएँ—तकनीकी सारांश के साथ, आपकी भाषा में।

Digest आज़माएँ →