Claude Code 2.1.221 اب Linux اور WSL2 صارفین کو اس بات کی اجازت دیتا ہے کہ وہ sandboxed command کے فائل پڑھنے سے پہلے credential files کو ماسک (mask) کر سکیں۔ یہ فیچر کمانڈ کو ایک بے ضرر sentinel copy فراہم کرتا ہے اور اصل سیکرٹ (secret) کو صرف اس وقت تبدیل کرتا ہے جب کوئی اجازت یافتہ درخواست (request) ایک proxy سے گزرتی ہے۔

ماسکنگ کا طریقہ کار (masking flow) کیسا نظر آتا ہے

  1. Sentinel copy – جب کسی فائل کو ماسکنگ کے لیے نشان زد کیا جاتا ہے، تو Claude Code ایک ڈپلیکیٹ فائل بناتا ہے جس میں اصل سیکرٹ کے بجائے ایک placeholder string ہوتی ہے۔
  2. Proxy swap – Sandbox ایک TLS-terminating proxy کے پیچھے چلتا ہے۔ اگر sandbox ایسی درخواست (request) جاری کرتا ہے جو injectHosts لسٹ میں موجود کسی انٹری سے مطابقت رکھتی ہو، تو proxy درخواست کے مشین سے باہر جانے سے پہلے placeholder کو اصل ٹوکن (token) سے بدل دیتا ہے۔
  3. Error handling – اگر extraction regex سیکرٹ تلاش کرنے میں ناکام ہو جائے، تو sandbox اصل فائل کو ظاہر کرنے کے بجائے عمل کو روک (abort) سکتا ہے۔

یہ طریقہ کار صرف Linux اور WSL2 پر کام کرتا ہے؛ macOS فی الحال ڈیفالٹ کے طور پر 'hard deny' پر ہے، جس کا مطلب ہے کہ sandbox فائل کو بالکل نہیں پڑھ سکتا۔

محفوظ رول آؤٹ (rollout) کے لیے چیک لسٹ

ورژن کی تصدیق کریں

  • تصدیق کریں کہ آپ Claude Code 2.1.221 یا اس سے نیا ورژن چلا رہے ہیں۔ ٹرمینل میں ورژن اسٹرنگ (version string) ہی واحد قابل اعتماد طریقہ ہے؛ package lock فائلیں گمراہ کر سکتی ہیں۔

ڈسپوزایبل (disposable) ٹوکنز استعمال کریں

  • اپنے بنیادی GitHub یا کلاؤڈ credentials کے ساتھ کبھی تجربہ نہ کریں۔ ایک مختصر مدت کا ٹوکن بنائیں جو کسی بے ضرر "canary" endpoint کی طرف اشارہ کرتا ہو اور اگر کچھ غلط ہو جائے تو اسے فوری طور پر منسوخ (revoke) کر دیں۔

صحیح ماسکنگ موڈ (masking mode) کا انتخاب کریں

موڈ (Mode) کب استعمال کریں
File Deny سخت بلاک (Hard block)؛ پڑھنے کی کوئی بھی کوشش ناکام ہو جائے گی۔
Whole-File Mask فائل میں ایک ہی سیکرٹ ہو (مثلاً، ایک plain-text API key)۔
Structured Mask فائل میں سیکرٹس دیگر ڈیٹا (JSON, YAML, .netrc) کے ساتھ ملے ہوئے ہوں۔ extract موڈ اور ایک ایسا regex استعمال کریں جو سیکرٹ کو group 1 میں کیپچر کرے۔ اس سے کلائنٹ پروگرام کے لیے ارد گرد کی سنٹیکس (syntax) درست رہتی ہے۔

سخت ایرر رولز (error rules) سیٹ کریں

  • onExtractNoMatch کو error پر سیٹ کریں۔ اگر regex میچ نہ ہو، تو sandbox رک جائے۔ اسے ڈیفالٹ warn پر چھوڑنے سے اصل فائل غیر محسوس طریقے سے گزر سکتی ہے۔

TLS termination فعال کریں

  • تبدیلی (swap) کرنے کے لیے proxy کا TLS ختم (terminate) کرنا ضروری ہے۔ TLS termination کے بغیر، proxy درخواست کے پے لوڈ (payload) کو نہیں دیکھ سکتا اور تبدیلی کبھی نہیں ہو پائے گی۔

ہوسٹ اسکوپ (host scope) کو محدود کریں

  • injectHosts کو اپنے allowedDomains سے واضح ہوسٹ ناموں (hostnames) کے ساتھ پُر کریں۔ *.example.com جیسے وائلڈ کارڈز (wildcards) سے بچیں؛ وسیع پیٹرن حمل کے خطرے (attack surface) کو بڑھا دیتے ہیں اور ماسکنگ کے مقصد کو ختم کر دیتے ہیں۔

نتیجے کی تصدیق کریں

  • اصل ٹوکن کے کسی بھی ظہور کے لیے لاگز (logs)، پروسیس آرگیومنٹس (process arguments)، اور ایرر میسجز کو اسکین کریں۔ ان آرٹیکٹس (artefacts) میں صرف sentinel ہی واحد ویلیو ہونی چاہیے جو سامنے آئے۔

وہ حدود جنہیں آپ کو ذہن میں رکھنا چاہیے

ماسکنگ ٹوکن کو صرف sandboxed command کے فائل سسٹم ویو (file-system view) سے محفوظ کرتی ہے۔ یہ کمانڈ کو من مانی نیٹ ورک کالز کرنے سے نہیں روکتی، اور نہ ہی یہ Claude کے ان بلٹ ٹولز (built-in tools) سے بچاتی ہے جن کے پاس پرائیویلیجڈ رسائی (privileged access) ہو سکتی ہے۔

خلاصہ (Bottom line)

Claude Code 2.1.221 کا credential-masking فیچر Linux اور WSL2 ڈویلپرز کو sandboxed processes سے سیکرٹس کو دور رکھنے کا ایک عملی طریقہ فراہم کرتا ہے۔