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

Guiding Symbolic Execution with Static Analysis and LLMs for Vulnerability Discovery

यह शोध पत्र SAILOR प्रस्तुत करता है, जो भेद्यता लक्ष्यीकरण (vulnerability targeting) के लिए स्टैटिक एनालिसिस और इटरेटिव ड्राइवर सिंथेसिस (iterative driver synthesis) के लिए LLMs को एकीकृत करके सिम्बोलिक एक्जीक्यूशन हारनेस निर्माण को स्वचालित करने वाला एक अभिनव ढांचा है, जो 10 बड़े C/C++ प्रोजेक्ट्स में 379 पहले से अज्ञात मेमोरी-सेफ्टी भेद्यताओं की खोज करने में सक्षम है जहाँ मौजूदा बेसलाइन विफल रहे थे।

मूल लेखक: Md Shafiuzzaman, Achintya Desai, Wenbo Guo, Tevfik Bultan

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

मूल लेखक: Md Shafiuzzaman, Achintya Desai, Wenbo Guo, Tevfik Bultan

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

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

  1. स्टैटिक एनालाइज़र (नक्शा पढ़ने वाला): यह उपकरण कुछ ही सेकंड में पूरे महल को स्कैन कर सकता है और उन 10,000 जगहों की ओर इशारा कर सकता है जो संदिग्ध लगती हैं। लेकिन इसमें संदर्भ (context) की कमी है; यह एक ढीली ईंट से लेकर पूरी दीवार तक, हर चीज़ को फ्लैग कर देता है, जिससे झूले अलार्म का पहाड़ खड़ा हो जाता है।
  2. सिंबोलिक एक्जीक्यूटर (सुपर-टेस्टर): यह एक रोबोट है जो एक साथ महल के हर संभावित गलियारे से होकर गुजर सकता है ताकि यह देखा जा सके कि क्या कोई जाल वास्तव में सक्रिय होता है। यह अविश्वसनीय रूप से सटीक है। हालाँकि, यह तब तक चलना शुरू नहीं कर सकता जब तक कि आप इसे प्रवेश करने के लिए एक विशिष्ट दरवाजा, फर्नीचर का नक्शा और नियमों की एक सूची न दे दें। 1.8-मिलियन-लाइन वाले इस विशाल महल के लिए इन निर्देशों को मैन्युअल रूप से लिखना वर्षों का काम है।
  3. एलएलएम (जीनियस इंटर्न): यह एक सुपर-स्मार्ट एआई है जो कोड लिखना जानता है और महल के लेआउट को समझता है। लेकिन यदि आप इससे बस इतना पूछ लें, "जाल खोजो," तो यह भ्रमित हो सकता है (हैलुसिनेशन) या गलत अनुमान लगा सकता है क्योंकि यह वास्तव में जाल मौजूद है या नहीं, यह साबित करने के लिए गलियारों में चल नहीं सकता।

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

समाधान: "सेलर" (Sailor)
लेखकों ने 'सेलर' नामक एक सिस्टम बनाया है जो एक आदर्श जासूसी टीम की तरह काम करता है, जो इन तीनों उपकरणों को एक सहज असेंबली लाइन में जोड़ता है। इसे एक तीन-चरणों वाली रिले रेस की तरह समझें:

चरण 1: द स्काउट (स्टैटिक एनालिसिस)

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

  • उपमा: यह एक सुरक्षा गार्ड की तरह है जो एक टॉर्च जलाकर एक विशिष्ट, संदिग्ध दरवाजे की ओर इशारा करता है और अगले व्यक्ति को एक नोट थमाता है: "इस दरवाजे की जाँच करो। यह खुला हो सकता है।"

चरण 2: द आर्किटेक्ट और द बिल्डर (LLM + सिंबोलिक एक्जीक्यूशन)

यही वह जादुई हिस्सा है। जीनियस इंटर्न (LLM) उस नोट को लेता है और यह देखने के लिए एक "टेस्ट रूम" (हार्नेस) बनाने की कोशिश करता है कि क्या दरवाजा वास्तव में खुलता है।

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

चरण 3: द रियलिटी चेक (कंक्रीट वैलिडेशन)

सुपर-टेस्टर बेहतरीन है, लेकिन कभी-कभी वह सपनों की दुनिया में खो जाता है। शत-प्रतिशत सुनिश्चित करने के लिए, टीम चाबी को लेती है जिसे सुपर-टेस्टर ने बनाया है और उसे वास्तविक, बिना बदलाव वाले महल पर आज़माती है।

  • उपमा: वे चाबी को एक मानव गार्ड को सौंपते हैं और कहते, "इस चाबी को असली दरवाजे पर आजमाकर देखो।" यदि दरवाजा खुल जाता है और जाल सक्रिय हो जाता है, तो बधाई हो! यह एक वास्तविक भेद्यता (vulnerability) है। यदि चाबी असली दरवाजे पर काम नहीं करती है, तो वह एक गलत अलार्म था, और वे उसे हटा देते हैं।

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

टीम ने सेल पर 10 विशाल, वास्तविक दुनिया के सॉफ़्टवेयर प्रोजेक्ट्स (जैसे वे उपकरण जो इंटरनेट, इमेज प्रोसेसिंग और सुरक्षा को शक्ति देते हैं) पर परीक्षण किया।

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

मुख्य निष्कर्ष (The Takeaway)

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

यह घास के ढेर में सुई खोजने की पूरी प्रक्रिया को स्वचालित करने जैसा है: घंटों तक खोजने के लिए एक व्यक्ति के बजाय, आपके पास एक रोबोट है जो घास का ढेर ढूंढता है, एक स्मार्ट सहायक है जो चुंबक बनाता है, और एक अंतिम परीक्षण है जो यह सुनिश्चित करता है कि चुंबक ने वास्तव में एक सुई उठाई है।

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

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

Digest आज़माएँ →