एक कस्टमर-सर्विस चैटबॉट ने मटन रेसिपी के एक साधारण अनुरोध के बाद अपने स्वयं के सिस्टम प्रॉम्प्ट (system prompts) उजागर कर दिए। कुछ ही मिनटों में, बॉट ने न केवल रेसिपी दी, बल्कि पायथन (Python) कोड भी जेनरेट किया और उन आंतरिक निर्देशों को भी प्रकट कर दिया जो उसके व्यवहार को निर्देशित करते हैं।

यह घटना साबित करती है कि एक लैंग्वेज मॉडल का "सिस्टम प्रॉम्प्ट" कोई सुरक्षा दीवार नहीं है। जब कोई बॉट यह तय करने के लिए ऑन-द-फ्लाई (on-the-fly) निर्णय लेता है कि उपयोगकर्ता का अनुरोध उसके मिशन के अनुरूप है या नहीं, तो एक हमलावर उस तर्क को मोड़ सकता है और मॉडल से विशेषाधिकार प्राप्त जानकारी (privileged information) निकलवा सकता है।

उल्लंघन (breach) का कारण क्या था

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

अनुरोध अपने आप में हानिरहित था; खतरा बॉट की उस इच्छा में था जिसमें उसने रेसिपी को अपने मुख्य कार्य के हिस्से के रूप में माना।

यह क्यों महत्वपूर्ण है

चैटबॉट्स अब ग्राहकों के सामने वाले (customer-facing) भूमिकाओं में हैं, जो व्यक्तिगत डेटा संभालते हैं, लेनदेन (transactions) शुरू करते हैं, या आंतरिक उपकरणों को नियंत्रित करते हैं। यदि किसी मॉडल को अपने स्वयं के निर्देश सेट को प्रकट करने के लिए उकसाया जा सकता है, तो एक हमलावर उन गार्डरेल्स (guardrails) के बारे में जानकारी प्राप्त कर लेता है जिन्हें मॉडल को हानिकारक काम करने से रोकने के लिए बनाया गया था।

हमला कैसे काम करता है

  1. बॉट के उद्देश्य का प्रोफाइल बनाना – टेस्टर ने पहचान लिया कि बॉट का काम कंपनी की सेवाओं के बारे में बताना था।
  2. एक झूठा संबंध बनाना – यह दावा करके कि उपयोगकर्ता को कौन सी सेवा लेनी चाहिए यह तय करने के लिए रेसिपी की आवश्यकता है, टेस्टर ने अनुरोध को बॉट के मिशन से सतही तौर पर जोड़ दिया।
  3. तर्क का फायदा उठाना (Exploit the logic) – बॉट ने इस मनगढ़ंत प्रासंगिकता को स्वीकार कर लिया, अनुरोध को अपने आंतरिक प्रासंगिकता चेक से गुजरने दिया, और उन गार्डरेल्स को अक्षम कर दिया जो इसे रोक सकते थे।

यह हमला प्रासंगिकता के मॉडल के स्वयं के मूल्यांकन पर निर्भर करता है। जब उस मूल्यांकन को प्रभावित किया जा सकता है, तो मॉडल के अपने "नियम" बातचीत योग्य (negotiable) बन जाते हैं।

विफलता के तीन बिंदु

विफलता का चरण क्या हुआ
लक्ष्य अपहरण (Goal hijacking) बॉट ने खाना पकाने के एक असंबंधित अनुरोध को अपने सेवा-व्याख्या लक्ष्य के हिस्से के रूप में माना।
क्षमता विचलन (Capability drift) इसने निष्पादन योग्य (executable) पायथन कोड जेनरेट किया, जबकि इसकी भूमिका में कोड जनरेशन शामिल नहीं था।
प्रॉम्प्ट लीकेज (Prompt leakage) इसने ठीक वही सिस्टम प्रॉम्प्ट प्रिंट कर दिया जिसे छिपा हुआ रहना चाहिए था।

प्रत्येक चरण एक अलग रक्षात्मक परत (defensive layer) के टूटने का प्रतिनिधित्व करता है, जिसे कई डिप्लॉयमेंट में यह मान लिया जाता है कि मॉडल स्वयं उसे लागू करता है।

रक्षात्मक परतें जो वास्तव में काम करती हैं

गार्डरेल्स को मॉडल से हटाकर डिटरमिनिस्टिक कोड (deterministic code) में ले जाने से एक विश्वसनीय सुरक्षा सीमा बहाल हो जाती है।

  • टास्क रूटिंग (Task routing) – आने वाले संदेशों को अनुमत इरादों (allowed intents) की एक निश्चित सूची से मैप करने के लिए एक अलग क्लासिफायर का उपयोग करें। यदि कोई अनुरोध उस सूची से बाहर है, तो उसे सीधे अस्वीकार कर दें। मॉडल को प्रासंगिकता के बारे में बहस करने का मौका ही न मिले।
  • न्यूनतम क्षमता (Least capability) – बॉट से उन उपकरणों को हटा दें जिनकी उसे आवश्यकता नहीं है। यदि उसे कोड निष्पादन (code execution) या व्यापक डेटाबेस एक्सेस की आवश्यकता नहीं है, तो उन क्षमताओं को हटा दें।
  • डिटरमिनिस्टिक ऑथोराइजेशन (Deterministic authorization) – अनुमति की जाँच एप्लिकेशन कोड में करें, लैंग्वेज मॉडल में नहीं। मॉडल किसी कार्य का सुझाव दे सकता है, लेकिन कोड यह तय करता है कि उसे करना है या नहीं।
  • आउटपुट वैलिडेशन (Output validation) – उपयोगकर्ता तक पहुँचने से पहले मॉडल के प्रत्येक उत्तर को अनुमत न होने वाली सामग्री—जैसे सिस्टम प्रॉम्प्ट या संवेदनशील डेटा—के लिए स्कैन करें।

एक फ़िल्टर जो केवल यह पूछता है "क्या यह अनुरोध वर्जित है?" उसे एक प्रभावशाली उपयोगकर्ता द्वारा दरकिनार किया जा सकता है। एक रूटिंग लेयर जो एक बंद सूची (closed list) के विरुद्ध जाँच करती है, बातचीत की कोई गुंजाइश नहीं छोड़ती है।

आगे क्या ध्यान रखें

जो उद्यम (Enterprises) कन्वर्सेशनल एआई (conversational AI) पर निर्भर हैं, उन्हें मटन-रेसिपी परीक्षण द्वारा दर्शाए गए तीन विफलता मोड के लिए अपने डिप्लॉयमेंट का ऑडिट करना चाहिए। इस बीच, किसी भी सिस्टम प्रॉम्प्ट को सार्वजनिक जानकारी के रूप में मानें; मॉडल को खुद को प्रकट करने से रोकने के लिए उस पर भरोसा न करें।

निष्कर्ष स्पष्ट है: यदि आपका सुरक्षा मॉडल प्राकृतिक भाषा के निर्देशों के एक पैराग्राफ पर निर्भर है, तो यह नाजुक है। इसे ऐसे कोड के साथ मजबूत करें जिसे ऑडिट किया जा सके, वर्जन किया जा सके और मॉडल जो कुछ भी कहे, उसके बावजूद लागू किया जा सके।