Nym मिक्सनेट और वेस्टिंग अनुबंधों की सुरक्षा ऑडिट

Nym के मिक्सनेट और वेस्टिंग कॉन्ट्रैक्ट्स का सुरक्षा ऑडिट

10 मिनट पढ़ें

परिचय

दिसंबर 2022 में, नाइम ने ओक सुरक्षा द्वारा किए गए एक स्वतंत्र सुरक्षा ऑडिट का सामना किया, जो जर्मनी स्थित साइबरsecurity परामर्श फर्म है जो तीसरी पीढ़ी के ब्लॉकचेन और विकेंद्रीकृत प्रोटोकॉल का ऑडिट करने में विशेषज्ञता रखती है। कोसमॉस, टेरा, पॉलीकडॉट और फ्लो जैसे पारिस्थितिकी तंत्रों में व्यापक अनुभव के साथ, ओक सुरक्षा को निम पारिस्थितिकी तंत्र के दो महत्वपूर्ण घटकों का मूल्यांकन करने का कार्य सौंपा गया: (1) निम मिक्सनेट और वेस्टिंग अनुबंध (देखें पूर्ण रिपोर्ट) और (2) निम वॉलेट (देखें पूर्ण रिपोर्ट). ऑडिट का उद्देश्य इन घटकों की मजबूती का आकलन करना, संभावित कमजोरियों की पहचान करना और कोड विकास में सर्वोत्तम प्रथाओं के अनुपालन सुनिश्चत करना था। चीजों को पालन करना आसान बनाने के लिए, हमने प्रत्येक घटक के निष्कर्षों को तोड़ दिया है। आप Nym वॉलेट ऑडिट सारांश की जांच यहाँ कर सकते हैं।

ओक सुरक्षा द्वारा न्यिम मिक्सनेट और वेस्टिंग अनुबंधों की ऑडिट का सारांश

2 सप्ताह तक चलने वाली ऑडिट में 4 विशेषज्ञों की एक टीम शामिल थी। Nym टीम ने ओक सुरक्षा को परियोजना के कोडबेस, विस्तृत परियोजना विनिर्देशों और सहायक दस्तावेज़ों तक पूर्ण पहुँच प्रदान की। ऑडिट का दायरा अनुबंधों/मिक्सनेट, अनुबंधों/वेस्टिंग रिपॉजिटरी और इन अनुबंधों द्वारा Nym मिक्सनेट और वेस्टिंग अनुबंधों के लिए संबंधित आयातों को कवर करता है।

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

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

खोजों का अवलोकन

Nym मिश्रण नेटवर्क और निवेश अनुबंधों की विशेषता उच्च पठनीयता और स्पष्टता से थी, जिसमें उनकी विश्वसनीयता का समर्थन करने वाले मजबूत परीक्षण कवरेज शामिल थे। उनके मूल्यांकन में, लेखापरिक्षकों ने 19 निष्कर्षों की पहचान की, जिसमें 9 सुरक्षा कमजोरियां शामिल हैं - जो महत्वपूर्ण और प्रमुख गंभीरता मुद्दों को शामिल करती हैं - और 10 सामान्य कमजोरियों को मामूली या सूचनात्मक के रूप में वर्गीकृत किया गया।

Nym टीम ने सभी महत्वपूर्ण और प्रमुख मुद्दों को तेजी से संबोधित किया है। ओक सुरक्षा टीम ने हमारे सुधारों की पुष्टि और मंजूरी दी।

NYM-MIX-VEST-CONTRACT-1: एक विफल अवधि या अंतराल घटना निष्पादन स्थायी रूप से अवधि प्रगति को बाधित करता है (महत्वपूर्ण)

ऑडिट में contracts/mixnet/src/interval/transactions.rs फाइल में AdvanceCurrentEpoch मैसेज हैंडलिंग में एक सुरक्षा कमजोरी पाई गई है।एक ऐसा लूप होता है जो सभी पेंडिंग इवेंट्स को ट्रांजेक्शन के अंदर प्रोसेस करता है। अगर इनमें से कोई एक इवेंट फेल हो गया, तो पूरा ट्रांजेक्शन उलट जाएगा, जिससे एपोक और इंटरवल बढ़ना बंद हो जाएगा और प्रोटोकॉल फंस जाएगा।

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

NYM-MIX-VEST-CONTRACT-2: हमलावर अनाथ मिक्स नोड़्स को उनके सहमति के बिना परिवार में शामिल होने के लिए मजबूर कर सकते हैं ताकि उन्हें एक ही स्तर पर एक बड़े मात्रा में जोड़ा जा सके (महत्वपूर्ण)

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

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

NYM-MIX-VEST-CONTRACT-3: ट्रैकअंडेलिगेशन संदेश प्रबंधन में अनियंत्रित पुनरावृत्ति उपयोगकर्ता को अंडेलिगेट करने में असमर्थ बना सकती है, जो शाश्वत रूप से युग उन्नति को भी रोकता है (महत्वपूर्ण)

TrackUndelegation संदेश की असीमित पुनरावृत्ति अनेक प्रतिनिधित्वों वाले खातों को संभालते समय गैस का थकना पैदा कर सकती है, जिससे उपयोगकर्ता प्रतिनिधि समाप्त करने में असमर्थ हो जाते हैं। यह विफलता युग की प्रगति को भी रोक देगी, जिससे प्रोटोकॉल अपने वर्तमान स्थिति में अटका रहेगा।

समस्या को संबोधित करने के लिए, हमने प्रति खाते 25 अनुदान हस्तांतरणों की सीमा लागू की। यह समाधान उस समय देखी गई उच्चतम संचित प्रतिनिधित्वों की संख्या पर आधारित था।

अपडेट: 2024 से, वेस्टिंग प्रतिनिधित्व बनाने का विकल्प पूरी तरह से बंद है।

NYM-MIX-VEST-CONTRACT-4: एक हमलावर BondMixnodeOnBehalf और CreateFamilyOnBehalf संदेशों को आगे रख सकता है और उनके भार को संशोधित कर सकता है (महत्वपूर्ण)

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

कमजोरी को दूर करने के लिए, हमने एक द्वि-आयामी समाधान लागू किया है। पहले, हमने NYM-MIX-VEST-CONTRACT-2 में वर्णित हस्ताक्षर निर्माण परिवर्तनों को लागू किया जिसमें स्पष्ट इरादा और एक विशिष्ट नोनस जोड़ा गया। दूसरे, हमने कानूनी प्रॉक्सी पते को वेस्टिंग खाते तक सीमित कर दिया, यह सुनिश्चित करते हुए कि हमलावर खुद को प्रॉक्सी के रूप में सेट नहीं कर सकते और पंजीकृत बांड परUnauthorized नियंत्रण प्राप्त नहीं कर सकते।

अद्यतन: 2024 से सभी प्रॉक्सी संचालन अक्षम कर दिए गए हैं जिससे हमले लागू नहीं हो सकते।

NYM-MIX-VEST-CONTRACT-5: "प्रतिनिधित्व के आधार" लेनदेन में हस्ताक्षर पुनः प्रस्तुत किए जा सकते हैं जिससे उपयोगकर्ताओं का अनुकरण किया जा सके (महत्वपूर्ण)

यह दोष “की ओर से” लेन-देन के भीतर हस्ताक्षरों को पुनः चलाने की अनुमति देता है, जिससे हमलावरों को उपयोगकर्ताओं की नकल करने में सक्षम होता है। क्योंकि हस्ताक्षर केवल कच्चे डेटा को शामिल करते हैं बिना किसी अतिरिक्त मेटाडाटा जैसे कि नॉन्स या संदेश पहचानकर्ताओं के, एक हमलावर एक संदेश से हस्ताक्षर को दूसरे के लिए पुन: उपयोग कर सकता है ताकि परिवार के सदस्यों को मजबूरन हटा सके। इसके अलावा, हमलावर एक ही संदेश प्रकार के लिए हस्ताक्षरों का पुन: उपयोग कर सकते हैं, जिससे एक सदस्य को एक ही हस्ताक्षर का उपयोग करके कई बार परिवार में फिर से शामिल होने की अनुमति मिलती है।

इस समस्या का समाधान NYM-MIX-VEST-CONTRACT-4 में लागू समाधान की तरह है।

NYM-MIX-VEST-CONTRACT-6: (स्वामी, प्रॉक्सी) जोड़ों के लिए कुंजी उत्पादन टकराव का कारण बन सकता है (महत्वपूर्ण)

यह सुरक्षा कमी दो अलग-अलग (मालिक, प्रॉक्सी) पता जोड़ों को generate_owner_storage_subkey फ़ंक्शन में एक ही XOR परिणाम उत्पन्न करने की अनुमति देगी, जो कुंजी टकराव और डेटा ओवरराइट का कारण बन सकता है।

कानूनी प्रॉक्सी को केवल वेस्टिंग अनुबंध पते तक सीमित करने का समाधान, जो NYM-MIX-VEST-CONTRACT-4 में लागू किया गया था, इस कमजोरियों को भी हल करता है। एक स्थायी स्ट्रिंग के खिलाफ XOR ऑपरेशन को हमेशा सुनिश्चित करके, यह परिवर्तन प्रभावी रूप से टकराव के जोखिम को समाप्त करता है।

NYM-MIX-VEST-CONTRACT-7: track_delegation एक ही ब्लॉक के भीतर एक से अधिक परिष्कृत होने पर मौजूदा प्रतिनिधित्व को ओवरराइट कर सकता है (महत्वपूर्ण)

यह मुद्दा कुंजी टकराव की अनुमति देगा यदि एक ही ब्लॉक के भीतर कई प्रतिनिधित्व किए जाते हैं, जो संभावित रूप से save_delegation फ़ंक्शन को मौजूदा प्रतिनिधित्व को अधिलेखित करने का कारण बना सकता है, जिससे पिछले प्रतिनिधित्व का हानि हो सकती है।

समस्या को हल करने के लिए, हमने save_delegation फ़ंक्शन की तर्क को बदल दिया है ताकि पहले मौजूदा प्रतिनिधि राशि को पढ़ा जा सके और फिर नई राशि को सहेजा जा सके। यदि उसी कुंजी के लिए एक प्रतिनिधिमंडल पहले से मौजूद है, तो हम वर्तमान राशि को पुनः प्राप्त करते हैं, नए प्रतिनिधिमंडल को जोड़ते हैं, और फिर अद्यतन कुल को सहेजते हैं, यह सुनिश्चित करते हुए कि कोई मौजूदा प्रतिनिधिमंडल ओवरराइट नहीं किया गया है।

NYM-MIX-VEST-CONTRACT-8: बांड मालिक संचालन नहीं कर सकता यदि बांड "प्रतिनिधि (मुख्य)" द्वारा "प्रतिनिधि" के तहत बनाया गया हो

यह समस्या बांड के मालिक को उनके बांड पर कोई भी संचालन करने से रोक देगी यदि बांड "प्रतिनिधि के नाम पर" बनाया गया था और वर्तमान लेनदेन मालिक द्वारा प्रारंभ किया गया है, न कि प्रॉक्सी द्वारा। चूंकि प्रॉक्सी को समझौता किया जा सकता है या खोया जा सकता है, और मालिक इसे बदलने का कोई तरीका नहीं है, इससे मालिक अपने बॉंड पर नियंत्रण खो सकता है।

हम इसे एक मुद्दा नहीं मानते हैं, क्योंकि यह डिज़ाइन द्वारा जानबूझकर व्यवहार है। जब एक मिक्स नोड बंधित होता है (या प्रतिनिधित्व किए जाते हैं) वेस्टिंग अनुबंध के माध्यम से, बंधन या प्रतिनिधित्व के साथ सभी आगे की इंटरैक्शन केवल वेस्टिंग अनुबंध के माध्यम से होने की अपेक्षा की जाती है।

अद्यतन: 2024 से, वेस्टिंग अनुबंध हटा दिया गया है।

NYM-MIX-VEST-CONTRACT-9: यदि एक महत्वपूर्ण संख्या में मिश्रण नोड्स एक परिवार के सदस्य हैं (महत्वपूर्ण) तो LeaveFamily और LeaveFamilyOnBehalf संदेशों का निष्पादन विफल हो सकता है।

यह समस्या परिवार के सदस्यों की LARGE संख्या के लिए MEMBERS मानचित्र पर इटरेट करने के दौरान गैस समाप्ति के कारण LeaveFamily और LeaveFamilyOnBehalf संदेशों की विफलता का परिणाम देगी। यह मिश्रण नोड्स को एक परिवार को छोड़ने से रोकेगा, प्रभावी रूप से उन्हें उनके वर्तमान परिवार में लॉक कर देगा।

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

अद्यतन: 2024 से, नोड परिवार हटा दिए गए हैं।

अंतिम शब्द

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

साझा करें