अब आपका रेपो कॉन्टेक्स्ट एक अटैक सरफेस है
AI कोडिंग सुरक्षा केवल मॉडल को खराब कोड लिखने से रोकने से कहीं अधिक है।
असली जोखिम उस चीज़ में है जो एजेंट लिखने से पहले पढ़ता है। आपका रिपॉजिटरी अब केवल कोड के लिए एक जगह नहीं रह गया है। अब यह AI एजेंटों के लिए एक इनपुट स्ट्रीम है।
आपके रेपो में मौजूद हर चीज़ एजेंट के लिए दिशा-निर्देश (steering material) बन सकती है:
- पुरानी README फ़ाइलें
- पुराने माइग्रेशन नोट्स
- आउटडेटेड डॉक्यूमेंटेशन
- छिपे हुए प्रोजेक्ट कन्वेंशन (conventions)
- लोकल इंस्ट्रक्शन फ़ाइलें
- डिपेंडेंसी स्क्रिप्ट्स और शेल हुक्स (shell hooks)
डेवलपर्स अक्सर इन फ़ाइलों को हानिरहित कचरा (clutter) मानकर नज़रअंदाज़ कर देते हैं। एक AI एजेंट सामाजिक संदर्भ (social context) नहीं देखता। वह केवल टेक्स्ट, टूल्स और पैटर्न देखता है। यदि आपका डॉक्यूमेंटेशन पुराना या अव्यवस्थित है, तो एजेंट उस अव्यवस्था को ही मानक (standard) मान लेगा।
खराब कॉन्टेक्स्ट दो रूपों में आता है:
- बोरिंग एरर्स (Boring errors):
- आउटडेटेड सेटअप निर्देश
- डिप्रिकेटेड (deprecated) APIs का उपयोग करने वाले उदाहरण
- पुराने आर्किटेक्चर नोट्स
- एडवर्सरियल अटैक (Adversarial attacks):
- फ़ाइलों के अंदर प्रॉम्प्ट इंजेक्शन (Prompt injection)
- दुर्भावनापूर्ण (malicious) डिपेंडेंसी स्क्रिप्ट्स
- ज़हरीले (poisoned) उदाहरण जो कोड को असुरक्षित पैटर्न की ओर धकेलते हैं
जब आप किसी एजेंट को टेस्ट चलाने, फ़ाइलें खोजने या पुल रिक्वेस्ट (pull requests) खोलने की शक्ति देते हैं, तो आप 'ब्लास्ट रेडियस' (blast radius) को बढ़ा देते हैं। एक हुक सिस्टम अब केवल उत्पादकता टूल नहीं रह गया है। यह ऑटोमेशन है। आपको इसे ऑटोमेशन की तरह ही मानना चाहिए।
अपने वर्कफ़्लो के बारे में ये सवाल पूछें:
- हुक को कौन एडिट कर सकता है?
- एजेंट कौन से एनवायरनमेंट वेरिएबल्स (environment variables) देख सकता है?
- क्या एजेंट डेवलपर क्रेडेंशियल्स (credentials) को इनहेरिट करता है?
- क्या टूल रेपो के बाहर लिखता है?
एजेंटों को जादुई टेक्स्ट बॉक्स न समझें। उन्हें डेवलपर इंफ्रास्ट्रक्चर (infrastructure) की तरह मानें।
अपने एजेंटिक वर्कफ़्लो को सुरक्षित कैसे करें:
- स्कोप को सीमित करें: यदि एजेंट को केवल तीन फ़ाइलों की आवश्यकता है, तो उसे अपने पूरे प्रोजेक्ट की ओर न मोड़ें।
- कॉन्टेक्स्ट को साफ़ करें: पुराने डॉक्यूमेंट्स और पुराने निर्देशों को हटा दें या ठीक करें।
- एक्जीक्यूशन को सुरक्षित (harden) बनाएं: जोखिम भरे कार्यों को सैंडबॉक्स (sandbox) में चलाएं। क्रेडेंशियल्स को सीमित (scoped) रखें।
- विज़िबिलिटी की मांग करें: सटीक रूप से जानें कि एजेंट ने क्या पढ़ा, किन टूल्स को कॉल किया और कौन से कमांड चलाए।
एक AI एजेंट शेल एक्सेस (shell access) और तेज़ टाइपिंग स्पीड वाले एक जूनियर डेवलपर की तरह है। आप पहले ही दिन किसी नए जूनियर डेवलपर को फुल प्रोडक्शन क्रेडेंशियल्स नहीं देंगे। आप उन्हें छोटे कार्य, साफ़ कॉन्टेक्स्ट और सीमित अनुमतियाँ (permissions) देंगे।
अपने एजेंटों के साथ भी वैसा ही व्यवहार करें।
Source: https://dev.to/hefty_69a4c2d631c9dd70724/your-repo-context-is-an-attack-surface-now-5dhj
Optional learning community: https://t.me/GyaanSetuAi