𝗬𝗼𝘂𝗿 𝗥𝗲𝗽𝗼 𝗖𝗼𝗻𝘁𝗲𝘅𝘁 𝗜𝘀 𝗔𝗻 𝗔𝘁𝘁𝗮𝗰𝗸 𝗦𝘂𝗿𝗳𝗮𝗰𝗲 𝗡𝗼𝘄
बहुतेक लोकांना वाटते की AI सुरक्षा म्हणजे मॉडेलला चुकीचा कोड लिहिण्यापासून रोखणे.
हा दृष्टिकोन खूप मर्यादित आहे.
खरा धोका म्हणजे AI कोड लिहिण्यापूर्वी जे काही वाचते त्यात आहे. तुमचे रिपॉझिटरी आता केवळ कोडसाठीची जागा उरली नाही. AI एजंटसाठी, ते एक इनपुट स्ट्रीम (input stream) आहे.
एक एजंट तुमचा README, जुने मायग्रेशन नोट्स, कालबाह्य डॉक्युमेंटेशन आणि स्थानिक सूचना फाइल्स (local instruction files) वाचतो. तो डिपेंडन्सी स्क्रिप्ट्स, शेल हुक्स आणि मागील कोडमधील बदल पाहतो.
डेव्हलपर्स अनेकदा या कॉन्टेक्स्टकडे तटस्थतेने पाहतात. त्यांना जुन्या नोट्स केवळ कचरा (clutter) वाटतात. पण एक AI एजंट त्यांना सूचना (instructions) म्हणून पाहतो.
जर एखादा एजंट काय सामान्य आहे हे ठरवण्यासाठी तुमच्या प्रोजेक्ट कॉन्टेक्स्टचा वापर करत असेल, तर चुकीचा कॉन्टेक्स्ट समस्या निर्माण करू शकतो.
चुकीचा कॉन्टेक्स्ट कंटाळवाणा असू शकतो:
- कालबाह्य सेटअप गाइड्स
- जुन्या APIs वापरणारी उदाहरणे
- आर्किटेक्चर नोट्स ज्या आता वास्तवाशी जुळत नाहीत
- असुरक्षित गृहितके असलेल्या टेस्ट फाइल्स
चुकीचा कॉन्टेक्स्ट घातक (hostile) देखील असू शकतो:
- फाइल्समध्ये लपवलेल्या प्रॉम्प्ट इंजेक्शन (prompt injection) सूचना
- अतिरिक्त कमांड्स चालवणाऱ्या डिपेंडन्सी स्क्रिप्ट्स
- एक्झिक्यूशन पाथ्स (execution paths) वाढवणाऱ्या हुक कॉन्फिगरेशन्स
- AI ला असुरक्षित पॅटर्नकडे वळवणारी विषारी (poisoned) उदाहरणे
अपयशाचे स्वरूप सारखेच असते. एजंट अशा गृहितकाचा (premise) अवलंब करतो ज्याचा तुमचा कोणताही हेतू नव्हता.
हे सुधारण्यासाठी, तुम्ही एजंट्सना केवळ साधी ऑटो-कम्प्लीट टूल्स मानणे थांबवले पाहिजे. ते ऑटोमेशन आहेत. त्यांच्याकडे इन्फ्रास्ट्रक्चरप्रमाणे (infrastructure) वागा.
तुमचा वर्कफ्लो सुरक्षित करण्यासाठी या पायऱ्या फॉलो करा:
व्याप्ती मर्यादित करा (Limit the scope) जर एजंटला फक्त तीन फाइल्सची गरज असेल, तर त्याला तुमच्या संपूर्ण सिस्टमचा ॲक्सेस देऊ नका. मर्यादित कार्ये (narrow tasks) आणि डिस्पोजेबल वर्कट्रीज (disposable worktrees) वापरा.
तुमच्या सूचनांचे ऑडिट करा (Audit your instructions) तुमचा एजंट मार्गदर्शनासाठी ज्या फाइल्स वापरतो त्या वाचा. जर डॉक्युमेंटेशन जुने असेल, तर ते हटवा किंवा दुरुस्त करा. जर त्यात कमांड्स असतील, तर त्यांना सिस्टम कोडप्रमाणे माना.
एक्झिक्यूशन सुरक्षित करा (Harden execution) जोखमीची कामे सँडबॉक्समध्ये (sandbox) चालवा. तुमच्या क्रेडेंशियल्सना (credentials) मर्यादित ठेवा. हुक कॉन्फिगरेशन्सची पुनरावलोकन (review) तसेच करा जसे तुम्ही CI पाइपलाइन्सचे करता. टेस्ट रन केल्यामुळे तुमच्या शेलमधील प्रत्येक सिक्रेटला (secret) ॲक्सेस मिळत नाही याची खात्री करा.
पारदर्शकता मागा (Demand visibility) तुम्हाला या प्रश्नांची उत्तरे देता आली पाहिजेत:
- एजंटने काय वाचले?
- त्याने कोणती टूल्स कॉल केली?
- त्याने कोणत्या फाइल्स बदलल्या?
- कोणत्या कमांड्स चालल्या?
- त्याने कोणती गृहितके मांडली?
AI एजंटला शेल ॲक्सेस आणि जलद टायपिंग कौशल्य असलेल्या ज्युनियर डेव्हलपरप्रमाणे समजा. तुम्ही एखाद्या नवीन ज्युनियर डेव्हलपरला पहिल्याच दिवशी पूर्ण प्रोडक्शन क्रेडेंशियल्स देणार नाही. तुम्ही त्यांना छोटी कामे, स्वच्छ वातावरण आणि कडक रिव्ह्यू प्रक्रिया द्याल.
तुमच्या AI एजंट्सशी देखील तसेच वागा.
तुमचा संदर्भ स्वच्छ करा. तुमची व्याप्ती मर्यादित करा. तुमचे निष्पादन सँडबॉक्स करा. प्रत्येक 'diff' ची अशी समीक्षा करा जणू काही तो एखाद्या माणसाने लिहिला आहे.
स्रोत: https://dev.to/hefty_69a4c2d631c9dd70724/your-repo-context-is-an-attack-surface-now-5dhj