A Security Analysis of CheriBSD and Morello Linux
यह शोध पत्र चेरीबीएसडी (CheriBSD) और मोरेलो लिनक्स (Morello Linux) की सुरक्षा का विश्लेषण करता है, यह प्रदर्शित करते हुए कि मेमोरी करप्शन के विरुद्ध CHERI आर्किटेक्चर की प्रभावशीलता के बावजूद, मौजूदा कम्पार्टमेंटलाइज़ेशन तंत्र सरल बग्स और हमलों के माध्यम से बायपास होने के प्रति संवेदनशील बने हुए हैं, और इन कमजोरियों को दूर करने के लिए विशिष्ट शमन और सिफारिशों का प्रस्ताव करता है।
मूल पेपर CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) के तहत लाइसेंस किया गया है। नीचे दिए गए पेपर की यह व्याख्या AI से तैयार की गई है। इसे लेखकों ने न तो लिखा है, न इसका समर्थन किया है। तकनीकी सटीकता के लिए मूल पेपर देखें। पूरा डिस्क्लेमर पढ़ें
कल्पना कीजिए कि एक उच्च-सुरक्षा वाला बैंक वॉल्ट (तिजोरी) है। अतीत में, यदि कोई चोर खिड़की तोड़ देता था (एक सॉफ्टवेयर बग), तो वे बैंक के अंदर कहीं भी घूम सकते थे, टेलर की मेज से लेकर सीईओ के सेफ तक सब कुछ चुरा सकते थे।
इसे रोकने के लिए, इंजीनियरों ने एक नया प्रकार का वॉल्ट बनाया जिसे CHERI कहा जाता है। केवल दरवाजे लॉक करने के बजाय, उन्होंने बैंक की हर एक वस्तु को एक विशेष "जादुई चाबी" (जिसे कैपेबिलिटी/capability कहा जाता है) दी। यह चाबी केवल यह नहीं कहती कि "यह दरवाजा खोलें"; बल्कि यह कहती है, "आप इस विशिष्ट दरवाजे को खोल सकते हैं, लेकिन केवल सुबह 9 बजे से शाम 5 बजे के बीच, और आप केवल इसके अंदर देख सकते हैं, इसे छू नहीं सकते।"
इसका लक्ष्य कंपार्टमेंटलाइज़ेशन (Compartmentalization) है: बैंक को छोटे, अलग-थलग कमरों में विभाजित करना। यदि कोई चोर "गिफ्ट शॉप" वाले कमरे में घुस जाता है, तो वहां मिलने वाली जादुई चाबियाँ केवल गिफ्ट शॉप के दरवाजे ही खोलनी चाहिए। उन्हें "वॉल्ट" वाले कमरे में नहीं जाना चाहिए।
यह पेपर एक सुरक्षा ऑडिट रिपोर्ट की तरह है। शोधकर्ताओं ने पूछा: "यदि एक चोर गिफ्ट शॉप में घुस जाता है, तो क्या वह अभी भी वॉल्ट में घुसने का रास्ता निकाल सकता है?" उन्होंने इस परीक्षण को बैंक सिस्टम के दो अलग-अलग संस्करणों पर किया: Morello Linux और CheriBSD।
यहाँ जो उन्होंने पाया, उसे सरल भाषा में समझाया गया है:
मुख्य समस्या: मास्टर चाबियों का लीक होना
भले ही दीवारें मजबूत हैं, शोधकर्ताओं ने पाया कि "गिफ्ट शॉप" के चोर के पास "वॉल्ट" खोलने वाली चाबियाँ चुराने के चार तरीके थे।
1. "स्टैक वॉकिंग" हमला (कचरे में झांकना)
उपमा: कल्पना कीजिए कि जब भी बैंक का कोई कर्मचारी कोई कार्य करता है, तो वह अपने काम के नोट्स एक स्टिकी नोट पर लिखता है और उसे अपनी मेज पर रखे स्टैक (ढेर) पर चिपका देता है। जब वह काम पूरा कर लेता है, तो वह अगले कार्य पर चला जाता है, लेकिन कभी-कभी वह पुराने स्टिकी नोट्स को फेंकना भूल जाता है।
हमला: गिफ्ट शॉप में मौजूद चोर पिछले कर्मचारियों द्वारा छोड़े गए स्टिकी नोट्स के ढेर को देखता है। उसे एक नोट मिलता है जिस पर लिखा है, "यहाँ वॉल्ट की चाबी है।" क्योंकि सिस्टम ने नोट्स को साफ नहीं किया (मेमोरी), चोर चाबी चुरा लेता है और सीधे वॉल्ट में चला जाता है।
समाधान: शोधकर्ता सुझाव देते हैं कि बैंक के पास एक "सफाई दल" होना चाहिए जो प्रत्येक उपयोग के तुरंत बाद मेज से हर स्टिकी नोट को मिटा दे, या प्रत्येक कर्मचारी को अपना निजी डेस्क दिया जाए ताकि वे एक-दूसरे के नोट्स न देख सकें।
2. "Dlopen" लीक (एक दोषपूर्ण मानचित्र)
उपमा: बैंक के पास एक केंद्रीय निर्देशिका (मैप/नक्शा) है जो आपको बताता है कि सभी कमरे कहाँ हैं। जब एक नया कमरा जोड़ा जाता है, तो निर्देशिका अपडेट हो जाती है। चोर निर्देशिका से "गिफ्ट शॉप" का नक्शा मांगता है।
हमला: निर्देशिका उसे एक नक्शा देती है, लेकिन वह एक "दोषपूर्ण" संस्करण है। केवल गिफ्ट शॉप दिखाने के बजाय, वह गलती से बैंक के हर एक कमरे की गुप्त सूची भी शामिल कर देती है, जिसमें वॉल्ट, सीईओ का कार्यालय और सेफ शामिल हैं। चोर इस आकस्मिक सूची का उपयोग करके हर जगह की चाबियाँ ढूंढ लेता है।
समाधान: शोधकर्ता सुझाव देते हैं कि निर्देशिका को चोर को एक "सीलबंद" नक्शा देना चाहिए। चोर नक्शा देख सकता है, लेकिन वह बिना विशेष सील तोड़ने वाले उपकरण के गुप्त हिस्सों को नहीं पढ़ सकता (जो उसके पास नहीं है)।
3. "हीप स्कैवेंजिंग" हमला (ढेर में खुदाई करना)
उपमा: बैंक के कोने में फेंके गए बक्सों का एक बड़ा ढेर (मेमोरी) है। जब एक बॉक्स फेंका जाता है, तो माना जाता है कि वह खाली है। लेकिन कभी-कभी, कर्मचारी ऐसे बक्से फेंक देते हैं जिनमें अभी भी औजार या चाबियाँ होती हैं क्योंकि वे उन्हें खाली करना भूल जाते हैं।
हमला: चोर फेंके गए बक्सों के ढेर में खुदाई करता है, और एक ऐसा बॉक्स ढूंढता है जिसके अंदर अभी भी कोई चाबी हो। यदि उसे "वॉल्ट" के कर्मचारी द्वारा पीछे छोड़ी गई चाबी मिल जाती है, तो वह वॉल्ट खोलने के लिए उसका उपयोग कर सकता है।
समाधान: बैंक को एक नियम की आवश्यकता है जो कहता है, "एक बॉक्स को फेंकने से पहले, आपको उसे पूरी तरह साफ करना होगा।" या, चोर को केवल उन बक्सों के ढेर में खुदाई करने की अनुमति होनी चाहिए जो गिफ्ट शॉप का है, न कि पूरे बैंक का।
4. "हीप स्टोरिंग" हमला (एक टाइम बम)
उपमा: चोर ढेर से एक बॉक्स उठाता है, उस पर अपना नाम लिखता है, और उसे अपनी जेब में छिपा लेता है। बाद में, बैंक उसी उसी बॉक्स को फेंक देता है और उसे एक नए कर्मचारी को दे देता है।
हमला: चोर इंतजार करता है। बाद में, वह अपनी जेब की जांच करता है। वह बॉक्स अब नए कर्मचारी द्वारा वॉल्ट का सोना रखने के लिए उपयोग किया जा रहा है। क्योंकि चोर के पास उस विशिष्ट बॉक्स का एक "पॉइंटर" (एक मानसिक नोट) अभी भी है, वह अंदर पहुँचकर सोना चुरा सकता है, भले ही उसे वहाँ होने का अधिकार न हो।
समाधान: बैंक को एक ऐसी प्रणाली की आवश्यकता है जो बॉक्स को फेंके जाने के क्षण ही पुराने कीज़ को "रिवोक" (नष्ट) कर दे, ताकि चोर का मानसिक नोट बेकार हो जाए।
परिणाम: दो अलग-अलग बैंक
शोधकर्ताओं ने इन ट्रिक्स का परीक्षण दो अलग-अलग सिस्टमों पर किया:
- Morello Linux: यह सिस्टम बहुत असुरक्षित था। चोर गिफ्ट शॉप से बाहर निकलने और मुख्य वॉल्ट से निजी चाबियाँ चुराने के लिए चारों ट्रिक्स का उपयोग कर सकता था। यह एक ऐसे बैंक की तरह था जिसमें कोई सुरक्षा गार्ड नहीं था और हर जगह गंदे स्टिकी नोट्स बिखरे हुए थे।
- CheriBSD: यह सिस्टम बहुत बेहतर था। इसमें अंतर्निहित गार्ड (जिन्हें c18n और heap revocation कहा जाता है) मौजूद थे।
- "स्टैक वॉकिंग" का तरीका काम नहीं किया क्योंकि प्रत्येक कर्मचारी के पास अपना निजी डेस्क (अलग स्टैक) था।
- "हीप स्टोरिंग" का तरीका काम नहीं किया क्योंकि बैंक के पास पुराने कीज़ को तुरंत नष्ट करने वाली प्रणाली थी।
- हालांकि, "Dlopen" लीक और "हीप स्कैवेंजिंग" अभी भी काम कर रहे थे। चोर अभी भी गुप्त नक्शा ढूंढ सकता था और गंदे बक्सों में खुदाई कर सकता था।
मुख्य निष्कर्ष
शोधकर्ताओं ने एक "प्रूफ ऑफ कॉन्सेप्ट" (परीक्षण मामला) बनाया जहाँ वे "Dloplen" लीक का उपयोग करके एक सुरक्षित प्रोग्राम से प्राइवेट की (जैसे मास्टर पासवर्ड) सफलतापूर्वक चुरा सके।
निष्कर्ष:
CHERI आर्किटेक्चर एक शानदार नया आविष्कार है जो कई पुराने प्रकार के चोरियों (जैसे दीवारों को तोड़ना) को रोकता है। हालांकि, इसके ऊपर चलने वाला सॉफ्टवेयर (ऑपरेटिंग सिस्टम और लाइब्रेरी) अभी भी त्रुटिपूर्ण हो सकता है। ये बग्स खुले खिड़कियों या खोई हुई चाबियों की तरह काम करते हैं, जिससे एक चोर सुरक्षा को बायपास कर सकता है, भले ही दीवारें मजबूत हों।
पेपर यह निष्कर्ष निकालता है कि जबकि हार्डवेयर सुरक्षित है, हमें सिस्टम को वास्तव में सुरक्षित बनाने के लिए सॉफ्टवेयर (स्टिकी नोट्स को साफ करना, दोषपूर्ण मानचित्रों को ठीक करना और बक्सों की सफाई करना) को ठीक करने की आवश्यकता है।
अपने क्षेत्र के पेपरों की भीड़ में उलझे हुए हैं?
आपके रिसर्च कीवर्ड से मेल खाने वाले सबसे नए और अलग सोच वाले पेपरों का रोज़ाना Digest पाएँ—तकनीकी सारांश के साथ, आपकी भाषा में।