← नवीनतम पेपर
💻 computer science

WuppieFuzz: Coverage-Guided, Stateful REST API Fuzzing

यह शोध पत्र WuppieFuzz को प्रस्तुत करता है, जो LibAFL पर निर्मित एक ओपन-सोर्स, कवरेज-गाइडेड, स्टेटफुल REST API फज़र है जो हारनेस निर्माण को स्वचालित करता है और प्रभावी भेद्यता खोज (vulnerability discovery) के लिए अनुरोध अनुक्रमों (request sequences) को उत्पन्न करने और उन्हें उत्परिवर्तित (mutate) करने के लिए OpenAPI विनिर्देशों का उपयोग करता है।

मूल लेखक: Thomas Rooijakkers, Anne Nijsten, Cristian Daniele, Erieke Weitenberg, Ringo Groenewegen, Arthur Melissen

प्रकाशित 2026-03-26
📖 6 मिनट में पढ़ें🧠 गहराई से पढ़ें

मूल लेखक: Thomas Rooijakkers, Anne Nijsten, Cristian Daniele, Erieke Weitenberg, Ringo Groenewegen, Arthur Melissen

मूल पेपर CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) के तहत लाइसेंस किया गया है। नीचे दिए गए पेपर की यह व्याख्या AI से तैयार की गई है। इसे लेखकों ने न तो लिखा है, न इसका समर्थन किया है। तकनीकी सटीकता के लिए मूल पेपर देखें। पूरा डिस्क्लेमर पढ़ें

कल्पना कीजिए कि आपके पास एक विशाल, हाई-टेक वेंडिंग मशीन (REST API) है जो कॉफी से लेकर कार की चाबियों तक सब कुछ निकालती है। यह इंटरनेट से जुड़ी है, इसलिए कोई भी इसे खरीदने की कोशिश कर सकता है। लेकिन क्या होगा अगर कोई केला डालकर कार की चाबी खरीदने की कोशिश करे? या क्या होगा अगर कोई मशीन को चकमा देने के लिए अजीब क्रम में बटन दबाए?

यही वह समस्या है जिसे WuppieFuzz हल करता है। यह एक नया, ओपन-सोर्स टूल है जिसे इन डिजिटल वेंडिंग मशीनों के लिए एक "सुपर-टेस्टर" के रूप में डिज़ाइन किया गया है, जो बुरे लोगों के आने से पहले बग्स और सुरक्षा खामियों को ढूंढ लेता है।

यह कैसे काम करता है, सरल उपमाओं (analogies) के माध्यम से यहाँ समझाया गया है:

1. समस्या: बहुत सारे बटन, बहुत सारी चालें

आधुनिक सॉफ़्टवेयर दूसरे सॉफ़्टवेयर से बात करने के लिए "APIs" का उपयोग करते हैं। एक API को वेंडिंग मशीन पर बटनों के मेनू की तरह समझें।

  • चुनौती: यहाँ हजारों बटन (endpoints) हैं। यदि आप उन्हें हाथ से टेस्ट करने की कोशिश करेंगे, तो आपको वर्षों तक काम करने वाली टीमों की आवश्यकता होगी।
  • पुराना तरीका: "फज़िंग" (Fuzzing) मशीन पर रैंडम चीजें फेंकने जैसा है ताकि देखा जा सके कि क्या टूटता है। लेकिन यदि आप केवल रैंडम कचरा फेंकते हैं, तो आप उस विशिष्ट बटन संयोजन को मिस कर सकते हैं जो मशीन को फटने पर मजबूर कर देता है।

2. समाधान: WuppieFuzz (स्मार्ट टेस्टर)

WuppieFuzz एक रोबोटिक इंटर्न की तरह है जो अविश्वसनीय रूप से स्मार्ट, तेज़ और कभी न थकने वाला है। इसे LibAFL नामक एक शक्तिशाली इंजन (सोचिए कि यह रोबोट का दिमाग और मांसपेशियां है) का उपयोग करके बनाया गया है।

इसके काम करने के तीन मुख्य "मोड" हैं, जो इस बात पर निर्भर करते हैं कि आपके पास मशीन की आंतरिक वायरिंग तक कितनी पहुंच है:

  • ब्लैक-बॉक्स मोड (अंधे होकर टेस्ट करने वाला): रोबोट मशीन के बाहर खड़ा है। वह केवल यह देख सकता है कि क्या बाहर आ रहा है (रिस्पॉन्स) और इसमें कितना समय लग रहा है। उसे नहीं पता कि अंदर गियर कैसे काम करते हैं।
  • व्हाइट-बॉक्स मोड (एक्स-रे विजन): रोबोट के पास ब्लूप्रिंट है और वह अंदर घूमते हुए गियर्स को देख सकता है। उसे पता है कि बटन दबाने पर कौन सा तार छुआ जा रहा है। यह इसे छिपी हुई समस्याओं को बहुत तेज़ी से खोजने में मदद करता है।
  • ग्रे-बॉक्स मोड: दोनों का मिश्रण। उसके पास कुछ अंदरूनी जानकारी है लेकिन पूरा ब्लूप्रिंट नहीं है।

3. यह कैसे सीखता है: "रेसिपी बुक" (OpenAPI)

टेस्टिंग का सबसे कठिन हिस्सा यह जानना है कि मशीन क्या उम्मीद करती है। यदि आप कॉफी स्लॉट में केला डालते हैं, तो मशीन उसे तुरंत रिजेक्ट कर सकती है, और रोबोट कुछ भी नहीं सीख पाता।

WuppieFuzz एक रेसिपी बुक (जिसे OpenAPI Specification कहा जाता है) पढ़ता है।

  • जादू: अंदाज़ा लगाने के बजाय, रोबोट नियमों को समझने के लिए किताब पढ़ता है। वह सीखता है, "ओह, कॉफी खरीदने के लिए, मुझे पहले एक कप चाहिए, और कप पाने के लिए, मुझे पहले भुगतान करना होगा।"
  • सीड बनाना (Building the Seed): यह स्वचालित रूप से "परफेक्ट" टेस्ट रन (जिसे Seed Corpus कहा जाता है) की एक सूची बनाता है। यह ऐसा है जैसे रोबंड मशीन को गिराने की कोशिश करने से पहले परफेक्ट डांस स्टेप्स का अभ्यास कर रहा हो।

4. नृत्य: स्टेटफुल फज़िंग (Stateful Fuzzing)

यहीं WuppieFuzz वास्तव में चतुर हो जाता है। कई बग्स तभी होते हैं जब चीज़ें एक विशिष्ट क्रम में की जाती हैं।

  • उदाहरण: आप उपयोगकर्ता खाता (user account) तब तक डिलीट नहीं कर सकते जब तक आपने पहले उसे बनाया न हो।
  • उपमा: "साइमन कहता है" (Simon Says) के खेल की कल्पना करें। यदि आप "बनाने" (Create) से पहले "डिलीट" (Delete) दबाते हैं, तो कुछ नहीं होता। लेकिन यदि आप "बनाएं" (Create), फिर "अपडेट" (Update), फिर "डिलीट" (Delete) करते हैं, तो मशीन क्रैश हो सकती है।
  • WupieFuzz क्रम को याद रखता है। यह अनुरोधों की एक श्रृंखला (A -> B -> C) बनाता है और फिर उनमें बदलाव करना शुरू करता है। शायद वह "क्रिएट" स्टेप को थोड़ा गलत कर दे, या क्रम बदल दे। यह एक रूबिक क्यूब के साथ खेलने वाले बच्चे की तरह है, जो यह देखने के लिए एक तरफ को घुमाता है कि क्या पूरा ढांचा ढह जाता है।

5. फीडबैक लूप: "क्या मैंने एक नया स्थान पाया?"

रोबोट कवरेज (Coverage) नामक एक मेट्रिक द्वारा निर्देशित होता है।

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

6. रिपोर्ट कार्ड

जब रोबोट को कोई बग मिलता है (जैसे मशीन मुफ्त कार की चाबियाँ दे रही है), तो वह केवल यह नहीं कहता कि "यह टूट गया।" वह एक विस्तृत रिपोर्ट लिखता है:

  • "क्या" (The What): ठीक कौन से बटन दबाए गए थे।
  • "कैसे" (The How): घटनाओं का सटीक क्रम।
  • "क्यों" (The Why): यह एक मानचित्र (ग्राफ) भी बनाता है जिससे पता चलता है कि बटन आपस में कैसे जुड़े हैं, ताकि मानव डेवलपर्स उस मैप को देखकर कह सकें, "आह, मैं समझ गया! हमने डिलीट करने से पहले यह चेक करना भूल गए कि यूजर लॉग-इन है या नहीं।"

यह क्यों मायने रखता है?

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

संक्षेप में: WupieFuzz एक अथक, बुद्धिमान रोबोट है जो मैनुअल पढ़ता है, डांस स्टेप्स सीखता है, और फिर उन मूव्स को तब तक घुमाता रहता है जब तक कि वह वह तरीका न ढूंढ ले जिससे सॉफ़्टवेयर लड़खड़ा जाए, गिर जाए और अपने रहस्य उजागर कर दे।

अपने क्षेत्र के पेपरों की भीड़ में उलझे हुए हैं?

आपके रिसर्च कीवर्ड से मेल खाने वाले सबसे नए और अलग सोच वाले पेपरों का रोज़ाना Digest पाएँ—तकनीकी सारांश के साथ, आपकी भाषा में।

Digest आज़माएँ →