Poisoned Identifiers Survive LLM Deobfuscation: A Case Study on Claude Opus 4.6
यह अध्ययन प्रदर्शित करता है कि क्लॉड ओपस 4.6 अक्सर अस्पष्ट (obfuscated) जावास्क्रिप्ट से ज़हरीले पहचानकर्ता नामों (poisoned identifier names) को बनाए रखता है, भले ही वह कोड के अर्थों (semantics) को सही ढंग से समझता और उन पर टिप्पणी करता हो, हालांकि इस निरंतरता को डी-ऑब्फस्केशन (deobfuscation) के बजाय नए कार्यान्वयन (fresh implementation) के रूप में कार्य को पुनर्गठित करके काफी कम किया जा सकता है।
मूल पेपर CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) के तहत लाइसेंस किया गया है। नीचे दिए गए पेपर की यह व्याख्या AI से तैयार की गई है। इसे लेखकों ने न तो लिखा है, न इसका समर्थन किया है। तकनीकी सटीकता के लिए मूल पेपर देखें। पूरा डिस्क्लेमर पढ़ें
यहाँ सरल भाषा और रचनात्मक उपमाओं का उपयोग करके शोध पत्र की व्याख्या दी गई है।
मुख्य विचार: "मशीन में भूत" (The Ghost in the Machine)
कल्पना कीजिए कि आपने एक गुप्त, उलझी हुई किताब को वापस अंग्रेजी में अनुवाद करने के लिए एक बुद्धिमान अनुवादक को काम पर रखा है। उस किताब में एक छिपा हुआ छल है: लेखक ने सभी वास्तविक शब्दों को नकली, भ्रामक शब्दों से बदल दिया है (जैसे कि "ब्रेक" को "एक्सीलेटर" कहना)।
आप अनुवादक से कहते हैं: "कृपया इसका डिकोड करें, लेकिन सुनिश्चित करें कि आप अर्थ की जाँच करें। यदि शब्द कहता है 'एक्सीलेटर' लेकिन चित्र दिखाता है कि कार रुक रही है, तो 'ब्रेक' लिखें।"
चौंकाने वाला परिणाम: अनुवादक किताब पढ़ता है, पूरी तरह समझ जाता है कि कार रुक रही है, और यहाँ तक कि हाशिए (margin) में एक नोट भी लिखता है, "यह स्पष्ट रूप से एक ब्रेक है।" लेकिन, जब वह अंतिम वाक्य लिखता है, तो वह अभी भी नकली शब्द का ही उपयोग करता है: "रुकने के लिए एक्सीलेटर दबाएं।"
यह शोध सिद्ध करता है कि सबसे स्मार्ट AI (Claude Opus 4.6) भी अक्सर उस कोड में "जहरीले" नामों को बनाए रखेगा जो वह लिख रहा है, भले ही वह जानता हो कि वे नाम गलत हैं।
प्रयोग: पूछने के दो तरीके
शोधकर्ताओं ने इसका परीक्षण दो प्रकार के कंप्यूटर प्रोग्रामों पर किया:
- एक भौतिकी सिमुलेशन (Physics Simulation): एक प्रोग्राम जो यह सिम्युलेट करता है कि कण (particles) एक-दूसरे को कैसे आकर्षित और प्रतिकर्षित करते हैं (जैसे चुंबक)।
- एक पाथफाइंडिंग एल्गोरिदम (Pathfinding Algorithm): एक प्रोग्राम जो भूलभुलैया (maze) के माध्यम से सबसे छोटा रास्ता खोजता है।
उन्होंने कोड को उलझा (obfuscated) दिया और वास्तविक वेरिएबल नामों को "जहरीले" नामों से बदल दिया। उदाहरण के लिए, उन्होंने repulsion (प्रतिकर्षण/धक्का देना) का नाम बदलकर attraction (आकर्षण/खींचना) कर दिया।
उन्होंने AI से इसे ठीक करने के लिए दो अलग-अलग तरीकों से पूछा:
1. "अनुवादक" दृष्टिकोण (Deobfuscate)
प्रॉम्प्ट (निर्देश): "यहाँ उलझा हुआ कोड है। कृपया इसे डिकोड करें और इसे स्पष्ट रूप से वापस लिखें।"
परिणाम: AI ने एक सख्त अनुवादक की तरह व्यवहार किया। उसने नामों की उलझी हुई सूची (स्ट्रिंग टेबल) देखी और बस उन्हें वैसे ही कॉपी कर दिया, भले ही वे गलत थे।
- जहर की सफलता दर (Success Rate of Poison): 100%। AI ने गलत नामों को बरकरार रखा।
- अजीब बात: AI ने टिप्पणियाँ (comments) लिखीं कि, "यह वेरिएबल प्रतिकर्षण (repulsion) को नियंत्रित करता है," लेकिन कोड खुद अभी भी
attractionकह रहा था। यह एक व्यक्ति की तरह था जो कह रहा हो, "मैं सैंडविच खा रहा हूँ," जबकि उसके हाथ में पिज्जा की तस्वीर हो।
2. "वास्तुकार" दृष्टिकोण (Rewrite from Scratch)
प्रॉम्प्ट (निर्देश): "सिर्फ डिकोड न करें। मूल नामों को अनदेखा करें। शून्य से एक बिल्कुल नया प्रोग्राम लिखें जो वही काम करता हो।"
परिणाम: AI ने अनुवादक की तरह काम करना बंद कर दिया और एक निर्माता (builder) की तरह काम करना शुरू कर दिया। उसने देखा कि कोड वास्तव में क्या कर रहा था और वेरिएबल्स को सही नाम दिए।
- जहर की सफलता दर (Success Rate of Poison): घटकर 0% या 20% हो गई। AI ने नामों को ठीक कर दिया!
सबक: AI को "अपना काम जाँचने" के लिए कहने से मदद नहीं मिली। लेकिन काम के विवरण को "अनुवादक" से बदलकर "निर्माता" करने से समस्या हल हो गई।
"ज़ीरो-फिट" (Zero-Fit) का आश्चर्य
शोधकर्ताओं ने सोचा कि शायद AI ने गलत नाम इसलिए रखे क्योंकि वे नाम संदर्भ में तर्कसंगत लग रहे थे (जैसे "ब्रेक" को "क्लच" कहना कार के पुर्जे जैसा ही लगता है)।
इसलिए, उन्होंने कुछ अजीब करने की कोशिश की। उन्होंने नामों को ऐसे शब्दों से बदल दिया जिनका कोई अर्थ नहीं निकलता था।
repulsionके बजाय, उन्होंनेcombustion(दहन) का उपयोग किया।heuristic(एक गणितीय शब्द) के बजाय, उन्होंनेinvoice(बीजक/बिल) का उपयोग किया।
परिणाम: AI अभी भी 100% समय गलत नामों को बरकरार रखता था!
- क्यों? शोधकर्ताओं का मानना है कि AI नामों की पूरी सूची को देखता है। यदि सूची एक सुसंगत "डोमेन" (जैसे कि सभी कार के पुर्जे) की तरह दिखती है, तो AI उस पर भरोसा करता है। यदि सूची यादृच्छिक (random) शब्दों का मिश्रण है, तो AI भ्रमित हो जाता है और डिफ़ॉल्ट रूप से मूल "स्रोत" नामों को ही रखता है क्योंकि उसके पास बदलने के लिए कोई बेहतर विकल्प नहीं होता।
यह क्यों मायने रखता है? ("लागत गुणक" - Cost Multiplier)
शोध पत्र निष्कर्ष निकालता है कि यह कोड को हमेशा के लिए छिपाने का तरीका नहीं है (एक हैकर अभी भी इसे मैन्युअल रूप से पढ़ सकता है)। इसके बजाय, यह AI के जीवन को महंगा और कष्टदायक बनाने का एक तरीका है।
- उपमा: कल्पना कीजिए कि एक सुरक्षा गार्ड (AI) एक इमारत की जाँच कर रहा है।
- सामान्य कोड: गार्ड अंदर आता है, संकेतों को देखता है, और कहता है, "सब ठीक है।" (तेज़, सस्ता)।
- जहरीला कोड: गार्ड अंदर आता है, देखता है कि संकेत कहते हैं "निकास" (Exit) लेकिन दरवाजा एक दीवार है। गार्ड एक रिपोर्ट लिखता है कि, "यह एक निकास है," लेकिन फिर भी मानचित्र पर "निकास" ही लिखता है। अब, एक इंसान को AI की गलतियों को ठीक करने के लिए मानचित्र को 3 घंटे तक फिर से जाँचने में समय बिताना होगा।
मुख्य निष्कर्ष (Takeaway):
- AI को खुद को "सत्यापित" करने के लिए भरोसा न करें। यदि आप उसे "अपना काम जाँचें" कहते हैं, तो वह जहर को कॉपी ही करेगा।
- कार्य बदल दें। यदि आप साफ कोड चाहते हैं, तो AI को "पुराने को ठीक करने" के बजाय "शून्य से एक नया निर्माण करने" के लिए कहें।
- "दोहरा प्रतिनिधित्व" बग (Dual Representation Bug): AI सत्य जानने के लिए पर्याप्त स्मार्ट है (टिप्पणियों में) लेकिन झूठ को बनाए रखने के लिए पर्याप्त जिद्दी है (कोड में)।
एक वाक्य में सारांश
भले ही सबसे स्मार्ट AI भी "जहरीले" नामों को कॉपी कर लेगा यदि आप उसे अनुवाद करने के लिए कहते हैं, लेकिन यदि आप उसे कुछ नया बनाने के लिए कहते हैं तो वह उन्हें ठीक कर देगा, जो यह सिद्ध करता है कि आप सवाल कैसे पूछते हैं, यह इस बात से अधिक महत्वपूर्ण है कि आप उसे कितनी सावधानी बरतने के लिए कितना कड़ा निर्देश देते हैं।
अपने क्षेत्र के पेपरों की भीड़ में उलझे हुए हैं?
आपके रिसर्च कीवर्ड से मेल खाने वाले सबसे नए और अलग सोच वाले पेपरों का रोज़ाना Digest पाएँ—तकनीकी सारांश के साथ, आपकी भाषा में।