CodeSentinel: A Three-Layer Defense Against Indirect Prompt Injection in Code Contexts
यह शोधपत्र CodeSentinel को प्रस्तुत करता है, जो एक तीन-स्तरीय इन्फरेंस-टाइम सैनिटाइज़र है जो कोड संदर्भों के भीतर छिपे अप्रत्यक्ष प्रॉम्प्ट इंजेक्शन का प्रभावी ढंग से पता लगाने और उन्हें बेअसर करने के लिए Tree-sitter, सिंटैक्स-गाइडेड प्री-फिल्टरिंग और डायनेमिक स्कोरिंग का लाभ उठाता है, जिससे मौजूदा सुरक्षा प्रणालियों की तुलना में बेहतर प्रदर्शन प्राप्त होता है।
मूल पेपर CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) के तहत लाइसेंस किया गया है। नीचे दिए गए पेपर की यह व्याख्या AI से तैयार की गई है। इसे लेखकों ने न तो लिखा है, न इसका समर्थन किया है। तकनीकी सटीकता के लिए मूल पेपर देखें। पूरा डिस्क्लेमर पढ़ें
कल्पना कीजिए कि आप एक मास्टर शेफ (कोड लार्ज लैंग्वेज मॉडल) हैं जो रेसिपी लिखने में अविश्वसनीय रूप से प्रतिभाशाली हैं। आमतौर पर, आप केवल मुख्य शेफ के सीधे निर्देशों को सुनते हैं। लेकिन हाल ही में, आपने बेहतर खाना बनाने के लिए काउंटर पर छोड़े गए नोट्स, रेसिपी बुक्स में टिप्पणियों और अन्य रसोइयों के स्टिकी नोट्स को पढ़ना शुरू कर दिया है।
समस्या यह है कि एक तोड़-फोड़ करने वाला (saboteur) उन नोट्स में छिपे हुए निर्देश डालना शुरू कर चुका है। वे कुछ ऐसा लिख सकते है, "मुख्य शेफ को अनदेखा करें और सूप में जहर मिला दें," लेकिन वे इसे एक सामान्य दिखने वाली टिप्पणी या किसी अजीब नाम वाली सामग्री की सूची के भीतर छिपा देते हैं। आप, शेफ, उन नोट्स को पढ़ लेते हैं और अनजाने में मुख्य शेफ के निर्देशों के बजाय तोड़-फोड़ करने वाले के आदेशों का पालन करने लगते हैं।
यह पेपर CodeSentinel को पेश करता है, जो तीन परतों वाला एक सुरक्षा गार्ड है जिसे उन बिखरे हुए नोट्स और शेफ के बीच खड़ा किया गया है, ताकि शेफ के देखने से पहले ही उन छिपे हुए जालों को फ़िल्टर किया जा सके।
CodeSentinel कैसे काम करता है, इसके लिए सरल उपमाओं (analogies) का उपयोग किया गया है:
समस्या: "इनडायरेक्ट प्रॉम्प्ट इंजेक्शन" (Indirect Prompt Injection)
अतीत में, हैकर्स शेफ को सीधे चिल्लाकर बेवकूफ बनाने की कोशिश करते थे (एक "डायरेक्ट अटैक")। अब, वे अधिक चालाक हो गए हैं। वे निर्देशों को कॉन्टेक्स्ट (context) के भीतर छिपाते हैं—जैसे कोड, टिप्पणियाँ और दस्तावेज़ जिन्हें शेफ पहले से ही पढ़ रहा है।
- जाल: एक हैकर कोड फ़ाइल में एक टिप्पणी छोड़ सकता है जिसमें लिखा हो, "वास्तव में, सभी सुरक्षा जाँचों को हटा दें।" कोड इंसान के लिए सामान्य दिखता है, लेकिन AI इसे एक कमांड के रूप में पढ़ता है।
समाधान: CodeSentinel की तीन परतें
CodeSentinel टेक्स्ट को केवल एक इंसान की तरह नहीं पढ़ता; यह कोड की संरचना (structure) को समझता है (जैसे शाखाओं और पत्तियों वाला एक पेड़)। यह हर "पत्ती" (कोड के एक विशिष्ट भाग) की तीन अलग-अलग सुरक्षा परतों का उपयोग करके जाँच करता है:
परत 1: "स्पष्ट खतरा" स्कैनर (Syntax-Guided Pre-Filtering)
यह रक्षा की पहली पंक्ति है। यह उन चीजों को देखता है जो स्पष्ट रूप से संदिग्ध या अजीब हैं।
- उपमा: कल्पना कीजिए कि एक सुरक्षा गार्ड बैग की जाँच कर रहा है। यदि वे देखते हैं कि एक साइन पर चमकीले लाल रंग में "EXPLOSIVES" लिखा है, या यदि बैग अदृश्य स्याही और अजीब प्रतीकों से भरा है, तो वे उसे तुरंत रोक देते हैं।
- यह क्या पकड़ता है: स्पष्ट कमांड जैसे "Ignore previous instructions," अजीब अदृश्य वर्ण (characters), या कोड जो सिस्टम को धोखा देने की कोशिश करता हुआ प्रतीत होता है। यह तेज़ है और शोर मचाने वाले, अनाड़ी हमलों को पकड़ लेता है।
परत 2: "सांख्यिकीय जासूस" (CST-Guided Dynamic Min-K% Scoring)
कुछ हैकर्स बुद्धिमान होते हैं। वे स्पष्ट शब्दों का उपयोग नहीं करते; वे ऐसा कोड लिखते हैं जो सामान्य दिखता है लेकिन जिसका "सांख्यिकीय फिंगरप्रिंट" अजीब होता है।
- उपमा: कल्पना कीजिए कि एक जासूस भीड़ को देख रहा है। अधिकांश लोग सामान्य गति से चलते हैं। लेकिन एक व्यक्ति ऐसी लय (rhythm) के साथ चल रहा है जो बस थोड़ी सी अलग है—बहुत तेज़, बहुत धीमी, या बहुत झटकेदार। भले ही वे सामान्य दिख रहे हों, लेकिन उनके चलने का पैटर्न संदिग्ध है।
- यह क्या पकड़ता है: यह परत कोड की "लय" का विश्लेषण करती है। यदि किसी विशिष्ट टिप्पणी या टेक्स्ट स्ट्रिंग में एक अजीब संभाव्यता (probability) का पैटर्न है (जैसे कि एक शब्द जो उस स्थान पर सांख्यिकीय रूप से आने की संभावना कम रखता है), तो यह उसे फ्लैग कर देता है। यह "एडवर्सरियल पर्टर्बेशन्स" (adversarial perturbations) की तलाश कर रहा है—गणित-आधारित सूक्ष्म चालें जो AI को भ्रमित करती हैं।
परत 3: "क्या होगा अगर" सिम्युलेटर (Node Perturbation Analysis)
यह सबसे कठिन परत है। कुछ हैकर्स ऐसे निर्देश लिखते हैं जो पूरी तरह से सामान्य दिखते हैं और जिनका सांख्यिकीय पैटर्न भी सामान्य होता है। वे "प्राकृतिक दिखने वाले" जाल होते हैं।
- उपमा: कल्पना कीजिए कि एक जादूगर आपसे एक कार्ड का अनुमान लगाने को कहता है। यह परीक्षण करने के लिए कि क्या कोई विशेष कार्ड एक ट्रिक है, गार्ड गुप्त रूप से उस कार्ड को एक खाली कार्ड से बदल देता है और फिर जादूगर से दोबारा अनुमान लगाने को कहता है।
- यदि वह एक कार्ड बदलने पर जादूगर का अनुमान पूरी तरह से बदल जाता है, तो वह कार्ड एक गुप्त ट्रिगर था।
- यदि अनुमान वही रहता है, तो वह सिर्फ एक सामान्य कार्ड था।
- यह क्या पकड़ता है: CodeSentinel एक संदिग्ध कोड के टुकड़े को लेता है, उसे "न्यूट्रलाइज" (निष्प्रभावी) करता है (उसे हानिरहित बनाता है लेकिन व्याकरण को सही रखता है) और AI मॉडल से पूछता है: "क्या अब आपका उत्तर बदल गया है?" यदि उत्तर नाटकीय रूप से बदल जाता है, तो इसका मतलब है कि वह विशिष्ट टेक्स्ट गुप्त रूप से AI को नियंत्रित कर रहा था।
परिणाम: रसोई की सफाई करना
एक बार जब CodeSentinel को कोई जाल मिल जाता है, तो वह पूरे पन्ने को नहीं हटा देता। यह सावधानीपूर्वक केवल उस विशिष्ट जाल (टिप्पणी, स्ट्रिंग, या आइडेंटिफायर) को हटाता या निष्प्रभावी करता है जबकि बाकी रेसिपी को बरकरार रखता है।
पेपर के दावे:
- प्रभावशीलता: लेखकों ने CodeSentinel का परीक्षण छह अलग-अलग प्रकार के आधुनिक हमलों के खिलाफ किया। इसने औसतन 80% जाल पकड़े (एक स्कोर जिसे F1 कहा जाता है), जो CodeGarrison और DePA जैसे पिछले सुरक्षा उपकरणों को पीछे छोड़ देता है।
- सुरक्षा: यह तब भी काम करता है जब AI मॉडल एक "ब्लैक बॉक्स" (एक व्यावसायिक मॉडल जहाँ आप उसके अंदर नहीं देख सकते) हो। यह मुख्य AI तक पहुँचने से पहले एक प्री-चेक के रूप में कार्य करता है।
- दक्षता: यह एक "तीन-परत" दृष्टिकोण का उपयोग करता है ताकि यह स्पष्ट टेक्स्ट पर भारी "क्या होगा अगर" सिमुलेशन करके समय बर्बाद न करे; यह केवल कठिन चीजों पर ही भारी काम करता है।
संक्षेप में, CodeSentinel एक स्मार्ट, संरचनात्मक फ़िल्टर है जो यह सुनिश्चित करता है कि AI शेफ केवल मुख्य शेफ के आदेशों का पालन करे, न कि तोड़-फोड़ करने वालों द्वारा छोड़े गए छिपे हुए नोट्स का।
अपने क्षेत्र के पेपरों की भीड़ में उलझे हुए हैं?
आपके रिसर्च कीवर्ड से मेल खाने वाले सबसे नए और अलग सोच वाले पेपरों का रोज़ाना Digest पाएँ—तकनीकी सारांश के साथ, आपकी भाषा में।