अब आपका रेपो कॉन्टेक्स्ट एक अटैक सरफेस है
अधिकांश लोग सोचते हैं कि AI सुरक्षा का मतलब मॉडल को खराब कोड लिखने से रोकना है।
यह दृष्टिकोण बहुत सीमित है।
असली जोखिम वह सब कुछ है जो AI कोड लिखने से पहले पढ़ता है। आपका रिपॉजिटरी (repository) अब केवल कोड रखने की जगह नहीं रह गई है। एक AI एजेंट के लिए, यह एक इनपुट स्ट्रीम (input stream) है।
एक एजेंट आपकी README, पुराने माइग्रेशन नोट्स, पुरानी (stale) डॉक्यूमेंटेशन और लोकल इंस्ट्रक्शन फाइलों को पढ़ता है। यह डिपेंडेंसी स्क्रिप्ट्स, शेल हुक्स और पिछले कोड बदलावों को देखता है।
डेवलपर्स अक्सर इस कॉन्टेक्स्ट को न्यूट्रल (neutral) मानते हैं। वे पुराने नोट्स को केवल कचरा (clutter) समझते हैं। लेकिन एक AI एजेंट उन्हें निर्देशों (instructions) के रूप में देखता है।
यदि कोई एजेंट यह तय करने के लिए आपके प्रोजेक्ट कॉन्टेक्स्ट का उपयोग करता है कि क्या सामान्य है, तो खराब कॉन्टेक्स्ट समस्याएँ पैदा कर सकता है।
खराब कॉन्टेक्स्ट 'बोरिंग' (boring) हो सकता है:
- पुराने सेटअप गाइड
- पुराने APIs का उपयोग करने वाले उदाहरण
- आर्किटेक्चर नोट्स जो अब वास्तविकता से मेल नहीं खाते
- असुरक्षित धारणाओं (unsafe assumptions) वाली टेस्ट फाइलें
खराब कॉन्टेक्स्ट 'होस्टाइल' (hostile) भी हो सकता है:
- फाइलों में छिपे प्रॉम्प्ट इंजेक्शन (prompt injection) निर्देश
- डिपेंडेंसी स्क्रिप्ट्स जो अतिरिक्त कमांड्स चलाती हैं
- हुक कॉन्फ़िगरेशन जो एक्जीक्यूशन पाथ (execution paths) को बढ़ा देते हैं
- ज़हरीले (poisoned) उदाहरण जो AI को असुरक्षित पैटर्न की ओर धकेलते हैं
विफलता का तरीका (failure mode) एक ही है। एजेंट उस आधार (premise) का पालन करता है जिसे आपने नहीं चाहा था।
इसे ठीक करने के लिए, आपको एजेंटों को साधारण ऑटो-कम्प्लीट (autocomplete) टूल की तरह मानना बंद करना होगा। वे ऑटोमेशन हैं। उन्हें इंफ्रास्ट्रक्चर (infrastructure) की तरह मानें।
अपने वर्कफ़्लो को सुरक्षित करने के लिए इन चरणों का पालन करें:
स्कोप (scope) को सीमित करें यदि एजेंट को केवल तीन फाइलों की आवश्यकता है, तो उसे अपने पूरे सिस्टम का एक्सेस न दें। संकीर्ण कार्यों (narrow tasks) और डिस्पोजेबल वर्कट्रीज़ (disposable worktrees) का उपयोग करें।
अपने निर्देशों का ऑडिट (audit) करें उन फाइलों को पढ़ें जिनका उपयोग आपका एजेंट मार्गदर्शन के लिए करता है। यदि डॉक्यूमेंटेशन पुराना है, तो उसे हटा दें या ठीक करें। यदि इसमें कमांड्स हैं, तो उन्हें सिस्टम कोड की तरह मानें।
एक्जीक्यूशन को सुरक्षित (harden) करें जोखिम भरे कार्यों को सैंडबॉक्स (sandbox) में चलाएं। अपने क्रेडेंशियल्स (credentials) को सीमित (scoped) रखें। हुक कॉन्फ़िगरेशन की समीक्षा वैसे ही करें जैसे आप CI पाइपलाइनों की करते हैं। सुनिश्चित करें कि टेस्ट चलाने से आपके शेल (shell) के हर सीक्रेट (secret) तक पहुंच न मिल जाए।
विज़िबिलिटी (visibility) की मांग करें आपको इन सवालों के जवाब देने में सक्षम होना चाहिए:
- एजेंट ने क्या पढ़ा?
- उसने किन टूल्स को कॉल किया?
- उसने किन फाइलों को बदला?
- कौन से कमांड्स चले?
- उसने क्या धारणाएं बनाईं?
एक AI एजेंट को शेल एक्सेस और तेज़ टाइपिंग कौशल वाले एक जूनियर डेवलपर के रूप में सोचें। आप पहले ही दिन किसी नए जूनियर डेवलपर को फुल प्रोडक्शन क्रेडेंशियल्स नहीं देंगे। आप उन्हें छोटे कार्य, एक स्वच्छ वातावरण और एक सख्त समीक्षा प्रक्रिया देंगे।
अपने AI एजेंटों के साथ भी वैसा ही व्यवहार करें।
अपने कॉन्टेक्स्ट को साफ़ करें। अपने स्कोप को सीमित करें। अपने निष्पादन को सैंडबॉक्स करें। हर 'diff' की समीक्षा ऐसे करें जैसे कि उसे किसी इंसान ने लिखा हो।
स्रोत: https://dev.to/hefty_69a4c2d631c9dd70724/your-repo-context-is-an-attack-surface-now-5dhj