फ़ज़ परीक्षण (फ़ज़िंग) ट्यूटोरियल

फ़ज़ परीक्षण क्या है?

फ़ज़ परीक्षण या फ़ज़िंग एक सॉफ़्टवेयर परीक्षण तकनीक है जिसमें कोडिंग त्रुटियों और सुरक्षा खामियों का पता लगाने के लिए सॉफ़्टवेयर सिस्टम में FUZZ नामक अमान्य या यादृच्छिक डेटा डाला जाता है। फ़ज़ परीक्षण का उद्देश्य स्वचालित या अर्ध-स्वचालित तकनीकों का उपयोग करके डेटा डालना और सिस्टम क्रैश होने या अंतर्निहित कोड की विफलता आदि जैसे विभिन्न अपवादों के लिए सिस्टम का परीक्षण करना है।

फ़ज़ परीक्षण मूल रूप से 1989 में विस्कॉन्सिन विश्वविद्यालय में बार्टन मिलर द्वारा विकसित किया गया था। फ़ज़ परीक्षण या फ़ज़िंग एक सॉफ़्टवेयर परीक्षण तकनीक है, और यह एक प्रकार का है सुरक्षा परीक्षण.

फ़ज़ परीक्षण

फ़ज़ परीक्षण क्यों करें?

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

फ़ज़ परीक्षण कैसे करें

फ़ज़ी परीक्षण के चरणों में बुनियादी परीक्षण चरण शामिल हैं-

चरण 1) लक्ष्य प्रणाली की पहचान करें

चरण 2) इनपुट पहचानें

चरण 3) फ़ज़्ड डेटा उत्पन्न करें

चरण 4) फ़ज़ी डेटा का उपयोग करके परीक्षण निष्पादित करें

चरण 5) सिस्टम व्यवहार की निगरानी करें

चरण 6) लॉग दोष

फ़ज़र्स के उदाहरण

  • उत्परिवर्तन-आधारित फ़ज़र्स नए परीक्षण डेटा बनाने के लिए मौजूदा डेटा नमूनों को बदलें। यह बहुत ही सरल और सीधा तरीका है, यह प्रोटोकॉल के वैध नमूनों से शुरू होता है और हर बाइट या फ़ाइल को खराब करता रहता है।
  • पीढ़ी-आधारित फ़ज़र्स मॉडल के इनपुट के आधार पर नया डेटा परिभाषित करें। यह विनिर्देश के आधार पर स्क्रैच से इनपुट उत्पन्न करना शुरू करता है।
  • प्रोटोकॉल-आधारित-फ़ज़रसबसे सफल फ़ज़र को परीक्षण किए जा रहे प्रोटोकॉल प्रारूप का विस्तृत ज्ञान होना चाहिए। समझ विनिर्देश पर निर्भर करती है। इसमें उपकरण में विनिर्देश की एक सरणी लिखना शामिल है, फिर मॉडल-आधारित परीक्षण निर्माण तकनीक का उपयोग करके विनिर्देश के माध्यम से जाना और डेटा सामग्री, अनुक्रम आदि में अनियमितता जोड़ना शामिल है। इसे सिंटैक्स परीक्षण, व्याकरण परीक्षण, मजबूती परीक्षण आदि के रूप में भी जाना जाता है। फ़ज़र किसी मौजूदा से परीक्षण मामले उत्पन्न कर सकते हैं, या वे मान्य या अमान्य इनपुट का उपयोग कर सकते हैं।

प्रोटोकॉल-आधारित फ़ज़िंग की दो सीमाएँ हैं:

  1. जब तक विनिर्देश परिपक्व नहीं हो जाता, परीक्षण आगे नहीं बढ़ सकता।
  2. कई उपयोगी प्रोटोकॉल प्रकाशित प्रोटोकॉल का विस्तार हैं। यदि फ़ज़ परीक्षण प्रकाशित विनिर्देशों पर आधारित है, टेस्ट कवरेज नये प्रोटोकॉल के लिए आवेदन सीमित होंगे।

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

फ़ज़ परीक्षण द्वारा पता लगाए गए बग के प्रकार

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

फ़ज़ परीक्षण उपकरण

वेब सुरक्षा में उपयोग किए जाने वाले उपकरणों का व्यापक रूप से फ़ज़ परीक्षण में उपयोग किया जा सकता है जैसे Burp Suite, पीच फ़ज़र, आदि.

  • पीच फ़ज़र: पीच फ़ज़र स्कैनर की तुलना में अधिक मज़बूत और सुरक्षा कवरेज प्रदान करता है। अन्य परीक्षण उपकरण केवल ज्ञात थ्रेड्स की खोज कर सकते हैं जबकि पीच फ़ज़र उपयोगकर्ताओं को ज्ञात और अज्ञात थ्रेड्स खोजने में सक्षम बनाता है।
  • स्पाइक प्रॉक्सी: यह एक पेशेवर-ग्रेड टूल है जो वेब एप्लिकेशन में एप्लिकेशन-स्तर की कमजोरियों की तलाश करता है। SPIKE Proxy मूल बातें कवर करता है, जैसे एसक्यूएल इंजेक्शन और क्रॉस-साइट-स्क्रिप्टिंग, लेकिन यह पूरी तरह से खुला है Python बुनियादी ढांचे। SPIKE प्रॉक्सी के लिए उपलब्ध है Linux और Windows.
  • वेबस्कारब: वेबस्कारब लिखा है Java इस प्रकार कई प्लेटफार्मों के लिए पोर्टेबल। अनुप्रयोग का विश्लेषण करने के लिए वेबस्कारब फ्रेमवर्क का उपयोग किया जाता है जो HTTP और HTTPS प्रोटोकॉल का उपयोग करके संचार करता है।पूर्व: वेबस्कारैब एक इंटरसेप्टिंग प्रॉक्सी के रूप में काम करता है, यह ऑपरेटर को सर्वर द्वारा प्राप्त किए जाने से पहले ब्राउज़र द्वारा बनाए गए अनुरोध की समीक्षा और संशोधन करने की अनुमति देता है। और ब्राउज़र द्वारा प्राप्त किए जाने से पहले सर्वर द्वारा उत्पन्न प्रतिक्रिया की समीक्षा और अद्यतन करने की अनुमति देता है। इस तरह, यदि वेबस्कारैब को कोई खामी मिलती है, तो यह रिपोर्ट की गई समस्याओं की सूची बना देगा।
  • OWASP WSFuzzer: WSFuzzer एक GPL'd प्रोग्राम है जो . में लिखा गया है Python. GPL'd प्रोग्राम वर्तमान में वेब सेवाओं को लक्षित करता है। OWASPWSFuzzer के वर्तमान संस्करण में HTTP आधारित एसओएपी सेवाएं मुख्य लक्ष्य हैं।

फ़ज़ परीक्षण के लाभ

  • फ़ज़ परीक्षण से सॉफ़्टवेयर में सुधार होता है सुरक्षा परीक्षण.
  • फ़ज़िंग में पाए जाने वाले बग कभी-कभी गंभीर होते हैं और अधिकांशतः हैकर्स द्वारा उपयोग किए जाते हैं, जिनमें क्रैश, मेमोरी लीक, अनहैंडल्ड अपवाद आदि शामिल हैं।
  • यदि समय और संसाधनों की कमी के कारण कोई बग परीक्षकों की नजर में नहीं आता है तो उन बगों को भी फ़ज़ परीक्षण में ढूंढा जाता है।

फ़ज़ परीक्षण के नुकसान

  • अकेले फ़ज़ परीक्षण से समग्र सुरक्षा खतरे या बग की पूरी तस्वीर नहीं मिल सकती।
  • फ़ज़ परीक्षण उन सुरक्षा खतरों से निपटने में कम प्रभावी है जो प्रोग्राम क्रैश का कारण नहीं बनते हैं, जैसे कुछ वायरस, वर्म्स, ट्रोजन आदि।
  • फ़ज़ परीक्षण से केवल सरल दोषों या खतरों का ही पता लगाया जा सकता है।
  • प्रभावी ढंग से कार्य करने के लिए, इसमें काफी समय लगेगा।
  • यादृच्छिक इनपुट के साथ सीमा मान की स्थिति निर्धारित करना बहुत समस्याग्रस्त है, लेकिन अब उपयोगकर्ता इनपुट पर आधारित नियतात्मक एल्गोरिदम का उपयोग करके अधिकांश परीक्षक इस समस्या को हल कर लेते हैं।

सारांश

सॉफ्टवेयर इंजीनियरिंग में, फ़ज़ टेस्टिंग किसी एप्लिकेशन में बग की मौजूदगी को दर्शाता है। फ़ज़िंग किसी एप्लिकेशन में बग का पूरी तरह से पता लगाने की गारंटी नहीं दे सकता। लेकिन फ़ज़ तकनीक का उपयोग करके, यह सुनिश्चित किया जाता है कि एप्लिकेशन मज़बूत और सुरक्षित है, क्योंकि यह तकनीक अधिकांश सामान्य कमज़ोरियों को उजागर करने में मदद करती है।