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