← नवीनतम पेपर
💻 संगणक विज्ञान

PatchPilot: Diff-Gated Dependency Vulnerability Remediation with Deterministic Planning and Bounded Model-Assisted Source Repair

PatchPilot एक विजुअल स्टूडियो कोड एक्सटेंशन है जो नियत संस्करण चयन (deterministic version selection) और बिल्ड अधिादेश (build adjudication) को सीमित, सहमति-गेटेड LLM-सहायता प्राप्त स्रोत मरम्मत (source repair) से सख्ती से अलग करके डिपेंडेंसी भेद्यता निवारण (dependency vulnerability remediation) में सुधार करता है, जिससे सत्यापन योग्य इनवेरिएंट्स (verifiable invariants) और रोलबैक क्षमताओं के माध्यम से सुरक्षा सुनिश्चित की जाती है।

मूल लेखक: Sivaprakash J

प्रकाशित 2026-10-27
📖 7 मिनट में पढ़ें🧠 गहराई से पढ़ें

मूल लेखक: Sivaprakash J

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

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

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

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

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

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

शोधकर्ताओं ने यह सुनिश्चित करने के लिए इस प्रणाली का कड़ाई से परीक्षण किया कि यह बिल्कुल डिज़ाइन के अनुसार व्यवहार करती है। उन्होंने शृंखला परीक्षण (unit tests) बनाए जो बिना किसी इंटरनेट कनेक्शन या मानवीय हस्तक्षेप के चलते हैं, जो यह सत्यापित करते हैं कि टूल हर संभव परिदृश्य में अपने नियमों का पालन करता है। उन्होंने पूरी प्रक्रिया को शुरू से अंत तक देखने के लिए चार नमूना प्रोजेक्ट्स पर भी टूल चलाया। परिणामों ने दिखाया कि टूल सफलतापूर्वक निर्णय लेने की शक्तियों को अलग करता है। यह कभी भी AI को संस्करण चुनने नहीं देता, कभी भी स्पष्ट बैकअप के बिना फ़ाइल संपादित नहीं करता, और कभी भी ऐसा कमांड नहीं चलाता जिसे किसी दुर्भावनापूर्ण स्क्रिप्ट द्वारा हाईजैक किया जा सके। टूल स्पष्ट रूप से स्वीकार करता है जब वह सुरक्षित संस्करण नहीं ढूंढ पाता या जब कोई टेस्ट विफल हो जाता है, बजाय इसके कि वह समस्या को छिपाए या यह दिखावा करे कि समस्या हल हो गई है।

अध्ययन निष्कर्ष निकालता है कि हालांकि आर्टिफिशियल इंटेलिजेंस शक्तिशाली है, लेकिन यह अभी तक अपने आप सॉफ़्टवेयर सुरक्षा के बारे में उच्च-जोखिम वाले निर्णय लेने के लिए पर्याप्त विश्वसनीय नहीं है। लेखक ने पाया कि AI एजेंटों को संस्करण चुनने देने के पिछले प्रयासों के परिणामस्वरूप अक्सर ऐसे हिस्से चुने गए जो पहले से ही खतरनाक ज्ञात थे। संस्करण चयन को एक निश्चित, ऑडिट योग्य प्रक्रिया के हाथों में रखकर और AI को एक संकीमित, पर्यवेक्षित भूमिका तक सीमित करके, पैचपायलट एक सुरक्षित रास्ता प्रदान करता है। टूल यह दावा नहीं करता कि वह हर समस्या को हल कर देगा; यह स्वीकार करता है कि वह यह सत्यापित नहीं कर सकता कि एक नया संस्करण कोड के प्रत्येक टुकड़े के साथ पूरी तरह से काम करेगा या नहीं, और यह उन प्रोजेक्ट्स को ठीक करने की कोशिश नहीं करता जो बहुत जटिल हैं या असमर्थित सिस्टम का उपयोग करते हैं। इसके बजाय, यह मरम्मत की प्रक्रिया को पारदर्शी, प्रतिवर्ती (reversible) और मानव नियंत्रण के अधीन बनाने पर ध्यान केंद्रित करता है। शोधकर्ता इसे एक अंतिम समाधान के रूप में नहीं, बल्कि एक ऐसे भविष्य की ओर आवश्यक कदम के रूप में देखते हैं जहाँ स्वचालन (automation) पर भरोसा किया जा सके, यह सुनिश्चित करते हुए कि सबसे खतरनाक निर्णय कभी भी संयोग पर नहीं छोड़े जाते।

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

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

Digest आज़माएँ →