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

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

यह जानकर खुशी हो रही है कि यह सिर्फ़ Android की समस्या नहीं है. Chrome और Microsoft के आंकड़े देखें. हालांकि, हमें अपने उपयोगकर्ताओं की सुरक्षा के लिए ज़्यादा काम करने की ज़रूरत है.
Google की Project Zero टीम
उन ज़ीरो-डे एक्सप्लॉइट को ट्रैक
करती है जिनका इस्तेमाल, उपयोगकर्ताओं पर असली हमलों में ज़ीरो-डे
जोखिमों के तौर पर किया गया है. ये काल्पनिक बग नहीं हैं, बल्कि ये ऐसे एक्सप्लॉइट हैं जिनका इस्तेमाल, उपयोगकर्ताओं पर हमले करने के लिए किया जाता है. मेमोरी से जुड़ी सुरक्षा से जुड़ी गड़बड़ियां (मेमोरी में गड़बड़ी और फ़्री की गई मेमोरी का इस्तेमाल करना) सबसे ज़्यादा होती हैं.
मेमोरी से जुड़ी सुरक्षा से जुड़ी गड़बड़ियों की वजह से लागत बढ़ती है
डिवाइसों को सुरक्षा से जुड़े सुधारों के साथ अप-टू-डेट रखने से, हमारे उपयोगकर्ता सुरक्षित रहते हैं. हालांकि, इससे हमारे नेटवर्क पर होने वाले खर्च में बढ़ोतरी होती है.
वेंडर के लो लेवल कोड में, मेमोरी से जुड़ी सुरक्षा से जुड़ी गड़बड़ियों की संख्या ज़्यादा होती है. इनमें अक्सर कस्टम बदलाव होते हैं. इन गड़बड़ियों को ठीक करने और जांच करने की लागत काफ़ी बढ़ जाती है. हालांकि, डेवलपमेंट साइकल के दौरान इन गड़बड़ियों का जल्द पता लगाने से, इनकी लागत कम हो सकती है.
रिसर्च से पता चलता है कि गड़बड़ियों का पता पहले चलने पर, लागत में छह गुना तक की कमी आ सकती है. हालांकि, हमारे नेटवर्क की जटिलता, किसी वेंडर के बनाए गए कोडबेस की औसत संख्या, और सॉफ़्टवेयर की लगातार बढ़ती जटिलता को देखते हुए, बचत ज़्यादा हो सकती है.
मेमोरी की सुरक्षा
हमने Android 12 से, सिस्टम में बदलाव किए हैं, ताकि Android कोडबेस में मेमोरी से जुड़ी सुरक्षा से जुड़े गड़बड़ियों की संख्या कम की जा सके. हम Android के मेमोरी सेफ़्टी टूल को बेहतर बना रहे हैं. साथ ही, नई ज़रूरी शर्तें भी लागू कर रहे हैं. इससे हमारे नेटवर्क को इस तरह के बग को ठीक करने में मदद मिलेगी. समय के साथ, इनसे हमारे उपयोगकर्ताओं को बेहतर क्वालिटी और बेहतर सुरक्षा मिलेगी. साथ ही, हमारे वेंडर की लागत भी कम होगी.
आने वाले समय में, मेमोरी की सुरक्षा को क्वालिटी और सुरक्षा के लिए एक अलग चीज़ माना जा सकता है. Android इस दिशा में काम कर रहा है.
मेमोरी की सुरक्षा से जुड़ी ज़रूरी शर्तें
Android के साथ काम करने की जानकारी देने वाला दस्तावेज़ (सीडीडी), डेवलपमेंट के दौरान, स्मृति को सुरक्षित रखने वाले टूल इस्तेमाल करने का सुझाव देता है.
हम अपने नेटवर्क के साथ मिलकर काम कर रहे हैं, ताकि मेमोरी की सुरक्षा करने वाले टूल का इस्तेमाल बढ़ाया जा सके. साथ ही, उन्हें लगातार इंटिग्रेशन और जांच की प्रोसेस में इंटिग्रेट किया जा सके.
समय के साथ, हम यह पक्का करना चाहते हैं कि हर डिवाइस, मेमोरी सुरक्षा टूल का इस्तेमाल करके, पूरी तरह से काम करने की जांच करने वाले टूल (CTS) की जांच में पास हो. इससे यह पता चलता है कि कोई भी ऐसा बग नहीं मिला. उदाहरण के लिए, Arm v9 प्लैटफ़ॉर्म को मेमोरी टैगिंग की सुविधा चालू करके, सीटीएस चलाना होगा. वहीं, Arm v8 प्लैटफ़ॉर्म को HWASAN और KASAN का इस्तेमाल करके, सीटीएस चलाने के लिए कहा जाएगा.
प्लैटफ़ॉर्म कोड के लिए, Rust को नई प्रोग्रामिंग भाषा के तौर पर इस्तेमाल करना
Android 12 में, Rust को प्लैटफ़ॉर्म की भाषा के तौर पर शामिल किया गया है. Rust, C/C++ जैसी परफ़ॉर्मेंस के लेवल पर, मेमोरी और थिरेड की सुरक्षा देता है. हमें उम्मीद है कि Rust, ज़्यादातर नए नेटिव प्रोजेक्ट के लिए पसंदीदा विकल्प होगा. हालांकि, Rust में मेमोरी से जुड़े सभी असुरक्षित कोड को फिर से लिखना संभव नहीं है. फ़िलहाल, Android प्लैटफ़ॉर्म के 70% से ज़्यादा कोड में असुरक्षित कोड मौजूद है. आने वाले समय में, Rust, मेमोरी की सुरक्षा करने वाले टूल के साथ काम करेगा.
मेमोरी की सुरक्षा से जुड़े टूल
Android में कई तरह के टूल काम करते हैं. इनकी मदद से, मेमोरी से जुड़ी सुरक्षा से जुड़ी गड़बड़ियों का पता लगाया जा सकता है. नीचे दी गई इमेज में, Android डिवाइस की मेमोरी को सुरक्षित रखने वाले उपलब्ध टूल के बारे में बताया गया है.

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