اجرای یک عامل هوش مصنوعی روی سیستم شخصی، شبیه به سپردن کلید خانه به غریبهای است که نمیدانید دقیقاً چه قصدی دارد. Claude Code در نسخه ۲.۱.۲۴۸ که در ۲۷ اوت ۲۰۲۶ منتشر شد، با معرفی «حالت محدود» (Restricted Mode)، سطح دسترسی عامل را پیش از دسترسی به هر فایلی کاهش میدهد تا ریسکهای امنیتی به حداقل برسد.
این بهروزرسانی در حالی میرسد که توسعهدهندگان بهطور گسترده در حال ادغام جریانهای کاری عاملمحور (Agentic) — یعنی سیستمهایی که مثل یک دستیار مستقل، میتوانند برای رسیدن به هدف برنامهریزی و اجرا کنند — در محیطهای برنامهنویسی و خط لولههای CI/CD هستند. با تکیه بر پوشش خبری قبلی ما دربارهی مدل Claude Opus 5 که توانست به نرخ موفقیت ۳۰ درصدی در حل جریانهای کاری تخصصی دست یابد، اکنون تمرکز صنعت از «توانایی خام» به «اجرای ایمن» تغییر کرده است. برای اکثر برنامهنویسان، خطر اصلی دیگر فقط توهم (Hallucination) — شبیه به دوستی که خاطرهای را با اطمینان اما اشتباه تعریف میکند — نیست، بلکه این است که یک عامل هوش مصنوعی بهطور تصادفی یک دستور مخرب bash را در محیطی که به محیط عملیاتی (Production) نزدیک است، اجرا کند.
زمینه: این قابلیت برای چه کسانی است؟
این حالت بهطور خاص برای توسعهدهندگانی طراحی شده است که نیاز دارند Claude Code را برای بازرسی کد یا اعمال ویرایشهای تحت نظارت شدید به کار بگیرند، بدون اینکه مدل تمام شخصیسازیهای محلی سیستم را به ارث ببرد. این موضوع در سناریوهای پرریسک زیر بهویژه حیاتی است:
- وظایف CI/CD: اجرای کارهای محدود در محیطهایی که یک پروفایل تعاملی معمولی، پیکربندیهای محیطی بیش از حدی دارد.
- بررسیهای امنیتی: بازرسی مخازنی (Repositories) که ناشناخته هستند یا احتمالاً حاوی کدهای مخرباند.
- مخازن مشتریان: کار روی کدهای خارجی که در آنها ایجاد مرزهای سختگیرانه الزامی است.
- بررسی Pull Requestهای مشارکتکنندگان: بازبینی کدهای شخص ثالث بدون اعطای دسترسی کامل به سیستم.
این یک چرخش معماری متمایز نسبت به نسخه ۲.۱.۲۴۶ و سیستم بازرسی مجوزهای Bash است. در حالی که بازرسی نسخه ۲.۱.۲۴۶ دستورات را «بعد از» ایجاد قابلیت اجرا محدود میکرد، حالت محدود از یک لایه بالاتر عمل میکند؛ به این معنا که ابزارهای کد و دستور را بهطور کلی حذف میکند، مگر اینکه کاربر صراحتاً و بهطور آگاهانه آنها را بازگرداند.
سازوکار حالت محدود
به نقل از راهنمای فنی dev.to، حالت محدود از طریق فلگ --restricted یا متغیر محیطی CLAUDE_CODE_RESTRICTED=1 فعال میشود. این قابلیت برخلاف یک سندباکس (Sandbox) کامل در سطح سیستمعامل، به عنوان یک فیلتر سطح بالا برای ابزارهای در دسترس عامل عمل میکند.
در این حالت، قابلیتهای زیر بهطور پیشفرض حذف میشوند:
- ابزارهای کد و دستور: دسترسی به Bash، PowerShell، REPL و سایر ابزارهای اجرای کد بهطور کامل سلب میشود.
- دسترسی به وب: ابزار WebFetch غیرفعال میشود تا از نشت دادههای خارجی یا دریافتهای کنترلنشده جلوگیری شود.
- تنظیمات محیطی: عامل فایلهای تنظیمات کاربر، پروژه و تنظیمات محلی را نادیده میگیرد تا از ارثبری تنظیمات پنهان و شخصیسازیهای ناخواسته جلوگیری کند.
جزئیات: مدیریت مرزهای دسترسی
توسعهدهندگان میتوانند با استفاده از فلگ --tools دسترسیها را بهصورت گزینشی بازگردانند. برای مثال، برای یک بازبینی فقط-خواندنی، کاربر ممکن است تنها ابزارهای "Read, Grep, and Glob" را فعال کند. اگر وظیفهای نیاز به ویرایشهای خاص داشته باشد، کاربر باید صراحتاً نام ابزار ویرایش فایل (file-edit tool) را ذکر کند.
- دسترسی به فایل: دسترسیها بهشدت به دایرکتوری شروع (Starting Directory) محدود شده است.
- گسترش مرزها: در حالی که فلگ
--add-dirاجازه گسترش این مرز را میدهد، اما این کار بهطور عمدی دامنه دسترسی ابزار فایل را افزایش میدهد و باید با احتیاط زیاد استفاده شود. - مدیریت مجوزها: قابلیت
bypassPermissionsدر این حالت رد میشود. این امر تضمین میکند که مدیریت مجوزهای انسانی یا پیکربندیشده برای عملیات نوشتن (Write) در فایلهای محافظتشده، همچنان برقرار باشد.
بسیار مهم است که توجه داشته باشید حالت محدود ادعا نمیکند که سیستمفایل میزبان، شبکه، جدول فرآیندها (Process Table) یا اعتبارنامهها (Credentials) را برای برنامههای خارجی مجازیسازی میکند. اگر ورودیها مخرب باشند و قابلیت اجرای کد مورد نیاز باشد، کل فرآیند باید درون یک کانتینر سختگیرانه یا ماشین مجازی (VM) قرار گیرد.
شکاف ایزولاسیون در MCP
یک نکته حیاتی که اغلب نادیده گرفته میشود، نحوه برخورد با سرورهای پروتکل زمینه مدل (Model Context Protocol یا MCP) است. حالت محدود بهطور خودکار ابزارهای خارجی MCP را غیرفعال نمیکند. برای رسیدن به ایزولاسیون واقعی، اپراتورها باید فلگ --strict-mcp-config را اضافه کرده و یک فایل JSON صریح برای MCP ارائه دهند.
بدون این فلگ خاص، عامل همچنان ممکن است به سرورهای MCP پیکربندیشده دسترسی داشته باشد؛ به این معنی که «حالت محدود» بهطور پیشفرض به معنای «بدون ابزار خارجی» نیست. راهنمای CLI صراحتاً به اپراتورها میگوید که برای نادیده گرفتن سایر سرورهای MCP از --strict-mcp-config استفاده کنند. بنابراین، فهرست نهایی MCP باید پیش از تکیه بر این حالت برای اهداف امنیتی، بازبینی و تایید شود.
گردش کار ششمرحلهای برای استقرار ایمن
برای پیادهسازی ایمن این حالت در محیطهای عملیاتی یا وظایف CI، راهنمای فنی یک روند سختگیرانه را توصیه میکند:
۱. تثبیت نسخه (Pinning): از دستور npm exec --yes --package=@anthropic-ai/[email protected] -- claude --version استفاده کنید تا مطمئن شوید دقیقاً نسخه ۲.۱.۲۴۸ در حال اجراست. دستورات جهانی (Global) ممکن است حتی اگر متادیتای بسته نسخه جدید را نشان دهد، به نصبهای قدیمیتر اشاره کنند.
۲. بهحداقل رساندن ریشه: کار را در کوچکترین دایرکتوری کاری ممکن شروع کنید. از یک محیط موقت (Disposable Fixture) یا یک Checkout محدود استفاده کنید که هیچ اعتبارنامه عملیاتی (Production Credentials) در آن نباشد. برای راحتی، هرگز در دایرکتوری Home یا ریشه یک Monorepo شروع نکنید.
۳. اعلام صریح سطح دسترسی: بهجای پذیرش پیشفرضها، ابزارها را صراحتاً نام ببرید. برای یک بازبینی فقط-خواندنی، دستور به این شکل خواهد بود: npm exec --yes --package=@anthropic-ai/[email protected] -- claude --restricted --tools "Read,Grep,Glob" --strict-mcp-config --mcp-config ./restricted-mcp.json.
۴. بازرسی تنظیمات باقیمانده: پالیسیهای مدیریتی و ورودیهای --settings را بازبینی کنید. در حالی که تنظیمات کاربر، پروژه و محلی نادیده گرفته میشوند، اما پالیسیهای مدیریتشده توسط ادمین و اشیاء JSON صریحی که از طریق --settings پاس داده میشوند، همچنان اثرگذار هستند.
۵. اجرای سناریوهای آزمایشی (Canaries): هشت سناریوی خاص «ایمن از نظر Payload» را با استفاده از فایلهای مصنوعی تست کنید:
* نسخه: تایید کنید که خروجی دقیقاً ۲.۱.۲۴۸ است.
* فهرست ابزارها: تایید کنید که ابزارهای Command/code و WebFetch غایب هستند.
* ایزولاسیون تنظیمات محلی: اطمینان حاصل کنید که یک قانون بیضرر در سطح کاربر/پروژه/محلی، نشست (Session) را تغییر نمیدهد.
* پالیسیهای باقیمانده: تایید کنید که پالیسیهای مدیریتی یا --settings صریح همچنان اعمال میشوند.
* مرز ریشه کاری: تایید کنید که یک فایل داخل ریشه قابل خواندن است، اما یک فایل همسطح (Sibling) که لیست نشده است، قابل دسترسی نیست.
* مرز دایرکتوری اضافه شده: تایید کنید که یک --add-dir کار میکند بدون اینکه دسترسی را به دایرکتوری والد (Parent) گسترش دهد.
* مرز مجوزها: اطمینان حاصل کنید که bypassPermissions رد میشود و نوشتن در فایلهای محافظتشده همچنان نیاز به یک هندلر دارد.
* مرز MCP: تایید کنید که وقتی --strict-mcp-config فعال است، تنها سرورهای موجود در فایل صریح MCP ظاهر میشوند.
۶. ارتقا از طریق قالب: این پیکربندی را به عنوان یک قالب (Template) مخصوص هر وظیفه در نظر بگیرید. نسخه تثبیتشده، دستور اجرا، ریشههای کاری، تنظیمات باقیمانده، فهرست ابزارها، فهرست MCP، نتایج تستهای Canary و مالک را ذخیره کنید. برای بازگشت (Rollback)، کافی است شغل را غیرفعال کرده یا نسخه تثبیتشده قبلی را بازیابی کنید.
تحلیل: تغییر مدل اعتماد
این بهروزرسانی نشاندهنده تغییر رویکرد از «بازرسی پس از اجرا» به «محدودیت پیش از اجرا» است. در حالی که نسخههای قبلی بر محدود کردن دستورات پس از فراهم شدن امکان اجرا تمرکز داشتند، حالت محدود موتور اجرا را بهطور کلی حذف میکند مگر اینکه صراحتاً درخواست شود.
برای یک توسعهدهنده حرفهای، این بدان معناست که هوش مصنوعی دیگر یک «جعبه سیاه» با مجوزهای گسترده نیست، بلکه یک مجموعه ابزار قابل پیکربندی است. با این حال، تمایز بین «حالت محدود» و «سندباکس» حیاتی است. چون این حالت سیستمفایل یا شبکه را مجازیسازی نمیکند، نمیتواند در برابر یک مخزن واقعاً مخرب که از نقاط ضعف سیستمعامل زیرین بهرهبرداری میکند، محافظت کند.
در نهایت، این ابزاری برای بهرهوری تحت نظارت است، نه یک تضمین امنیتی در برابر تزریق دستورات (Prompt Injection) یا کدهای مخرب. این قابلیت عقربه را به سمت ادغام ایمنتر هوش مصنوعی حرکت میدهد، اما انسان همچنان تصمیمگیرنده نهایی در مورد مرزهای عامل است.
برای ایمنسازی کامل یک جریان کاری، باید این حالت محدود را با یک کانتینر سختگیرانه یا VM ترکیب کنید. منتظر بهروزرسانیهای آینده در مشخصات MCP باشید که ممکن است این محدودیتها را بهطور بومیتر در خود پروتکل ادغام کند.
گام بعدی شما
- اگر از Claude Code برای بررسی کدهای Open Source استفاده میکنید، از این به بعد حتماً فلگ
--restrictedرا به دستورات خود اضافه کنید. - برای ایزولاسیون کامل، ترکیب این حالت با یک کانتینر Docker را امتحان کنید تا لایه امنیتی سیستمعامل نیز تامین شود.
- فایل پیکربندی MCP خود را بازبینی کنید تا ابزارهای غیرضروری در حالت محدود فعال نمانند.
اما داستان سختافزاری این تحول حتی شگفتانگیزتر است — به تحلیل ما دربارهی تراشههای Blackwell مراجعه کنید.




گفتگو