Claude Code 2.1.221 आता Linux आणि WSL2 वापरकर्त्यांना सँडबॉक्स केलेली कमांड (sandboxed command) फाईल वाचण्यापूर्वी क्रेडेंशियल फाईल्स मास्क (mask) करण्याची सुविधा देते. ही सुविधा कमांडला एक निरुपद्रवी sentinel copy प्रदान करते आणि जेव्हा एखादी परवानगी असलेली विनंती (request) प्रॉक्सीद्वारे जाते, तेव्हाच खरा सिक्रेट (secret) तिथे बदलून लावते.
मास्किंग फ्लो (masking flow) कसा दिसतो
- Sentinel copy – जेव्हा एखादी फाईल मास्किंगसाठी मार्क केली जाते, तेव्हा Claude Code एक डुप्लिकेट फाईल तयार करते ज्यामध्ये प्रत्यक्ष सिक्रेटऐवजी एक placeholder string असते.
- Proxy swap – सँडबॉक्स एका TLS-terminating प्रॉक्सीच्या मागे चालतो. जर सँडबॉक्सने
injectHostsयादीतील एखाद्या एन्ट्रीशी जुळणारी विनंती केली, तर ती विनंती मशीनमधून बाहेर जाण्यापूर्वी प्रॉक्सी त्या placeholder ला खऱ्या टोकनने बदलून टाकते. - Error handling – जर एक्सट्रॅक्शन regex ला सिक्रेट सापडले नाही, तर सँडबॉक्स मूळ फाईल उघडी (exposed) ठेवून पुढे जाण्याऐवजी प्रक्रिया थांबवू शकतो.
ही पद्धत फक्त Linux आणि WSL2 वर काम करते; macOS मध्ये सध्या 'hard deny' डिफॉल्ट आहे, याचा अर्थ सँडबॉक्स ती फाईल अजिबात वाचू शकत नाही.
सुरक्षित रोलआउटसाठी चेकलिस्ट (Checklist)
व्हर्जन (version) तपासा
- तुम्ही Claude Code 2.1.221 किंवा त्यापेक्षा नवीन व्हर्जन वापरत आहात याची खात्री करा. टर्मिनलमधील व्हर्जन स्ट्रिंग हा एकमेव विश्वसनीय मार्ग आहे; पॅकेज लॉक फाईल्स दिशाभूल करू शकतात.
डिस्पोजेबल (disposable) टोकन्स वापरा
- तुमच्या मुख्य GitHub किंवा क्लाउड क्रेडेंशियल्ससोबत कधीही प्रयोग करू नका. एक अल्पकाळ टिकणारे (short-lived) टोकन तयार करा जे एका निरुपद्रवी “canary” एंडपॉइंटकडे निर्देश करते आणि काही चुकल्यास ते त्वरित रद्द (revoke) करा.
योग्य मास्किंग मोड निवडा
| मोड (Mode) | कधी वापरावा |
|---|---|
| File Deny | हार्ड ब्लॉक; वाचण्याचा कोणताही प्रयत्न अयशस्वी होतो. |
| Whole-File Mask | फाईलमध्ये एकच सिक्रेट असेल (उदा. प्लेन-टेक्स्ट API की). |
| Structured Mask | फाईलमध्ये सिक्रेट्स इतर डेटासोबत (JSON, YAML, .netrc) मिसळलेले असतील. extract मोड आणि असा regex वापरा जो सिक्रेटला group 1 मध्ये कॅप्चर करेल. यामुळे क्लायंट प्रोग्रामसाठी आजूबाजूची सिंटॅक्स (syntax) वैध राहते. |
कडक एरर नियम सेट करा
onExtractNoMatchला error वर सेट करा. जर regex मॅच झाला नाही, तर सँडबॉक्स थांबतो. ते डिफॉल्ट warn वर ठेवल्यास मूळ फाईल नकळतपणे बाहेर येऊ शकते.
TLS termination सक्षम करा
- बदल (swap) करण्यासाठी प्रॉक्सीने TLS टर्मिनेट करणे आवश्यक आहे. TLS termination शिवाय, प्रॉक्सीला रिक्वेस्ट पेलोड (request payload) दिसू शकत नाही आणि बदली (substitution) कधीच होत नाही.
होस्ट स्कोप (host scope) मर्यादित करा
- तुमच्या
allowedDomainsमधून स्पष्ट होस्टनेम्ससहinjectHostsभरा.*.example.comसारखे वाइल्डकार्ड्स (wildcards) टाळा; व्यापक पॅटर्न अटॅक सरफेस (attack surface) वाढवतात आणि मास्किंगचा उद्देशच विफल करतात.
निकालाची पडताळणी करा
- खऱ्या टोकनचा कोणताही अंश लॉग्स, प्रोसेस आर्ग्युमेंट्स आणि एरर मेसेजमध्ये दिसत नाही ना, याची तपासणी करा. त्या आर्टिफॅक्ट्समध्ये (artefacts) फक्त 'sentinel' व्हॅल्यूच दिसली पाहिजे.
लक्षात ठेवण्यासारख्या मर्यादा
मास्किंग टोकनला केवळ सँडबॉक्स केलेल्या कमांडच्या फाईल-सिस्टम व्ह्यूपासून सुरक्षित करते. हे कमांडला यादृच्छिक (arbitrary) नेटवर्क कॉल्स करण्यापासून रोखत नाही, तसेच Claude च्या अंगभूत (built-in) टूल्सपासूनही संरक्षण देत नाही ज्यांना विशेष अधिकार (privileged access) असू शकतात.
थोडक्यात सांगायचे तर
Claude Code 2.1.221 ची क्रेडेंशियल-मास्किंग सुविधा Linux आणि WSL2 डेव्हलपर्सना सँडबॉक्स केलेल्या प्रोसेसमधून सिक्रेट्स सुरक्षित ठेवण्याचा एक व्यावहारिक मार्ग देते.
