VUPER: Verified ASN.1 UPER Parser
यह शोध पत्र VUPER प्रस्तुत करता है, जो एक ऐसा फ्रेमवर्क है जो औपचारिक रूप से सत्यापित, बिट-सटीक (bit-precise) ASN.1 UPER पार्सर और सीरियलाइज़र उत्पन्न करता है, जिनका उपयोग 5G और V2X प्रोटोकॉल पर डायनेमिक टेस्टिंग के माध्यम से लोकप्रिय ओपन-सोर्स और कमर्शियल पार्सर्स में 20 प्रकार की विसंगतियों और ठोस सुरक्षा कमजोरियों को उजागर करने के लिए किया गया था।
मूल पेपर CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) के तहत लाइसेंस किया गया है। नीचे दिए गए पेपर की यह व्याख्या AI से तैयार की गई है। इसे लेखकों ने न तो लिखा है, न इसका समर्थन किया है। तकनीकी सटीकता के लिए मूल पेपर देखें। पूरा डिस्क्लेमर पढ़ें
इंटरनेट और हमारे मोबाइल फोन की कल्पना एक विशाल, हलचल भरे शहर के रूप में करें जहाँ हर सेकंड अरबों संदेश इमारतों के बीच दौड़ रहे हैं। इस शहर को सुचारू रूप से चलाने के लिए, इन संदेशों को एक सार्वभौमिक भाषा की आवश्यकता होती है ताकि न्यूयॉर्क का एक फोन टोक्यो के एक टावर से बात कर सके और भ्रमित न हो। इस भाषा को ASN.1 कहा जाता है, और यह व्याकरण और शब्दावली की तरह है जो कंप्यूटरों को ठीक से बताता है कि जानकारी को छोटे, कुशल डिजिटल बक्सों में कैसे पैक किया जाए। लेकिन यहाँ पेचीदा हिस्सा यह है कि जगह बचाने और गति बढ़ाने के लिए, इन बक्सों को इतनी सघनता से पैक किया जाता है कि वे व्यवस्थित बाइट्स की पंक्तियों (जैसे मानक कंप्यूटर शब्द) के संरेखण में भी नहीं होते; इसके बजाय, उन्हें अंतिम बिट (bit) तक पैक किया जाता है, जो डेटा का सबसे छोटा कण है। पैकिंग की इस विशिष्ट, अत्यंत सघन विधि को UPER कहा जाता है।
समस्या यह है कि इन सूक्ष्म, बिट-स्तरीय बक्सों को खोलने वाले अनुवादक (या "पार्सर") को लिखना अविश्वसनीय रूप से कठिन है। यदि अनुवादक कोई छोटी सी गलती भी करता है—जैसे एक सिंगल बिट को गलत पढ़ लेना या नई, अज्ञात जानकारी को संभालने के नियम को भूल जाना—तो यह पूरे सिस्टम को क्रैश कर सकता है, रहस्य लीक कर सकता है या हैकर्स को अंदर घुसने का रास्ता दे सकता है। वर्षों से, इंजीनियर इन गलतियों को ठीक करने के लिए उनके पार्सर्स को लाखों रैंडम संदेशों के साथ टेस्ट करते रहे हैं, इस उम्मीद में कि वे बग्स को पकड़ लेंगे, लेकिन यह घास के ढेर में सुई खोजने के समान है जिसे केवल हिलाकर ढूँढा जा रहा है; आप कुछ सुइयाँ तो पा सकते हैं, लेकिन आप कभी सुनिश्चित नहीं हो सकते कि आपने सभी को ढूँढ लिया है, या जो आपने ढूँढा है वह वास्तव में असली है या नहीं।
यहाँ VUPER आता है, एक नया टूल जिसे पेंसिल्वेनिया स्टेट यूनिवर्सिटी के शोधकर्ताओं द्वारा बनाया गया है जो खेल बदल देता है। घास के ढेर को सिर्फ हिलाने के बजाय, VUPER शुरुआत से ही एक गणितीय रूप से पूर्ण अनुवादक बनाता है। इसे ऐसे समझें जैसे कि एक "गोल्ड स्टैंडर्ड" शब्दकोश और व्याकरण पुस्तक बनाना जो कंप्यूटर गणितज्ञ द्वारा 100% सही प्रमाणित हो। शोधकर्ताओं ने इस पूर्ण अनुवादक का उपयोग करके 11 अन्य लोकप्रिय पार्सर्स का परीक्षण किया जिनका उपयोग वास्तविक दुनिया के 5G नेटवर्क और वाहन संचार प्रणालियों में किया जाता है। उन्होंने पाया कि इनमें से कई व्यापक रूप से उपयोग किए जाने वाले अनुवादक वास्तव में काफी गैर-अनुपालन (non-compliant) थे, जो 20 अलग-अलग प्रकार के नियमों को मिस कर रहे थे। कुछ मामलों में, इस गैर-अनुपालन ने हैकर्स को फोन क्रैश करने या नेटवर्क को अनएन्क्रिप्टेड संदेश भेजने के लिए मजबूर करने का मौका दिया। VUPER सिद्ध करता है कि जबकि हम हमेशा अपने पास मौजूद अनुवादकों पर भरोसा नहीं कर सकते, अब हम ऐसे अनुवादक बना सकते हैं जो गणितीय रूप से सुरक्षित होने की गारंटी देते हैं, और टूटे हुए पार्सर्स को ठीक करने के लिए उनका उपयोग कर सकते हैं।
VUPER की कहानी: एक पूर्ण अनुवादक का निर्माण
कंप्यूटर नेटवर्क की दुनिया में, डेटा पानी के एक लंबे प्रवाह की तरह होता है जो पाइपों के माध्यम से बहता है। एक संदेश भेजने के लिए, एक कंप्यूटर उसे "सीरियलाइज" (serialize) करता है, यानी डेटा को बिट्स के एक सघन प्रवाह में दबा देता है। इसे प्राप्त करने के लिए, दूसरा कंप्यूटर उस स्ट्रीम को "पार्स" (parse) करता है, यानी बिट्स को वापस एक पठनीय संदेश में बदल देता है। 5G सेलुलर नेटवर्क और व्हीकल-टू-एवरीथिंग (V2X) संचार की उच्च-जोखम वाली दुनिया में, यह प्रक्रिया UPER (अलाइन्ड अनएलाइन्ड पैक्ड एनकोडिंग रूल्स) नामक नियमों के एक विशिष्ट सेट का उपयोग करती है। इसे "अनअलाइन्ड" इसलिए कहा जाता है क्योंकि इसे बाइट सीमाओं की परवाह नहीं है; यह बैंडविड्थ बचाने के लिए डेटा को बिट-दर-बिट जितना संभव हो सके उतना सघन रूप से पैक करता है।
चुनौती यह है कि UPER की आधिकारिक नियम पुस्तिका कोड में नहीं, बल्कि घने, वर्णनात्मक टेक्स्ट में लिखी गई है। इससे इंजीनियरों को नियमों को लागू करने के लिए अनुमान लगाने की स्थिति पैदा हो जाती है, जिससे सूक्ष्म त्रुटियां होती हैं। VUPER के पीछे के शोधकर्ताओं ने अनुमान लगाना बंद करने का निर्णय लिया। उन्होंने एक ऐसा ढांचा बनाया जो पार्सर के सही होने को सिद्ध (prove) करता है। उन्होंने केवल कोड नहीं लिखा और यह उम्मीद नहीं की कि यह काम करेगा; उन्होंने तर्क के हर एक चरण को सत्यापित करने के लिए Rocq prover नामक एक शक्तिशाली गणितीय उपकरण का उपयोग किया।
"राउंड-ट्रिप" टेस्ट
यह समझने के लिए कि VUPER कैसे काम करता है, कल्पना करें कि आपके पास एक जादुई अनुवादक है जो एक किताब को गुप्त कोड में बदल देता है और फिर वापस बदल देता है। एक "राउंड-ट्रिप" टेस्ट का अर्थ है कि आप एक वाक्य लेते हैं, उसे कोड में बदलते हैं, और फिर उस कोड को वापस वाक्य में बदलते हैं। यदि आपको बिल्कुल वही वाक्य वापस मिलता है, तो इसका मतलब है कि अनुवादक काम कर रहा है।
हालाँकि, UPER में एक विशेष मोड़ है: एक्सटेंशन (extensions)। जैसे-जैसे तकनीक विकसित होती है (जैसे 4G से 5G की ओर बढ़ना), संदेशों में नई सुविधाएँ जोड़ी जाती हैं। एक पुराने अनुवादक को एक नए संदेश को पढ़ने में सक्षम होना चाहिए, उसे उन नए हिस्सों को अनदेखा करना चाहिए जिन्हें वह नहीं समझता, और फिर भी पुराने हिस्सों को समझना चाहिए। इसे फॉरवर्ड कम्पैटिबिलिटी कहा जाता है। VUPER इसे दो चीजें सिद्ध करके संभालता है:
- स्ट्रिक्ट राउंड-ट्रिप: यदि संदेश उसी संस्करण का है, तो अनुवादक को उसे बिल्कुल उसी बिट पैटर्न में बदलना चाहिए। कोई अतिरिक्त बिट नहीं, कोई छूटा हुआ बिट नहीं।
- वीक राउंड-ट्रिप: यदि संदेश में नए, अज्ञात एक्सटेंशन हैं, तो अनुवादक उन्हें छोड़ सकता है, लेकिन उसे अभी भी ज्ञात हिस्सों को एक वैध संदेश में बदलने में सक्षम होना चाहिए। इसे मूल बिट-दर-बिट से मेल खाने की आवश्यकता नहीं है (क्योंकि अज्ञात हिस्से हट गए हैं), लेकिन इसे बाकी हिस्से को खराब नहीं करना चाहिए।
बग्स खोजना
शोधकर्ताओं ने एक "ट्रस्टेड ऑरेकल" (trusted oracle) बनाया - जो VUPER द्वारा उत्पन्न एक पूर्ण पार्सर है - और इसका उपयोग 11 अन्य पार्सर्स का परीक्षण करने के लिए किया। इसमें 7 ओपन-सोर्स टूल्स (जैसे asn1c और pycrate) और 4 कमर्शियल पार्सर्स शामिल थे जिनका उपयोग वास्तविक 4G और 5G बेस स्टेशनों के अंदर किया जाता है।
उन्होंने केवल रैंडम कचरा नहीं भेजा; उन्होंने एक स्मार्ट "फज़र" (fuzzer) का उपयोग किया जो संदेशों की संरचना को समझता था ताकि लाखों कठिन टेस्ट केस बनाए जा सकें। जब उन्होंने परिणामों की तुलना की, तो उन्होंने अन्य पार्सर्स में 20 अलग-अलग प्रकार की विसंगतियां पाईं।
यहाँ कुछ सबसे दिलचस्प निष्कर्ष दिए गए हैं:
- "बहुत लंबा" होने की समस्या: कुछ पार्सर्स ने उन संख्याओं को स्वीकार कर लिया जो आवंटित स्थान के लिए बहुत बड़ी थीं, या ऐसी लंबाई को स्वीकार किया जो डेटा से मेल नहीं खाती थी। यह एक डाकिया स्वीकार करने जैसा है जो कहता है "मेरे पास 5 पन्ने हैं" लेकिन वास्तव में उसमें 100 पन्ने हैं, जिससे मेलबॉक्स भर जाता है और क्रैश हो जाता है।
- "अननोन एक्सटेंशन" का भ्रम: जब किसी संदेश में ऐसी नई सुविधाएँ थीं जिन्हें पुराना पार्सर नहीं जानता था, तो कुछ पार्सर्स भ्रमित हो गए और संदेश के गलत हिस्से को पढ़ने लगे, यह सोचकर कि वह कुछ और है। यह एक ऐसे अनुवादक जैसा है जो विदेशी भाषा में एक नया शब्द देखता है, भ्रमित हो जाता है, और फिर बाकी वाक्य का गलत अनुवाद करता है।
- "डिफ़ॉल्ट वैल्यू" की गलती: नियम कहते हैं कि यदि कोई मान "डिफ़ॉल्ट" है, तो जगह बचाने के लिए उसे बिल्कुल नहीं भेजा जाना चाहिए। लेकिन कुछ पार्सर्स अभी भी उसे भेज रहे थे, या पहचानने में विफल हो रहे थे कि वह गायब है।
वास्तविक दुनिया का खतरा
पेपर ने केवल सैद्धांतिक बग्स ही नहीं खोजे; इसने दिखाया कि इनका फायदा कैसे उठाया जा सकता है। शोधकर्ताओं ने चार ठोस हमले (attacks) प्रदर्शित किए:
- फोन को क्रैश करना: नेटवर्क आईडी की एक सूची के साथ एक संदेश भेजकर जो थोड़ी बहुत लंबी थी (कन्स्ट्रेंट का उल्लंघन करते हुए), उन्होंने फोन के सॉफ्टवेयर को क्रैश कर दिया, जिससे 'डिनायल ऑफ सर्विस' (DoS) की स्थिति पैदा हुई।
- टावर को क्रैश करना: एक समझौता किया गया (compromised) सेल टावर दूसरे टावर को एक गलत संदेश भेज सकता है, जिससे दूसरा टावर उसे प्रोसेस करने की कोशिश करते समय क्रैश हो सकता है।
- सीक्रेट लीक होना: यदि कोई पार्सर अज्ञात एक्सटेंशन के कारण संदेश की गलत व्याख्या करता है, तो वह यह सोच सकता है कि सुरक्षा सेटिंग "ऑफ" है जबकि वह वास्तव में "ऑन" है, या इसके विपरीत। यह ऐसी स्थिति पैदा कर सकता है जहाँ फोन सोचता है कि वह सुरक्षित रूप से संवाद कर रहा है, लेकिन नेटवर्क वास्तव में डेटा प्ले टेक्स्ट में भेज रहा है, जिससे जासूसी आसान हो जाती है।
- डिवाइस फिंगरप्रिंटिंग: क्योंकि अलग-अलग पार्सर त्रुटियों को अलग-अलग तरह से संभालते हैं, एक हैकर विशिष्ट "ट्रिक" संदेश भेज सकता है और देख सकता है कि डिवाइस कैसे प्रतिक्रिया करता है। यदि डिवाइस एक अजीब संदेश को स्वीकार कर लेता है, तो हैकर को पता चल जाता है कि वह एक विशिष्ट ब्रांड का हार्डवेयर (जैसे सैमसंग बेसबैंड) उपयोग कर रहा है, जिससे वे उस विशिष्ट डिवाइस को लक्षित करने के लिए ज्ञात एक्सप्लॉइट्स का उपयोग कर सकते हैं।
प्रदर्शन और भविष्य
शोधकर्ता स्वीकार करते हैं कि उनका पूर्ण, गणितीय रूप से सत्यापित पार्सर सबसे तेज़ नहीं है। यह उद्योग में वर्तमान में उपयोग किए जाने वाले अत्यधिक अनुकूलित C लाइब्रेरीज़ की तुलना में लगभग 4 गुना धीमा है। हालाँकि, यह पायथन-आधारित पार्सर्स की तुलना में 4 गुना तेज़ है।
VUPER का लक्ष्य तुरंत तेज़ पार्सर्स को बदलना नहीं है, बल्कि एक रेफरेंस इम्प्लीमेंटेशन के रूप में कार्य करना है। जिस तरह एक मास्टर शेफ किसी व्यंजन का स्वाद लेकर आपको बता सकता है कि रेसिपी में क्या गलत है, VUPER इंजीनियरों को ठीक-ठीक बता सकता है कि उनके पार्सर्स कहाँ विफल हो रहे हैं। शोधकर्ताओं को उम्मीद है कि इन बग्स को खोजने और ठीक करने के लिए VUPER का उपयोग करके, उद्योग अंततः ऐसे पार्सर्स बना सकता है जो तेज़ भी हों और गणितीय रूप से सुरक्षित होने की गारंटी भी देते हों।
अंत में, VUPER दिखाता है कि जटिल, उच्च-गति वाली 5G और उससे आगे की दुनिया में, हम अब "काफी अच्छा" परीक्षण पर निर्भर नहीं रह सकते। हमें अपने डिजिटल शहर को सुरक्षित, सुचारू और सुव्यवस्थित रखने के लिए गणितीय रूप से सिद्ध अनुवादकों की आवश्यकता है।
अपने क्षेत्र के पेपरों की भीड़ में उलझे हुए हैं?
आपके रिसर्च कीवर्ड से मेल खाने वाले सबसे नए और अलग सोच वाले पेपरों का रोज़ाना Digest पाएँ—तकनीकी सारांश के साथ, आपकी भाषा में।