क्या उबंटू डीईपी और एएलएसआर जैसी सुरक्षा सुविधाओं का उपयोग करता है?


11

मैं अक्सर पढ़ता हूं कि डीईपी (डेटा निष्पादन रोकथाम) और एएसएलआर (एड्रेस स्पेस लेआउट रैंडमाइजेशन) जैसी सुविधाएं विंडोज पर प्रदान की जाती हैं। विंडोज पर, आपको 32-बिट प्रोग्राम के लिए DEP चालू करने पर कुछ नियंत्रण दिया जाता है।

  • क्या ये सुविधाएँ उबंटू में उपलब्ध हैं
  • इन विशेषताओं को चालू करने के लिए हमें कुछ करने की आवश्यकता है?

जवाबों:


20

दोनों के लिए हाँ। वे डिफ़ॉल्ट रूप से चालू हैं; इसे सक्षम करने के लिए आपको कुछ भी करने की आवश्यकता नहीं है। लंबे उत्तर के बाद ...

डीईपी का उपयोग डिफ़ॉल्ट रूप से उबंटू में किया जाता है। यह NX बिट के माध्यम से किया जाता है यदि CPU इसका समर्थन करता है, या मेमोरी सेगमेंट के माध्यम से उत्सर्जित होता है यदि CPU इसका समर्थन नहीं करता है। अधिक विवरण के लिए, गैर-निष्पादन योग्य मेमोरी सुविधा आइटम देखें

एएसएलआर का उपयोग उबंटू में डिफ़ॉल्ट रूप से किसी भी मेमोरी सेगमेंट पर किया जाता है जिसे स्थानांतरित किया जा सकता है (स्टैक, लाइब्रेरीज़, हीप, एमएमएपी)। किसी प्रोग्राम का एकमात्र भाग जो डिफ़ॉल्ट रूप से स्थानांतरित करने योग्य नहीं है, मुख्य कोड क्षेत्र ("टेक्स्ट" सेगमेंट) है। इसे सक्षम करने के लिए PIE (स्थिति स्वतंत्र निष्पादन योग्य) के रूप में कार्यक्रमों को विशेष रूप से संकलित करने की आवश्यकता है। कई संवेदनशील कार्यक्रम पहले से ही इस तरह से बनाए गए हैं। अधिक जानकारी के लिए, सूची देखें

कई अतिरिक्त सुरक्षा सुविधाएँ भी उबंटू में डिफ़ॉल्ट रूप से उपलब्ध हैं। पूरी सूची के लिए Ubuntu Security फीचर्स के डॉक्यूमेंटेशन देखें ।


1

लिनक्स कर्नेल, डिफ़ॉल्ट रूप से, समान तकनीकों का उपयोग करता है, हालांकि वे विंडोज संस्करणों से अलग हैं। यदि आपके प्रोसेसर में NX बिट (अधिकांश आधुनिक CPU) सेट करने की क्षमता है, तो कर्नेल इसका उपयोग करेगा। कर्नेल में एएसएलआर में एक कमजोर कार्यान्वयन भी है, और मजबूत स्थापित किए जा सकते हैं, लेकिन उबंटू पर डिफ़ॉल्ट रूप से स्थापित नहीं हैं।


3
मुझे इस समय संदर्भ नहीं मिल रहा है (विकिपीडिया लेख en.wikipedia.org/wiki/ASLR में एन्ट्रापी तुलना के बिट्स नहीं हैं), लेकिन मेरी समझ यह है कि विंडोज एएसएलआर लिनक्स से कमजोर है। और यदि आप लिनक्स डिफॉल्ट की तुलना में भारी-शुल्क एएसएलआर चाहते हैं, तो आप अपने कर्नेल को PaX पैचसेट का निर्माण कर सकते हैं, जो एक छोटी संगतता लागत में उच्च एन्ट्रापी प्रदान करता है।
कीस कुक

मतभेदों को तोड़ता हुआ एक अच्छा लेख। सर्टिफिकेटhttp://blogs/certcc/post.cfm?EntryID=191 , निश्चित रूप से, जो बारीक विवरणों की कुछ बहस के साथ पूरा नहीं होगा: D reddit.com/r/necec/comments/ 1xjwde /…
Univ426

0

आम तौर पर और बस बोलते हुए, आपको इसके लिए कर्नेल के एक पीएई संस्करण की आवश्यकता होगी। इस विषय पर विस्तृत जानकारी के लिए इस सारांश को देखें ।


3
PAE केवल हार्डवेयर NX के लिए आवश्यक है। 64 बिट पहले से ही पीएई है, इसलिए 32 बिट पर यदि आप पीएई कर्नेल नहीं चला रहे हैं, या आपके हार्डवेयर में एनएक्स बिट का अभाव है, तो उबंटू मेमोरी सेगमेंट का उपयोग करके एनएक्स फीचर का अनुकरण करता है।
कीस कुक

@ केक कुक: जानकारी के लिए धन्यवाद। ओपी ने 32 बिट के बारे में पूछा। मेरे सिस्टम पर (ubuntu 10.10 32bit) dmesgकहता है NX (Execute Disable) protection cannot be enabled: non-PAE kernel। दूसरी ओर, जब मैंने bazaar.launchpad.net/~ubuntu-bugcontrol/qa-regression-testing/… से परीक्षण चलाया , तो nx लागू होने के लिए लग रहा था, लेकिन परीक्षण -pieऔर -rieपरीक्षण के लिए नहीं । इसलिए यह मेरे लिए थोड़ा भ्रमित करने वाला है।
व्यवस्थित करें

2
: दुर्भाग्य से, 10.10 और बाद के dmesg रिपोर्ट एक बग जहां यह कहना नहीं है जब NX अनुकरण NX के साथ, लेकिन एक पीएई गिरी बिना हार्डवेयर पर सक्षम है kernel.ubuntu.com/git?p=ubuntu/...
Kees कुक

1
(इसे अब बग के रूप में सूचित किया गया है: बग्सलाउंचपड.नेट / जुबांट / +ource / linux / + bug/ 745181 )
कीस कुक
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.