क्या लिनक्स पर अनपेक्षित उपयोगकर्ताओं को पर्यावरण चर दिखाई दे रहे हैं?


12

मैं यह निर्धारित करने की कोशिश कर रहा हूं कि क्या लिनक्स में, एक प्रक्रिया के लिए पर्यावरण चर अन्य (गैर-रूट) उपयोगकर्ताओं द्वारा देखे जा सकते हैं।

तत्काल उपयोग का मामला पर्यावरण चर में रहस्य डाल रहा है। यह पूरे वेब पर असुरक्षित होने के रूप में कई स्थानों पर चर्चा की गई है, लेकिन मैं लिनक्स में सटीक एक्सपोज़र पॉइंट पर शून्य नहीं कर पाया हूं।

ध्यान दें कि मैं क्लीयरटेक्स सीक्रेट्स को फाइलों में डालने की बात नहीं कर रहा हूं । यह भी ध्यान दें कि मैं रूट खाते के संपर्क के बारे में बात नहीं कर रहा हूं (मैं एक गैर के रूप में रूट के साथ एक विरोधी से रहस्यों को छिपाने का प्रयास करता हूं)।

यह सवाल खान को संबोधित करने के साथ प्रतीत होता है, टिप्पणियों के साथ जो पर्यावरण चर को पूरी तरह से सुरक्षा के बिना वर्गीकृत करते हैं, या केवल सीधे तौर पर बाधित किया जा रहा है, लेकिन कोई उन्हें कैसे एक्सेस करता है?

मेरे परीक्षणों में एक अनपेक्षित उपयोगकर्ता प्रक्रिया तालिका ('ps auxwwe') के माध्यम से किसी अन्य उपयोगकर्ता के लिए पर्यावरण चर नहीं देख सकता है। वातावरण चर (जैसे निर्यात) सेट करने वाले कमांड शेल बिल्ड हैं जो इसे प्रोसेस टेबल पर नहीं बनाते हैं और एक्सटेंशन द्वारा / proc / $ pid / cmdline में नहीं होते हैं। / proc / $ pid / environ प्रक्रिया के स्वामी द्वारा केवल पठनीय है।

शायद भ्रम विभिन्न ऑपरेटिंग सिस्टम या संस्करणों के बीच है। वेब पर विभिन्न (हाल के) स्रोत पर्यावरण चर की असुरक्षा को कम कर देते हैं, लेकिन विभिन्न लिनक्स संस्करणों की मेरी स्पॉट-चेकिंग से संकेत मिलता है कि यह कम से कम 2007 तक संभव नहीं है (शायद आगे लेकिन मेरे पास बक्से नहीं हैं परीक्षण के लिए हाथ)।

लिनक्स में, एक गैर-विशेषाधिकार प्राप्त उपयोगकर्ता किसी अन्य प्रक्रिया के लिए पर्यावरण चर कैसे देख सकता है?

जवाबों:


7

जैसा कि गाइल्स ने एक बहुत व्यापक उत्तर में एक समान प्रश्न पर security.stackexchange.com पर समझाया , प्रक्रिया वातावरण केवल उस उपयोगकर्ता के लिए सुलभ है जो प्रक्रिया का मालिक है (और निश्चित रूप से रूट)।


आपके द्वारा बताई गई पोस्ट का कोई लिंक?
cccc

@ cyc115 शब्द "उत्तर" पर क्लिक करें :)
guntbert

6

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

आप केवल 2 स्थानों में पर्यावरण चर में संग्रहीत डेटा तक पहुँच सकते हैं:

1. प्रक्रिया का चल वातावरण

जब प्रक्रिया चल रही होती है, तो उस प्रक्रिया के पर्यावरण चर के माध्यम से पहुँचा जा सकता है /proc/$PID/environ। हालांकि, केवल उपयोगकर्ता जो प्रक्रिया, या रूट का मालिक है, वह फ़ाइल तक पहुंच सकता है।

2. पर्यावरण चर का स्रोत

यदि आप एक init स्क्रिप्ट का उपयोग कर रहे हैं, और चर उस init स्क्रिप्ट में संग्रहीत हैं, तो चर उस स्क्रिप्ट को पढ़कर प्राप्त किया जा सकता है।

या अगर पर्यावरण चर कहीं और से आ रहे हैं, तो वह कहीं भी है।

3. 'पीएस' आउटपुट

हाँ, मुझे पता है कि मैंने कहा 2, और किसी भी सभ्य प्रणाली में, यह 2 होगा। हालांकि, अगर व्यवस्थापक को पता नहीं है कि वह क्या कर रहा है, तो यह 3 ए एवेन्यू को खोलना संभव है।

यदि इस प्रक्रिया को किसी चीज़ के माध्यम से लॉन्च किया जाता है sh -c 'cd /foo/bar; POP=tart /my/executable', तो वह shप्रक्रिया इसमें दिखाई देगी ps:

$ sh -c 'cd /; POP=tart sleep 10' &
[1] 3085

$ ps ax | grep POP
phemmer   3085  14   5  0.0  0.0 SN         00:00 sh -c cd /; POP=tart sleep 10

1
आपको eसंशोधक का भी उल्लेख करना चाहिए ps। यह केवल उन प्रक्रियाओं के वातावरण को देखने की अनुमति देता है जो उपयोगकर्ता का मालिक है।
बमर

1
एक और संभावित स्थान: यदि पर्यावरण चर को शेल (जैसे export FOO=bar) के माध्यम से सेट किया गया था, तो यह इतिहास फ़ाइल (उदाहरण ~/.bash_history) में भी दिखाई दे सकता है यदि उपयोगकर्ता ने इसे सहेजने से रखने, या इसे हटाने के लिए सावधानी नहीं बरती।
तवानब
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.