GWP-ASan और KFENCE

GWP-ASan और KFENCE, उपयोगकर्ता स्पेस और कर्नेल के लिए, मेमोरी की गड़बड़ी का पता लगाने वाले टूल हैं. चालू होने पर, कुछ ऐलोकेशन को अतिरिक्त मेमोरी पेजों से सुरक्षित किया जाता है. ये पेज, ऐलोकेशन की मेमोरी के आस-पास होते हैं. इससे, परफ़ॉर्मेंस पर बहुत कम असर डालते हुए, बफ़र ओवरफ़्लो और इस्तेमाल के बाद मुक्त करने की गड़बड़ियों का पता लगाया जा सकता है. गार्ड किए गए ऐलोकेशन के लिए छोटे सैंपल रेट के साथ भी, बड़े पैमाने पर डिप्लॉय किए जाने पर, वे मेमोरी सेफ़्टी बग का पता लगा सकते हैं. इन टूल के लॉन्च होने के बाद से, इनकी मदद से प्लैटफ़ॉर्म के कई बग की पहचान की गई है. साथ ही, ये टूल प्लैटफ़ॉर्म की परफ़ॉर्मेंस और सुरक्षा को बेहतर बनाने में भी मददगार साबित हुए हैं. हम वेंडर को उन्हें चालू करने और असली उपयोगकर्ताओं के डिवाइसों पर मिली गड़बड़ियों पर बारीकी से नज़र रखने का सुझाव देते हैं.

डेवलपर को /data/tombstones, logcat की जांच करके या एंड यूज़र बग के लिए, वेंडर की DropboxManager पाइपलाइन पर नज़र रखकर, क्रैश की मौजूदगी की जांच करनी चाहिए.

ज़्यादा जानकारी के लिए, Android के नेटिव कोड को डीबग करने के बारे में हमारे दस्तावेज़ देखें.

नेटिव Android प्लैटफ़ॉर्म कोड को डीबग करना

यूज़रस्पेस मेमोरी सुरक्षा बग का पता लगाने के लिए GWP-ASan

GWP-ASan को Android 11 में, यूज़रस्पेस के लिए ढेर के ऐलोकेशन के मकसद से पेश किया गया था. जब GWP-ASan को किसी गड़बड़ी का पता चलता है, तो वह Cause: [GWP-ASan]: के साथ क्रैश रिपोर्ट रिकॉर्ड करता है और प्रोसेस को बंद कर देता है. गड़बड़ी की रिपोर्ट में, ऐलोकेशन और डिऐलोकेशन से जुड़ी ज़्यादा जानकारी होती है. इससे गड़बड़ी की मूल वजह की पहचान करना आसान हो जाता है.

GWP-ASan, सिस्टम के चालू होने पर, 1% सिस्टम प्रोसेस या ऐप्लिकेशन के लिए, रैंडम तौर पर चालू होता है. साथ ही, यह उन ऐप्लिकेशन के लिए भी चालू होता है जो अपनी AndroidManifest.xml फ़ाइल में android:gwpAsanMode सेट करते हैं.

GWP-ASan

कर्नेल की मेमोरी की सुरक्षा से जुड़ी गड़बड़ियों का पता लगाने के लिए KFENCE

Android 12 में, कर्नेल हीप ऐलोकेशन के लिए KFENCE पेश किया गया. जब KFENCE को किसी गड़बड़ी का पता चलता है, तो यह BUG: KFENCE, से शुरू होने वाली क्रैश रिपोर्ट को रिकॉर्ड करता है. इससे गार्ड पेज बंद हो जाते हैं और एक्ज़ीक्यूशन जारी रहता है. इससे, कर्नेल में मौजूद गड़बड़ी का पता लगाने वाला एक तरीका चालू होता है. इससे उपयोगकर्ता के अनुभव पर कम से कम असर पड़ता है.

KFENCE के बारे में ज़्यादा जानने के लिए, https://www.kernel.org पर उपलब्ध दस्तावेज़ देखें