दर को सीमित करना * संयुक्त राष्ट्र * -अनुशासित अनुरोध


11

कहते हैं कि हमारे पास एक लोड बैलेंसर है जो रेट लिमिटिंग भी करता है। लॉग-इन उपयोगकर्ताओं के लिए दर सीमित करना बहुत सरल लगता है - बस JWT को देखें और शायद उस उपयोगकर्ता के लिए पिछले 10 सेकंड में कितने अनुरोध देखने के लिए इन-मेमोरी डेटा-स्टोर का उपयोग करें।

हालांकि, गैर-लॉग इन (अनअथेंटेड) उपयोगकर्ताओं के बारे में क्या? हम यह सुनिश्चित करने के लिए नहीं जानते कि वे या वे अनुरोध कहाँ से आ रहे हैं, इसलिए उन अनुरोधों को आसानी से दर-सीमा नहीं कर सकते हैं या ..?

क्या एडब्ल्यूएस और अन्य होस्टिंग प्लेटफ़ॉर्म पर इसके लिए अंतर्निहित समाधान हैं यह कुछ ऐसा है जिसके बारे में हमें चिंता करने की ज़रूरत है? लगता है कि हमें लॉग-इन करने वालों के रेट-लिमिटिंग लॉजिक को मैन्युअल रूप से हैंडल करना होगा, लेकिन यूजर्स में नॉन-लॉग्ड के बारे में क्या?

मेरा अनुमान / आशा है कि होस्टिंग प्लेटफ़ॉर्म पर अनधिकृत अनुरोधों को सीमित करने के लिए कुछ अंतर्निहित तंत्र हो सकते हैं, कृपया हम सभी को सूचित करें।


2
इस पृष्ठ में लॉग-इन उपयोगकर्ताओं का उल्लेख नहीं है। वास्तव में, वहाँ वर्णित तकनीकों को पासवर्ड पर क्रूर-बल के हमलों के लिए एक शमन के रूप में उद्धृत किया जाता है, जो उन उपयोगकर्ताओं का अर्थ है जो लॉग इन नहीं हैं।
रॉबर्ट हार्वे

1
आप दर सीमित का उपयोग क्यों करना चाहते हैं? क्या यह इनकार-के-सेवा-हमलों का सामना करने के लिए है, ताकि उपयोगकर्ताओं को उनकी भुगतान योजना को पार करने से रोका जा सके, कुछ और? उपयोग का मामला उन तरीकों को प्रभावित करता है जिन्हें आप प्रभावी रूप से उपयोग कर सकते हैं।
बार्ट वैन इनगेन शेनौ

1
यह प्रश्न Security.stackexchange.com के लिए अधिक अनुकूल हो सकता है , हालांकि मैं यह नहीं कह रहा हूं कि यह विषय
पीयूष कुशवाहा

@BartvanIngenSchenau उपरोक्त सभी?

आपको दो अलग-अलग दर सीमाएं क्यों होनी चाहिए? क्या आप विभिन्न बाधाओं / सुविधाओं के साथ किसी भी प्रकार की "योजना" बेच रहे हैं?
Laiv

जवाबों:


9

हालांकि, गैर-लॉग इन (अनअथेंटेड) उपयोगकर्ताओं के बारे में क्या? हम यह सुनिश्चित करने के लिए नहीं जानते कि वे या वे अनुरोध कहाँ से आ रहे हैं, इसलिए उन अनुरोधों को आसानी से दर-सीमा नहीं कर सकते हैं या ..?

वहाँ कुछ दृष्टिकोण आप ले जा सकते हैं। एक यह है कि आपको एक बहुत विश्वसनीय मूल पहचानकर्ता की आवश्यकता है, उदाहरण के लिए आईपी पता। आप आईपी पते द्वारा सीमा को दर कर सकते हैं, ताकि एक समझौता मशीन पर हमले सीमित हो जाएं। यह एक बहुत ही सरल दृष्टिकोण है, लेकिन एक खामी यह है कि बड़े नेटवर्क प्रदाता हैं केवल NAT के पीछे बहुत बड़ी संख्या में उपयोगकर्ताओं को छिपाने के लिए एकल आउटगोइंग आईपी पते का उपयोग कर सकते हैं।

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


मैं यह देखने में विफल हूं कि "काम का सबूत" डॉस हमलों से कैसे रोक सकता है? ग्राहक चुनौती को नजरअंदाज कर सकता है और असफल होने तक अनुरोध भेज सकता है। क्या चुनौती से निपटने के लिए एक 3 प्रक्रिया है?
19

4
@Laiv POW को केंद्रीय डेटाबेस से कनेक्ट किए बिना मज़बूती से जारी और वितरित किया जा सकता है, जो कि अन्य दरों को सीमित करने वाली अधिकांश योजनाएँ विफल होती हैं। यह एक हमलावर के लिए हमले की लागत को बढ़ाता है, क्योंकि आपके बचाव को बढ़ाने और लोड कारक को बढ़ाने से आपके लिए और वैध उपयोगकर्ताओं पर हमला करने वाले के लिए हमले को कम करने की तुलना में सस्ता है। यह सिस्टम पर हमला करने के लिए एक आर्थिक विघटन पैदा करता है, क्योंकि यह प्रभावी रूप से कम शक्ति वाले उपकरणों (जैसे समझौता प्रिंटर, आईओटी, राउटर) को एक प्रभावी हमले के मंच के रूप में उपयोग करने से बाहर रखता है।
रेयान

6

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

आपको प्रति सेकंड समग्र अनुरोधों की जांच करनी चाहिए, और यदि एक निश्चित संख्या पार हो गई है, तो आप बस बाकी की उपेक्षा करते हैं। सामान्य कामकाज के दौरान समस्या पैदा न करने के लिए यह संख्या पर्याप्त रूप से अधिक होनी चाहिए, लेकिन ऐसे हमलों से बचाव करना चाहिए।

इसके अलावा, एक सामान्य नियम के रूप में, आपको शायद यह नहीं मान लेना चाहिए कि एक प्रमाणित उपयोगकर्ता से हमला नहीं होगा, कम से कम डॉस के हमलों के बारे में क्या चिंता है। एक कमजोर पासवर्ड आसानी से किसी को पुराने उपयोगकर्ता की पहचान मान सकता है। इसलिए मान लें कि आप ऐसा चेक कर सकते हैं, तो आपके (मानव) उपयोगकर्ताओं को कभी भी नहीं समझे जाने वाले ऐसे दरों पर अनुरोध करने की आवश्यकता नहीं होनी चाहिए क्योंकि आपके पास कई व्यक्तिगत उपयोगकर्ता हैं।


मुझे लगता है कि आप आईपी पते का उपयोग कर सकते हैं और प्रत्येक के लिए एक उच्च दर सीमा निर्धारित कर सकते हैं। मुझे लगता है कि एक अच्छी तरह से orchestrated DoS हमले हजारों IP पतों का उपयोग कर सकता है? शायद और? आईडीके ... मुझे पता है कि एक ही आईपी पते का उपयोग कई अलग-अलग ग्राहकों के लिए किया जा सकता है, लेकिन मैं कहूंगा कि एक मजबूत संभावना है कि यह एक ही उपयोगकर्ता है, है ना?
अलेक्जेंडर मिल्स

@AlexanderMills अच्छा लगता है कि आपने तय किया है कि एक ही आईपी पते से कई अनुरोधों की जाँच होगी। यहां तक ​​कि अगर हजारों हैं, तो उन्हें 1000 से अधिक अनुरोधों के लिए दोहराया जाएगा। आपका सर्वर दिए गए IP पते से पहला अनुरोध लॉग करता है और बाढ़ शुरू हो जाती है .. आपका सर्वर अनुरोधों के साथ पहले से ही बैकलॉग है .. आप एक ही आईपी से दूसरे पुनरावृत्ति को प्राप्त करने के लिए पर्याप्त अनुरोधों को संसाधित नहीं कर सकते हैं (जो अभी भी एक वैध अनुरोध हो सकता है वैसे)। यह DoS के हमलों से बचाता है जहाँ समान IP का ही उपयोग किया जाता है। कुछ भी अगर दोनों का उपयोग करने के लिए बेहतर है। : पी
नील

0

Cloudflare का एक मुख्य प्रसाद आपके API / वेब सर्वर के लिए एक बुद्धिमान प्रॉक्सी प्रदान करके Denial of Service हमलों से सुरक्षा है। मूल सेवा मुफ्त है; वे सीडीएन सेवाओं और लोड संतुलन जैसी अन्य संबंधित सेवाओं से पैसा बनाते हैं। वे अधिक परिष्कृत और नियंत्रणीय दर सीमित सेवाएँ भी प्रदान करते हैं, वर्तमान में US $ .05 प्रति 10k अच्छे अनुरोधों (अस्वीकार किए गए अनुरोधों के लिए कोई शुल्क नहीं) की दर से, लेकिन आपको एक से अधिक वैश्विक नियम प्राप्त करने के लिए भुगतान योजनाओं को अपग्रेड करना होगा।

आप क्लाउडफेयर की सेवा का उपयोग एडब्ल्यूएस या किसी अन्य प्लेटफॉर्म के साथ कर सकते हैं जब तक कि आपके डोमेन के नाम सर्वर पर नियंत्रण हो (जैसा कि, आप अपने डोमेन के लिए पंजीकृत नाम सर्वर को बदल सकते हैं)।

आप अलग-अलग URL में लॉग-इन उपयोगकर्ताओं को निर्देशित करके अनाम और लॉग-इन उपयोगकर्ताओं के लिए अलग-अलग दर सीमाएं प्रदान कर सकते हैं। उदाहरण के लिए, आप बस एक एंडपॉइंट बनाने के लिए '/ u' के साथ अपने सभी गुमनाम रूप से उपलब्ध URL पथ को उपसर्ग कर सकते हैं, जिसे हमेशा प्रमाणीकरण की आवश्यकता होती है और एक अलग दर सीमा होती है।

ध्यान दें कि क्लाउडफ्लेयर की दर सीमित (अनाम उपयोगकर्ताओं के लिए सभी वाणिज्यिक दर सीमित करने की तरह) मैं अपने आईपी पते से एक ग्राहक को परिभाषित करता हूं। यह वाणिज्यिक वीपीएन या टोर का उपयोग करने वाले लोगों के लिए समस्या पैदा कर सकता है, क्योंकि वे अतिरिक्त गोपनीयता के लिए 1 आईपी पते के पीछे बड़ी संख्या में ग्राहकों को छिपाने के लिए करते हैं।


0

AWS में, संबंधित सेवाएँ AWS Shield और AWS WAF हैं । वे मुख्य रूप से DDoS हमलों को रोकने के लिए हैं, लेकिन आईपी पते के आधार पर दर-सीमित करने के लिए भी समर्थन प्रदान करते हैं।

WAF में, अवधारणा को दर-आधारित नियम कहा जाता है । मूल घोषणा में उपयोग के मामले के रूप में ब्रूट-फोर्स आधारित लॉगिन प्रयासों का उल्लेख किया गया है :

यह नया नियम प्रकार ग्राहक वेबसाइटों और API को वेब-लेयर DDoS हमलों, पाशविक बल लॉगिन प्रयासों और बुरे बॉट जैसे खतरों से बचाता है। जब ग्राहक से वेब अनुरोध एक निश्चित विन्यास सीमा से अधिक हो जाते हैं तो दर आधारित नियम स्वचालित रूप से चालू हो जाते हैं।

अन्य क्लाउड प्रदाताओं को भी इसी तरह का प्रसाद होना चाहिए। यहाँ, एक सारणीबद्ध तुलना है: Google क्लाउड कवच बनाम AWS WAF बनाम Cloudflare WAF

जैसा कि आप पहले से ही Nginx का उपयोग कर रहे हैं, अंतर्निहित IP आधारित दर-सीमित का उपयोग करना भी सरल विकल्प हो सकता है। मॉड्यूल को ngx_http_limit_req_module कहा जाता है । यह ब्लॉग पोस्ट बताता है कि इसका उपयोग कैसे किया जा सकता है।

कृपया ध्यान दें कि आईपी आधारित दर सीमित एक अपेक्षाकृत सरल अवधारणा है, लेकिन यह सही नहीं है:

  • IP पते साझा किए जा सकते हैं (एक ही कार्यालय में काम करने वाले लोग) झूठी सकारात्मक के लिए अग्रणी
  • एक हमलावर के पास कई आईपी पते तक आसान पहुँच हो सकती है और उन्हें सीमाओं को बाईपास करने के लिए उपयोग किया जा सकता है (वितरित बल-बल लॉगिन हमला)

सामान्य तौर पर, आईपी पते एक अच्छी शुरुआत है। लेकिन अगर आपको मजबूत सुरक्षा की आवश्यकता है, तो आपके सबसे अच्छे विकल्प आपके थ्रेड मॉडल (आप किस तरह के हमलों को रोकना चाहते हैं) पर निर्भर करेगा।

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