Claude Code, Cursor आणि Grok Build सारखे AI कोडिंग असिस्टंट्स, डेव्हलपरने एखादे अविश्वसनीय (untrusted) रिपॉझिटरी उघडताच, कोणत्याही क्लिक किंवा प्रॉम्प्टशिवाय स्वैर (arbitrary) कमांड्स कार्यान्वित करू शकतात. ही त्रुटी या साधनांनी प्रोजेक्टच्या फाईल्स स्कॅन करण्यासाठी Git च्या core.fsmonitor फीचरचा वापर करण्याच्या पद्धतीमुळे निर्माण होते.
ही समस्या आता का महत्त्वाची आहे
डेव्हलपर्स आता कोड सुचवण्यासाठी, फंक्शन्स रिफॅक्टर करण्यासाठी किंवा संपूर्ण मॉड्यूल्स लिहिण्यासाठी AI एजंट्सवर अधिकाधिक अवलंबून राहत आहेत. त्या एजंट्सना वर्कस्पेसचा जलद स्नॅपशॉट हवा असतो, म्हणून ते पडद्यामागे git status चालवतात. जेव्हा Git एखाद्या रिपॉझिटरीची .git/config फाईल वाचते, तेव्हा core.fsmonitor ला दिलेली कोणतीही व्हॅल्यू ही एक शेल कमांड म्हणून मानली जाते जी Git कार्यान्वित करेल. एखादा दुर्भावनापूर्ण घटक (malicious actor) त्या कॉन्फिग एंट्रीमध्ये एक तयार केलेली कमांड ठेवू शकतो, आणि वापरकर्त्याने कोडची एक ओळही टाईप करण्यापूर्वीच AI कडून होणारी Git कॉल ती कमांड ट्रिगर करेल.
हा कोड डेव्हलपरच्या स्वतःच्या विशेषाधिकारांसह (privileges) चालतो, ज्यामुळे AI एजंट सामान्यतः ज्या सँडबॉक्समध्ये (sandbox) काम करतो, त्याला बगल मिळते. व्यवहारात, एखादी बाधित रिपॉझिटरी मालवेअर इन्स्टॉल करू शकते, क्रेडेंशियल्स चोरू शकते किंवा सोर्स फाईल्समध्ये बदल करू शकते, आणि हे सर्व घडत असताना डेव्हलपरला असे वाटते की असिस्टंट केवळ सूचना देत आहे.
हल्ला कसा घडतो
- तयारी (Preparation) – अटॅकर अशी रिपॉझिटरी तयार करतो ज्याच्या
.git/configमध्येcore.fsmonitor = /path/to/malicious/scriptसारखी ओळ असते. - वितरण (Delivery) – ही रिपॉझिटरी झिप फाईल म्हणून दिली जाते, USB स्टिकमधून कॉपी केली जाते, शेअर केलेल्या ड्राइव्हद्वारे सिंक केली जाते किंवा इतर कोणत्याही प्रकारे पीडित मशीनवर
.gitफोल्डरसह आधीच ठेवली जाते. - ट्रिगर (Trigger) – डेव्हलपर AI-सक्षम IDE मध्ये फोल्डर उघडतो. असिस्टंट संदर्भ (context) गोळा करण्यासाठी
git statusचालवतो. Git स्थानिक कॉन्फिग वाचते,core.fsmonitorकमांड कार्यान्वित करते आणि दुर्भावनापूर्ण स्क्रिप्ट लगेच चालते.
साध्या git clone मुळे हा धोका निर्माण होत नाही कारण क्लोन एक नवीन .git डिरेक्टरी तयार करते ज्यामध्ये बदल केलेली कॉन्फिग नसते. हा हल्ला तेव्हाच यशस्वी होतो जेव्हा अटॅकर आधीपासून अस्तित्वात असलेले .git फोल्डर देऊ शकतो.
काय धोक्यात आहे
- वैयक्तिक डेव्हलपर्सचे मशीन त्यांना समजल्याशिवाय बाधित होऊ शकतात, ज्यामुळे AI एजंट ज्या डेटाला ॲक्सेस करू शकतो तो सर्व डेटा गमावला जाऊ शकतो.
- टीम्स (Teams) ज्या अंतर्गत ड्राइव्ह किंवा कॉन्ट्रॅक्टर झिप फाईल्सद्वारे कोड शेअर करतात, त्यांच्या अनेक वर्कस्टेशन्सवर हा धोका पसरू शकतो.
- टूल विक्रेत्यांना (Tool vendors) जर वापरकर्त्यांनी या उल्लंघनाचे श्रेय मूळ Git इंटरअॅक्शनऐवजी AI असिस्टंटला दिले, तर त्यांच्या प्रतिष्ठेला धक्का पोहोचण्याचा धोका असतो.
दुर्भावनापूर्ण कमांड वापरकर्त्याचे अधिकार वारसाहक्काने (inherit) प्राप्त करत असल्याने, ती डेव्हलपर ज्या कोणत्याही फाईलमध्ये बदल करू शकतो, त्यामध्ये बदल करू शकते, ज्यामध्ये SSH कीज, बिल्ड स्क्रिप्ट्स किंवा डिप्लॉयमेंट क्रेडेंशियल्सचा समावेश आहे.
डेव्हलपर्स आज कोणती प्रतिबंधात्मक पावले उचलू शकतात
स्थानिक Git सेटिंग्जवर विश्वास ठेवू नका. जेव्हा एखादा AI असिस्टंट प्रोजेक्टवर क्वेरी करतो, तेव्हा रिपॉझिटरीची कॉन्फिग ग्लोबल व्हॅल्यूजला ओव्हरराइड करते.
असिस्टंटसह फोल्डर उघडण्यापूर्वी
core.fsmonitorएंट्री तपासा:git config --get core.fsmonitorजर कोणतीही व्हॅल्यू दिसत असेल, तर ती संशयास्पद मानून वागा.
एंट्री काढून टाका:
git config --local --unset core.fsmonitorGit कार्यान्वित करू शकणाऱ्या इतर जोखमीच्या कीज (keys) तपासा:
hooksPath,sshCommand,pager,editor,filter. त्या रिकाम्या आहेत की नाही हे तपासण्यासाठीgit config --getहीच पद्धत वापरा.तुम्ही AI टूलला देऊ इच्छित असलेल्या कोणत्याही कोडसाठी क्लीन क्लोन्स (clean clones) ला प्राधान्य द्या. जर तुम्हाला झिप किंवा ट्रान्सफर केलेल्या फोल्डरवर काम करणे भाग असेल, तर त्याची
.gitडिरेक्टरी हटवा आणि रिपॉझिटरी पुन्हा इनिशियलाइज करा, किंवा वरील तपासणी आधी करा.
जबाबदारी कोणाची आहे
ही असुरक्षितता Claude Code, Cursor किंवा Grok Build ला चालवणाऱ्या लँग्वेज मॉडेल्समधील त्रुटी नाही; तर ती ती साधने फाईल माहिती गोळा करण्याच्या पद्धतीचा परिणाम आहे. काही विक्रेत्यांनी Git कॉल्स अधिक घट्टपणे सँडबॉक्स करण्यास सुरुवात केली आहे, परंतु डीफॉल्ट वर्तन अजूनही स्थानिक रिपॉझिटरी सेटिंग्जवर विश्वास ठेवते. जोपर्यंत उद्योग असा मानक (standard) स्वीकारत नाही जो AI एजंट वर्कस्पेस स्कॅन करताना संभाव्य धोकादायक कॉन्फिग एंट्रीज काढून टाकतो किंवा दुर्लक्षित करतो, तोपर्यंत डेव्हलपर्सनाच शेवटची संरक्षण यंत्रणा (last line of defense) बनावे लागेल.
पुढे काय पाहावे
- टूल अपडेट्स जे
git statusकार्यान्वित करण्यापूर्वी Git कॉन्फिगरेशन स्पष्टपणे सॅनिटाइज (sanitize) करतात. - सुरक्षित AI-असिस्टेड डेव्हलपमेंटसाठी कम्युनिटी-चालित मार्गदर्शक तत्त्वे, ज्यामध्ये संभाव्यतः शिफारस केलेल्या प्री-फ्लाइट तपासण्यांचा समावेश असेल.
- सुरक्षा संशोधन (Security research) जे कोड एक्झिक्यूशन करण्यास सक्षम असलेल्या अतिरिक्त Git कॉन्फिग कीज शोधू शकते, ज्यामुळे वरील पाच कीजच्या पलीकडे चेकलिस्ट विस्तारली जाईल.
थोडक्यात सांगायचे तर: AI असिस्टंट एक सोयीस्कर पेअर-प्रोग्रामर असू शकतो, परंतु तो रिपॉझिटरीच्या Git कॉन्फिगमध्ये लपवलेली कोणतीही कमांड आनंदाने कार्यान्वित करेल. असिस्टंटला स्पर्श करण्यापूर्वी वर्कस्पेसची पडताळणी करा.
