Reentrancy Detection in the Age of LLMs
यह शोध पत्र दो नए बेंचमार्क का उपयोग करके आधुनिक सॉलिडिटी (Solidity) 0.8+ स्मार्ट कॉन्ट्रैक्ट्स में रीएंट्रेंसी (reentrancy) कमजोरियों का पता लगाने में पारंपरिक स्टैटिक एनालाइजर्स, मशीन लर्निंग मॉडल और लार्ज लैंग्वेज मॉडल्स की प्रभावशीलता का मूल्यांकन करता है, जो यह प्रकट करता है कि अग्रणी एलएलएम (LLMs) मौजूदा उपकरणों की तुलना में काफी बेहतर प्रदर्शन करते हैं और वर्तमान डिटेक्शन मजबूती में महत्वपूर्ण अंतराल को उजागर करते हैं।
मूल पेपर CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) के तहत लाइसेंस किया गया है। नीचे दिए गए पेपर की यह व्याख्या AI से तैयार की गई है। इसे लेखकों ने न तो लिखा है, न इसका समर्थन किया है। तकनीकी सटीकता के लिए मूल पेपर देखें। पूरा डिस्क्लेमर पढ़ें
कल्पना कीजिए कि एथेरियम स्मार्ट कॉन्ट्रैक्ट्स की दुनिया एक विशाल, उच्च-दांव वाले डिजिटल बैंक की तरह है। इस बैंक में, नियम कोड (Solidity) में लिखे गए हैं, और एक बार जब दरवाजे बंद हो जाते हैं, तो उन्हें आसानी से बदला नहीं जा सकता।
इस बैंक को लूटने के सबसे खतरनाक तरीकों में से एक है एक चाल जिसे Reentrancy कहा जाता है।
"डबल-डिपिंग" की डकैती
समस्या को समझने के लिए, कल्पना कीजिए कि एक बैंक में एक टेलर (कैशियर) है जो एक सख्त नियम का पालन करता है: "पहले बैलेंस चेक करो, फिर तुम्हें कैश दो, फिर तुम्हारा अकाउंट अपडेट करो।"
एक चालाक चोर (हैकर) आता है और पैसे निकालने की मांग करता है।
- टेलर बैलेंस चेक करता है: $100।
- टेलर कैश थमा देता है: $100।
- इससे पहले कि टेलर लेजर (बहीखाता) को अपडेट करे कि "बैलेंस अब $0 है," चोर एक जादू करता है। वह तुरंत टेलर से और पैसे माँगता है।
- क्योंकि लेजर अभी तक अपडेट नहीं हुआ है, टेलर अभी भी सोचता है कि चोर के पास 100 थमा देता है।
- चोर इस लूप को तब तक दोहराता रहता है जब तक कि बैंक खाली न हो जाए, और फिर टेलर आखिरकार लेजर को $0 पर अपडेट करता है।
यही Reentrancy है: चोर पहली ट्रांजेक्शन पूरी होने से पहले ही बैंक के लॉजिक में "पुनः प्रवेश" (re-enter) कर जाता है, जिससे सिस्टम को यह धोखा मिलता है कि कुछ भी बदला नहीं है।
समस्या: पुराने सुरक्षा गार्ड
वर्षों से, हमारे पास "सुरक्षा गार्ड" (सॉफ्टवेयर टूल्स) हैं जिन्हें इन चोरों को पकड़ने के लिए बनाया गया है। ये गार्ड कोड को देखते हैं और चिल्लाते हैं, "रुको! आप कैश देने के बाद बैलेंस अपडेट कर रहे हैं! यह एक रीएंट्रेंसी जाल है!"
हालाँकि, इस शोध पत्र के लेखकों ने एक डरावनी समस्या की खोज की है: सुरक्षा गार्ड पुराने, टूटे हुए और भ्रमित हैं।
- भाषा बदल गई: जिस "भाषा" का बैंक उपयोग करता है (Solidity), वह विकसित हो गई है। यह ऐसा है जैसे बैंक ने अंग्रेजी से एक नई, जटिल बोली में स्विच कर लिया हो। पुराने गार्ड केवल पुरानी बोली समझते हैं। जब वे नए कोड को देखते हैं, तो वे या तो क्रैश हो जाते हैं, फ्रीज हो जाते हैं, या बस खतरे को अनदेखा कर देते हैं।
- वे असहमत हैं: यदि आप 12 अलग-अलग गार्डों से एक ही तिजोरी की जांच करने के लिए कहें, तो उनमें से 11 कह सकते हैं "सुरक्षित," जबकि 12वां कहेगा "खतरनाक।" वे अब इस बात पर भी सहमत नहीं हो पाते कि एक "खतरनाक" पैटर्न कैसा दिखता है।
- ट्रेनिंग डेटा कचरा है: मशीन लर्निंग गार्ड (AI) को पुराने, टूटे हुए गार्डों द्वारा प्रशिक्षित किया गया था। इसलिए, उन्होंने गलत नियम सीखे। यह एक छात्र को 1990 की टेक्स्टबुक से पढ़ाने जैसा है जो आज की 2025 की तकनीक वाली दुनिया के बारे में है।
प्रयोग: एक नया स्ट्रेस टेस्ट
शोधकर्ताओं ने इसे ठीक करने के लिए गार्डों को टेस्ट करने के लिए दो नए "प्रशिक्षण मैदान" बनाए:
- "असली दुनिया" का वॉल्ट (एग्रीगेटेड बेंचमार्क): उन्होंने इंटरनेट से 432 वास्तविक कॉन्ट्रैक्ट्स लिए और मानव विशेषज्ञों से मैन्युअल रूप से उनकी जांच करवाई कि वे वास्तव में सुरक्षित थे या खतरनाक। यह "गोल्ड स्टैंडर्ड" था।
- "ट्रैप रूम" (रीएंट्रेंसी सिनेरियो डेटासेट): उन्होंने 143 छोटे, सटीक उदाहरण बनाए कि हर संभव तरीके से एक चोर कैसे "डबल-डिप" करने की कोशिश कर सकता है। कुछ जाल स्पष्ट थे; अन्य जटिल कोड ट्रिक्स के पीछे छिपे थे, जैसे कि "म्यूटेक्स" (डिजिटल लॉक) का उपयोग करना या लूप के अंदर ट्रिक को छिपाना।
परिणाम: पुराने गार्ड बनाम नया AI
उन्होंने तीन प्रकार के रक्षकों का परीक्षण किया:
- पारंपरिक स्टैटिक एनालाइजर्स: पुराने जमाने के नियम मानने वाले गार्ड।
- मशीन लर्निंग मॉडल्स: पुराने डेटा पर प्रशिक्षित AI छात्र।
- लार्ज लैंग्वेज मॉडल्स (LLMs): नए, सुपर-स्मार्ट AI सहायक (जैसे वे जिनसे आप आज चैट करते हैं)।
परिणाम:
- पुराने गार्ड: कई पूरी तरह से विफल रहे। वे नए कोड पर चल भी नहीं सके। जो चल भी पाए, वे असंगत थे, अक्सर जाल को मिस कर देते थे या सुरक्षित कोड पर भी गलत चेतावनी दे देते थे।
- मशीन लर्निंग मॉडल्स: उन्होंने सरल कार्यों पर ठीक-ठाक प्रदर्शन किया लेकिन जब कोड जटिल हुआ या नए फीचर्स का उपयोग किया गया, तो वे संघर्ष करने लगे।
- नया AI (LLMs): वे जीत गए।
- उन्हें फिर से प्रशिक्षित करने की आवश्यकता नहीं पड़ी।
- वे नए कोड पर क्रैश नहीं हुए।
- उन्होंने केवल सिंटैक्स (syntax) नहीं, बल्कि कोड के अर्थ को समझा।
- सबसे कठिन "ट्रैप रूम" टेस्ट में, सर्वश्रेष्ठ LLM ने 82% चोरों को पकड़ा, जबकि सर्वश्रेष्ठ पुराने टूल ने केवल 76% को पकड़ा।
"अपना काम समझाएं" बोनस
सबसे दिलचस्प हिस्सा यह है: पुराने गार्ड केवल "हाँ/नहीं" का उत्तर देते हैं। यदि वे कहते हैं "खतरनाक," तो वे अक्सर यह नहीं समझा पाते कि क्यों, जिसे इंसान समझ सके।
हालाँकि, LLMs, एक जासूस की तरह काम करते हैं। जब वे किसी कॉन्ट्रैक्ट को फ्लैग करते हैं, तो वे एक स्पष्ट स्पष्टीकरण लिखते हैं: "मुझे यहाँ रीएंट्रेंसी मिली क्योंकि कोड बैलेंस अपडेट करने से पहले पैसा बांट देता है, और चोर अपडेट होने से पहले फंक्शन को दोबारा कॉल कर सकता है।"
इससे मानव शोधकर्ताओं को यह समझने में मदद मिली कि उनके अपने "गोल्ड स्टैंडर्ड" लेबल भी वास्तव में गलत थे! AI ने डेटासेट को ठीक करने में मदद की।
मुख्य निष्कर्ष
यह शोध पत्र हमें बताता है कि ब्लॉकचेन सुरक्षा की तेजी से बदलती दुनिया में, हमारे पुराने उपकरण अप्रचलित होते जा रहे हैं। वे एक ऐसे नक्शे का उपयोग करने जैसे हैं जो 1990 का है, जबकि शहर पूरी तरह से पुनर्निर्मित हो चुका है।
जबकि हम पहले कठोर, नियम-आधारित टूल्स पर भरोसा करते थे, सुरक्षा खामियों को खोजने का भविष्य स्मार्ट, अनुकूलन योग्य AI में निहित है जो कोड के इरादे को समझ सकता है, मनुष्यों को अपने तर्क की व्याख्या कर सकता है, और बिना साप्ताहिक अपडेट के भाषा परिवर्तनों के साथ तालमेल बिठा सकता है।
संक्षेप में: पुराने सुरक्षा गार्ड रिटायर हो रहे हैं। अब उन नए AI जासूसों को काम पर लगाने का समय है जो वास्तव में भविष्य की भाषा बोल सकते हैं।
अपने क्षेत्र के पेपरों की भीड़ में उलझे हुए हैं?
आपके रिसर्च कीवर्ड से मेल खाने वाले सबसे नए और अलग सोच वाले पेपरों का रोज़ाना Digest पाएँ—तकनीकी सारांश के साथ, आपकी भाषा में।