Claude Code 2.1.221 এখন Linux এবং WSL2 ব্যবহারকারীদের একটি sandboxed command ফাইল পড়ার আগেই credential ফাইলগুলো mask করার সুবিধা দিচ্ছে। এই ফিচারটি command-কে একটি ক্ষতিকারক নয় এমন sentinel copy প্রদান করে এবং শুধুমাত্র যখন একটি অনুমোদিত request একটি proxy-এর মাধ্যমে যায়, তখনই আসল secret-টি পরিবর্তন করে বসিয়ে দেয়।
মাস্কিং ফ্লো (masking flow) দেখতে কেমন
- Sentinel copy – যখন কোনো ফাইল মাস্কিংয়ের জন্য চিহ্নিত করা হয়, Claude Code একটি ডুপ্লিকেট ফাইল তৈরি করে যাতে আসল secret-এর পরিবর্তে একটি placeholder string থাকে।
- Proxy swap – Sandbox-টি একটি TLS-terminating proxy-এর পেছনে চলে। যদি sandbox এমন একটি request পাঠায় যা
injectHostsলিস্টের কোনো এন্ট্রির সাথে মিলে যায়, তবে request-টি মেশিন থেকে বের হওয়ার আগেই proxyটি placeholder-টিকে আসল token দিয়ে পরিবর্তন করে দেয়। - Error handling – যদি extraction regex কোনো secret খুঁজে পেতে ব্যর্থ হয়, তবে sandbox আসল ফাইলটি উন্মুক্ত অবস্থায় সামনে এগিয়ে না গিয়ে প্রক্রিয়াটি বাতিল (abort) করতে পারে।
এই পদ্ধতিটি শুধুমাত্র Linux এবং WSL2-তে কাজ করে; macOS-এ বর্তমানে এটি ডিফল্টভাবে 'hard deny' হিসেবে থাকে, যার অর্থ হলো sandbox ফাইলটি একেবারেই পড়তে পারে না।
নিরাপদ রোলআউটের (rollout) জন্য চেকলিস্ট
ভার্সন যাচাই করুন
- আপনি Claude Code 2.1.221 বা তার পরবর্তী ভার্সন ব্যবহার করছেন কিনা তা নিশ্চিত করুন। টার্মিনালে ভার্সন স্ট্রিং দেখাটাই একমাত্র নির্ভরযোগ্য পদ্ধতি; package lock ফাইল বিভ্রান্তিকর হতে পারে।
ডিসপোজেবল (disposable) টোকেন ব্যবহার করুন
- আপনার প্রধান GitHub বা ক্লাউড credentials দিয়ে কখনোই পরীক্ষা-নিরীক্ষা করবেন না। একটি স্বল্পস্থায়ী (short-lived) টোকেন তৈরি করুন যা একটি ক্ষতিকারক নয় এমন “canary” endpoint-কে নির্দেশ করে এবং কিছু ভুল হলে তা সাথে সাথে বাতিল (revoke) করে দিন।
সঠিক মাস্কিং মোড (masking mode) বেছে নিন
| মোড (Mode) | কখন ব্যবহার করবেন |
|---|---|
| File Deny | কঠোরভাবে ব্লক করে; যেকোনো read করার চেষ্টা ব্যর্থ হবে। |
| Whole-File Mask | ফাইলে একটি মাত্র secret থাকে (যেমন, একটি plain-text API key)। |
| Structured Mask | ফাইলে secret-এর সাথে অন্যান্য ডেটা (JSON, YAML, .netrc) মিশ্রিত থাকে। extract মোড এবং এমন একটি regex ব্যবহার করুন যা secret-টিকে group 1-এ ক্যাপচার করে। এটি ক্লায়েন্ট প্রোগ্রামের জন্য আশেপাশের সিনট্যাক্স (syntax) সঠিক রাখে। |
কঠোর এরর রুলস (error rules) সেট করুন
onExtractNoMatch-কে error হিসেবে সেট করুন। যদি regex না মিলে, তবে sandbox থেমে যাবে। এটিকে ডিফল্ট warn হিসেবে রাখলে আসল ফাইলটি অজান্তেই বেরিয়ে যাওয়ার সম্ভাবনা থাকে।
TLS termination চালু করুন
- পরিবর্তন (swap) করার জন্য proxy-কে অবশ্যই TLS terminate করতে হবে। TLS termination ছাড়া proxy-টি request payload দেখতে পাবে না এবং প্রতিস্থাপন (substitution) কখনোই ঘটবে না।
হোস্ট স্কোপ (host scope) সীমিত করুন
- আপনার
allowedDomainsথেকে সুনির্দিষ্ট হোস্টনেম দিয়েinjectHostsপূর্ণ করুন।*.example.com-এর মতো ওয়াইল্ডকার্ড (wildcards) এড়িয়ে চলুন; বিস্তৃত প্যাটার্ন অ্যাটাক সারফেস (attack surface) বাড়িয়ে দেয় এবং মাস্কিংয়ের উদ্দেশ্য ব্যাহত করে।
ফলাফল যাচাই করুন
- আসল টোকেনটি কোথাও দেখা যাচ্ছে কিনা তা দেখার জন্য লগ (logs), প্রসেস আর্গুমেন্ট এবং এরর মেসেজগুলো স্ক্যান করুন। ওই আর্টিফ্যাক্টগুলোতে (artefacts) শুধুমাত্র sentinel-টিই মান হিসেবে থাকা উচিত।
যে সীমাবদ্ধতাগুলো আপনার মনে রাখা প্রয়োজন
মাস্কিং টোকেনটিকে শুধুমাত্র sandboxed command-এর ফাইল-সিস্টেম ভিউ থেকে সুরক্ষিত রাখে। এটি command-কে যেকোনো নেটওয়ার্ক কল করা থেকে বিরত রাখতে পারে না, কিংবা Claude-এর বিল্ট-ইন টুলগুলোকেও রক্ষা করে না যেগুলোর প্রিভিলেজড অ্যাক্সেস (privileged access) থাকতে পারে।
মূল কথা
Claude Code 2.1.221-এর credential-masking ফিচারটি Linux এবং WSL2 ডেভেলপারদের sandboxed প্রসেস থেকে সিক্রেটগুলো দূরে রাখার একটি ব্যবহারিক উপায় প্রদান করে।
