क्या टेम्प्लेट पर सिम्बलिंक्स एक सुरक्षा समस्या है, और यदि हाँ, तो क्यों?


35

मैगेंटो सिम्लिंक के माध्यम से टेम्प्लेट का उपयोग नहीं करने की सलाह देता है:

Advanced > Developer > Template Settings > Allow Symlinks

चेतावनी! उत्पादन वातावरण पर इस सुविधा को सक्षम करने की अनुशंसा नहीं की जाती है क्योंकि यह संभावित सुरक्षा जोखिम का प्रतिनिधित्व करता है।

आज तक मैं यहां कोई जोखिम नहीं देख सकता।

  • जोखिम क्या है?

8
मैं केवल इसे साझा किए गए मेजबानों पर एक जोखिम होने की कल्पना कर सकता हूं, जिसका उपयोग पहली जगह में ईकामर्स के लिए नहीं किया जाना चाहिए।
बर्थमार्क

3
@benmarks। आप इसे उत्तर के रूप में क्यों नहीं रखते हैं?
मेरियस

2
बहुत अच्छा सवाल @ फबी!
user487772

3
मुझे पता था कि अन्य लोग पूर्ण उत्तर देंगे। मैं सही था :-D
बुकमार्क्स

3
@benmarks वेबसाइट को किसी भी तरह से प्रति प्रश्न दर के उच्च उत्तर की आवश्यकता है ;-)
user487772

जवाबों:


40

जरूरी नहीं कि सिम्बलिंक्स खराब हों।

सबसे पहले: यदि एक सिम्लिंक लक्ष्य को खोलने की कोशिश की जा रही है, तो लक्ष्य की फ़ाइल अनुमतियाँ प्रभावी हैं। यदि आपको सिमलिंक लक्ष्य को पढ़ने / लिखने / निष्पादित करने की अनुमति नहीं है, तो कुछ भी नहीं होता है।

लेकिन: आप अपने दस्तावेज़ रूट के बाहर फाइलें चलाने में सक्षम हो सकते हैं (कभी-कभी वास्तव में आप उनके साथ क्या करना चाहते हैं, ठीक है?)। समस्या तब हो सकती है यदि आपका suexEC वातावरण में नहीं है और एक साझा होस्टिंग पर एक उपयोगकर्ता apacheया www-dataउपयोगकर्ता है, जो विभिन्न खातों से फ़ाइलों की सेवा करने का प्रभारी है। आपके सिस्टम उपयोगकर्ता को किसी अन्य ग्राहक की फ़ाइलों तक पहुंचने की अनुमति नहीं है, लेकिन apache/www-dataउपयोगकर्ता के पास सभी साझा किए गए खातों पर ज्यादातर अधिकार होंगे। यह एक ऐसा परिदृश्य हो सकता है जहां एक उपयोगकर्ता एक साझा होस्ट पर दूसरे उपयोगकर्ता की फ़ाइलों तक पहुंच सकता है। अपने स्वयं के उपयोगकर्ता के साथ नहीं, लेकिन apache/www-dataउपयोगकर्ता के साथ ब्राउज़र के माध्यम से फ़ाइल तक पहुंचकर । योग करने के लिए: इस परिदृश्य में आप अन्य उपयोगकर्ताओं की फ़ाइल => खराब का उपयोग कर सकेंगे।

अगली बुरी बात यह है कि एक हमलावर सहानुभूति पैदा कर सकता है, साथ ही / etc / passwd, ... जैसी फ़ाइलों को भी इस डेटा को डाउनलोड कर सकता है और इस जानकारी के साथ आगे बढ़ सकता है। यह सिर्फ़ सिम्लिंक तक ही नहीं है, बल्कि एक ख़राब सर्वर कॉन्फ़िगरेशन तक भी है (जहाँ इन फ़ाइलों तक पहुँच कड़ाई से सीमित है)। इसलिए सिम्बलिंक का उपयोग नहीं करना कुछ और संभावित हमलों से बचाता है।

यह सिर्फ़ सिमिलर के बारे में ही नहीं बल्कि एक सुरक्षा जोखिम है, लेकिन सर्वर कॉन्फ़िगरेशन की समस्या है।


5
महान स्पष्टीकरण - यह सही उत्तर है, अनिवार्य रूप से, "अपने स्वयं के जोखिम पर उपयोग करें"
फिल्विंकल करें

2
संभवतः ध्यान देने योग्य है (हालांकि 'पर्यावरण को उन्नत करने के लिए घृणा' में सुरक्षा संबंधी बग के साथ संतुलन हमेशा बना रहता है) - मैगेंटो सहानुभूति को हतोत्साहित करते हुए एक ऐसे शोषण से संबंधित था, जहां app/designफ़ोल्डर के बाहर टेम्पलेट और लेआउट फाइलें , जब अन्य मामूली विवादों के साथ जोड़ दिया जाता है, विशेषाधिकार वृद्धि और अन्य सर्वर कारनामों के लिए एक व्यवस्थापक उपयोगकर्ता द्वारा उपयोग किया जा सकता है।
एलन स्टॉर्म

1
अपाचे httpd पर यदि आप सीमलिंक का समर्थन करना चाहते हैं, तो विचार करें कि SymLinksIfOwnerMatchइसके बजाय विकल्प का उपयोग किया जाता है FollowSymlinks
हकेरे

15

हाँ, वे हैं, क्यों webservers भी आमतौर पर एक "न तो पालन सहानुभूति" विन्यास है या कम से कम "केवल एक ही उपयोगकर्ता के साथ लक्ष्य की सहानुभूति का पालन करें" Thats क्योंकि वेबसर्वर / php आमतौर पर अधिक अधिकारों के साथ चलता है तो आपको एक्सेस करना चाहिए।

और जैसा कि webservers आमतौर पर दृश्यमान आदि / छाया जैसी चीजों से बचने की कोशिश करते हैं, यह Magento के टेम्प्लेट के लिए और भी खतरनाक है, क्योंकि टेम्प्लेट शामिल हैं () के माध्यम से पार्स हो जाते हैं, इसलिए यदि आपके पास आपकी फ़ाइलों पर पूर्ण नियंत्रक नहीं हैं, तो आपके पास बहुत मजबूत सुरक्षा लीक संभव है।

आप तर्क दे सकते हैं कि तब अन्य समस्याएं हैं, लेकिन जो वास्तव में हर संभावित हमले के परिदृश्य को जानता है, और अधिकांश बार अलग-अलग कम समस्याग्रस्त सुरक्षा छेदों के संयोजन, जो बड़े विराम का कारण बनता है।

इसके अलावा, कुछ समय पहले मीडिया डायरेक्टरी और सिम्बलिंक्स के बारे में एक सिक्योरिटी फिक्स था, इसलिए आपको संभावित हमले के परिदृश्यों के बारे में देखना चाहिए।


1
यदि आपके सर्वर पर कोई और व्यक्ति सहानुभूति बना सकता है, तो आप पहले से ही उससे बड़ी मुसीबत में हैं। मेरा मतलब है - नीचे बेन की टिप्पणी देखें। एक साझा होस्टिंग में कौन कभी Magento की मेजबानी करेगा? एक साझा होस्टिंग में आजकल कौन कुछ भी होस्ट करेगा और क्यों? :)
स्वेन

3
सिर्फ इसलिए कि ऐसा करने वाले लोग हैं। आप दूसरों से अपेक्षा नहीं कर सकते कि वे उचित व्यवहार करेंगे। हमेशा ऐसे लोग होंगे जो ऐसा करते हैं, और हमेशा ऐसे लोग होंगे जो सामान्य सर्वर कॉन्फ़िगरेशन के बारे में गलतियाँ करते हैं।
फ्लाइंगमैन

14

मैं केवल इसे साझा किए गए मेजबानों पर एक जोखिम होने की कल्पना कर सकता हूं, जिसका उपयोग पहली जगह में ईकामर्स के लिए नहीं किया जाना चाहिए।


1
दुर्भाग्य से इसका काफी इस्तेमाल होता है।
पायोत्र कमिंसकी

2
पीसीआई सुरक्षा परिषद के मानकों के अनुसार तकनीकी रूप से सार्वजनिक बादल बहु-किरायेदार है, इसलिए भी इसे "जोखिम" माना जाता है।
philwinkle

4

Magento पैच SUPEE-9767 में APPSEC-1281 शामिल है: सिमलिंक के माध्यम से रिमोट कोड निष्पादन , इसलिए हाँ, टेम्प्लेट पर Symlinks एक सुरक्षा समस्या है।

प्रकार:
दूरस्थ कोड निष्पादन (RCE)

CVSSv3 गंभीरता:
8.8 (उच्च)

ज्ञात हमलों:
हाँ। हमलावर व्यवस्थापक पहुंच प्राप्त करने के बाद कॉन्फ़िगरेशन सुरक्षा को अक्षम कर रहे हैं और दुर्भावनापूर्ण कोड अपलोड कर रहे हैं।

विवरण:
कॉन्फ़िगरेशन सेटिंग्स में AllowSymlinks विकल्प का उपयोग एक छवि को अपलोड करने में सक्षम कर सकता है जिसमें दुर्भावनापूर्ण कोड होता है। हालाँकि यह विकल्प डिफ़ॉल्ट रूप से अक्षम है, स्टोर कॉन्फ़िगरेशन सेटिंग्स तक पहुंच वाला एक हमलावर इसे सक्षम कर सकता है और कोड को दूरस्थ रूप से निष्पादित कर सकता है।

उत्पाद (ओं) को प्रभावित किया:
1.9.3.3 से पहले Magento CE, और 1.14.3.3 से पहले Magento EE

फिक्स्ड इन:
CE 1.9.3.3, EE 1.14.3.3, SUPEE-9767

रिपोर्टर:
विल्को निनहास


0

अनुमति देने के लिए अनुशंसित नहीं है। सहानुभूति सक्षम करते समय मैं js लोडिंग त्रुटियों का सामना कर रहा था।
बहुत सारा;

TypeError: $ .widget एक फ़ंक्शन नहीं है

मैं सफल लोड पृष्ठों के लिए 4-5 ताज़ा करने की कोशिश करनी है।
इसे बंद करने के बाद, हो सकता है कि तैनात किए गए संसाधन लोड धीरे-धीरे पहली बार नहीं आए लेकिन js त्रुटियाँ हुई।

PS: सिम्लिंक को अक्षम करने के बाद, आपको स्थैतिक के लिए हर परिवर्तन के बाद फ़ाइलों की तैनाती की गई कॉपी को हटाना होगा।


1
क्षमा करें, मुझे समझ नहीं आ रहा है - आपको काम करने से पहले 4-5 रिफ्रेशमेंट करने होंगे? सिम्बल के साथ इसका क्या करना है?
फैबियन ब्लेचस्मिट

साइमलिंक अक्षम करने से पहले :) मेरे अंग्रेजी के लिए क्षमा करें।
rbostan

क्या हम Magento2 के बारे में बात कर रहे हैं? तब मुझे समझ में आया, कि मुझे समझ नहीं आ रहा है - 2 के बारे में अभी तक कोई सुराग नहीं।
फेबियन ब्लेच्स्मिट
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.