पता स्थान लेआउट रैंडमाइजेशन (एएसएलआर) एक सुरक्षा तकनीक है जिसका उपयोग ऑपरेटिंग सिस्टम में किया जाता है, जिसे 2001 में लागू किया गया था। सभी प्रमुख ऑपरेटिंग सिस्टम (आईओएस, एंड्रॉइड, विंडोज, मैकओएस और लिनक्स) के वर्तमान संस्करण में एएसएलआर सुरक्षा है। लेकिन पिछले हफ्ते में, ASLR को दरकिनार करने का एक नया तरीका पाया गया है । तो, क्या आपको चिंतित होना चाहिए?
निम्न-स्तरीय प्रोग्रामिंग पृष्ठभूमि वाले लोगों के लिए, एएसएलआर भ्रमित हो सकता है। इसे समझने के लिए, आपको पहले वर्चुअल मेमोरी को समझना होगा।
वर्चुअल मेमोरी क्या है?
वर्चुअल मेमोरी कई लाभों के साथ एक मेमोरी मैनेजमेंट तकनीक है, लेकिन इसे मुख्य रूप से प्रोग्रामिंग को आसान बनाने के लिए बनाया गया था। कल्पना कीजिए कि आपके पास Google Chrome, Microsoft Word और कई अन्य प्रोग्राम हैं जो कंप्यूटर पर 4 जीबी रैम के साथ खुले हैं। समग्र रूप से, इस कंप्यूटर पर प्रोग्राम 4 जीबी से अधिक रैम का उपयोग करते हैं। हालांकि, सभी कार्यक्रम हर समय सक्रिय नहीं होंगे, या उस रैम तक एक साथ पहुंचने की आवश्यकता होगी।
ऑपरेटिंग सिस्टम कहे जाने वाले प्रोग्राम्स को मेमोरी की चंक्स आवंटित करता है । यदि एक बार में सभी पृष्ठों को संग्रहीत करने के लिए पर्याप्त रैम नहीं है, तो कम से कम आवश्यक होने वाले पृष्ठों को धीमे (लेकिन अधिक विशाल) हार्ड ड्राइव पर संग्रहीत किया जाता है। जब संग्रहीत पृष्ठों की आवश्यकता होती है, तो वे रैम में वर्तमान में कम आवश्यक पृष्ठों के साथ रिक्त स्थान स्विच करेंगे। इस प्रक्रिया को पेजिंग कहा जाता है, और इसके नाम को उधार देता है Windows पर pagefile.sys फ़ाइल .
वर्चुअल मेमोरी कार्यक्रमों को अपनी स्मृति का प्रबंधन करना आसान बनाता है, और उन्हें अधिक सुरक्षित भी बनाता है। अन्य कार्यक्रमों में डेटा कहां संग्रहीत किया जाता है, या कितनी रैम शेष है, इस बारे में चिंता करने की आवश्यकता नहीं है। वे आवश्यक रूप से अतिरिक्त मेमोरी (या अप्रयुक्त मेमोरी वापस करने) के लिए ऑपरेटिंग सिस्टम पूछ सकते हैं। सभी कार्यक्रम देखता है अपने अनन्य उपयोग के लिए मेमोरी एड्रेस का एक निरंतर निरंतर हिस्सा है, जिसे वर्चुअल एड्रेस कहा जाता है। प्रोग्राम को किसी अन्य प्रोग्राम की मेमोरी को देखने की अनुमति नहीं है।
जब किसी प्रोग्राम को मेमोरी एक्सेस करने की आवश्यकता होती है, तो यह ऑपरेटिंग सिस्टम को एक वर्चुअल एड्रेस देता है। ऑपरेटिंग सिस्टम सीपीयू की मेमोरी मैनेजमेंट यूनिट (MMU) से संपर्क करता है। MMU वर्चुअल और भौतिक पतों के बीच अनुवाद करता है, उस जानकारी को ऑपरेटिंग सिस्टम पर वापस करता है। किसी भी बिंदु पर कार्यक्रम सीधे रैम के साथ बातचीत नहीं करता है।
ASLR क्या है?
एड्रेस स्पेस लेआउट रैंडमाइजेशन (एएसएलआर) का उपयोग मुख्य रूप से बफर ओवरफ्लो हमलों से बचाने के लिए किया जाता है। एक बफर अतिप्रवाह में, हमलावर एक फ़ंक्शन को उतना ही जंक डेटा खिलाते हैं जितना वह संभाल सकता है, उसके बाद एक दुर्भावनापूर्ण पेलोड। पेलोड उस डेटा को अधिलेखित कर देगा जिसे प्रोग्राम एक्सेस करना चाहता है। कोड में किसी अन्य बिंदु पर कूदने के निर्देश एक सामान्य पेलोड हैं। प्रसिद्ध आईओएस 4 जेलब्रेकिंग की जेलब्रेक विधि , उदाहरण के लिए, एक बफर अतिप्रवाह हमले का इस्तेमाल किया, जिससे Apple को iOS 4.3 में ASLR जोड़ने के लिए प्रेरित किया गया।
बफर ओवरफ्लो को यह जानने के लिए एक हमलावर की आवश्यकता होती है कि कार्यक्रम का प्रत्येक भाग स्मृति में कहाँ स्थित है। यह पता लगाना आमतौर पर परीक्षण और त्रुटि की एक कठिन प्रक्रिया है। यह निर्धारित करने के बाद, उन्हें एक पेलोड को शिल्प करना चाहिए और इसे इंजेक्ट करने के लिए एक उपयुक्त स्थान ढूंढना चाहिए। यदि हमलावर को पता नहीं है कि उनका लक्ष्य कोड कहां स्थित है, तो उसका शोषण करना मुश्किल या असंभव हो सकता है।
ASLR वर्चुअल मेमोरी मैनेजमेंट के साथ-साथ प्रोग्राम के विभिन्न हिस्सों की मेमोरी को रैंडमाइज करने के लिए काम करता है। जब भी कार्यक्रम चलाया जाता है, तो घटक (स्टैक, हीप और लाइब्रेरी सहित) वर्चुअल मेमोरी में एक अलग पते पर चले जाते हैं। हमलावर अब यह नहीं सीख सकते हैं कि उनका लक्ष्य परीक्षण और त्रुटि के माध्यम से कहां है, क्योंकि पता हर बार अलग होगा। आमतौर पर, अनुप्रयोगों को एएसएलआर समर्थन के साथ संकलित करने की आवश्यकता होती है, लेकिन यह डिफ़ॉल्ट हो रहा है, और एंड्रॉइड 5.0 और बाद में भी आवश्यक है।
तो क्या ASLR अभी भी आपकी रक्षा करता है?
पिछले मंगलवार, SUNY बिंघमटन और कैलिफोर्निया विश्वविद्यालय, रिवरसाइड के शोधकर्ताओं ने एक पेपर प्रस्तुत किया ASLR पर कूदें: बाईपास ASLR पर शाखा के पूर्वजों पर हमला । पेपर ब्रांच टार्गेट बफर (BTB) पर हमला करने का एक तरीका बताता है। बीटीबी उस प्रोसेसर का हिस्सा है जो परिणाम की भविष्यवाणी करके बयानों को गति देता है। लेखकों की पद्धति का उपयोग करके, चल रहे कार्यक्रम में शाखा के ज्ञात निर्देशों का निर्धारण करना संभव है। प्रश्न पर हमला एक इंटेल मशीन के साथ एक लिनक्स मशीन पर किया गया था (पहली बार 2013 में जारी किया गया था), लेकिन संभवतः किसी भी आधुनिक ऑपरेटिंग सिस्टम और प्रोसेसर पर लागू किया जा सकता है।
उसने कहा, आपको जरूरी निराशा नहीं होनी चाहिए। कागज ने कुछ तरीकों की पेशकश की जो हार्डवेयर और ऑपरेटिंग सिस्टम डेवलपर्स इस खतरे को कम कर सकते हैं। नई, बढ़िया अनाज वाली एएसएलआर तकनीकों को हमलावर से अधिक प्रयास की आवश्यकता होती है, और एन्ट्रापी (यादृच्छिकता) की मात्रा में वृद्धि से जंप ओवर हमले को असरदार बना सकते हैं। सबसे अधिक संभावना है, नए ऑपरेटिंग सिस्टम और प्रोसेसर इस हमले के लिए प्रतिरक्षा होंगे।
तो इसके लिए क्या बचा है करने के लिए? जंप ओवर बाईपास नया है, और अभी तक जंगली में नहीं देखा गया है। जब हमलावर इसका फायदा उठाते हैं, तो दोष बढ़ जाएगा संभावित नुकसान एक हमलावर आपके डिवाइस पर पैदा कर सकता है। पहुंच का यह स्तर अभूतपूर्व नहीं है; Microsoft और Apple ने केवल 2007 और बाद में जारी अपने ऑपरेटिंग सिस्टम में ASLR को लागू किया। यहां तक कि अगर हमले की यह शैली आम हो जाती है, तो आप विंडोज एक्सपी के दिनों में वापस आने की तुलना में कोई भी बदतर नहीं होंगे।
ध्यान रखें कि हमलावरों को अभी भी किसी भी तरह का नुकसान करने के लिए आपके डिवाइस पर अपना कोड प्राप्त करना है। यह दोष उन्हें आपको संक्रमित करने के लिए कोई अतिरिक्त तरीका प्रदान नहीं करता है। हमेशा की तरह, आपको करना चाहिए सुरक्षा सर्वोत्तम प्रथाओं का पालन करें । एंटीवायरस का उपयोग करें, स्केच वेबसाइटों और कार्यक्रमों से दूर रहें और अपने सॉफ़्टवेयर को अद्यतित रखें। इन चरणों का पालन करने और अपने कंप्यूटर से दुर्भावनापूर्ण अभिनेताओं को रखने से, आप कभी भी सुरक्षित रहेंगे।
छवि श्रेय: स्टीव / फ़्लिकर