मेमोरी की सुरक्षा

इस पेज पर, मेमोरी की सुरक्षा से जुड़ी गड़बड़ियों और उन्हें ठीक करने वाले टूल के बारे में बताया गया है.

मेमोरी की सुरक्षा से जुड़ी गड़बड़ियां

मेमोरी की सुरक्षा से जुड़ी गड़बड़ियां, नेटिव प्रोग्रामिंग भाषाओं में मेमोरी को मैनेज करने में होने वाली गड़बड़ियां हैं. ये Android के कोडबेस में सबसे आम समस्या है. ये गड़बड़ियां, सुरक्षा से जुड़े 60% से ज़्यादा जोखिमों और लाखों बार क्रैश होने की वजह बनती हैं.

 मेमोरी सेफ़्टी से जुड़े बग, उपयोगकर्ता अनुभव, लागत, और सुरक्षा पर असर डालते हैं.

पहली इमेज. मेमोरी की सुरक्षा से जुड़ी गड़बड़ियां और क्वालिटी, सुरक्षा, और लागत पर उनका बुरा असर.

मेमोरी की सुरक्षा से जुड़ी गड़बड़ियों से, क्वालिटी और स्थिरता पर बुरा असर पड़ता है. साथ ही, ये गड़बड़ियां, एंड यूज़र डिवाइसों पर दिखने वाले क्रैश की मुख्य वजह होती हैं. इसलिए, मेमोरी की सुरक्षा से जुड़ी गड़बड़ियों की संख्या ज़्यादा होने पर, उपयोगकर्ता अनुभव खराब होता है.
नेटिव कोड, C, C++, और असेंबली जैसी भाषाओं में लिखा जाता है. ये भाषाएं, मेमोरी की सुरक्षा के लिहाज़ से सुरक्षित नहीं होती हैं. Android प्लैटफ़ॉर्म के 70% से ज़्यादा कोड, इन्हीं भाषाओं में लिखा जाता है. साथ ही, Google Play Store पर मौजूद करीब 50% ऐप्लिकेशन में भी इन्हीं भाषाओं में कोड लिखा जाता है.
कोड की जटिलता लगातार बढ़ती जा रही है. ऐसे में, अगर मेमोरी की सुरक्षा से जुड़ी गड़बड़ियों पर ध्यान नहीं दिया गया, तो समय के साथ इनकी संख्या बढ़ती जाएगी. इसलिए, अपने नेटवर्क को ऐसे टूल और टेक्नोलॉजी उपलब्ध कराना ज़रूरी है जिनसे इन गड़बड़ियों का पता लगाया जा सके और उन्हें ठीक किया जा सके. इससे हमें लंबे समय तक सफलता पाने में मदद मिलेगी.
पिछले कुछ सालों में, हमने हार्डवेयर पार्टनर के साथ मिलकर काम किया है, ताकि आर्म मेमोरी टैगिंग जैसी हार्डवेयर टेक्नोलॉजी डेवलप की जा सकें. साथ ही, हमने Android के कोडबेस में Rust को शामिल किया है.
इन टेक्नोलॉजी की मदद से, हम मेमोरी की सुरक्षा से जुड़ी गड़बड़ियों को ठीक करने के लक्ष्य को तेज़ी से हासिल कर पाएंगे. साथ ही, सॉफ़्टवेयर इंडस्ट्री को एक अहम समस्या को हल करने में मदद मिलेगी.

मेमोरी की सुरक्षा से जुड़ी गड़बड़ियों से क्वालिटी पर बुरा असर पड़ता है

मेमोरी की सुरक्षा से जुड़ी गड़बड़ियों की वजह से, सिस्टम की स्थिति के आधार पर अलग-अलग नतीजे मिल सकते हैं. इसकी वजह से, हमारे उपयोगकर्ताओं को क्रैश और परेशानी का सामना करना पड़ सकता है.

हमें हर दिन, एंड यूज़र डिवाइसों से लाखों नेटिव क्रैश दिखते हैं. GWP-ASan को शामिल करने के बाद, हमने इनमें से ज़्यादातर क्रैश की वजह, मेमोरी की सुरक्षा से जुड़ी गड़बड़ियों को पाया है.
इस डेटा पॉइंट से, क्वालिटी और मेमोरी की सुरक्षा से जुड़ी गड़बड़ियों की संख्या के बीच के संबंध की पुष्टि होती है. साथ ही, यह Chrome में काम करने वाले हमारे साथियों के नतीजों से भी मेल खाता है. ज़्यादा जानकारी के लिए, Chrome GWP-ASan की गड़बड़ियों की हॉटलिस्ट देखें.

मेमोरी की सुरक्षा से जुड़ी गड़बड़ियों से सुरक्षा पर बुरा असर पड़ता है

Android के पहले वर्शन से लेकर अब तक, मेमोरी की सुरक्षा से जुड़ी गड़बड़ियां, Android की सुरक्षा से जुड़े जोखिमों की मुख्य वजह रही हैं.

मेमोरी सेफ़्टी से जुड़े बग, सुरक्षा पर बुरा असर डालते हैं.

दूसरी इमेज. Android में सुरक्षा से जुड़े जोखिमों में, मेमोरी की सुरक्षा से जुड़ी गड़बड़ियों का योगदान.

यह जानकर खुशी हुई कि यह सिर्फ़ Android की समस्या नहीं है . ज़्यादा जानकारी के लिए, Chrome और Microsoft के आंकड़े देखें. हालांकि, हमें अपने उपयोगकर्ताओं की सुरक्षा के लिए और काम करना होगा.
Google की Project Zero टीम ज़ीरो डे एक्सप्लॉइट को ट्रैक करती है . ज़ीरो डे एक्सप्लॉइट, ज़ीरो डे की कमज़ोरियों के तौर पर, उपयोगकर्ताओं के ख़िलाफ़ असल हमलों में इस्तेमाल किए जाते हैं. ये सिर्फ़ संभावित गड़बड़ियां नहीं हैं, बल्कि उपयोगकर्ताओं के ख़िलाफ़ हमलों में सक्रिय रूप से इस्तेमाल किए जाने वाले एक्सप्लॉइट हैं. इनमें से ज़्यादातर गड़बड़ियां, मेमोरी की सुरक्षा से जुड़ी होती हैं. जैसे, मेमोरी करप्ट होना और फ़्री होने के बाद भी मेमोरी का इस्तेमाल करना.

मेमोरी की सुरक्षा से जुड़ी गड़बड़ियों से लागत बढ़ती है

डिवाइसों को सुरक्षा से जुड़े फ़िक्स के साथ अप-टू-डेट रखने से, हमारे उपयोगकर्ताओं को सुरक्षा मिलती है. हालांकि, इससे हमारे नेटवर्क पर पैसे खर्च होते हैं.

वेंडर के लो लेवल कोड में, मेमोरी की सुरक्षा से जुड़ी गड़बड़ियों की संख्या ज़्यादा होती है. इस कोड में अक्सर, कस्टम बदलाव किए जाते हैं. इसलिए, इन गड़बड़ियों को ठीक करने और इनकी जांच करने की लागत काफ़ी बढ़ जाती है. हालांकि, डेवलपमेंट साइकल के दौरान इन गड़बड़ियों का पता लगाने से, लागत कम हो सकती है.

रिसर्च से पता चलता है कि गड़बड़ियों का पता पहले लगाने से, लागत छह गुना तक कम हो सकती है. हालांकि, हमारे नेटवर्क की जटिलता, वेंडर के मैनेज किए जाने वाले कोडबेस की औसत संख्या, और सॉफ़्टवेयर की बढ़ती जटिलता को देखते हुए, बचत ज़्यादा हो सकती है.

मेमोरी की सुरक्षा

Android 12 और इसके बाद के वर्शन में, Android के कोडबेस में मेमोरी की सुरक्षा से जुड़ी गड़बड़ियों की संख्या कम करने के लिए, सिस्टम में बदलाव किए गए हैं. हम Android के मेमोरी की सुरक्षा से जुड़े टूल को बेहतर बना रहे हैं. साथ ही, नई ज़रूरी शर्तें लागू कर रहे हैं, ताकि हमारे नेटवर्क में शामिल लोग, इस कैटगरी की गड़बड़ियों को ठीक कर सकें. समय के साथ, इससे हमारे उपयोगकर्ताओं को बेहतर क्वालिटी और सुरक्षा मिलेगी. साथ ही, हमारे वेंडर की लागत कम होगी.

आने वाले सालों में, मेमोरी की सुरक्षा, क्वालिटी और सुरक्षा के मामले में एक अहम फ़ैक्टर बन सकती है. Android, इस मामले में सबसे आगे रहने की योजना बना रहा है.

मेमोरी की सुरक्षा से जुड़ी ज़रूरी शर्तें

Android कंपैटबिलिटी डेफ़िनिशन डॉक्यूमेंट (सीडीडी) में, डेवलपमेंट के दौरान मेमोरी की सुरक्षा से जुड़े टूल का इस्तेमाल करने का सुझाव दिया गया है.

हम अपने नेटवर्क के साथ मिलकर काम कर रहे हैं, ताकि मेमोरी की सुरक्षा से जुड़े टूल का इस्तेमाल बढ़ाया जा सके. साथ ही, हम इन टूल को, लगातार इंटिग्रेशन और टेस्टिंग प्रोसेस में शामिल कर रहे हैं.

हम यह पक्का करना चाहते हैं कि समय के साथ, हर डिवाइस, कंपैटबिलिटी टेस्ट सुइट (सीटीएस) को पूरी तरह से पास करे. इसके लिए, मेमोरी की सुरक्षा से जुड़े टूल का इस्तेमाल किया जाएगा. इससे यह पता चलेगा कि डिवाइस में ऐसी कोई गड़बड़ी नहीं मिली है. उदाहरण के लिए, आर्म v9 प्लैटफ़ॉर्म के लिए, मेमोरी टैगिंग की सुविधा चालू करके, सीटीएस रन उपलब्ध कराना ज़रूरी होगा. वहीं, आर्म v8 प्लैटफ़ॉर्म के लिए, HWASAN और KASAN का इस्तेमाल करके, सीटीएस रन उपलब्ध कराने का अनुरोध किया जाएगा.

प्लैटफ़ॉर्म कोड के लिए, नई प्रोग्रामिंग भाषा के तौर पर Rust

Android 12 में, Rust को प्लैटफ़ॉर्म की भाषा के तौर पर शामिल किया गया है. Rust, C/C++ के जैसे ही परफ़ॉर्मेंस लेवल पर, मेमोरी और थ्रेड की सुरक्षा उपलब्ध कराता है. हमें उम्मीद है कि Rust, ज़्यादातर नए नेटिव प्रोजेक्ट के लिए पसंदीदा भाषा होगी. हालांकि, फ़िलहाल Android प्लैटफ़ॉर्म के 70% से ज़्यादा कोड, मेमोरी की सुरक्षा के लिहाज़ से सुरक्षित नहीं है. इसे Rust में फिर से लिखना मुमकिन नहीं है. आने वाले समय में, Rust, मेमोरी की सुरक्षा से जुड़े टूल के साथ मिलकर काम करेगा.

मेमोरी की सुरक्षा से जुड़े टूल

Android, कई तरह के टूल के साथ काम करता है. ये टूल, मेमोरी की सुरक्षा से जुड़ी गड़बड़ियों का पता लगाने में मदद करते हैं. नीचे दी गई इमेज में, Android के मेमोरी की सुरक्षा से जुड़े उपलब्ध टूल की कैटगरी दिखाई गई है.

मेमोरी सेफ़्टी से जुड़े बग, सुरक्षा पर बुरा असर डालते हैं.

तीसरी इमेज. Android के मेमोरी की सुरक्षा से जुड़े टूल.

हमारे टूल, डिप्लॉयमेंट के कई तरह के टारगेट और स्थितियों के लिए काम करते हैं. इस सेक्शन में मौजूद दस्तावेज़ में, हर टूल के बारे में बताया गया है. साथ ही, अपने प्रॉडक्ट में इनका इस्तेमाल करने के लिए रेफ़रंस भी दिया गया है.