सवाल माउंटिंग / tmp noexec कितना उपयोगी है?


कई लोग (सहित डेबियन मैनुअल सुरक्षित) बढ़ते अनुशंसा करते हैं /tmp उसके साथ noexec,nodev,nosuid विकल्पों का सेट। यह आम तौर पर किसी हमले की वृद्धि को रोकने से 'रक्षा-गहराई' रणनीति का एक तत्व के रूप में प्रस्तुत किया जाता है जो किसी को फ़ाइल लिखने देता है, या किसी वैध खाते वाले उपयोगकर्ता द्वारा हमला करता है लेकिन कोई अन्य लिखने योग्य स्थान नहीं होता है।

हालांकि, समय के साथ, मुझे तर्कों का सामना करना पड़ा है (सबसे महत्वपूर्ण रूप से डेबियन / उबंटू डेवलपर कॉलिन वाटसन द्वारा) noexec कुछ संभावित कारणों के लिए एक बेकार उपाय है:

  1. उपयोगकर्ता चला सकते हैं /lib/ld-linux.so <binary> एक ही प्रभाव प्राप्त करने के प्रयास में।
  2. उपयोगकर्ता अभी भी स्क्रिप्ट पर सिस्टम-प्रदत्त दुभाषिया चला सकता है जिसे सीधे नहीं चलाया जा सकता है

इन तर्कों को देखते हुए, अधिक विन्यास के लिए संभावित आवश्यकता (उदा। debconf एक निष्पादन योग्य अस्थायी निर्देशिका पसंद है), और सुविधा की संभावित हानि, यह एक सार्थक सुरक्षा उपाय है? आप किस छेद के बारे में जानते हैं जो छेड़छाड़ को सक्षम करता है?


37
2017-10-07 23:43


मूल


@neoice: मैंने सुना है कि एप्लिकेशन कभी-कभी तोड़ देंगे यदि / tmp निष्पादन योग्य नहीं है। मुझे अभी तक वास्तव में ऐसा नहीं हुआ है। टक्सगुइटर-1.2 देखें ... ऐसा होता है। शुरू नहीं होगा अगर / tmp को बिना किसी विकल्प के आरोहित किया गया है, क्योंकि यह वहां पुस्तकालयों को अनपैक करता है और फिर उन्हें लोड करने का प्रयास करता है।
वीएमवेयर की साइट रिकवरी मैनेजर "/ tmp" से स्क्रिप्ट चलाता है: आईपी अनुकूलन vCenter साइट रिकवरी मैनेजर (2021083) में एक पुनर्प्राप्ति योजना के विफलता या परीक्षण विफलता के दौरान विफल रहता है: kb.vmware.com/selfservice/microsites/...
मुझे पता है कि संपीड़न उपयोगिता जिसे स्नैपी कहा जाता है, एक .so फ़ाइल / tmp में ड्रॉप करता है और अगर यह घुड़सवार नहीं है तो चलाया जा सकता है। (इसका उपयोग कैसंड्रा और कफका में डिफ़ॉल्ट रूप से किया जाता है) IMHO यह कारण है कि माउंट / tmp noexec को आरोहित न करने के कारण स्नैपी का उपयोग न करें - jorfus


जवाब:


उपयोगिता के लिए तर्क यहां दिए गए हैं जिनके साथ मैं अभी तक आया हूं:

आधुनिक कर्नेल ठीक करें /lib/ld-linux.so छेद, ताकि वह निष्पादन योग्य पृष्ठों को मानचित्र से मैप करने में सक्षम न हो noexec फाइल सिस्टम।

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

कई 'डिब्बाबंद' शोषण निष्पादन योग्य लिखने और चलाने की कोशिश कर सकते हैं /tmp, इसलिए noexec एक पटकथा हमले में गिरने की संभावना को कम कर देता है (भेद्यता प्रकटीकरण और पैच स्थापना के बीच खिड़की में कहें)।

इस प्रकार, बढ़ते जाने के लिए अभी भी एक सुरक्षा लाभ है /tmp साथ में noexec

जैसा कि वर्णन किया गया है डेबियन के बग ट्रैकर, सेटिंग APT::ExtractTemplates::TempDir में apt.conf एक निर्देशिका के लिए जो नहीं है noexec और रूट के लिए सुलभ डेबॉन्फ चिंता को रोक देगा।


28
2017-10-07 23:46



हालांकि, मैं है सुना है कि एप्लिकेशन कभी-कभी तोड़ देंगे यदि / tmp निष्पादन योग्य नहीं है। मुझे अभी तक वास्तव में ऐसा नहीं हुआ है। - neoice
जैसा कि प्रश्न में जुड़े मैनुअल में उल्लेख किया गया है, यह विकल्प स्थापित किए बिना डेबॉन्क पैकेज प्री-कॉन्फ़िगरेशन के साथ गड़बड़ करता है। - Phil Miller
हां, सुरक्षा के लिए नोएक्सैक एक बहुत अच्छी अतिरिक्त परत है और मैंने चीजों को तोड़ने से चीजों को तोड़ने को नहीं देखा है। पैकेज इंस्टॉलेशन एकमात्र चीज है और यहां तक ​​कि यहां जवाबों के बारे में बताया गया है। मेरे समाधान के रूप में मेरे पास इस तरह का उपनाम है: उपनाम अद्यतन = "माउंट-ओ निष्पादन, रीमाउंट / tmp && apt-get अद्यतन && apt-get नवीनीकरण और& mount -o noexec, remount / tmp" - Janne Pikkarainen
मुझे लगता है कि यह असामान्य है, लेकिन पैकेज संकुल संदर्भ के बाहर / tmp से कुछ निष्पादित करने के लिए लिखे गए संकुल मौजूद हैं (उदाहरण के लिए, बेल्जियम इलेक्ट्रॉनिक पहचान कार्ड का उपयोग करने के लिए मिडलवेयर का वर्तमान संस्करण)। - equaeghe
equaeghe: वह पैकेज क्या है? यह शायद एक बग के रूप में रिपोर्ट किया जाना चाहिए। मैं यह शर्त लगाने के लिए तैयार हूं कि इसका उपयोग करने के तरीके में सुरक्षा भेद्यता भी है। - Phil Miller


पैकेज को स्थापित करने के लिए कई डेबियन पैकेजों को निष्पादन योग्य / tmp की आवश्यकता होती है। इन्हें अक्सर बग के रूप में चिह्नित किया जाता है ('सामान्य' / 'इच्छासूची' गंभीरता के):

https://www.google.com/#q=site:bugs.debian.org+noexec+/tmp

मुझे अभी हाल ही में स्थिर शाखा में अद्यतन कर्नेल स्थापित करते समय यह त्रुटि मिली है।

तो ऐसा लगता है कि डेबियन (और डेरिवेटिव्स?) के लिए तैयार नहीं है / tmp को exexec आरोहित किया जा रहा है ...


7
2017-08-21 02:07





निम्नलिखित को /etc/apt.conf, या, /etc/apt/apt.conf.d/50remount में जोड़ें

DPkg::Pre-Install-Pkgs {"mount -o remount,exec /tmp";};
DPkg::Post-Invoke {"mount -o remount /tmp";};

6
2017-08-30 02:37



मैंने बदल दिया है mount द्वारा /bin/mount यदि पीएटीएच संशोधित हो जाता है। तुम्हें कभी पता नहीं चलेगा। - Lekensteyn


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


4
2017-08-21 03:17





प्रथम: इसमें कई अलग-अलग हमले के मामले शामिल हैं इसे बंद कर दिया क्योंकि इसके चारों ओर कुछ ज्ञात तरीके थे (जिनमें से कुछ भी तय किए गए हैं) अजीब है। / Dev / shm या / tmp को कोड डाउनलोड करने वाले हमलावर एक आम बात है जो वे करते हैं।

गहराई में रक्षा सबसे आम मार्गों को सुरक्षित करने के बारे में है, जो उन्हें रोकता है, वह आपके सिस्टम को और अधिक जीवित बनाता है। असुरक्षित। लेकिन यह भी होगा एक अवसर। अगर वे अपना माध्यमिक पेलोड नहीं ला सकते हैं, तो यह एक बहुत अच्छा मौका है जिसे आप प्राप्त कर रहे हैं।

  • यह iptables उपयोगकर्ता प्रतिबंधों द्वारा भी रोका जा सकता है।
  • इसे SELinux द्वारा भी रोका जा सकता है।
  • यह भी हो सकता है नहीं आसानी से पहुंचे अन्य शोषण के कारण रोका जा सकता है।

मुद्दा यह है कि आप इसे जितना कठिन बनाते हैं आसानी से कर सकते हैं, और 99% हमलों काट सकते हैं।

दूसरा:  यह खराब अभ्यास रोकता है (अस्थायी से सामान चला रहा है, उपयोगकर्ता tmpdir के बजाय / tmp के माध्यम से प्रमुख एप्लिकेशन इंस्टॉल करता है), डेटा को / tmp में छोड़कर। आमतौर पर कस्टम इंस्टॉलर टीएमपीडीआईआर समझें इसके अलावा: यहां तक ​​कि यदि नहीं: स्थापना समय, बिंदु-समय-समय पर कार्रवाई के रूप में, सुरक्षा समस्या को बंद करने का एक वैध कारण नहीं है स्थायी रूप से

तीसरा: अज्ञात नेमस्पेस को / tmp (एक "फीचर") में देखते हुए, आप वाकई वहां क्या रोकते हैं और वहां से चलना चाहते हैं।

आगे: सुविधा इस में एक प्रासंगिक कारक नहीं है। मान लें कि हम पैसे के लिए सर्वर चलाते हैं, और एक उद्देश्य के लिए: हम इस सामान के लिए ज़िम्मेदार हैं। "ओह, मैंने लॉक नहीं किया / tmp क्योंकि तब मुझे कुछ और मिनट चाहिए जब मैं अगले साल अपने सॉफ्टवेयर को अपडेट करता हूं"। निश्चित रूप से यह सिर्फ एक चीज नहीं होगी जो ब्लैकमेल होने और बस ठीक होने के बीच है। एक महान कारण? मुझे ऐसा नहीं लगता।

इसके बारे में क्या खयाल है:

"हमने सीखा है कि दुश्मन बिना किसी सूचना के हमला कर सकते हैं। वे भी कर सकते हैं   भोजन जहर करने के लिए सैकड़ों जासूसों का उपयोग करें। तो हम बाहर हाथ बंद कर दिया   हमारे सैनिकों को बंदूकें। "

रुको क्या?

ऐसे अन्य उपाय हैं जिनके लिए सिस्टम को सुरक्षित करने के लिए बहुत अधिक प्रयास, अनुभव और भाग्य की आवश्यकता होती है, और लोगों को जानना सीमित है कि जीवन, जीवनकाल और अपने परिवारों के साथ समय बिताना भी चाहते हैं: आसान सामान को न छोड़ें।


2
2017-11-21 10:44





ऐसे अनुप्रयोग हैं जिन्हें स्थापित करने के लिए निष्पादन योग्य / tmp की आवश्यकता होती है। पिछली नौकरी में, इससे पहले कि मैं वहां गया, व्यवस्थापक ने / tmp noexec सेट अप किया था, लेकिन मुझे पता चला कि डीबी 2 पैकेज इंस्टॉल नहीं होगा। यहां तक ​​कि यदि आप कहीं और db2 पैकेज को अनार करते हैं, तो इंस्टॉलेशन प्रक्रिया कुछ फ़ाइलों को / tmp पर प्रतिलिपि बनाता है और इसे निष्पादित करने में सक्षम होने की अपेक्षा करता है, जो निश्चित रूप से अस्वीकार कर दिया गया है। यदि आप इस बात से अवगत नहीं हैं कि फाइल सिस्टम को नोएक्सैक पर रखा गया है, तो यह थोड़ा भ्रामक हो सकता है। यह बिना किसी निष्पादन के \ remp / tmp के बाद स्थापित करने में सक्षम था।

वैसे भी, मुद्दा यह है कि कम से कम एक वाणिज्यिक उत्पाद को / exmp को आरोहित नहीं किया जाना चाहिए, और अन्य भी हो सकते हैं। मुझे इसके लिए वास्तव में एक आकर्षक कारण नहीं मिला है। अगर आप बेहतर सुरक्षा चाहते हैं, तो मैं इसके बजाय सेलिनक्स के साथ जाऊंगा।


1
2017-08-25 13:13



सांबा भेद्यता के लिए एक शोषण का विश्लेषण, जिसे नोएक्सैक / टीएमपी द्वारा रोक दिया जाएगा: bobao.360.cn/learning/detail/4168.html (क्रोम के Google अनुवाद की सिफारिश की गई है। यह प्रारंभिक शोषण, साथ ही पेलोड का एक बड़ा हिस्सा तोड़ देगा ...) (आप इस तरह के कई सामान्य स्वचालित शोषण तोड़ सकते हैं ....)। mount -o remount,exec /tmp काम करता है जब आपको सामान स्थापित करने की आवश्यकता होती है ... (हाँ, यह काम करने के लिए तुच्छ है, लेकिन कई हमलावर परेशान नहीं लगते हैं ...) - Gert van den Berg