यह मानते हुए कि सर्वर किसी विशिष्ट शर्त के आधार पर क्रियाएं करता है, आइए उस स्थिति का विश्लेषण करें जहाँ सर्वर इस शर्त के परिणाम के आधार पर गणनाएँ करता है और फिर उपयोगकर्ता को प्रतिक्रिया भेजता है। दोनों मामलों में, चाहे गणनाएँ की जाती हों या नहीं, सर्वर उपयोगकर्ता को प्रतिक्रिया लौटाता है। यह ध्यान देने योग्य है कि जब सर्वर गणनाएँ करता है, तो यह एक निश्चित मात्रा में संसाधनों का उपयोग करता है, जिससे सर्वर की प्रतिक्रिया समय बढ़ जाती है। आमतौर पर, ये समयांतर इतने छोटे होते हैं कि अंतिम उपयोगकर्ता के लिए ध्यान देने योग्य नहीं होते। हालांकि, इन सूक्ष्म समयांतरों के प्रकट होने से अनजाने में डेटा का रिसाव हो सकता है।
अब इस स्थिति का एक व्यावहारिक उदाहरण पर विचार करें, जो एप्लिकेशन में लॉगिन प्रक्रिया पर आधारित है। मान लीजिए कि लॉगिन सही है, लेकिन पासवर्ड गलत है: इस मामले में सर्वर हो सकता है कि पासवर्ड सत्यापन जैसी गणनाएँ करने का निर्णय ले। यदि सर्वर ये गणनाएँ करता है, तो यह अतिरिक्त संसाधनों की आवश्यकता हो सकती है और इस कारण प्रतिक्रिया समय बढ़ सकता है, जबकि जब गणनाएँ नहीं होती हैं। हालांकि, प्रतिक्रिया समय में अंतर आमतौर पर छोटा होता है, लेकिन यह उपस्थित होता है और आक्रमणकारी द्वारा मापा जा सकता है।
वही प्रक्रिया, लेकिन जब लॉगिन भी गलत है:
प्रतिक्रिया समय में ऐसे सूक्ष्म अंतर के मामले में, आक्रमणकारी इस जानकारी का उपयोग लॉगिन की सहीता का अनुमान लगाने के लिए कर सकता है। उदाहरण के लिए, आक्रमणकारी समय पर हमला कर सकता है, विभिन्न लॉगिन के साथ सर्वर की प्रतिक्रिया के समय का विश्लेषण कर। प्रतिक्रिया समय की तुलना करके, आक्रमणकारी यह अनुमान लगा सकता है कि कौन सा अनुरोध अधिक समय ले रहा है, जो यह संकेत देता है कि लॉगिन सही था। उपयोगकर्ता के लॉगिन का खुलासा आक्रमणकारियों को धन शिविरण के हमले के माध्यम से पासवर्ड का अनुमान लगाने की अनुमति देता है। कुछ मामलों में, यह संवेदनशील जानकारी के खुलासे का भी मतलब हो सकता है, खासकर जब लॉगिन एक व्यक्तिगत ईमेल पता होता है और परीक्षण की जा रही एप्लिकेशन एक विवादास्पद विषय का पोर्टल होता है।
Burp Suite के साथ टेस्टिंग – Request Timer
इस प्रकार की भेद्यता का पता लगाते समय, Burp का एक प्लगइन जिसका नाम Request Timer है, उपयोगी हो सकता है। यह प्लगइन हमें हमारे निर्दिष्ट अनुरोधों के सर्वर प्रतिक्रिया समय का अध्ययन करने की अनुमति देगा।
पहला कदम उस अनुरोध को पकड़ना होगा जो उपयोगकर्ता लॉगिन के लिए जिम्मेदार है और इसे Intruder मॉड्यूल में भेजना होगा:
फिर हम पासवर्ड को लंबे स्ट्रिंग में बदलते हैं ताकि पासवर्ड हैश उत्पन्न करते हुए सर्वर पर लोड बढ़ाया जा सके। हम उस स्थान को चिह्नित करते हैं जहाँ उपयोगकर्ता का लॉगिन स्थित होता है। परीक्षण एप्लिकेशन के मामले में, “X-Forwarded-For” हेडर जोड़ना और कई लॉगिन प्रयासों से बचने के लिए इसे एक रैंडम IP पता सौंपी जाती है। इसीलिए हमें हमले के प्रकार को “Pitchfork” में बदलना होगा।
जांच करने के लिए लॉगिनों की सूची जोड़ते हैं:
Request Timer प्लगइन में हम परिभाषित करते हैं कि वह Intruder मॉड्यूल को सुने:
टेस्ट शुरू करने के बाद, उत्पन्न अनुरोधों और प्रतिक्रिया समय के साथ एक टैब में दिखाई देंगे। जैसा कि देखा जा सकता है, सही लॉगिन के लिए प्रतिक्रिया समय काफी लंबा है। इस प्रकार हमने साबित किया कि एप्लिकेशन उत्तर समय विश्लेषण के माध्यम से उपयोगकर्ता लॉगिन सूचीबद्धता के लिए संवेदनशील है।
क्या करें, कैसे जिएं?
इस प्रकार की समस्या का एक समाधान है सर्वर प्रतिक्रिया में यादृच्छिक देरी जोड़ने वाली फंक्शन जोड़ना:
हालांकि, इस प्रकार के समाधान के मामले में समस्या यह रहती है कि हमारे पास उस स्थिति पर नियंत्रण नहीं होता जब डेटाबेस से कनेक्शन बनाने के प्रयास में नेटवर्क धीमा हो जाता है या जब डेटाबेस काफी बढ़ जाता है।
इसका एक बेहतर समाधान है उपयोगकर्ता द्वारा प्रदान किए गए डेटा की सत्यापनशीलता की जाँच असिंक्रोनस रूप में बैकग्राउंड में करना और उपयोगकर्ता को तुरंत लॉगिन प्रयास के बारे में सूचित करना। इसस्से गणनाएँ और उनसे संबंधित देरी आक्रमणकारी से छुपी रहती हैं।
इस प्रकार की समस्या का एक समाधान है सर्वर प्रतिक्रिया में यादृच्छिक देरी जोड़ने वाली फंक्शन जोड़ना:
हालांकि, इस प्रकार के समाधान की स्थिति में समस्या यह रहती है कि हमारे पास उस स्थिति पर नियंत्रण नहीं होता जब डेटाबेस से कनेक्शन बनाने के प्रयास में नेटवर्क धीमा हो जाता है या जब डेटाबेस काफी बढ़ जाता है।
इसका एक बेहतर समाधान है उपयोगकर्ता द्वारा प्रदान किए गए डेटा की सत्यापनशीलता की जाँच असिंक्रोनस रूप में बैकग्राउंड में करना और उपयोगकर्ता को तुरंत लॉगिन प्रयास के बारे में सूचित करना। इसस्से गणनाएँ और उनसे संबंधित देरी आक्रमणकारी से छुपी रहती हैं।
इस प्रकार की समस्या का एक समाधान है सर्वर प्रतिक्रिया में यादृच्छिक देरी जोड़ने वाली फंक्शन जोड़ना:
हालांकि, इस प्रकार के समाधान की स्थिति में समस्या यह रहती है कि हमारे पास उस स्थिति पर नियंत्रण नहीं होता जब डेटाबेस से कनेक्शन बनाने के प्रयास में नेटवर्क धीमा हो जाता है या जब डेटाबेस काफी बढ़ जाता है।
इसका एक बेहतर समाधान है उपयोगकर्ता द्वारा प्रदान किए गए डेटा की सत्यापनशीलता की जाँच असिंक्रोनस रूप में बैकग्राउंड में करना और उपयोगकर्ता को तुरंत लॉगिन प्रयास के बारे में सूचित करना। इसस्से गणनाएँ और उनसे संबंधित देरी आक्रमणकारी से छुपी रहती हैं।
पसंद करें तो सुझाई गई विधियों का उपयोग करें और सुरक्षा की दृष्टि से उन्हें अनुकूलित करें।किसी अन्य संदर्भ में, हमेशा सुरक्षित और सतर्क रहें!
इस प्रकार की समस्या का एक समाधान है सर्वर प्रतिक्रिया में यादृच्छिक देरी जोड़ने वाली फंक्शन जोड़ना:
हालांकि, इस प्रकार के समाधान की स्थिति में समस्या यह रहती है कि हमारे पास उस स्थिति पर नियंत्रण नहीं होता जब डेटाबेस से कनेक्शन बनाने के प्रयास में नेटवर्क धीमा हो जाता है या जब डेटाबेस काफी बढ़ जाता है।
इसका एक बेहतर समाधान है उपयोगकर्ता द्वारा प्रदान किए गए डेटा की सत्यापनशीलता की जाँच असिंक्रोनस रूप में बैकग्राउंड में करना और उपयोगकर्ता को तुरंत लॉगिन प्रयास के बारे में सूचित करना। इसस्से गणनाएँ और उनसे संबंधित देरी आक्रमणकारी से छुपी रहती हैं।
इस प्रकार की समस्या का एक समाधान है सर्वर प्रतिक्रिया में यादृच्छिक देरी जोड़ने वाली फंक्शन जोड़ना:
हालांकि, इस प्रकार के समाधान की स्थिति में समस्या यह रहती है कि हमारे पास उस स्थिति पर नियंत्रण नहीं होता जब डेटाबेस से कनेक्शन बनाने के प्रयास में नेटवर्क धीमा हो जाता है या जब डेटाबेस काफी बढ़ जाता है।
इसका एक बेहतर समाधान है उपयोगकर्ता द्वारा प्रदान किए गए डेटा की सत्यापनशीलता की जाँच असिंक्रोनस रूप में बैकग्राउंड में करना और उपयोगकर्ता को तुरंत लॉगिन प्रयास के बारे में सूचित करना। इसस्से गणनाएँ और उनसे संबंधित देरी आक्रमणकारी से छुपी रहती हैं।
किसी अन्य संदर्भ में, हमेशा सुरक्षित और सतर्क रहें!