आपने जिस विशिष्ट हमले के बारे में चिंता व्यक्त की है वह है:
अक्सर एक हमलावर केवल डाउनलोड करने और क्लिक करके एक निष्पादन योग्य चलाने में एक भोला उपयोगकर्ता को मूर्ख बना देगा।
कम से कम सामान्य मामले में जहां फ़ाइल को एक वेब ब्राउज़र में डाउनलोड किया जाता है, इसे पहले से ही उबंटू में ब्राउज़र की एक्ज़ेक्यूट-परमिशन बिट आवश्यक नीति के पालन द्वारा रोका जाना चाहिए । उस नीति के सबसे सीधे प्रासंगिक हिस्से हैं:
- वेब ब्राउजर, मेल क्लाइंट आदि से डाउनलोड की गई फाइलें कभी भी निष्पादन योग्य नहीं बचती हैं।
इसलिए यदि किसी उपयोगकर्ता को वेब ब्राउज़र में प्रोग्राम डाउनलोड करने के लिए कहा जाता है, तो वह ऐसा करता है, और फ़ाइल को डबल क्लिक करके चलाने का प्रयास करता है, यह नहीं चलेगा। यह तब भी लागू होता है जब डाउनलोड की गई फ़ाइल एक शेल स्क्रिप्ट या यहां तक कि .desktop फ़ाइल है। (यदि आपने कभी सोचा है कि आपके घर निर्देशिका में .desktop फ़ाइलों को निष्पादन योग्य के रूप में चिह्नित किया जाना है, भले ही वे वास्तव में कार्यक्रम नहीं हैं, इसलिए।)
उपयोगकर्ताओं के लिए कॉन्फ़िगरेशन परिवर्तनों के माध्यम से इस व्यवहार को बदलना संभव है। अधिकांश नहीं करेंगे, और जबकि वे जो शायद नहीं करना चाहिए, यह वास्तव में आप के बारे में चिंता करने की ज़रूरत नहीं है। बड़ी चिंता वह अधिक जटिल हमला है जो मुझे लगता है कि आप पहले से ही चिंतित हैं, जिसमें एक दुर्भावनापूर्ण व्यक्ति (या बॉट) उपयोगकर्ता को एक विशिष्ट फ़ाइल डाउनलोड करने के लिए निर्देश देता है, इसे स्वयं निष्पादन योग्य (उनके फ़ाइल ब्राउज़र के साथ या chmod
), और फिर इसे चलाएं।
दुर्भाग्य से, किसी फ़ाइल पर निष्पादन बिट सेट करने के लिए या कुछ श्वेतसूची पर उन के अलावा अन्य फ़ाइलों को निष्पादित करने के लिए उपयोगकर्ता की क्षमता को प्रतिबंधित करने से समस्या को कम नहीं किया जा सकेगा। कुछ हमले पहले से ही काम करेंगे, और वे जो तुच्छ रूप से संशोधित नहीं किए जा सकते ताकि वे करें। मूलभूत मुद्दा यह है कि फ़ाइल चलाने का प्रभाव तब भी प्राप्त किया जा सकता है , जब फ़ाइल में निष्पादन योग्य अनुमतियां न हों ।
यह सबसे अच्छा उदाहरण द्वारा चित्रित किया गया है। मान लीजिए evil
कि वर्तमान निर्देशिका में एक फ़ाइल है, जिसे यदि निष्पादन योग्य अनुमतियाँ ( chmod +x evil
) और रन ( ./evil
) दी जाती हैं, तो इससे कुछ बुराई होगी। यह किस प्रकार का कार्यक्रम है, इसके आधार पर, निम्नलिखित में से एक द्वारा एक ही प्रभाव प्राप्त किया जा सकता है:
उनमें से कोई भी, अंतिम एक भी नहीं, इसके लिए आवश्यक है कि फ़ाइल में निष्पादन योग्य अनुमति हो या यहां तक कि उपयोगकर्ता फ़ाइल को निष्पादन योग्य अनुमति देने में सक्षम हो।
लेकिन दुर्भावनापूर्ण निर्देशों को भी उतना जटिल नहीं होना चाहिए। इस गैर-दुर्भावनापूर्ण आदेश पर विचार करें , जो NVM को स्थापित या अद्यतन करने के आधिकारिक तौर पर सुझाए गए तरीकों में से एक है :
wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.34.0/install.sh | bash
दुर्भावनापूर्ण नहीं होने का कारण यह है कि NVM मैलवेयर नहीं है, लेकिन अगर URL किसी की स्क्रिप्ट के बजाय होता है जो रन करते समय बुराई करता है, तो वह कमांड स्क्रिप्ट को डाउनलोड और रन करेगा। किसी भी बिंदु पर किसी भी फ़ाइल को निष्पादन योग्य अनुमति देने की आवश्यकता नहीं होगी। इस तरह के एक ही आदेश के साथ एक दुर्भावनापूर्ण फ़ाइल में निहित कोड को डाउनलोड करना और चलाना, मेरा मानना है, एक बहुत ही सामान्य कार्रवाई है जो हमलावर उपयोगकर्ताओं को लेने में छल करती है।
उपयोगकर्ताओं को चलाने के लिए कौन से दुभाषिए उपलब्ध हैं, इसे प्रतिबंधित करने की कोशिश करने के बारे में आप सोच सकते हैं। लेकिन वास्तव में ऐसा करने का कोई तरीका नहीं है जो उन सामान्य कार्यों को पर्याप्त रूप से प्रभावित नहीं करता है जो आप संभवतः उपयोगकर्ताओं को करने में सक्षम होना चाहते हैं। यदि आप एक अत्यंत प्रतिबंधित वातावरण की स्थापना कर रहे हैं, जिस पर लगभग हर उपयोगकर्ता जो कुछ भी कंप्यूटर पर करने के लिए सोचेगा, वह एक कियोस्क की तरह है, जो केवल एक जोड़े को चलाता है, तो यह कुछ हद तक सार्थक सुरक्षा प्रदान कर सकता है। लेकिन ऐसा नहीं लगता कि यह आपके उपयोग का मामला है।
तो आपके प्रश्न का अनुमानित उत्तर है, "नहीं।" पूर्ण उत्तर यह है कि आप उपयोगकर्ताओं को संभवतः उन फ़ाइलों को निष्पादित करने से रोकने के लिए प्रबंधित कर सकते हैं , जिन्हें आप श्वेतसूची में आपूर्ति करते हैं। लेकिन यह "निष्पादित," के सख्त, तकनीकी अर्थों में है, जिसे अधिकांश कार्यक्रमों या लिपियों को चलाने के पूर्ण प्रभाव को प्राप्त करने की आवश्यकता नहीं है। को रोकने के लिए है कि , आप बनाने के लिए कोशिश कर सकते श्वेत सूची बहुत छोटी है, इसलिए यह उन है कि अत्यधिक सीमित किया जा सकता है को छोड़कर किसी भी दुभाषिए श्रेणी में नहीं रखा। लेकिन यहां तक कि अगर आप प्रबंधित करते हैं, तो उपयोगकर्ता बहुत कुछ नहीं कर सकते हैं, और यदि आपने इसे इतना छोटा बना दिया है कि वे खुद को चोट नहीं पहुंचा सकते हैं, तो वे शायद कुछ भी नहीं कर सकते। ( थॉमस वार्ड की टिप्पणी देखें ।)
यदि आपके उपयोगकर्ता खुद को चोट पहुंचा सकते हैं, तो उन्हें खुद को चोट पहुंचाने में मूर्ख बनाया जा सकता है।
आप विशिष्ट कार्यक्रमों को उपयोग करने से रोक सकते हैं या अन्यथा उन तरीकों से व्यवहार कर सकते हैं जो हानिकारक होने की संभावना है, और यदि आप विशिष्ट पैटर्न देख रहे हैं तो रैनसमवेयर का अनुसरण करने की प्रवृत्ति होती है, आप कुछ विशिष्ट सामान्य मामलों को रोकने में सक्षम हो सकते हैं। ( AppArmor देखें ।) जो कुछ मूल्य प्रदान कर सकता है। लेकिन यह आपको उस व्यापक समाधान के करीब कुछ भी नहीं देगा जिसकी आप उम्मीद कर रहे हैं।
आप जो भी तकनीकी उपाय (यदि कोई हो) समाप्त कर रहे हैं, तो आपका सबसे अच्छा दांव उपयोगकर्ताओं को शिक्षित करना है। इसमें उन्हें यह बताना शामिल है कि वे उन कमांड को न चलाएं जिन्हें वे नहीं समझते हैं और डाउनलोड की गई फ़ाइलों का उपयोग उन स्थितियों में नहीं करते हैं जहां वे यह समझाने में सक्षम नहीं होंगे कि ऐसा करने के लिए यह क्यों सुरक्षित है। लेकिन इसमें बैकअप बनाने जैसी चीजें भी शामिल हैं, ताकि अगर कुछ गलत हो जाए (मैलवेयर के कारण या अन्यथा), तो जितना नुकसान होगा उतना कम होगा।