डीडीओएस हमलों का एक परिवार है, जिसमें डेटासेटर में प्रमुख प्रणालियां शामिल हैं:
- इंटरनेट पर होस्टिंग केंद्र का नेटवर्क कनेक्शन
- होस्टिंग केंद्र का आंतरिक नेटवर्क और राउटर
- अपने फ़ायरवॉल और लोड balancers
- आपके वेब सर्वर, एप्लिकेशन सर्वर और डेटाबेस।
इससे पहले कि आप अपने डीडीओएस रक्षा का निर्माण शुरू करें, विचार करें कि सबसे खराब मामला मूल्य-पर-जोखिम क्या है। एक छोटे समुदाय के लिए एक गैर-महत्वपूर्ण, मुफ्त-उपयोग सेवा के लिए, जोखिम में कुल मूल्य मूंगफली हो सकता है। एक स्थापित बहु-अरब डॉलर के व्यापार के लिए भुगतान-के लिए, सार्वजनिक-सामना, मिशन-महत्वपूर्ण प्रणाली के लिए, मूल्य कंपनी के लायक हो सकता है। इस बाद के मामले में, आपको StackExchange का उपयोग नहीं करना चाहिए :) वैसे भी, DDOS से बचाव करने के लिए, आपको एक रक्षा-गहराई की आवश्यकता है।
- आपके द्वारा दी जाने वाली सेवाओं को समझने के लिए अपने होस्टिंग केंद्र के साथ काम करें , जिसमें उनके नेटवर्क कनेक्शन पर आईपी और पोर्ट फ़िल्टरिंग शामिल हैं, जो वे इंटरनेट और फ़ायरवॉल सेवाओं की पेशकश करते हैं। यह महत्वपूर्ण है: होस्टिंग कंपनी द्वारा कई साइटों को इंटरनेट से खींचा जाता है क्योंकि होस्टिंग कंपनी डेटा-वाइड के साथ एक ग्राहक को डीडीओएस के कारण हुए व्यवधान का सामना करती है। इसके अलावा, डीडीओएस हमले के दौरान, आप होस्टिंग केंद्र के कर्मचारियों के साथ बहुत निकटता से काम करेंगे, इसलिए उनकी आपातकालीन संख्या जानें और उनके साथ अच्छे पदों पर हों :) उन्हें पूरे अंतरराष्ट्रीय क्षेत्रों को ब्लॉक करने में सक्षम होना चाहिए, पूरी तरह से विशिष्ट सेवाओं या नेटवर्क को ब्लॉक करना चाहिए प्रोटोकॉल और अन्य व्यापक स्पेक्ट्रम रक्षात्मक उपाय, या वैकल्पिक रूप से केवल श्वेतसूची वाले आईपी (आपके व्यवसाय मॉडल के आधार पर) की अनुमति देते हैं
- होस्टिंग केंद्र पर रहते हुए - अपने अंतिम उपयोगकर्ताओं के पास (मुख्य रूप से स्थिर) सेवाओं को वितरित करने और डीडीसी आर्किटेक्ट से अपने वास्तविक सर्वर को छिपाने के लिए एक कंटेंट डिलीवरी नेटवर्क का उपयोग करें । डीडीओएस के लिए सभी देशों में सभी नोड्स निकालने के लिए पूर्ण सीडीएन बहुत बड़ा है; यदि DDOS एक देश पर केंद्रित है, तो कम से कम अन्य उपयोगकर्ता अभी भी ठीक हैं।
अपने सभी सिस्टम और सॉफ़्टवेयर पैकेज को नवीनतम सुरक्षा पैच के साथ अपडेट रखें - और मेरा मतलब है कि सभी:
- प्रबंधित स्विच - ये अद्यतन की आवश्यकता है
- राउटर्स
- फायरवॉल
- बैलेंसर्स लोड करें
- ऑपरेटिंग सिस्टम
- वेब सर्वर
- भाषाएं और उनके पुस्तकालय
सुनिश्चित करें कि आपके पास एक अच्छा फ़ायरवॉल या सुरक्षा उपकरण स्थापित है और एक योग्य सुरक्षा विशेषज्ञ द्वारा नियमित रूप से समीक्षा की जाती है । फ़ायरवॉल पर मजबूत नियम कई सरल हमलों के खिलाफ एक अच्छा बचाव है। प्रत्येक खुली सेवा के लिए उपलब्ध बैंडविड्थ को प्रबंधित करने में सक्षम होना भी उपयोगी है।
जगह में अच्छे नेटवर्क निगरानी उपकरण रखें - इससे आपको समझने में मदद मिल सकती है:
- आप केवल भारी बोझ के नीचे होने के बजाय हमले के अधीन हैं
- जहां से हमला हो रहा है (जिसमें वे देश शामिल हो सकते हैं, जो सामान्य रूप से व्यापार नहीं करते हैं) और
- हमला वास्तव में क्या है (बंदरगाहों, सेवाओं, प्रोटोकॉल, आईपी और पैकेट सामग्री)
हमला वैध वेब साइट सेवाओं का भारी उपयोग हो सकता है (जैसे 'कानूनी' यूआरआई पर सवाल उठाना या डेटा डालना / अपडेट करना / हटाना) घुटनों। वैकल्पिक रूप से, कुछ सेवाएं चलाने के लिए इतनी महंगी हो सकती हैं कि केवल कुछ अनुरोधों के कारण ही DOS हो सकता है - वास्तव में महंगी रिपोर्ट के बारे में सोचें। तो आपको अच्छे अनुप्रयोग स्तर की निगरानी की आवश्यकता है जो चल रहा है:
- कौन-कौन सी सेवाओं को लागू किया गया है और क्या तर्क / डेटा भेजे गए हैं (यानी आपके आवेदन में लॉगिंग)
- कौन से उपयोगकर्ता इनवोकिंग कर रहे हैं और जिनसे आईपी (यानी आपके आवेदन में लॉग इन)
- डीबी क्या प्रदर्शन और अद्यतन / हटाता है / हटाता है
- लोड औसत, CPU उपयोग, डिस्क i / o, आपके सिस्टम में सभी कंप्यूटरों (और VMs) पर नेटवर्क ट्रैफ़िक
- यह सुनिश्चित करना कि यह सभी जानकारी आसानी से पुनर्प्राप्त करने योग्य है और आप विभिन्न कंप्यूटरों और सेवाओं से लॉग को सहसंबंधित कर सकते हैं (यानी सुनिश्चित करें कि सभी कंप्यूटर ntp का उपयोग करके सिंक्रनाइज़ किए गए समय हैं)।
अपने आवेदन में संवेदनशील बाधाओं और सीमाओं । उदाहरण के लिए, आप कर सकते हैं:
- लोड बैलेंसर में QoS सुविधा का उपयोग करके सभी अनाम सत्रों को अपने क्लस्टर में अलग-अलग एप्लिकेशन सर्वरों को भेजने के लिए, जबकि लॉग-ऑन उपयोगकर्ता किसी अन्य सेट का उपयोग करते हैं। यह बहुमूल्य ग्राहकों को लेने के लिए एक एप्लिकेशन-स्तर अनाम डीडीओएस को रोकता है
- अनाम सेवाओं की सुरक्षा के लिए एक मजबूत कैप्चा का उपयोग करना
- सत्र समय समाप्त
- रिपोर्ट जैसे कुछ प्रकार के अनुरोधों पर एक सत्र-सीमा या दर-सीमा रखें। सुनिश्चित करें कि यदि आवश्यक हो, तो आप अनाम पहुँच को बंद कर सकते हैं
- सुनिश्चित करें कि उपयोगकर्ता के पास समवर्ती सत्रों की संख्या की सीमा है (एक हैक किए गए खाते को एक लाख बार लॉग इन करने से रोकने के लिए)
- अलग-अलग सेवाओं के लिए अलग-अलग डेटाबेस अनुप्रयोग उपयोगकर्ता हैं (जैसे कि लेन-देन का उपयोग बनाम रिपोर्टिंग उपयोग) और अन्य सभी प्रकार के वेब अनुरोधों को रोकने के लिए डेटाबेस संसाधन प्रबंधन का उपयोग करें।
- यदि संभव हो तो इन बाधाओं को गतिशील बनाएं, या कम से कम विन्यास करें। इस तरह, जब आप पर हमला हो रहा है, तो आप जगह में आक्रामक अस्थायी सीमा ('थ्रॉटलिंग' हमला) सेट कर सकते हैं, जैसे कि प्रति उपयोगकर्ता केवल एक सत्र, और कोई अनाम पहुँच नहीं। यह निश्चित रूप से आपके ग्राहकों के लिए बहुत अच्छा नहीं है, लेकिन बहुत अच्छा है, जिसकी कोई सेवा नहीं है।
अंतिम, लेकिन कम से कम, एक डॉस रिस्पांस प्लान दस्तावेज़ न लिखें और सभी संबंधित पक्षों द्वारा इसकी आंतरिक समीक्षा करें: व्यवसाय, प्रबंधन, एसडब्ल्यू देव टीम, आईटी टीम और एक सुरक्षा विशेषज्ञ। दस्तावेज़ को लिखने की प्रक्रिया आपको और आपकी टीम को मुद्दों के माध्यम से सोचने और आपको तैयार होने में मदद करेगी यदि आपके दिन के 3 बजे सबसे खराब होना चाहिए। दस्तावेज़ को अन्य बातों के साथ कवर करना चाहिए:
- जोखिम में क्या है, और व्यवसाय के लिए लागत
- परिसंपत्तियों की सुरक्षा के लिए किए गए उपाय
- कैसे एक हमले का पता चला है
- योजनाबद्ध प्रतिक्रिया और वृद्धि की प्रक्रिया
- सिस्टम और इस दस्तावेज़ को अद्यतित रखने की प्रक्रिया
तो, एक तरफ प्रस्तावना, यहाँ कुछ विशिष्ट उत्तर दिए गए हैं:
डीडीओएस आमतौर पर सर्वर स्तर पर अवरुद्ध होता है, है ना?
वास्तव में नहीं - सबसे खराब डीडीओएस हमले कम-स्तर (आईपी पैकेट स्तर पर) हैं और डीडीओएस हमलों को संभालने के लिए विकसित किए गए रूटिंग नियमों, फायरवॉल और सुरक्षा उपकरणों द्वारा नियंत्रित किए जाते हैं।
क्या इसे PHP स्तर पर ब्लॉक करने का कोई तरीका है, या कम से कम इसे कम करना है?
कुछ डीडीओएस हमलों का उद्देश्य स्वयं आवेदन करना है, जो वैध यूआरआई और HTTP अनुरोध भेज रहे हैं। जब अनुरोधों की दर बढ़ जाती है, तो आपका सर्वर संघर्ष करना शुरू कर देता है और आपके पास SLA आउटेज होगा। इस मामले में, ऐसी चीजें हैं जो आप पीएचपी स्तर पर कर सकते हैं:
आवेदन स्तर की निगरानी: प्रत्येक सेवा / पृष्ठ लॉग अनुरोधों को इस तरह सुनिश्चित करें कि आप देख सकें कि क्या हो रहा है (ताकि आप हमले को कम करने के लिए कार्रवाई कर सकें)। कुछ विचार:
एक लॉग प्रारूप है जिसे आप आसानी से एक लॉग टूल (या एक्सेल या समान) में लोड कर सकते हैं, और कमांड-लाइन टूल (grep, sed, awk) के साथ पार्स कर सकते हैं। याद रखें कि डीडीओएस लॉग की लाखों लाइनें उत्पन्न करेगा। आपको संभवतः अपने लॉग को स्लाइस करने की आवश्यकता होगी (विशेष रूप से यूआरआई, समय, आईपी और उपयोगकर्ता के संबंध में) क्या चल रहा है, और इसके लिए डेटा उत्पन्न करने की आवश्यकता है:
- क्या यूआरआई एक्सेस किए जा रहे हैं
- URI एक उच्च दर पर विफल हो रहे हैं (हमलावरों द्वारा विशिष्ट URI के संभावित संकेतक पर हमला किया जा रहा है)
- कौन से उपयोगकर्ता सेवा का उपयोग कर रहे हैं
- प्रत्येक उपयोगकर्ता कितनी आईपी सेवा से पहुंच रहा है
- क्या यूआरआई गुमनाम उपयोगकर्ता तक पहुँच रहे हैं
- दी गई सेवा के लिए किन तर्कों का उपयोग किया जा रहा है
- एक विशिष्ट उपयोगकर्ता क्रियाओं का ऑडिट करें
प्रत्येक अनुरोध के आईपी पते को लॉग इन करें। यह डीएनएस को उल्टा नहीं करता - विडंबना यह है कि ऐसा करने की लागत हमलावरों के लिए डीडीओएस को आसान बनाती है
- संपूर्ण URI और HTTP विधि, जैसे "GET http://example.com/path/to/service?arg1.ddos " लॉग ऑन करें
- यदि मौजूद हो तो यूजर आईडी लॉग इन करें
- महत्वपूर्ण HTTP तर्क लॉग करें
संवेदनशील दर सीमाएं: आप किसी निश्चित समय अवधि में किसी दिए गए आईपी या उपयोगकर्ता के कितने अनुरोधों पर सीमाएं लागू कर सकते हैं। क्या एक वैध ग्राहक प्रति सेकंड 10 से अधिक अनुरोध कर सकता है? क्या गुमनाम उपयोगकर्ता महंगी रिपोर्ट का उपयोग कर सकते हैं?
अनाम पहुँच के लिए CAPTCHA: यह सत्यापित करने के लिए सभी अनाम अनुरोधों के लिए CAPTCHA लागू करें कि उपयोगकर्ता एक व्यक्ति है, डीडीसी बॉट नहीं।
DDOS हमलों को रोकने का सबसे तेज़ और सबसे सामान्य तरीका क्या है?
सबसे तेज़ शायद ब्लैकमेल में देना है, हालांकि यह वांछनीय नहीं हो सकता है।
अन्यथा, पहली बात यह है कि आप अपने होस्टिंग और / या सीडीएन प्रदाता से संपर्क करें और उनके साथ काम करें (यदि उन्होंने आपसे संपर्क नहीं किया है तो पहले ही पूछ लें कि आखिर क्या चल रहा है ...)। जब डीडीओएस होता है, तो यह संभावित रूप से होस्टिंग प्रदाता के अन्य ग्राहकों को प्रभावित करेगा, और प्रदाता अपने संसाधनों को सुरक्षित रखने के लिए आपकी साइट को बंद करने के लिए काफी दबाव में हो सकता है। प्रदाता के साथ अपने लॉग (किसी भी और सभी जानकारी) को साझा करने के लिए तैयार रहें; ये लॉग, उनके नेटवर्क मॉनिटर के साथ मिलकर हमले को अवरुद्ध / कम करने के लिए पर्याप्त जानकारी प्रदान कर सकते हैं।
यदि आप डीडीओएस की अपेक्षा कर रहे हैं, तो अपने होस्टिंग प्रदाता को सुरक्षा के स्तर पर योग्य बनाना एक बहुत अच्छा विचार है। उनके पास इसे कम करने के लिए डीडीओएस अनुभव और उपकरण होने चाहिए - उनके उपकरणों, प्रक्रियाओं और वृद्धि प्रक्रियाओं को समझना। यह भी पूछें कि होस्टिंग प्रदाता को उनके अपस्ट्रीम प्रदाताओं से क्या समर्थन है । इन सेवाओं का मतलब अधिक अप-फ्रंट या मासिक लागत हो सकता है, लेकिन इसे बीमा पॉलिसी के रूप में मानें।
हमले के दौरान, आपको अपने लॉग को हथियाने और उन्हें मेरा करने की आवश्यकता होगी - हमले के पैटर्न को आज़माएं और काम करें। आपको अनाम पहुंच को बंद करने और हमले के तहत सेवाओं को थ्रॉटलिंग करने पर विचार करना चाहिए (यानी सेवा के लिए एप्लिकेशन की दर सीमा कम करें)।
यदि भाग्यशाली और आपके पास एक छोटा, निश्चित ग्राहक-आधार है, तो आप अपने वैध ग्राहकों के आईपी पते निर्धारित करने में सक्षम हो सकते हैं। यदि यह मामला है, तो आप थोड़ी देर के लिए श्वेत सूची दृष्टिकोण पर स्विच कर सकते हैं। सुनिश्चित करें कि आपके सभी ग्राहक जानते हैं कि यह चल रहा है इसलिए वे कॉल कर सकते हैं यदि उन्हें नए आईपी से एक्सेस करने की आवश्यकता है :)
डग मैकक्लीन में कुछ बेहतरीन सलाह दी गई हैं: https://stackoverflow.com/a/1029613/1395668