2012-06-30 10 views
18

मैं अक्सर लेख पढ़ता हूं "chmod 777 खराब है!"एक सर्वर chmod 777 के साथ कमजोर कैसे हो जाएगा?

मैं सोच रहा था:

जब मैं निष्पादित कैसे मैं कमजोर हो जाते 'chmod 777' एक फ़ाइल पर?

इसका वास्तविक दुनिया उदाहरण क्या है जिसे मैं पुन: उत्पन्न कर सकता हूं?

+3

शानदार प्रश्न। – Mehrdad

उत्तर

17

यह की अनुमति देता है फाइल सिस्टम सामग्री के लिए देखी और/या द्वारा किसी को भी संशोधित किया जा: हमलावर पहले से ही यह मानते हुए सामान्य प्रणाली का उपयोग कर सकते हैं जो साझा होस्टिंग प्लेटफार्मों पर बहुत आम है .. कुछ और "कठोर" कर रहे हैं से दूसरों की तुलना में है प्रारंभ।

  1. "अपने सुरक्षित कोड" के साथ "उनके दुर्भावनापूर्ण कोड" जो ही वेब सर्वर संदर्भ में चलाता है .. चोरी कर सकता ओवरराइट किया जा सकता है: यहाँ एक छोटा सा अधूरा संभावित हमले वैक्टर की सूची है पासवर्ड/ट्रोजन, डीबी का पर्दाफाश करें, सामग्री हटाएं, आदि। किसी और का कोड आपके सुरक्षा संदर्भ के तहत चलाया जा सकता है।
  2. सामग्री (उदा। "स्क्रिप्ट स्रोत") संभवतः वेब-सर्वर (या स्वामी) संदर्भ के बाहर देखा जा सकता है। डीबी से कनेक्ट करने के लिए "सुरक्षित" पासवर्ड है? खैर, अब और नहीं ...
  3. यदि सामग्री अनुमतियों द्वारा संरक्षित थी (उदाहरण के लिए वेब-सर्वर पहले तक नहीं पहुंच सका), वेब-सर्वर संवेदनशील जानकारी तक पहुंच/सूची करने में सक्षम हो सकता है ... अच्छा नहीं है इसे साझा करने का मतलब नहीं था। विभिन्न वेब-सर्वर कॉन्फ़िगरेशन भी "लिस्टिंग" का अलग-अलग व्यवहार करेंगे, जो वांछित से अधिक का पर्दाफाश कर सकते हैं।

ऊपर मैं भी "समूह" मान वेब सर्वर प्रिंसिपल शामिल करने के लिए और एक वेब सर्वर है कि वहाँ (और/या साझा होस्टिंग) शामिल है जो एक प्राथमिक हमले वेक्टर के रूप में इस्तेमाल किया जा सकता है और/या में सुरक्षा भेद्यता। हालांकि, और मैं इसे फिर से तनाव देता हूं: उपरोक्त सूची पूर्ण नहीं है।

जबकि "गारंटीकृत सुरक्षा" नहीं है, सबसे विशिष्ट अनुमतियों का उपयोग करके कुछ भेद्यता/जोखिम को कम कर सकते हैं।

1

chmod कमांड में प्रत्येक अंक एक ऑक्टल (3-बिट) संख्या का प्रतिनिधित्व करता है। तीन अंकों के साथ, यह कुल 9 बिट्स है। प्रत्येक बिट एक अनुमति का प्रतिनिधित्व करता है; 1 == की अनुमति है, 0 == की अनुमति नहीं है।

प्रत्येक अंक में तीन बिट्स पढ़ने (बाइनरी 100 == दशमलव 4) लिखते हैं, लिखते हैं (बाइनरी 010 == दशमलव 2), और निष्पादित करें (बाइनरी 001 == दशमलव 1)। दशमलव 7 पढ़ा जाता है + लिखना + निष्पादन अनुमति।

chmod कमांड का पहला अंक किसी फ़ाइल या निर्देशिका के मालिक की अनुमतियों का प्रतिनिधित्व करता है। दूसरा समूह के लिए है। तीसरा "ब्रह्मांड" के लिए है - यानी, हर कोई।

तो, chmod 777 आपके, समूह और सभी के लिए अनुमति को पढ़ने, लिखने और निष्पादित करने का प्रतिनिधित्व करता है। यह आमतौर पर आवश्यकतानुसार अधिक से अधिक पहुंच है।

अपने असली दुनिया के उदाहरण के लिए, कल्पना करें कि my_bank_account_credentials नामक एक फ़ाइल chmod 777 के साथ बदल दी गई थी। बहुत सुरक्षित नहीं है! एक दुर्भावनापूर्ण उपयोगकर्ता वहां क्या बदल सकता है या बस इसे पढ़ सकता है और खुशी से अपना पैसा ले सकता है।

सर्वरों के लिए, मुख्य खतरा यह है कि सर्वर कोड में एक शोषित बग एक हमलावर को सर्वर प्रक्रिया के अधिकारों तक पहुंचने की अनुमति दे सकता है - जिसमें 777 अनुमति सेट शामिल है।

+2

एर, मुझे लगता है कि ओपी पूछ रहा है * कैसे * "एक दुर्भावनापूर्ण उपयोगकर्ता वहां क्या बदल सकता है या बस इसे पढ़ सकता है और खुशी से अपना पैसा ले सकता है।", 777 का मतलब क्या नहीं है। – Mehrdad

+2

बस पूरी तरह से हो रहा है। :) – Alanyst

0

chmod चेंज मोड कमांड है। 777 अनुमतियों को इंगित करता है। ऐसे लोगों के तीन समूह हैं जिनके पास अनुमति हो सकती है (प्रत्येक को अपना अंक प्राप्त होता है), मालिक: फ़ाइल (निर्देशिका या निर्देशिका, पहला 7), समूह (हर कोई जो मालिक के समान समूह से संबंधित है, दूसरा 7), और दुनिया (तीसरा 7)।

स्वामी फ़ाइल का उपयोगकर्ता है - जो आप होंगे। * निक्स दुनिया में, उपयोगकर्ता समूह से संबंधित हैं। तो आप समूह विपणन में उपयोगकर्ता/मालिक बॉब हो सकते हैं। यह मॉडल आपको चीजों को करने देता है जैसे बॉब फ़ाइल को पढ़/लिख सकता है, बाकी मार्केटिंग केवल फाइल को पढ़ सकता है, और अन्य उपयोगकर्ता फ़ाइल पढ़ सकते हैं।

777 में प्रत्येक अंक एक बाइनरी प्रतिनिधित्व है: rwx (पढ़ें/लिखें/निष्पादित करें)। तो 755 का एक chmod का अर्थ है: 111 (7) - मालिक लिखने को पढ़ सकते हैं 101 (5) - समूह में अन्य निष्पादित या पढ़ सकते हैं, 101 (5) लिख नहीं सकते - बाकी दुनिया पढ़ और निष्पादित कर सकती है, नहीं लिखना।

उस सेटअप का अर्थ है कि आप अपनी फाइलें पढ़/लिख सकते हैं और निष्पादित कर सकते हैं, लेकिन आपकी साइट पर आने वाले लोग केवल फ़ाइल को पढ़ या निष्पादित कर सकते हैं। इस प्रकार आपको अपने सीजीआई-बिन में 755 तक प्रोग्राम सेट करने की आवश्यकता है, इसलिए लोग फ़ाइल को प्रोग्राम के रूप में निष्पादित कर सकते हैं।

यदि आप 'chmod 644' पर अनुमतियां सेट करते हैं, तो आपको एक फ़ाइल मिलती है जो आपके द्वारा लिखी जा सकती है, लेकिन केवल बाकी दुनिया द्वारा ही पढ़ी जा सकती है। यह सीधे एचटीएमएल फाइलों के लिए अच्छा है ताकि कोई भी नुकीला पंकी चालू न हो। लेकिन 644 की अनुमतियों वाली फ़ाइल को आज़माएं और निष्पादित करें और आपको एक त्रुटि मिलेगी।

CHMOD 777 सभी को आपके सर्वर की फ़ाइलों में परिवर्तन करने की अनुमति देगा, यह उन्हें WRITE स्थिति देगी और हर कोई जानता है कि यह बुरा है।

-4

यदि कोई दुर्भावनापूर्ण प्रविष्टि आपके ऐप, वेबसाइट इत्यादि तक पहुंच जाती है, इससे कोई फर्क नहीं पड़ता कि यह कोड के साथ क्या करता है। महत्वपूर्ण बिंदु डेटाबेस पर है और इस पर "लेखन" के खिलाफ कोई संभावित सुरक्षा नहीं है। तो chmod 777 अनुमतियाँ कुछ भी खतरनाक नहीं हैं।

+0

कोड/फाइल सिस्टम भी महत्वपूर्ण है। आप नहीं चाहते कि कोई सिस्टम पर सभी फाइलों को हटा दे। आपके पास इसका बैकअप होना चाहिए, लेकिन फिर आपके पास डेटाबेस का बैकअप होना चाहिए। –

+0

आपकी सभी फाइलों को हटाना एक * सर्वोत्तम-केस * परिदृश्य है। अधिक संभावना है कि घुसपैठ करने वाले उन अनुमतियों का उपयोग करेंगे जिन्हें आपने उन्हें अपने सिस्टम पर नहीं चाहते हैं, जैसे स्पैम मेल सर्वर या मैलवेयर वितरण बिंदु। – tripleee

2

यदि हमलावर के पास केवल वेब इंटरफ़ेस तक पहुंच है (फ़ाइलों के लिए नहीं, कहें, एक ही साझा होस्टिंग पर किसी अन्य खाते के माध्यम से) तो मोड 777 सीधे किसी भी भेद्यता को खोलता है। यह क्या करता है हमलावर के लिए साइट पर को किसी अन्य तरीके से बदलना आसान बनाता है।

उदाहरण के लिए, मान लीजिए कि आपके पास एक वर्डप्रेस साइट है और वहां कहीं भी एक बग है जो हमलावर को सर्वर डिमन के प्रमाण पत्र के तहत मनमाने ढंग से PHP कोड निष्पादित करने की अनुमति देता है (यह अतीत में कई बार हुआ है और इसमें कोई संदेह नहीं होगा भविष्य)। वर्डप्रेस के लिए कोड .php फाइलों में संग्रहीत है जो सर्वर डिमन पढ़ सकता है। यदि वे फ़ाइलें मोड 777 हैं तो हमलावर उन्हें लिख सकता है - जिसका अर्थ है कि वे कोड को संशोधित कर सकते हैं - आपकी साइट क्या बदलती है। शायद वे "शोषण द्वारा ड्राइव" किट स्थापित करते हैं और अब आपकी साइट पर आने वाले सभी लोग अपने ब्राउज़र को हैक कर देते हैं। शायद वे एक एसईओ स्पैम किट स्थापित करते हैं और अब Google सोचता है कि आप वियाग्रा बेच रहे हैं (लेकिन यदि आप सीधे साइट पर जाते हैं तो यह अदृश्य है - हाँ, यह वास्तव में होता है)।

.php फ़ाइलों मोड 755, और एक उपयोगकर्ता के लिए जो सर्वर डेमॉन नहीं है के स्वामित्व में हैं, तो हमलावर नहीं स्थायी रूप से बदल सकते हैं क्या साइट है।

ध्यान दें कि इसका मतलब है कि वर्डप्रेस की स्वयं-अपग्रेड-ऑफ-द-एडमिन-पैनल सुविधा जोखिम भरा है, क्योंकि यह केवल तभी काम करता है जब वर्डप्रेस स्वयं संशोधित कर सकता है - आपके पास यह नहीं हो सकता है और विरोधी भी फाइलों को संशोधित करने में असमर्थ है एक बार वे मनमाने ढंग से PHP निष्पादित कर सकते हैं।

यह भी ध्यान रखें कि आप केवल 100% इस संबंध में सुरक्षित अगर वहाँ कोई फ़ाइलें और कोई निर्देशिका है कि सर्वर डेमॉन को संशोधित कर सकते हैं कर रहे हैं। यहां तक ​​कि फ़ाइल को एक ही निर्देशिका में अपलोड करने की इजाजत देने के बावजूद अभी भी एक समस्या हो सकती है - भले ही एकमात्र चीज जिसे आप किसी को भी डाल दें, वहां छवि फाइलें हैं। (यदि यह असंभव प्रतीत होता है, तो http://lcamtuf.coredump.cx/squirrel/ पर एक नज़र डालें।)

संबंधित मुद्दे