SUPEE-9767, मोडमैन और सिमिलिंक


16

मैं SUPEE-9767 के साथ एक Magento दुकान पैच करना चाहते हैं। Supee-9767 के लिए दस्तावेज़ मुझे अक्षम पैच लागू करने से पहले स्थापित करने सिमलिंक को बताता है:

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

लेकिन मैं मॉड्यूल का प्रबंधन करने के लिए मॉडेम का उपयोग करता हूं और चूंकि कुछ मॉड्यूल टेम्पलेट फ़ाइलों का उपयोग कर रहे हैं, इसलिए साइमन की सेटिंग को मॉडेम के README में सुझाव के अनुसार सक्षम किया गया है। क्या सिक्योरिटी पैच SUPEE-9767 - संभावित मुद्दों में से एक के रूप में सक्षम किए गए साइमलिंक सेटिंग को छोड़ना सुरक्षित है ? पता चलता है (मैं एक नया उपयोगकर्ता होने के बाद भी अभी तक पोस्ट पर टिप्पणी नहीं कर सकता)

Magento 1.x मॉड्यूल को प्रबंधित करने के लिए मोडमैन का उपयोग करने वाले उपयोगकर्ताओं को यह सुनिश्चित करना चाहिए कि वे सिम्लिंक्स को अक्षम न करें क्योंकि यह मोडमैन मॉड्यूल को अक्षम कर देगा।

यदि मैं साइमलिंक सेटिंग को सक्षम करना छोड़ देता हूं, तो क्या दुकान APPSEC-1281 के संपर्क में नहीं आएगी: सिम कोड के माध्यम से रिमोट कोड निष्पादन , इस पैच को ठीक करने के लिए एक सुरक्षा खतरा है?

क्या इस पैच के बाद टेम्पलेट फ़ाइलों के साथ मॉडमैन का उपयोग करने के अन्य तरीके हैं? (मुझे पता है कि "Mage / Core / Block / Template.php का पैच वर्जन" विकल्प है, जिसमें modman की README का उल्लेख है, लेकिन एक कोर फाइल को पैच करना खतरनाक लगता है।)


1
मैं अपनी परियोजनाओं में मोडमैन और संगीतकार का उपयोग कर रहा हूं। मैं कई सालों तक विश्वास नहीं कर सकता कि मैगेंटो में साइमलिंक विकल्प को बम नहीं माना गया था। अचानक यह एक बम है! बिना किसी सूचना और स्पष्टीकरण के यह बदलाव कई लोगों के लिए बहुत परेशानी पैदा करेगा। Magento में Modman और संगीतकार भविष्य के बारे में दुखी।
ADDISON74

1
यह काफी चुनौती है। यदि आप निवेश करने के लिए तैयार हैं, तो एक निर्माण प्रक्रिया का निर्माण करना जो एक विलय (कोई सहानुभूति के साथ) उत्पन्न करता है कलाकृतियों को जाने के लिए एक बहुत अच्छा तरीका है।
जोसेफ ने स्विफ्टऑटर

इसके बारे में एक शानदार लेख tomlankhorst.nl/ पर पाया जा सकता है, जहां वह यह भी बताता है कि "साइमलिंक सक्षम हैं" से छुटकारा पाने के लिए-Magning 1.9.3.4 में पेश किया गया।
इहंस

जवाबों:


14

इस परिवर्तन के बारे में कुछ स्पष्टीकरण यहां दिए गए हैं:

सबसे पहले पीटर ओ'कैलाघन के इस स्पष्टीकरण को पढ़ें इससे आपको बहुत समझ मिलेगी: https://peterocallaghan.co.uk/2017/06/appsec-1281-dangerous-symlinks/

इसके अलावा एक और दिलचस्प रीड मैक्स चाडविक https://maxchadwick.xyz/blog/what-allow-symlinks-actually-does द्वारा यह पोस्ट है

यह संशोधन वास्तव में टेम्पलेट निर्देशों के माध्यम से अपलोड करने योग्य सामग्री (छवियों की तरह) के बारे में है।

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

कृपया ध्यान दें कि वे स्वयं को स्थापित करने के अलावा इसका फायदा उठाने के लिए ज्ञात तरीके के खिलाफ कुछ सुरक्षा हैं।

इसलिए यदि आप इसमें शामिल जोखिम को समझते हैं, तो आप सक्षम किए गए सिम्बल को छोड़ सकते हैं।

यदि आपको उन्हें स्थापित करने के लिए सक्षम करने की आवश्यकता है तो आप चला सकते हैं:

UPDATE core_config_data SET value = 1 WHERE path = "dev/template/allow_symlink";

यदि मैं इसे सक्षम किए गए सिम्लिंक को छोड़ देता हूं, तो मैं "APPSEC-1281: रिमोट कोड निष्पादन के माध्यम से सीमलिंक" के खिलाफ दुकान की रक्षा कैसे करूंगा?
एहनेन्स

@ehannes आपके बैकएंड के एक्सीडेंट की रक्षा के साथ शुरू होता है क्योंकि शोषण के लिए बैकएंड एक्सेस की आवश्यकता होती है। उस शीर्ष पर अब छवि अपलोड में एक अतिरिक्त कॉलबैक सत्यापन है।
राफेल डिजिटल पियानोवाद

3
व्यवस्थापक पहुँच प्राप्त करने का मतलब है कि आपके पास पूरे Magento बैकएंड इंटरफ़ेस तक पहुंच है। अपलोडिंग इमेज स्क्रिप्ट में पाए गए इस स्तर पर एक कारनामे की परवाह कौन करता है? वह दुर्भावनापूर्ण उपयोगकर्ता आपके सभी उत्पादों को हटा सकता है, अकल्पनीय चीजें कर सकता है। चर्चा "यदि उपयोगकर्ता को अधिकार मिल जाता है, तो इसके साथ शुरू होना चाहिए क्योंकि सच्चा व्यवस्थापक कई मायनों में बैकएंड की रक्षा नहीं कर रहा है"
ADDISON74


2
पीटर ओ'कैलाघन लिखते हैं: "इसलिए यदि कोई आपके व्यवस्थापक पैनल तक पहुंच प्राप्त करने का प्रबंधन करता है, तो वे आरसीई को प्राप्त करने के लिए दुर्भावनापूर्ण प्रदर्शन शामिल कर सकते हैं।" इस चर्चा में यह सामान्य निष्कर्ष प्रतीत होता है। जैसा कि पहले कहा गया था, अगर किसी दुर्भावनापूर्ण उपयोगकर्ता के पास आपके व्यवस्थापक पैनल तक पहुंच है, तो आरसीई की तुलना में चिंता करने के लिए अन्य चीजें हैं। अगर किसी को चर्चा में जोड़ने के लिए कुछ है, तो कृपया करें। किसी भी तरह, मुझे लगता है कि आपने चीजों को बहुत साफ कर दिया है @RaphaelatDigitalPianism और मैं इस उत्तर को स्वीकार करूंगा।
एहनेन्स

6

मुद्दा सहानुभूति नहीं है, मुद्दा ऐसे रास्ते हैं जो स्तरों तक पहुंचते हैं जैसे कि ../../../../../media/tmp/hahaha.png। अगर मैं इस पर गलत हूं तो कृपया मुझे बताएं। "फिक्स" का शीर्षक था "सिम्बलिंक की अनुमति दें" और इस सक्षम करने से चेक को निष्क्रिय कर दिया जाता है जिसे प्रयोग करके लागू किया गया था realpath()। मेरी राय में एक फिक्स जो सिर्फ उतना ही सुरक्षित, अधिक प्रदर्शन करने वाला और अभी भी सहानुभूति के साथ संगत है उपयोग strpos($path, '..')और / या यह जांचने के लिए है कि realpath()कुछ जोखिमपूर्ण निर्देशिकाओं जैसे mediaऔर से मेल खाता है var। यदि इसे इस तरह लागू किया जाता है तो इसे कॉन्फ़िगर करने की आवश्यकता नहीं होगी यह हमेशा सक्षम किया जा सकता है और अभी भी हजारों दुकानों को नहीं तोड़ सकता है।

इसके बावजूद, आपके वेब सर्वर उपयोगकर्ता के पास स्रोत कोड निर्देशिकाओं में फाइलें लिखने के लिए एक्सेस नहीं होना चाहिए (जैसे कि Magento Connect करता है ...) ताकि दुर्भावनापूर्ण कोड को कहीं न कहीं लिखे जाने से रोका जा सके और ब्लॉक टेम्पलेट के रूप में निष्पादित किया जा सके।

इसलिए, सिम्बल पर यह हमला सिर्फ गलत तरीके से किया गया है और एक बेहतर समाधान मौजूद है। वास्तव में, मैंने एक साल पहले एक प्रदान किया था और यहां तक ​​कि मॉडमैन गीथब रेएडएमई में भी इसकी एक कड़ी है।


0

यदि आपकी कंपोज़र फ़ाइल के अतिरिक्त में आप अपनी फ़ाइलों को कॉपी करने के लिए magento-deploystrategy सेट करते हैं, तो सिम्बलिंक के बजाय विक्रेता फ़ोल्डर से कॉपी किया जाएगा।

    "extra":{
        "magento-root-dir":"./",
        "magento-deploystrategy":"copy",
        "magento-force": true
    }

फिर आप अपने core_config_data को देव / टेम्पलेट / allow_symlink के मान को 0 पर सेट करने के लिए संशोधित कर सकते हैं

सूचना के लिए संसाधन


0

क्या इस पैच के बाद टेम्पलेट फ़ाइलों के साथ मॉडमैन का उपयोग करने के अन्य तरीके हैं?

आप विभिन्न तरीकों से SUPEE-9767 परिवर्तनों को ओवरराइड कर सकते हैं, देखें:

SUPEE-9767 V2 स्थापित करने के बाद सहानुभूति कैसे सक्षम करें?

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