फ़ज़ टेस्टिंग (फ़ज़िंग) ट्यूटोरियल: क्या है, प्रकार, उपकरण और amp; उदाहरण

विषय - सूची:

Anonim

फज परीक्षण

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

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

फज टेस्टिंग क्यों करें?

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

फज टेस्टिंग कैसे करें

फ़ज़ी परीक्षण के चरणों में मूल परीक्षण चरण शामिल हैं-

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

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

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

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

चरण 5) मॉनिटर सिस्टम व्यवहार

चरण 6) लॉग दोष

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

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

  • जेनरेशन-आधारित फ़ज़र्स मॉडल के इनपुट के आधार पर नए डेटा को परिभाषित करते हैं। यह विनिर्देश के आधार पर खरोंच से इनपुट उत्पन्न करना शुरू कर देता है।

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

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

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

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

फ़ज़ टेस्टिंग द्वारा पाए जाने वाले बग के प्रकार

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

  • अमान्य निवेश

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

  • सही कीड़े

    कुछ प्रकार के "शुद्धता" कीड़ों का पता लगाने के लिए फ़ज़िंग का भी उपयोग किया जा सकता है। जैसे कि दूषित डेटाबेस, ख़राब खोज परिणाम आदि।

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

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

  • पीच फजर

    पीच फ़ज़र एक स्कैनर की तुलना में अधिक मजबूत और सुरक्षा कवरेज प्रदान करता है। अन्य परीक्षण उपकरण केवल ज्ञात थ्रेड्स के लिए खोज कर सकते हैं जबकि पीच फ़ज़र उपयोगकर्ता को ज्ञात और अज्ञात थ्रेड खोजने में सक्षम करता है।

  • स्पाइक प्रॉक्सी

    यह एक पेशेवर-ग्रेड उपकरण है जो वेब अनुप्रयोगों में अनुप्रयोग-स्तरीय कमजोरियों की तलाश कर रहा है। SPIKE प्रॉक्सी में SQL इंजेक्शन और क्रॉस-साइट-स्क्रिप्टिंग जैसी मूल बातें शामिल हैं, लेकिन यह पूरी तरह से पाइथन इंफ्रास्ट्रक्चर के लिए खुला है। SPIKE प्रॉक्सी लिनक्स और विंडोज के लिए उपलब्ध है।

  • वेब्सकारब

    Webscarab जावा में इस प्रकार कई प्लेटफार्मों के लिए पोर्टेबल लिखा है। एप्लिकेशन के विश्लेषण के लिए वेबसर्कैब फ्रेमवर्क का उपयोग किया जाता है जो HTTP और HTTPS प्रोटोकॉल का उपयोग करके संवाद करता है।

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

  • OWASP WSFuzzer

    WSFuzzer एक GPL'd प्रोग्राम है जो पायथन में लिखा गया है। GPL'd एक कार्यक्रम वर्तमान में वेब सेवाओं को लक्षित करता है। OWASPWSFuzzer HTTP के वर्तमान संस्करण में SOAP सेवाएँ मुख्य लक्ष्य हैं।

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

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

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

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

सारांश:

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

इस लेख में प्रियंका कोठे का योगदान है