← नवीनतम पेपर
🤖 AI

ARQ: Agentic CodeQL Query Refinement for C/C++ Vulnerability Detection

ARQ एक एजेंटिक फ्रेमवर्क है जो सिंथेसाइज्ड प्रोग्राम्स और LLMs से प्राप्त निष्पादन-आधारित साक्ष्यों का उपयोग करके C/C++ CodeQL क्वेरीज़ को स्वचालित रूप से परिष्कृत करता है ताकि बिना किसी लेबल किए गए डेटासेट के फॉल्स पॉजिटिव और फॉल्स नेगेटिव को काफी कम किया जा सके, जिससे 119.8% तक अधिक ट्रू पॉजिटिव डिटेक्शन प्राप्त होते हैं और आधिकारिक रिपॉजिटरीज़ में लंबे समय से चली आ रही समस्याओं का समाधान होता है।

मूल लेखक: Chunyi Wang, Yunfei Ke, Junfeng Yang, Yun-Yun Tsai, Penghui Li

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

मूल लेखक: Chunyi Wang, Yunfei Ke, Junfeng Yang, Yun-Yun Tsai, Penghui Li

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

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

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

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

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

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

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

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

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

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

Digest आज़माएँ →