एक सैंडबॉक्स तभी उपयोगी है जब वह वास्तव में एजेंट को घेरे के भीतर रखे। Claude Code 2.1.216 उन कई कमियों को दूर करता है जो किसी बैकग्राउंड टास्क, सब-एजेंट या रीज़्यूम्ड सेशन को उसके निर्धारित डायरेक्टरी से बाहर जाने दे सकती हैं। यह रिलीज़ एक नया कॉन्फ़िगरेशन स्विच पेश करती है, लेकिन इससे भी महत्वपूर्ण काम पर्दे के पीछे (under the hood) हुआ है: Git worktrees, symlinks, और एजेंट रीस्टार्ट्स का अधिक स्मार्ट हैंडलिंग। यदि आप Claude Code को स्थानीय रूप से (locally) या CI में चलाते हैं, तो ये बदलाव केवल चेंजलॉग को सरसरी तौर पर देखने से कहीं अधिक महत्वपूर्ण हैं।
वह Filesystem Toggle जिसे आपको हल्के में नहीं लेना चाहिए
वर्ज़न 2.1.216 में sandbox.filesystem.disabled जोड़ा गया है। जब इसे सेट किया जाता है, तो Claude Code नेटवर्क सैंडबॉक्स को लागू करते हुए भी अपने स्वयं के फ़ाइलसिस्टम आइसोलेशन (filesystem isolation) को छोड़ देता है। पहली नज़र में यह परमिशन एरर्स को रोकने या फ़ाइल ऑपरेशन्स को तेज़ करने का एक तरीका लग सकता है। लेकिन ऐसा नहीं है। आपको इस सेटिंग को केवल तभी सक्षम करना चाहिए यदि कोई अन्य लेयर पहले से ही आपकी डिस्क की सुरक्षा कर रही हो।
इसका अर्थ है एक डिस्पोजेबल कंटेनर जिसे हर रन के बाद डिलीट कर दिया जाता है, या एक समर्पित वर्चुअल मशीन (VM) जिसकी आपके होम डायरेक्टरी या प्रोडक्शन वॉल्यूम्स तक कोई पहुँच न हो। यदि आप Claude Code को सीधे macOS, Windows, या किसी बेयर Linux होस्ट पर चलाते हैं, तो फ़ाइलसिस्टम आइसोलेशन को ऑन ही रहने दें। नेटवर्क सैंडबॉक्स, फ़ाइलसिस्टम कंट्रोल का विकल्प नहीं है, और सैंडबॉक्स किए गए फ़ाइल एक्सेस की मामूली असुविधा, किसी आकस्मिक ओवरराइट या प्रोजेक्ट फ़ोल्डर से बाहर निकलने वाले दुर्भावनापूर्ण प्रॉम्प्ट इंजेक्शन (malicious prompt injection) से उबरने की तुलना में कहीं अधिक सस्ती है।
इस टॉगल को एक कम्पैटिबिलिटी शिम (compatibility shim) के रूप में देखें, न कि परफॉरमेंस नॉब के रूप में। यह उन वातावरणों के लिए है जहाँ ऑपरेटिंग सिस्टम या ऑर्केस्ट्रेटर पहले से ही आइसोलेशन को संभालता है, और Claude का अपना सैंडबॉक्स अनावश्यक जटिलता जोड़ता है।
अपडेट वास्तव में क्या ठीक करता है
नई सेटिंग के अलावा, 2.1.216 उन कई व्यावहारिक कमियों को बंद करता है जो किसी एजेंट को उन जगहों तक पहुँचने दे सकती हैं जहाँ उसे नहीं पहुँचना चाहिए।
Worktree isolation. सब-एजेंट अब Git कमांड्स को अपने वर्कट्री के बाहर किसी पैरेंट या सिबलिंग डायरेक्टरी में रीडायरेक्ट नहीं कर सकते। पहले, आपके प्रोजेक्ट के अंदर चल रहा एक सब-एजेंट Git ऑपरेशन्स को आपके साझा चेकआउट या आस-पास के रिपॉजिटरीज़ पर केंद्रित कर सकता था। यह महत्वपूर्ण है क्योंकि कई डेवलपर्स एक ही कॉमन पैरेंट फ़ोल्डर के तहत कई प्रोजेक्ट्स रखते हैं। अब वे सीमा पार करने वाले कमांड्स विफल हो जाते हैं।
.claude पाथ पर Symlink hardening. वर्कफ़्लो डेफिनिशन और शेड्यूल्ड टास्क कॉन्फ़िगरेशन लिखते समय सिम्लिंक (symlinks) का पालन करते थे। एक हमलावर जो .claude से, मान लीजिए, आपके शेल प्रोफाइल या SSH डायरेक्टरी तक एक सिम्लिंक बना सकता है, वह संभावित रूप से एजेंट को प्रोजेक्ट के बाहर लिखने के लिए मजबूर कर सकता है। यह अपडेट उस पाथ पर सिम्लिंक का पालन करने से इनकार करके इसे रोकता है।
Safer rewinds. /rewind कमांड, जो आपको हाल के बदलावों को रोल बैक करने की अनुमति देता है, अब सिम्लिंक्ड और हार्ड-लिंक्ड पाथ को छोड़ देता है। इस सुरक्षा के बिना, एक रिवाइंड ऑपरेशन सिम्लिंक का पीछा कर सकता है और आपके रिपॉजिटरी से बहुत दूर स्थित किसी फ़ाइल को ओवरराइट कर सकता है। Claude अब उन छोड़े गए पाथ्स की स्पष्ट रूप से रिपोर्ट करता है ताकि आपको पता चल सके कि सीमा बनी रही।
Resumed agents अपनी पाबंदियों को बनाए रखते हैं। बैकग्राउंड सेशन जिन्हें रोका गया था और बाद में फिर से शुरू (resume) किया गया था, वे पहले डिफ़ॉल्ट टूल परमिशन्स पर वापस आ जाते थे। यदि आपने जानबूझकर किसी एजेंट को प्रतिबंधित किया था ताकि वह केवल पढ़ सके लेकिन लिख न सके, तो रीस्टार्ट होने पर व्यापक एक्सेस चुपचाप बहाल हो सकती थी। अब मूल प्रतिबंधों को सेशन के साथ सुरक्षित रखा जाता है और बहाल किया जाता है।
एक सुरक्षा प्रोफ़ाइल चुनना
Claude Code 2.1.216 इन कंट्रोल्स को तीन प्रोफ़ाइलों में व्यवस्थित करता है। चुनाव इस आधार पर करें कि आप टूल कहाँ चलाते हैं, न कि इस आधार पर कि क्या तेज़ महसूस होता है।
Default. फ़ाइलसिस्टम और नेटवर्क सैंडबॉक्सिंग दोनों सक्रिय रहते हैं। यह आपके लैपटॉप या वर्कस्टेशन पर स्थानीय विकास (local development) के लिए सही विकल्प है। यह आपके होम डायरेक्टरी, सिस्टम फ़ाइलों और पड़ोसी प्रोजेक्ट्स की सुरक्षा करता है, जिसके लिए आपको कंटेनर्स को मैनेज करने की आवश्यकता नहीं होती है।
Compatibility. फ़ाइलसिस्टम आइसोलेशन बंद है, लेकिन नेटवर्क सैंडबॉक्स बना रहता है। इस प्रोफ़ाइल को केवल डिस्पोजेबल कंटेनर्स या VMs तक सीमित रखें जहाँ फ़ाइलसिस्टम पहले से ही अल्पकालिक (ephemeral) या सख्ती से स्कोप किया गया हो। इसका उपयोग इसलिए न करें क्योंकि आप एजेंट को सुरक्षित फ़ोल्डर तक पहुँचने देने के लिए पासवर्ड टाइप करने से थक गए हैं।
Managed Hard Gate. दोनों सैंडबॉक्स लेयर्स ऑन रहती हैं, और यह प्रोफ़ाइल आपके ऑर्केस्ट्रेटर या सुरक्षा टीम द्वारा लागू अतिरिक्त कंटेनर नीतियों की अपेक्षा करती है। यह CI पाइपलाइनों, रिमोट देव वातावरणों और एंटरप्राइज़ सेटअप के लिए बनाया गया है जहाँ 'डिफेंस इन डेप्थ' (defense in depth) अनिवार्य है।
यदि आप अनिश्चित हैं कि कौन सा उपयुक्त है, तो Default से शुरुआत करें। आप सुरक्षा को बाद में केवल तभी कम कर सकते हैं जब आपने सत्यापित कर लिया हो कि आपका रनटाइम वातावरण वास्तव में स्वयं फ़ाइलसिस्टम को आइसोलेट करता है।
अपने वर्कफ़्लो को बाधित किए बिना अपग्रेड करना
इसे शुक्रवार की दोपहर को इंस्टॉल किए जाने वाले किसी सामान्य पैच की तरह न समझें। 2.1.216 में अपग्रेड का रास्ता सीधा है, लेकिन गलत कॉन्फ़िगरेशन (misconfiguration) के परिणाम गंभीर हो सकते हैं।
सबसे पहले, अपने सामान्य पैकेज मैनेजर या इंस्टॉलर के माध्यम से 2.1.216 पर अपग्रेड करें। फिर किसी भी एजेंट टास्क (agent tasks) को शुरू करने से पहले तीन आइसोलेशन प्रोफाइल (isolation profiles) में से एक को चुनें। यह समझे बिना कि किस प्रोफाइल को प्राथमिकता दी जाएगी, चल रहे सत्रों (sessions) में प्रोफाइल को न मिलाएं।
इसके बाद, नीचे दिए गए पांच नॉन-डिस्ट्रक्टिव बाउंड्री टेस्ट (non-destructive boundary tests) चलाएं। ये त्वरित, स्क्रिप्टेड जांच हैं जो यह सिद्ध करती हैं कि सैंडबॉक्स (sandbox) उसी तरह व्यवहार करता है जैसा प्रोफाइल वादा करता है। टेस्टिंग के दौरान, अपने डिस्पोजेबल टेस्ट रिपॉजिटरी (disposable test repository) के बाहर की फाइलों के लिए सेंटिनल हैश (sentinel hashes) जेनरेट करें। सेंटिनल हैश वास्तव में उस संवेदनशील फ़ाइल या निर्देशिका (directory) का चेकसम (checksum) है जिसे आप सुरक्षित रखना चाहते हैं। टेस्ट चलाने के बाद, हैश की तुलना करें। यदि कुछ भी बदला है, तो इसका मतलब है कि आपका आइसोलेशन लीक हो रहा है।
अपने लॉग्स (logs) की भी तुलना करें। Claude Code अपने स्थानीय लॉग्स में डिनायल्स (denials) और सैंडबॉक्स इवेंट्स को लिखता है। जब किसी ब्लॉक किए गए होस्ट तक पहुँचने की कोशिश की जाए या जब कोई सबएजेंट (subagent) अपने वर्कट्री (worktree) से बाहर निकले, तो स्पष्ट रिजेक्शन (rejections) देखें। साइलेंट फेलियर (silent failures) शोर वाले फेलियर से भी बदतर होते हैं, इसलिए सत्यापित करें कि लॉग्स में गार्डरेल्स (guardrails) के सक्रिय होने का संकेत मिल रहा है।
अंत में, बदलाव को धीरे-धीरे लागू करें। किसी एक प्रोजेक्ट या नॉन-प्रोडक्शन ब्रांच से शुरुआत करें। अपनी पूरी टीम या CI फ्लीट (CI fleet) में इसे तैनात करने से पहले नए वर्जन को एक या दो दिन तक चलने दें।
पांच बाउंड्री टेस्ट जो सिद्ध करते हैं कि आपका सैंडबॉक्स काम कर रहा है
इन टेस्ट को हमेशा नकली डेटा से भरी एक डिस्पोजेबल रिपॉजिटरी के अंदर ही चलाएं। इन्हें कभी भी प्रोडक्शन कोड, वास्तविक क्रेडेंशियल्स या लाइव इंफ्रास्ट्रक्चर पर न चलाएं।
नेटवर्क बाउंड्री (Network boundary)। दो एंडपॉइंट्स (endpoints) तक पहुँचने का प्रयास करें: एक जिसे आपने स्पष्ट रूप से अनुमति दी है और एक जिसे आपने ब्लॉक किया है। httpbin.org जैसी सार्वजनिक टेस्ट सर्विस के विरुद्ध एक साधारण HTTP रिक्वेस्ट अनुमत लक्ष्य (allowed target) के रूप में काम कर सकती है, जबकि स्थानीय मेटाडेटा एंडपॉइंट या आंतरिक IP पर की गई रिक्वेस्ट विफल होनी चाहिए। यदि ब्लॉक की गई रिक्वेस्ट सफल हो जाती है, तो आपका नेटवर्क सैंडबॉक्स गलत तरीके से कॉन्फ़िगर किया गया है।
वर्कट्री आइसोलेशन (Worktree isolation)। एक सबएजेंट के अंदर से, पैरेंट डायरेक्टरी (parent directory) को लक्षित करने वाला एक Git कमांड चलाएं। उदाहरण के लिए, git -C .. status आज़माएं या एजेंट से उसके चेकआउट के बाहर की फाइलों का विवरण मांगें। 2.1.216 में सुधार के साथ, यह विफल होना चाहिए। सबएजेंट को केवल अपना वर्कट्री ही दिखना चाहिए।
सिमलिंक ट्रैप (Symlink trap)। अपने प्रोजेक्ट के अंदर एक सिमलिंक (symlink) बनाएं जो रिपॉजिटरी के बाहर की किसी डायरेक्टरी की ओर इशारा करता हो, जैसे कि /tmp/sentinel-target। फिर .claude पाथ के तहत कोई टास्क या वर्कफ़्लो सेव करने का प्रयास करें जो उस लिंक के माध्यम से लिखेगा। सेव करने के बाद, बाहरी डायरेक्टरी की जांच करें। यदि वह अभी भी खाली है, तो सिमलिंक हार्डनिंग (symlink hardening) काम कर रही है।
रिवाइंड स्किप (Rewind skip)। अपने रेपो के अंदर एक फोल्डर सेट करें जिसमें सिस्टम फ़ाइल या किसी अन्य डायरेक्टरी का सिमलिंक हो। उस फोल्डर पर /rewind चलाएं। Claude को उन सिमलिंक्ड या हार्ड-लिंक्ड पाथ्स का पीछा करने के बजाय उन्हें स्किप (skip) की गई सूची में दिखाना चाहिए। पुष्टि करें कि रेपो के बाहर का लक्ष्य अप्रभावित रहता है।
सेशन रेज़रेक्शन (Session resurrection)। एक सख्त प्रतिबंध के साथ बैकग्राउंड एजेंट लॉन्च करें, जैसे कि फ़ाइल-राइट टूल्स (file-write tools) को अक्षम करना। सत्र को रोकें (pause) या बंद करें, फिर उसे फिर से शुरू (resume) करें। तुरंत एजेंट से फ़ाइल लिखने का प्रयास करें। यदि प्रतिबंध अभी भी सक्रिय है, तो रीज़्यूम्ड एजेंटों (resumed agents) के लिए किया गया सुधार काम कर रहा है। यदि एजेंट के पास अचानक फिर से पूर्ण टूल एक्सेस आ जाता है, तो आप अभी भी असुरक्षित हैं।
अंतिम शब्द
Claude Code 2.1.216 आपको पिछले वर्जनों की तुलना में अधिक लचीलापन देता है, लेकिन वह लचीलापन एक स्पष्ट आदेश के साथ आता है: भरोसा करने से पहले सत्यापित करें। नया फ़ाइलसिस्टम टॉगल (filesystem toggle) सुरक्षा की कीमत पर आपका जीवन आसान बनाने के लिए नहीं है। यह उन इंजीनियरों के लिए है जिन्होंने पहले से ही टूल के नीचे एक मजबूत आधार (hardened floor) बनाया हुआ है। इस रिलीज़ में वास्तविक सुधार वे साइलेंट गार्डरेल्स (silent guardrails) हैं जो सबएजेंटों को पैरेंट डायरेक्टरीज़ में घुसपैठ करने से रोकते हैं, कॉन्फ़िगरेशन राइटिंग के दौरान सिमलिंक्स का पालन करने से मना करते हैं, और लंबे अंतराल के बाद भी नियमों को याद रखते हैं।
पांचों टेस्ट चलाएं। अपने सेंटिनल हैश की जांच करें। लॉग्स पढ़ें। फिर, और केवल तभी, नए वर्जन को वास्तविक काम करने दें।
स्रोत: Claude Code v2.1.216 Release Notes
वैकल्पिक लर्निंग कम्युनिटी: GyaanSetu on Telegram
