تصور کنید روی لپتاپ یک برنامهنویس، ۶ عامل هوش مصنوعی مختلف شامل Claude Code، Cursor، Codex، OpenCode، OpenClaw و DeepSeek Harness بهطور همزمان در حال اجرا باشند و در کنار آنها ۱۴ سرور MCP فعال باشند. در این وضعیت، شما دقیقاً میدانید هر کدام به کدام بخش از فایلهای حساس سیستمتان دسترسی دارند؟ این سناریوی خاص در یک اسکن امنیتی که در ۱ سپتامبر ۲۰۲۶ انجام و در ۱۲ سپتامبر ۲۰۲۶ مجدداً تأیید شد، ثبت شده است. نتایج این حسابرسی که توسط NextFuture منتشر شد، نشان میدهد که اکثر این پیکربندیها، درهای سیستم را برای سرقت اعتبارنامهها و حملات زنجیره تأمین باز گذاشتهاند.
بسیاری از برنامهنویسان اکنون ترکیبی از ابزارهایی مثل Claude Code، Cursor و Codex را روی یک دستگاه استفاده میکنند. هر ابزار فایل پیکربندی خاص خود را دارد و همین موضوع باعث ایجاد یک محیط امنیتی تکهتکه شده است. همانطور که در بحثهای گذشته ما دربارهی امنیت مدلهای بازمتن اشاره کردیم، وقتی مرزهای امنیتی پراکنده باشند، پاسخ به این سؤال ساده که «در مجموع، این عاملها چه دسترسیهایی به سیستم من دارند؟» تقریباً غیرممکن میشود. این چالشها در واقع بخشی از یک تهدید گستردهتر هستند که در راهکارهای دفاعی در برابر حملات ChainDrop به تفصیل بررسی کردیم.
سه شکست امنیتی بحرانی
این حسابرسی سه خطای تکراری را شناسایی کرده است که ماشینهای توسعهدهندگان را به شدت آسیبپذیر میکند:
- نسخههای تثبیتنشده (Unpinned Versions): ۱۲ مورد از ۱۴ سرور پروتکل زمینهٔ مدل (MCP) — که شبیه به یک مترجم است و به مدل اجازه میدهد با ابزارهای خارجی حرف بزند — از نسخههای تثبیتنشده استفاده میکردند. برای مثال در دستوراتی مثل
npx @upstash/context7-mcp(تثبیتنشده)،npx @playwright/mcp@latestوnpx @modelcontextprotocol/server-github(تثبیتنشده) هیچ نسخهی خاصی ذکر نشده است. نویسنده هشدار میدهد که هر دستورnpx -yدر واقع یک تصمیم استراتژیک برای پذیرش ریسک در زنجیره تأمین است؛ زیرا عبارت@latestیعنی هر کدی که آخرین بار در npm منتشر شده اجرا شود، نه لزوماً نسخهای که تست شده است. - کلیدهای API بهصورت متن ساده: ۵ کلید API بهصورت متن ساده (Plaintext) پیدا شد. این موارد شامل دو توکن گیتهاب در فایل
~/.dsh/mcp-manager.json، یک کلید OpenAI در~/.codex/config.toml، یک توکن گیتهاب در~/.cursor/mcp.jsonو یک کلید OpenAI در~/.config/opencode/opencode.jsonبود. حتی اگر ابزارهای اسکنر این مقادیر را در گزارشها ماسک کنند، توکنهای خام همچنان روی دیسک ذخیره شدهاند. - کوری در مورد موجودی دسترسیها: هیچ ثبت متمرکزی از مجوزها وجود ندارد. گزارش اشاره میکند که Cursor فقط مجوزهای خودش را میشناسد و OpenClaw هم فقط مال خودش را؛ هیچ سیستمی وجود ندارد که بگوید «تمام عاملهای من در مجموع چه کارهایی میتوانند انجام دهند؟». یک لیست یکپارچه از اینکه کدام عامل و کدام سرور MCP به کدام مخزن (Repo) یا کلید دسترسی دارد، باید بهصورت دستی ساخته و بهروزرسانی شود. این فقدان نظارت متمرکز میتواند منجر به خطاهای عملیاتی شود، مشابه آنچه در رویکرد تفکیک منطق قطعی از استنتاج برای جلوگیری از تصمیمات پرریسک مدلها پیشنهاد شده است.
به نقل از این گزارش، یک بستهٔ مخرب MCP در npm در سال ۲۰۲۵ فایلهای .env را هدف قرار داده بود، هرچند نویسنده منبع دقیقی برای این ادعای خاص ارائه نکرده است.
راهکارهای اصلاحی و کاهش ریسک
برای توسعهدهندگان انفرادی، راهکار ساده است: نسخهها را دقیقاً تثبیت کنید (مثلاً npx -y [email protected]) و توکنها را به جای فایل متنی، در Keychain سیستم یا مدیریتکنندههای رمز (Secret Manager) قرار دهید. چرخش (Rotation) کلیدهایی که بهصورت متن ساده ذخیره شدهاند الزامی است، زیرا این فایلها معمولاً در پوشههای همگامسازی یا بکآپها باقی میمانند.
در مقیاس تیمی، ریسک به سمت افشای زیرساختها میرود. مقایسهای در سال ۲۰۲۶ روی درگاههای (Gateways) متنباز MCP نشان میدهد که توزیع توکنهای API، رمزهای عبور پایگاهداده و اعتبارنامههای OAuth بین محیطهای مختلف عاملها، احتمال خروج تصادفی دادههای حساس زیرساختی را افزایش میدهد.
نقش درگاههای امنیتی
درگاهها یک لایه کنترلی (Control Plane) با کلیدهای مجازی، کنترل دسترسی مبتنی بر نقش (RBAC) و گزارشهای بازرسی (Audit Logs) فراهم میکنند تا نیاز به توزیع توکنهای خام در هر محیط عامل حذف شود. در یک مقایسه در سال ۲۰۲۶، ابزار Bifrost پیشتاز این دسته بود.
بر اساس یک بنچمارک ذکر شده، Bifrost تنها ۱۱ میکروثانیه تأخیر به هر درخواست اضافه میکند و مصرف توکن را در حالت Code Mode تا ۵۰٪ کاهش میدهد، هرچند این اعداد هنوز بهطور مستقل تأیید نشدهاند.
گام بعدی شما
برای ایمنسازی محیط خود در این هفته، این اقدامات را انجام دهید:
- فهرستی از تمام سرورهای MCP در تمام فایلهای پیکربندی خود، شامل نوع انتقال (Transport) و نام بسته تهیه کنید.
- تمام نسخهها را به جای
@latestروی یک شماره نسخه خاص تثبیت کنید. - توکنهای متنی را حذف کرده و آنها را به Keychain منتقل کنید.
- یک موجودی دستی از مجوزهای عاملها تهیه کرده و آن را در مخزن تیمی خود ثبت (Commit) کنید.
اما داستان سختافزاری این تحول حتی شگفتانگیزتر است — به تحلیل ما دربارهی تراشههای Blackwell مراجعه کنید.




گفتگو