2009-06-22 16 views
17

यह सर्वरफॉल्ट के लिए कुछ और उपयुक्त हो सकता है, लेकिन यहां पर आने वाले कई वेब डेवलपर शायद इस प्रश्न के संभावित उत्तर से लाभान्वित होंगे।डॉस हमलों के खिलाफ अपने आप को सुरक्षित रखें

सवाल यह है कि: आप अपने वेबसर्वर के खिलाफ सेवा के हमलों के अस्वीकार के खिलाफ प्रभावी ढंग से कैसे रक्षा करते हैं?

मैं अपने आप को इस इस article

परिचित नहीं उन लोगों के लिए पढ़ने के बाद पूछा, यहाँ क्या मैं इसके बारे में याद है: एक DoS हमले बार-बार अपने सर्वरों के लिए फर्जी हेडर भेजकर अपने सभी कनेक्शनों पर कब्जा करने का प्रयास करेंगे।

ऐसा करके, आपका सर्वर संभावित एक साथ कनेक्शन की सीमा तक पहुंच जाएगा और नतीजतन, सामान्य उपयोगकर्ता अब आपकी साइट को स्वीकार नहीं कर सकते हैं। http://en.wikipedia.org/wiki/Denial_of_service

उत्तर

43

कोई रामबाण नहीं है, लेकिन आप कर सकते DoS निम्न में से कुछ करने से ज्यादा मुश्किल हमला करता है:

  • नहीं (करने की आपकी इच्छा या सीमा) अप्रमाणित ग्राहकों की ओर से महंगा संचालन करते हैं
  • थ्रॉटल प्रमाणीकरण का प्रयास
  • थ्रॉटल संचालन प्रत्येक प्रमाणीकृत ग्राहक की ओर से प्रदर्शन किया, और एक अस्थायी तालाबंदी पर अपने अकाउंट को जगह अगर वे एक समय
  • सभी unauthentica के लिए एक समान वैश्विक थ्रोटल है बहुत छोटा में भी कई बातें करते हैं टेड क्लाइंट, और अगर आप प्रगति पर हमले का पता लगाते हैं तो
  • एक ध्वज का उपयोग करें जिसे आप सभी अनधिकृत एक्सेस
  • अक्षम करने के लिए किसी भी ध्वज का उपयोग कर सकते हैं, अनधिकृत ग्राहकों की ओर से चीजें स्टोर न करें और उपयोग करें एक कोटा, प्रत्येक प्रमाणीकृत ग्राहक
  • सामान्य में के लिए भंडारण की सीमा के रूप में जल्द से जल्द सभी, विकृत अनुचित रूप से जटिल, या अनुचित रूप से विशाल अनुरोधों को अस्वीकार कर (और उन्हें लॉग इन करें एक हमले का पता लगाने में सहायता करने के लिए)
  • का प्रयोग न करें करने के लिए एक शुद्ध एलआरयू कैश अगर अनधिकृत ग्राहकों से अनुरोध उस कैश से चीजों को बेदखल कर सकता है, क्योंकि आप कैश विषाक्तता के हमलों के अधीन होंगे (जहां एक दुर्भावनापूर्ण ग्राहक बहुत से पूछता है विभिन्न बार बार बातें करते थे, आप अपने कैश से सभी उपयोगी चीजें बेदखल और भी बहुत कुछ काम करने के लिए अपने वैध ग्राहकों की सेवा के लिए)

याद रखें की जरूरत के कारण, यह महत्वपूर्ण है एकमुश्त से रोक दिए अनुरोध (, अस्वीकार करने के लिए एक साथ उदाहरण के लिए HTTP 503: Service Unavailable प्रतिक्रिया या थ्रॉटल अनुरोधों को क्यूइंग करने के बजाए आप जो भी प्रोटोकॉल उपयोग कर रहे हैं, उसके लिए एक समान प्रतिक्रिया)। यदि आप उन्हें कतार देते हैं, तो कतार सिर्फ आपकी सारी याददाश्त खाएगी और डीओएस हमला कम से कम प्रभावी होगा क्योंकि यह थ्रॉटलिंग के बिना होता।

HTTP सर्वर के लिए कुछ अधिक विशिष्ट सलाह:

  • सुनिश्चित करें कि आपके वेब सर्वर एक साथ Content-Length हैडर बिना POST संदेशों को अस्वीकृत करने के लिए कॉन्फ़िगर है, और अनुरोध को अस्वीकार करने के लिए (और अपमानजनक ग्राहक थ्रोटल) जो अधिक हो Content-Length कहा गया है, और एक Content-Length जो अनुचित रूप से सेवा है कि POST (या PUT)
0

लघु जवाब:

आप अपने आप को एक DoS के खिलाफ की रक्षा नहीं कर सकते

विकिपीडिया कुछ और जानकारी प्रदान करता है।

और मैं सहमत न यह serverfault पर अंतर्गत आता है के बाद से DoS एक सुरक्षा मुद्दा के रूप में वर्गीकृत किया जाता है और निश्चित रूप से प्रोग्रामिंग

+0

के उद्देश्य से है के लिए लंबा है अनुरोध अस्वीकार करने के लिए सिर्फ इसलिए कि यह एक सुरक्षा मुद्दा करते हैं इसका मतलब यह नहीं है कि यह सर्वरफॉल्ट पर नहीं है। प्रोग्रामिंग केवल ऐसे सुरक्षा मुद्दों के एक छोटे से हिस्से को संबोधित करता है। – ProfK

+0

बेशक आप डीओएस के खिलाफ सुरक्षा कर सकते हैं, केवल फ़ायरवॉल का उपयोग करें और दर प्रति आईपी पते कनेक्शन को सीमित करें। हालांकि, डीडीओएस हमले के खिलाफ सुरक्षा करना बहुत मुश्किल है। –

1

से संबंधित है इस विशिष्ट हमले के लिए (जब तक अनुरोध प्राप्त है) एक लोड संतुलन या एक WAF आधारित जो केवल वेबसर्वर को पूर्ण अनुरोध करता है, काम करेगा।

समस्याएं शुरू होने के बाद समस्याएं शुरू होती हैं (जो आसान है) क्योंकि आप नहीं जानते कि यह एक दुर्भावनापूर्ण पोस्ट है या उपयोगकर्ता से कुछ वास्तव में धीमी अपलोड है या नहीं।

डीओएस प्रति से आप वास्तव में एक साधारण तथ्य के कारण अपने वेबएप की रक्षा नहीं कर सकते हैं। आपके संसाधन सीमित हैं जबकि हमलावर संभावित रूप से डीओएस करने के लिए असीमित समय और संसाधन है। और अधिकांश समय हमलावर के लिए आवश्यक कदम उठाने के लिए यह सस्ता है। जैसे यह हमला कुछ 100 धीमी चलने वाले कनेक्शनों से ऊपर वर्णित है -> कोई समस्या नहीं

1

असिंक्रोनस सर्वर, एक के लिए, हमले के इस विशेष रूप से कम या ज्यादा प्रतिरक्षा हैं। उदाहरण के लिए मैं अपने Django ऐप्स को Nginx रिवर्स प्रॉक्सी का उपयोग करके सेवा देता हूं, और हमला उसके ऑपरेशन को प्रभावित नहीं करता है। एक और लोकप्रिय एसिंक्रोनस सर्वर lighttpd है।

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