تخیل کنید عاملی که برای کمک به شما در کدنویسی طراحی شده، بدون هیچ محدودیتی بتواند کلیدهای خصوصی SSH شما را بخواند و آنها را به یک سرور خارجی ارسال کند. این سناریوی ترسناک، واقعیتِ فعلیِ بسیاری از استقرارهای عاملمحور (Agentic) است.
بر اساس دادههای منتشر شده در ۲۵ ژوئن ۲۰۲۶، یک پویش امنیتی روی ۱۲۰۰ مخزن عمومی گیتهاب نشان داد که ۲۰.۷٪ از فایلهای تنظیمات پروتکل زمینه مدل (MCP) دارای آسیبپذیریهای بحرانی یا سطح بالا هستند. طبق این گزارش، حتی یک مورد هم یافت نشد که هیچگونه شکاف امنیتی در سطح متوسط نداشته باشد؛ به عبارت دیگر، ۱۰۰٪ پیکربندیهای تحلیل شده حداقل یک نقص امنیتی متوسط داشتند.
در حالی که صنعت سالهاست روی فیلترهای پرامپت و حفاظها (Guardrails) تمرکز کرده تا مانع از تولید پاسخهای مضر توسط مدل زبانی بزرگ (LLM) — که شبیه کتابخانهداری است که میلیاردها صفحه را خوانده و حالا با همان لحن جواب میدهد — شود، یک شکاف عظیم در «تواناییهای عملی» عاملها وجود دارد. در همین راستا، راهکارهای پیشرفتهتری مانند لایه Aegis برای توقف نشت دادهها معرفی شدهاند تا با استفاده از سدهای ریاضی، امنیت عاملها را در سطح میلیثانیهای تضمین کنند. این مشکل که به آن «مشکل چپِ انفجار» (Left of Boom) میگویند، به این معناست که تا زمانی که یک فیلتر ایمنی خروجی بد را شناسایی کند، عامل پیش از آن دستور را اجرا کرده یا پایگاه داده را لو داده است. استاندارد MCP که در پلتفرمهایی مثل Claude، Cursor، VS Code و Windsurf استفاده میشود، در واقع مرز حساس میان یک دستیار مفید و ابزاری است که میتواند دستورات دلخواه را روی ماشین میزبان اجرا کند.

ابعاد گسترده آسیبپذیری
این پژوهش با جمعآوری فایلهای تنظیمات JSON از ۱۱۵۹ مخزن منحصربهفرد از طریق API جستجوی کد گیتهاب انجام شد. هدف این جستوجو بهطور خاص فایلهای claude_desktop_config.json حاوی mcpServers و گونههای مختلف .mcp.json و همچنین mcp_config.json بود. برای حفظ دقت دادهها و جلوگیری از هرگونه سوگیری، پژوهشگر قوانین سختگیرانهای را اعمال کرد: حداکثر سه فایل تنظیمات به ازای هر مخزن برای جلوگیری از سوگیری مخازن بزرگ (Monorepo)، حذف موارد تکراری با استفاده از هشهای محتوایی SHA-256 و رعایت فاصله زمانی ۷ ثانیهای بین صفحات API برای پایبندی به محدودیت ۱۰ درخواست در دقیقه گیتهاب.
یافتهها تکاندهنده است: از ۱۲۰۰ تنظیمات، در مجموع ۲۹۰۴ مورد آسیبپذیری یافت شد. جزئیات این توزیع به شرح زیر است: تنها ۳٪ (۸۸ مورد) برچسب «بحرانی» داشتند، اما نزدیک به ۱۰٪ (۲۸۰ مورد) در سطح «ریسک بالا» و بیش از ۸۷٪ (۲۵۳۶ مورد) در سطح «ریسک متوسط» بودند.
نکته حیاتی این است که در هیچکدام از ۱۲۰۰ مورد بررسی شده (صفر درصد)، محدودیتهای پاسخ (Response Limits) یا سقف جلسات (Session Caps) تعریف نشده بود. این موضوع عاملها را در برابر حملات «پُر کردن زمینه» (Context Stuffing) کاملاً باز میگذارد؛ جایی که یک ابزار مخرب، پاسخی بسیار حجیم برمیگرداند تا دستورات سیستمی و قواعد ایمنی را از پنجره متنی (Context Window) — که مثل میز کاری است که جا برای چند ورق دارد، نه برای کل کتابخانه — بیرون بیندازد و از حافظه فعال عامل پاک کند. نبود این تنظیمات ساده که تنها به دو خط کد در پیکربندی نیاز دارد، زنگ خطری جدی برای کل اکوسیستم است.
ریسکهای موجود در سرورهای محبوب
این تحلیل بهطور ویژه ۱۱ سرور محبوب MCP را که مجموعاً بیش از ۳۰۷ هزار ستاره در گیتهاب دارند، هدف قرار داد. پنج مورد از اینها دارای آسیبپذیریهای بحرانی بودند:
- Context7 (۵۸ هزار ستاره): نقاط اتصال MCP از راه دور را روی HTTPS بدون نیاز به احراز هویت باز گذاشته بود. هر کسی که URL را بداند، میتواند بدون کلید API، OAuth یا mTLS به آن متصل شود.
- Chrome DevTools MCP (۴۴ هزار ستاره): دسترسی کامل به پروتکل را بدون تایید انسانی (HITL) فراهم میکرد. این اجازه میدهد عاملها به جلسات فعال کروم متصل شده، جاوااسکریپت را در بستر صفحات اجرا کنند و بدنه پاسخهای شبکه حاوی اطلاعات شناسایی شخصی (PII) یا اعتبارنامهها را capture کنند.
- Serena (۲۶ هزار ستاره): اجازه اجرای نامحدود دستورات شل (Shell) را با دسترسی کامل کاربر میداد، که به جای یک مجموعه محدود از دستورات ایمن، دسترسی کامل به bash را فراهم میکرد.
- Activepieces (۲۳ هزار ستاره): فاقد احراز هویت در نقاط اتصال راه دور بود و در واقع یک REST API را بدون هیچگونه مکانیزم امنیتی مستقر کرده بود.
- mcp-chrome (۱۲ هزار ستاره): فقدان احراز هویت را با انتقال ناامن HTTP (به جای HTTPS) ترکیب کرده بود.
سایر سرورهای پرریسک شامل Google MCP Toolbox (۱۶ هزار ستاره) بود که از SQL نامحدود در بیش از ۲۰ پایگاه داده پشتیبانی میکرد، و n8n MCP (۲۲ هزار ستاره) که اجرای کد دلخواه را از طریق جریانهای کاری (Workflows) بدون گیتهای تایید انسانی ممکن میساخت. Figma MCP (۱۵ هزار ستاره) و FastMCP (۲۶ هزار ستاره) نیز به ترتیب با ریسکهای متوسط در زمینه تزریق محتوای خارجی و شکافهای ایمنی زمینه شناسایی شدند. برای درک بهتر چالشهای عملیاتی در این پروتکل، میتوان به بررسی ابزارهای MCP Server Toolkit اشاره کرد که تلاش میکند حدسهای اشتباه عاملهای کدنویس در پروژههای بزرگ را متوقف نماید.
مکانیسم حمله
دسترسی نامحدود به شل از طریق ابزارهایی مثل Serena زمانی که با قابلیت خواندن/نوشتن سیستم فایل ترکیب شود، بهشدت خطرناک است. یک تزریق پرامپت (Prompt Injection) — یعنی دستور مخفی شده در یک وبسایت که عامل آن را میخواند — میتواند به عامل دستور دهد کلید خصوصی SSH را از مسیر ~/.ssh/id_rsa بخواند و آن را به بیرون ارسال کند. چنین حملهای میتواند منجر به نصب یک Shell معکوس برای دسترسی دائمی، تغییر فایل .bashrc برای تداوم دسترسی (Persistence) یا سرقت اعتبارنامههای ابری از مسیر ~/.aws/credentials شود.
به همین ترتیب، Chrome DevTools MCP اجازه میدهد عامل در بستر یک صفحه وب جاوااسکریپت اجرا کند. اگر عامل در حال بررسی یک صفحه SSO شرکتی باشد، یک سایت مخرب میتواند آن را فریب دهد تا کوکیهای نشست (Session Cookies) را سرقت کند، محتویات Local Storage را بخواند یا درخواستها را تغییر دهد. این وضعیت اجازه میدهد مهاجم بهطور خاموش کوکیهای نشست Gmail، پورتالهای بانکی یا هویتهای شرکتی را استخراج کند، زیرا عامل بهطور خودکار و بدون هیچ گیت تایید انسانی عمل میکند.
معرفی Pluto AgentGuard
برای رفع این شکافها، پژوهشگر ابزار متنباز Pluto AgentGuard را منتشر کرد. این ابزار پایتونی که تحت لایسنس Apache 2.0 است، به عنوان یک «گیت امنیتی» (Security Launch Gate) عمل میکند. این ابزار کاملاً محلی اجرا میشود و بدون نیاز به کلید API، اتصال به ابر یا فراخوانی مدلهای LLM، میتواند ۱۲۰۰ تنظیمات را در حدود سه دقیقه با استفاده از تابع scan_mcp_config اسکن کند.
AgentGuard ریسکها را از طریق مکانیسمهای زیر شناسایی میکند:
- تشخیص بستههای خطرناک: استفاده از یک پایگاه داده منتخب از ۱۳+ سرور MCP شناختهشده که دسترسیهای پرریسک مثل کنترل مرورگر و نوشتن در پایگاه داده میدهند.
- تایید احراز هویت: شناسایی نقاط اتصال راه دور (
http://یاhttps://) که فاقد توکن یا هدرهای احراز هویت هستند. - بررسی انتقال: علامتگذاری اتصالاتی که بهجای HTTPS از HTTP برای ارتباطات راه دور استفاده میکنند.
- اسکن اسرار: استفاده از ۱۸+ الگوی Regex برای یافتن API Keyها، پسوردهای سختافزاری (Hardcoded) و کلیدهای خصوصی تعبیه شده در مقادیر تنظیمات.
- تحلیل شکافهای ایمنی: بررسی نبود تنظیماتی مثل
max_tokens،max_response_length،max_turnsوsession_timeout. - حسابرسی HITL: شناسایی سرورهای پرریسک که بدون گیتهای تایید انسانی پیکربندی شدهاند.
علاوه بر اسکن ساده از طریق دستور aguard scan ، این ابزار سه قابلیت متمایز دیگر را معرفی میکند:
۱. تست سیاستها (Policy Testing): دستور aguard test ۲۲ سناریوی حمله را در ۶ بسته مختلف اجرا میکند تا تزریق پرامپت، استخراج داده، افزایش سطح دسترسی (Privilege Escalation)، دستکاری زمینه، ریسکهای زنجیره تأمین و مهندسی اجتماعی را تست کند.
۲. شبیهسازی «چه میشود اگر» (What-if Simulation): دستور aguard whatif به توسعهدهندگان اجازه میدهد تغییرات سیاست امنیتی را شبیهسازی کنند و تفاوت امتیاز ریسک را قبل از اعمال تغییرات ببینند تا از پسرویهای امنیتی (Regressions) جلوگیری شود.
۳. تولید مستندات (Evidence Generation): دستور aguard evidence بستههای ساختاریافتهای (شامل نتایج اسکن و نقشهبرداری OWASP) برای بازبینیهای امنیتی سازمانی و تاییدهای نهایی پیش از انتشار ایجاد میکند.
سایر دستورات شامل aguard owasp برای تطبیق یافتهها با ۲۰ کنترل الهامگرفته از OWASP، دستور aguard baseline برای تشخیص تغییرات ناخواسته در تنظیمات (Configuration Drift) و aguard monitor برای بازپخش ردپاهای عامل (Agent Traces) و شناسایی فراخوانیهای غیرمجاز ابزارها است.
گامهای فوری برای رفع مشکل
برای کسانی که امروز عاملهای هوش مصنوعی مستقر میکنند، این چکلیست پنج-دقیقهای توصیه میشود تا این شکافها بسته شود:
- اسکن سریع (۳۰ ثانیه): نصب ابزار با دستور
pip install pluto-aguardو اجرایaguard scan ./your-project/برای شناسایی آسیبپذیریهای موجود. - افزودن محدودیت پاسخ (۱ دقیقه): اضافه کردن مقادیر زیر به هر سرور MCP در تنظیمات خود:
{"max_response_length": 8000, "max_turns": 20, "session_timeout": 3600}. - فعالسازی HITL (۲ دقیقه): برای سرورهایی مثل Chrome DevTools، Serena، یا هر سروری که قابلیت اجرای دستورات شل را دارد، تایید انسانی (Human-in-the-loop) را از طریق کلاینت خود (مثلاً در Claude Desktop، Cursor یا VS Code) فعال کنید.
- احراز هویت نقاط راه دور (۲ دقیقه): برای URLهای HTTPS، حتماً از هدرهای Authorization استفاده کنید:
{"mcpServers": {"my-server": {"url": "https://my-server.com/mcp", "headers": {"Authorization": "Bearer ${MCP_API_KEY}"}}}}.
در نهایت، توسعهدهندگان میتوانند Pluto AgentGuard را به عنوان یک GitHub Action (نسخه arpitha-dhanapathi/[email protected]) در خط لوله CI/CD خود ادغام کنند. این امر به تیمها اجازه میدهد Pull Requestهایی را که یافتههای HIGH یا CRITICAL معرفی میکنند مسدود کرده و نتایج را در قالبهای SARIF، JSON، Markdown یا HTML در تب Security گیتهاب آپلود کنند.
چرخش در امنیت عاملمحور
این دادهها نشان میدهد اکوسیستم عاملها در حال حاضر در فاز «سریع حرکت کن و چیزها را بشکن» است. در حالی که فناوری MCP با بیش از ۹۰ هزار ستاره در لیست awesome-mcp-servers و حمایت بومی پلتفرمهایی مثل Claude، Cursor و Windsurf بهسرعت در حال گسترش است، تنظیماتی که به محیط عملیاتی میروند، شبیه به وب اولیه در سال ۲۰۰۵ هستند: اعتماد مطلق، نبود احراز هویت و فقدان کامل محدودیتها.
با تبدیل شدن MCP به استاندارد دوفاکتو برای ارتباطات میان عامل و ابزار، صنعت باید لایه اقدام (Action Layer) را از نقطه کور خارج کند. امنیت باید به سمت «چپ» حرکت کند؛ یعنی ریسکها را در سطح پیکربندی، پیش از آنکه عامل توانایی اجرای دستور را پیدا کند، متوقف سازد. راهکارهای سادهای مثل هدرهای احراز هویت، محدودیتهای پاسخ و تایید انسانی، اگر بهطور سازگار در کل اکوسیستم اعمال شوند، تنها راه جلوگیری از شکستهای فاجعهبار در دنیای عاملهای هوش مصنوعی است.
گام بعدی شما
- اگر از افزونههای MCP در Cursor یا Claude Desktop استفاده میکنید، همین حالا تنظیمات خود را با
pluto-aguardبررسی کنید. - محدودیتهای
max_response_lengthرا به فایل JSON تنظیمات خود اضافه کنید تا از حملات Context Stuffing در امان بمانید. - برای هر ابزاری که دسترسی به Shell یا File System دارد، گزینه Human-in-the-loop را فعال کنید.
اما داستان سختافزاری این تحول حتی شگفتانگیزتر است — به تحلیل ما دربارهی تراشههای Blackwell مراجعه کنید.




گفتگو