2012-06-14 19 views
5

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

  1. .htaccess फ़ाइल संशोधित किया गया है
  2. index.php और config.php फ़ाइलें संशोधित किया गया
  3. व्यवस्थापक पासवर्ड सर्वर
  4. में
  5. अपलोड कर रहा है फ़ाइलों और फ़ोल्डरों
फ़ाइलों की फ़ाइल अनुमति को परिवर्तित बदल दिया गया है

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

अग्रिम धन्यवाद।

+1

इस प्रश्न पर कुछ समाधान आज़माएं: http://serverfault.com/questions/12847/penetration-testing। ऐसे कई परीक्षण टूल हैं जो आपको बताएंगे कि समस्याएं कहां हैं ... – R4D4

+1

किस तरह से उन्हें संशोधित किया गया है? क्या जोड़ा गया है? आपको सर्वर प्रशासक से मशीन पर वायरस स्कैन करने के लिए कहा जाना चाहिए। यह भी संभव है कि आप कुछ क्रूर बल हमले से प्रभावित हुए हैं जो सिस्टम में प्रवेश कर चुके हैं और खुद को रूट-एक्सेस प्राप्त कर चुके हैं। –

+0

आपकी होस्टिंग क्या है? साझा? वीडीएस या समर्पित? यदि यह साझा किया गया है, तो पहला स्टॉप आपका वेबहोस्ट है। – Nick

उत्तर

5

चूंकि फाइलें संशोधित की गई हैं, इसलिए यह SQL इंजेक्शन बग के कारण होने की संभावना नहीं है।

संभावनाएं फ़ाइलों को पाने के लिए:

  • अनुमान/अपने FTP पासवर्ड
  • हैक सर्वर (आप वास्तव में उस के बारे में कुछ नहीं कर सकते)
  • सर्वर पर अपर्याप्त अलगाव, जिसका अर्थ है चोरी अन्य ग्राहकों आपकी फ़ाइलों को बदल सकते हैं (आप वास्तव में या तो इस बारे में कुछ नहीं कर सकते)
  • रिमोट कोड निष्पादन कीड़े

अब जब से आप कहते हैं कि वेबसाइट 2004 से है, तो यह हो सकता है कि यह eval टेम्पलेट या include के लिए site.php?section=foo जैसी चीजों के लिए उपयोग करता है और उसके बाद कोड में कहीं भी foo.php शामिल किया गया था जो दोनों 2004 में अक्सर किया गया था। तो मैं जल्दी करूँगा eval और regex include(.*\$.*) के साथ-साथ require(.*\$.*) के लिए फ़ाइल खोज। वे प्रमुख संदिग्ध हैं कि उनका उपयोग कैसे किया जाता है।

+2

"आप वास्तव में कुछ भी नहीं कर सकते", होस्टिंग बदलना, समस्याओं के बारे में अपने प्रदाता को सूचित करना या अपने सर्वर को ठीक करना विन्यास। –

+0

मैं "अपना एफ़टीपी पासवर्ड अनुमान/चोरी" करने के लिए "या एसएसएच पासवर्ड" जोड़ना चाहता हूं। –

+0

@ मेन्सी आप काफी सही थे क्योंकि फ़ाइल शामिल करने के लिए यूआरएल में पारित किया गया है जैसा कि आपने कहा था और कुछ 'eval' फ़ंक्शन का उपयोग किया जाता है लेकिन मुझे फ़ाइलों को शामिल करने के लिए' regex' नहीं मिल रहा है। वैसे भी उत्तर के लिए धन्यवाद मैं कोड की देखभाल करूंगा और आशा करता हूं कि मैं इसे ठीक कर सकता हूं। – uttam

4

किसी के पास विशेष रूप से (ए) स्क्रिप्ट (ओं) की बजाय सर्वर तक सीधे पहुंच है। यह कोडबेस में मूल होने वाली सुरक्षा समस्या की तरह नहीं लगता है।

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

2

OWASP top 10 बहुत अच्छा पढ़ा गया है। मेरा कुछ अनुमान

  • पुरानी ओएस जिसमें भेद्यताएं हैं।
  • MySQL इंजेक्शन और शायद सादा-पाठ में संग्रहीत सभी पासवर्ड जो बहुत खराब है। प्रमाणीकरण के लिए आपको ओपनआईडी जैसे कुछ का उपयोग करना चाहिए।इसके अलावा जब आपके पास MySQL-इंजेक्शन होता है तो आपको संभवतः पीडीओ (तैयार कथन) का उपयोग करने के लिए कोड अपडेट करना चाहिए।
  • पढ़ने/लिखने की अनुमति ठीक से सेट नहीं है या एपेच/PHP ऊंचा स्तर पर चल रहा है?

आप के लिए मेरी सलाह है:

  • OWASP के बारे में जानकारी को पढ़ने। फिर अपने कोड में त्रुटियों के लिए स्पष्ट देखो। हर पंक्ति समस्या से स्रोत हो सकती है। शायद आपको पुराने कोड को मिटाना चाहिए, क्योंकि बहुत असुरक्षित?
  • अपने ओएस को पुनर्स्थापित करें, क्योंकि आपके पास रूटकिट भी हो सकता है?
+0

पीडीओ या mysqli - मैं खुद mysqli पसंद करते हैं;) –

1
  • कभी सिर्फ होस्टिंग साझा उपयोग करते हैं, का उपयोग कम से कम कामयाब सर्वर/तिथि
  • करने के लिए सिस्टम को बनाए रखने के लिए सुरक्षा के मुद्दों अपने php.ini की जाँच करें (है कि आप गूगल कर सकते हैं)
  • अपने अपाचे की जाँच करें/nginx/... ओवरराइड
  • के लिए कॉन्फ़िगरेशन
  • कभी सर्वर के साथ एन्क्रिप्ट नहीं किए गए संवाद (उपयोग SFTP, SSH, ...)
  • कभी (कुकीज़ से भी) बाहरी मूल्यों पर भरोसा है, हमेशा से बचने/डाली उन
  • फाई lter उपयोगकर्ता इनपुट (हटाने पंक्ति विराम, 0x00 वर्ण, टैग, ... जहां अवांछित)
  • चेक सभी संभवतः मौजूदा सर्वर/डेटाबेस के लिए उपयोगकर्ता खातों/...
  • जांच करें कि सभी सेवाओं के सही उपयोगकर्ता के रूप में चलाने
  • चेक फ़ाइल (लिखें/चलाएं) अपने वेब फ़ोल्डर में अनुमतियाँ
  • सब कुछ आप वेबसाइट पर दिखाने के भागने, यहां तक ​​कि अपने डेटाबेस डेटा पर भरोसा नहीं करते किसी भी तरह से सुरक्षित है
  • आप 3 पार्टी सॉफ्टवेयर का उपयोग करते हैं, तो बाहर देखने सुरक्षा सलाहकारों के लिए
  • सर्वर को पुन: स्थापित करें, तो आप
  • रूट कर चुके हैं
  • उपयोग बयान

यह है कि तैयार;) यह आपकी सुरक्षा एक बहुत में वृद्धि होगी, लेकिन अनुभवी हमलावरों कठिन हैं।

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