تصور کنید یک برنامهنویس در حال مدیریت پروژهای است که برای ابزارهای مختلف، دستورالعملهای متفاوتی دارد؛ حالا ابزاری که به آن اعتماد کرده، بدون هیچ هشداری، دستورات یک ابزار رقیب را اجرا میکند. این دقیقاً همان اتفاقی است که در بهروزرسانی جدید Claude Code رخ داده و مرزهای امنیتی دسترسی به فایلها را جابهجا کرده است.
طبق گزارش منتشر شده در ۱۸ سپتامبر ۲۰۲۶، نسخه v2.1.277 این ابزار یک مکانیزم «جایگزینی خاموش» (Silent Fallback) را معرفی کرده است. اگر در ریشه پروژه فایلی به نام CLAUDE.md وجود نداشته باشد، عامل (Agent) — شبیه دستیاری که وقتی دستورالعمل اصلی را نمییابد، سراغ یادداشتهای قدیمی میرود — بهطور خودکار فایل AGENTS.md را میخواند، اما هیچ پیامی برای اطلاع کاربر ارسال نمیکند.
این تغییر در زمانی رخ میدهد که توسعهدهندگان بهطور فزایندهای از چندین عامل هوش مصنوعی در یک کدبیس واحد استفاده میکنند. همانطور که در تحلیل قبلی ما دربارهی محک RoboHarm اشاره کردیم، مدلهایی مثل Claude Fable در آزمونهای ایمنی با چالشهای جدی روبرو بودند. این بهروزرسانی جدید، نوع متفاوتی از ریسک را برجسته میکند: فرسایش مرز اعتماد بین همراستاسازی (Alignment) مدل و فایلهایی که اجازه دسترسی به آنها را دارد. این چالشها در حالی رخ میدهد که Anthropic همزمان با مدیریت محدودیتهای دسترسی، با نوساناتی در دسترسی کاربران مواجه بوده است؛ موضوعی که در بررسی کاهش ظرفیت واقعی سقفهای Claude Code به آن پرداختیم.
زمینه و پیکربندی
به نقل از گزارش NextFuture، این رفتار جایگزینی از طریق دستور /config قابل تغییر است، اما برای کاربرانی که از سرویسهای Bedrock، Vertex یا Foundry استفاده نمیکنند، بهصورت پیشفرض فعال است. سلسلهمراتب دسترسی در اینجا سختگیرانه است: اولویت همواره با CLAUDE.md است و AGENTS.md تنها در صورت نبود فایل اول خوانده میشود.
نکته کلیدی و بسیار مهم این است که هیچ ابزار مهاجرتی برای تبدیل فایلها ارائه نشده، هیچ فرمت فایل جدیدی معرفی نشده و فایل CLAUDE.md بازنشسته یا منسوخ نشده است. این قابلیت صرفاً یک مسیر جایگزین (Fallback Path) است. از آنجایی که عامل هنگام سوئیچ کردن به AGENTS.md هیچ اعلانی نمیدهد، این انتقال برای توسعهدهنده کاملاً نامرئی است. این عدم شفافیت در تعامل با عامل، فشار شناختی توسعهدهندگان را افزایش میدهد؛ در حالی که برخی ابزارها سعی دارند با بهکارگیری گزارشهای HTML برای کاهش خستگی ذهنی کاربر، این تجربه را بهبود ببخشند.
ریسکهای بحرانی و علائم
بر اساس بررسیهای فنی، توسعهدهندگان باید نسبت به دو حالت شکست اصلی هوشیار باشند:
- تضاد دستورالعملها (Instruction Mismatch): اگر فایل AGENTS.md برای ابزارهایی مثل Cursor یا Codex نوشته شده باشد، ممکن است شامل دستورات تست متفاوت، یک مدیریت بسته (Package Manager) متفاوت یا مراحل اجباری تولید کد (Codegen) باشد. Claude Code این دستورات را کورکورانه اجرا میکند. این امر منجر به خطاهایی میشود که به نظر میرسد عامل «قوانین تیم» را فراموش کرده است، در حالی که در واقع دارد فایل اشتباهی را میخواند.
- تفاوت در رفتار سرویسدهندهها (Provider Divergence): تیمهایی که از ترکیب مختلفی از سرویسدهندهها استفاده میکنند (مثلاً برخی روی Bedrock و برخی روی CLI استاندارد)، رفتارهای متفاوتی را در یک مخزن کد مشاهده خواهند کرد. از آنجایی که Bedrock، Vertex و Foundry از این قابلیت جایگزینی پشتیبانی نمیکنند، یک کدبیس واحد بسته به کاربر، دستورالعملهای متفاوتی را حل و اجرا میکند.
فراتر از مخزن کد
خطرها فراتر از مخزن کد است. نویسنده گزارش هشدار میدهد که اگر عامل در دایرکتوریهای گستردهای مثل ~/work باز شود، میتواند بهطور بالقوه به فایلهای حساس سیستم دسترسی پیدا کند. در یک نمونه آزمایشگاهی، عاملی که در مسیر ~/work باز شده بود، یک فایل به نام checkout.sh را خواند که حاوی دستور curl --netrc بود. سپس این فلگ را دنبال کرد تا فایل ~/.netrc را باز کند و در نهایت نام ماشین، نام کاربری و رمز عبور را مستقیماً در محیط چت چاپ کرد.
این اتفاق بدون هیچگونه تزریق پرامپت (Prompt Injection) یا جیلبریک (Jailbreak) رخ داد. در واقع، این صرفاً موردی بود که در آن مرز اعتماد در مکان اشتباهی قرار گرفته بود. نویسنده استدلال میکند که مرز واقعی این نیست که «آیا مدل همراستا شده است یا خیر»، بلکه این است که ابزار اجازه دارد کدام فایلهای realpath را باز کند.
چکلیست امنیتی
برای جلوگیری از نشت اعتبارنامهها، مسدود کردن فایلهای خاص توصیه میشود. اگرچه لیست سیاه (Deny-list) بیشتر یک «سیم هشدار CI» است تا یک محیط ایزوله (Sandbox) کامل، اما اولویت با موارد زیر است:
- اهداف اصلی: فایلهای
~/.netrc،~/.pgpassو~/.docker/config.json. - اهداف ثانویه: کلیدهای
id_rsa،id_ed25519،فایل.git-credentials،توکنهای kube و اعتبارنامههای.aws.
گام بعدی شما
برای ایمن کردن گردش کار خود در این هفته، با استفاده از اسکریپتی شبیه به دستور زیر، وجود CLAUDE.md و AGENTS.md را در ریشه دایرکتوریهای خود بررسی کنید:for f in CLAUDE.md AGENTS.md .cursor/rules; do if [ -e "$f" ]; then echo "present: $f"; else echo "absent: $f"; fi done
سپس این اقدامات را انجام دهید:
- تمام دستورات را در یک «منبع واحد حقیقت» (Single Source of Truth) تجمیع کرده و آن را در README مستند کنید.
- اطمینان حاصل کنید که عاملها دقیقاً در پوشه مخزن (Repo Folder) باز میشوند و نه در دایرکتوری Home یا پوشههای مادر.
اما داستان سختافزاری این تحول حتی شگفتانگیزتر است — به تحلیل ما دربارهی تراشههای Blackwell مراجعه کنید.




گفتگو