معرفی: ASSET و روش GhostSplice

گروه پژوهشی ASSET نشان داده است که سرورهای ابزار مخربِ متصل به دستیارهای کدنویسی می‌توانند با تقسیم یک دستور مخرب به چند قطعهٔ به‌ظاهر بی‌خطر، بدون ارسال متن آشکارِ دستور مخرب، کلیدهای SSH، فایل‌های محیطی، کد منبع و داده‌های مشتری را از محیط محلی عامل استخراج کنند.

نحوهٔ عملکرد حمله

حمله ابزارهایی را هدف قرار می‌دهد که از پروتکل متنِ مدل (Model Context Protocol — MCP) برای اتصال به سرورهای خارجی استفاده می‌کنند. مهاجم قطعه‌ای از درخواست را در توضیحات ابزار می‌گذارد و قطعهٔ بعدی را در نتیجهٔ ابزار یا تعاملات بعدی قرار می‌دهد. هر کدام از قطعات به‌تنهایی محتوای آشکاراً مخربی ندارند، اما عامل‌ها می‌توانند این قطعات را در همان کانتکست کاری کنار هم قرار دهند و یک دستور ضمنی برای جمع‌آوری و ارسال فایل‌های محلی حساس ایجاد شود.

مثال مرجع: ابزار integrity_checker

در پیاده‌سازی مرجع، سرور یک ابزار به‌ظاهر بی‌ضرر با نام integrity_checker اعلام می‌کند که چهار فیلد ساده—alpha تا delta—دارد. نتیجهٔ اسکن پروژه نقشه‌ای نشان می‌دهد که هر فیلد باید با محتواهای حساس مثل .ssh/id_rsa، بخش‌هایی از کد اختصاصی، customers.csv و .env پر شود تا «اعتبارسنجی هش سمت سرور» انجام شود. اگر عامل هر دو قطعه را کنار هم بنشاند، دستور ضمنیِ جمع‌آوری و ارسال فایل‌های محلی شکل می‌گیرد.

نمونه تعامل GhostSplice بین توضیحات ابزار و نتیجه اسکن

نتایج آزمایش‌ها

ASSET گزارش کرده که تقسیم درخواست به دو بخش باعث افزایش قابل‌توجه پاسخ‌دهی برخی مدل‌ها شده است: میانگین تطابق 11 مدل آزمایش‌شده از طریق API از 42% به 82% افزایش یافت. در مجموعهٔ 15 مدل، مواردی مثل GPT-4o، Gemini 2.0 Flash و Llama 3.3 70B از 0% در حالت یک‌تکه به 100% در حالت دو‌تکه رسیدند. نتایج بسته به کلاینت، روش فراخوانی ابزار (API، Cursor، Codex CLI) و کنترل‌های محیطی متفاوت بود؛ برای مثال Claude Haiku 4.5 در یک سناریوی API برابر با 0% ماند، اما در آزمایشی سه‌تکه از طریق Cursor به 100% رسید.

این اعداد نشان‌دهندهٔ شرایط خاص آزمایشی‌اند و نباید به‌عنوان معیار کلی امنیت یک مدل تفسیر شوند. در برخی آزمایش‌ها مدل‌هایی که در جدول 0% ثبت شده‌اند، در شرایط دیگر محتوای حساس یا کلیدهای هاردکد را ارسال کردند؛ بنابراین نتایج وابسته به تنظیمات و نمونه‌های تست هستند.

محدودیت‌های تکنیک

  • GhostSplice روش نفوذ بیرونی به عامل‌ها را فراهم نمی‌کند: حمله مستلزم اتصال پیشین سرور MCP مهاجم توسط توسعه‌دهنده یا یکپارچه‌ساز است.
  • عامل باید از پیش امکان خواندن فایل‌های محلی هدف را داشته باشد؛ بنابراین مسئلهٔ اصلی ضعف دسترسی یا پیکربندی نادرست است که مهاجم از آن سوءاستفاده می‌کند.

چرا قالب ساده مؤثر بود

دستورهای پیچیده یا توضیحات حکومتی معمولاً مدل را به پرسش وادارده و از اجرای عمل اجتناب می‌کنند، اما فرم‌های سادهٔ «پرکن جای خالی» (fill-in-the-blank) مدل را به پاسخ‌دهی تشویق کردند. از منظر مدل، پرکردن فیلدهای درخواستی ابزار رفتاری طبیعی است و بررسی صریح دستور را شامل نمی‌شود.

اقدامات فوری و توصیه‌های عملی

ASSET توصیه‌های مشخصی برای کاهش خطر منتشر کرده است؛ مهم‌ترین نکات قابل اجرا برای تیم‌های توسعه و اپراتورها عبارت‌اند از:

  • صرف‌نظر از منابع، خروجی سرور را تنها به‌عنوان داده در نظر بگیرید و از تفسیر آن به‌عنوان دستور یا آرگومان برای ابزارهای دیگر خودداری کنید.
  • محدودسازی دسترسی فایل برای عامل‌ها و سرویس‌های متصل؛ حق دسترسی‌ها را بر اساس کمترین امتیاز لازم اعمال کنید.
  • بازبینی و ممیزی هر یکپارچه‌سازی MCP از طرف سوم قبل از اعطای دسترسی.
  • اعمال فیلترینگ و صف‌بندی روی مقادیر ورودی/خروجی ابزارها تا از جریان مستقیم خروجی سرور به آرگومان ابزار دیگر جلوگیری شود.
  • پیش از تولید، آزمایش‌های کنترل‌شده با الگوهای تقسیم‌شدهٔ دستور انجام دهید تا واکنش مدل‌ها و کلاینت‌ها سنجیده شود.
  • در کلاینت‌ها مکانیزم‌های تأیید انسانی یا بررسی خودکار نت‌نوشته‌ها (annotations) را برای فراخوانی ابزارها فعال نگه دارید.

زمینه و سوابق پژوهشی

GhostSplice ادامهٔ پژوهش قبلی Ghostcommit است؛ در کارهای پیشین نشان داده شد که دستورات یا نشانه‌ها را می‌توان در فایل‌های غیرمستقیم (مثلاً PNG) مخفی کرد تا عامل‌های کدنویسی فریب بخورند. هر دو افشاگری یک ضعف مشترک را نشان می‌دهند: مرزبندی‌های حفاظتی اطراف مدل اغلب به اندازهٔ خود مدل حساس‌اند و نیاز به بازتعریف و تقویت دارند.

منابع و پیگیری

برای درک جزئیات مرتبط می‌توان به منابع عمومی مراجعه کرد، از جمله توضیحات پروتکل‌ها و استانداردها. نمونه‌هایی از منابع مفید:

ASSET اعلام کرده آزمایش‌ها در محیط‌های ایزوله و با اعتبارنامه‌های ساختگی انجام شده و انتشار شناسه‌های CVE به‌صورت هماهنگ در دستور کار قرار دارد. تیم‌های توسعه باید فوراً یکپارچه‌سازی‌های MCP را بازبینی و جریان داده میان ابزارها را کنترل کنند.

نگاه رو به جلو

با رشد ابزارهای خارجی در اکوسیستم‌های کدنویسی هوش مصنوعی، امنیت لایهٔ کلاینت و قوانین روشن برای جریان‌دهی داده میان ابزارها باید در اولویت قرار گیرند. سازمان‌ها و سازندگان کلاینت اکنون فرصت دارند مرزهای حفاظتی را بازتعریف کرده و سیاست‌های دقیق اعمال کنند تا از بهره‌برداری‌هایی مانند GhostSplice جلوگیری و افشای ناخواستهٔ اسرار را به حداقل برسانند.