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

SDLLMFuzz: Dynamic-static LLM-assisted greybox fuzzing for structured input programs

SDLLMFuzz एक नवीन ग्रेबॉक्स फज़िंग फ्रेमवर्क है जो कुशल गहन पथ अन्वेषण (deep path exploration) के लिए सिंटैक्टिक रूप से वैध सीड जनरेशन के साथ एलएलएम-आधारित (LLM-based) स्टेटिक क्रैश विश्लेषण को एकीकृत करके संरचित-इनपुट वाले प्रोग्रामों में भेद्यता खोज (vulnerability discovery) को बढ़ाता है।

मूल लेखक: Yihao Zou, Tianming Zheng, Futai Zou, Yue Wu

प्रकाशित 2026-04-21
📖 5 मिनट में पढ़ें🧠 गहराई से पढ़ें

मूल लेखक: Yihao Zou, Tianming Zheng, Futai Zou, Yue Wu

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

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

यह पारंपरिक "फज़िंग" (Fuzzing) (एक तकनीक जिसका उपयोग सॉफ्टवेयर बग खोजने के लिए किया जाता है) के साथ होने वाली समस्या है। पारंपरिक फज़र्स महल की दीवारों पर हजारों रैंडम पत्थर फेंकने की तरह हैं। अधिकांश पत्थर टकराकर वापस आ जाते हैं क्योंकि वे वैध चाबियों की तरह नहीं दिखते। वे अंदर जाने तक कभी नहीं पहुँच पाते और अंदर की गहरी, छिपी हुई समस्याओं को खोजने में विफल रहते हैं।

SDLLMFuzz एक नया, स्मार्ट तरीका है। यह दो शक्तिशाली उपकरणों को जोड़ता है: एक सुपर-इंटेलिजेंट आर्किटेक्ट (LLM) और एक फोरेंसिक डिटेक्टिव (स्टैटिक एनालिसिस)

यह कैसे काम करता है, यहाँ सरल चरणों में दिया गया है:

1. समस्या: "रैंडम रॉक" दृष्टिकोण

कल्पना कीजिए कि आप एक हाई-टेक तिजोरी खोलने की कोशिश कर रहे हैं।

  • पुराना तरीका: आप एक हथौड़ा उठाते हैं और रैंडम बटन दबाते हैं। 99% बार, कुछ नहीं होता क्योंकि तिजोरी उस रैंडम शोर (noise) को खारिज कर देती है। आप समय और ऊर्जा बर्बाद करते हैं।
  • समस्या: आधुनिक सॉफ्टवेयर (जैसे इमेज व्यूअर या XML पार्सर) उसी तिजोरी की तरह है। यह एक सटीक संरचना की मांग करता है। रैंडम इनपुट को प्रोग्राम शुरू होने से पहले ही खारिज कर दिया जाता है।

2. समाधान: "स्मार्ट आर्किटेक्ट" (The LLM)

रैंडम पत्थर फेंकने के बजाय, SDLLMFuzz एक लार्ज लैंग्वेज मॉडल (LLM) का उपयोग करता है। LLM को एक मास्टर आर्किटेक्ट के रूप में समझें जिसने महल के ब्लूप्रिंट (नक्शे) को पढ़ा है।

  • यह क्या करता है: यह केवल अनुमान नहीं लगाता; यह नियमों को समझता है। इसे पता है कि "वर्दी" और "मानचित्र" वास्तव में कैसे दिखते हैं।
  • परिणाम: यह ऐसे टेस्ट इनपुट बनाता है जो पूरी तरह से सही फॉर्मेट में होते हैं। वे वैध चाबियों की तरह दिखते हैं, जिससे गार्ड उन्हें अंदर जाने देते हैं। इसका मतलब है कि फज़र वास्तव में महल के उन गहरे, जटिल कमरों की खोज कर सकता है जहाँ बग आमतौर पर छिपे होते हैं।

3. गायब कड़ी: "फोरेंसिक डिटेक्टिव"

यहीं पर अधिकांश अन्य स्मार्ट टूल्स विफल हो जाते हैं। यदि एक टेस्ट इनपुट वास्तव में प्रोग्राम को क्रैश (एक "क्रैश") कर देता है, तो पारंपरिक टूल्स बस इतना कहते हैं, "ओह, यह टूट गया! चलिए फिर से कोशिश करते हैं।" वे उस टूटे हुए हिस्से को फेंक देते हैं और उसे भूल जाते हैं।

SDLLMFuzz एक स्टैटिक क्रैश एनालाइज़र जोड़ता है। इसे एक फोरेंसिक डिटेक्टिव के रूप में समझें जो क्रैश स्थल पर पहुँचता है।

  • जांच: क्रैश को केवल देखने के बजाय, डिटेक्टिव "लाश" (क्रैश रिपोर्ट) की जांच करता है। वे कॉल स्टैक (वह रास्ता जो प्रोग्राम ने लिया), मेमोरी वैल्यू और ठीक उस क्षण की जांच करते हैं जब चीजें गलत हुईं।
  • अंतर्दृष्टि (Insight): डिटेक्टिव पता लगाता है कि यह क्यों टूटा। "आह, प्रोग्राम इसलिए क्रैश हुआ क्योंकि तीसरी लाइन में एक विशिष्ट कॉमा (comma) गायब था।"

4. जादुई लूप: "सीखना और सुधारना"

यही असली सफलता का मंत्र है। SDLLMFuzz आर्किटेक्ट और डिटेक्टिव को एक निरंतर लूप में जोड़ता है।

  1. जेनरेट (Generate): आर्किटेक्ट एक एकदम सही, वैध चाबी बनाता है।
  2. टेस्ट (Test): उस चाबी को महल में आजमाया जाता है।
  3. क्रैश? (Crash?): यदि यह क्रैश होता है, तो डिटेक्टिव विश्लेषण करता है कि क्यों हुआ।
  4. फीडबैक (Feedback): डिटेक्टिव आर्किटेक्ट को बताता है: "पिछली चाबी अच्छी थी, लेकिन इसमें एक कॉमा गायब था। अगली बार, ऐसी चाबी बनाने की कोशिश करें जो लगभग परफेक्ट हो लेकिन उस जगह पर एक छोटा, विशिष्ट एरर हो।"
  5. दोहराना (Repeat): आर्किटेक्ट इस नई जानकारी का उपयोग करके एक और भी बेहतर (या अधिक विशिष्ट रूप से त्रुटिपूर्ण) चाबी बनाता है।

यह एक बड़ी बात क्यों है?

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

परिणाम

शोधकर्ताओं ने वास्तविक दुनिया के सॉफ्टवेयर (जैसे इमेज लाइब्रेरी और XML पार्सर) पर इसका परीक्षण किया। उन्होंने पाया कि SDLLMFuzz:

  • पारंपरिक तरीकों की तुलना में अधिक बग ढूंढता है।
  • उन्हें तेज़ी से ढूंढता है (इसने अमान्य इनपुट पर समय बर्बाद नहीं किया)।
  • प्रोग्राम लॉजिक में गहराई तक जाता है, जिससे वे जटिल बग मिलते हैं जिन्हें अन्य मिस कर देते हैं।

संक्षेप में

SDLLMFuzz घास के ढेर में सुई खोजने के लिए एक टीम को काम पर रखने जैसा है।

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

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

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

Digest आज़माएँ →