یک ایشوی ساده در مخزن‌های عمومی گیت‌هاب می‌تواند عامل هوش مصنوعی این پلتفرم را فریب دهد و محتویات مخازن خصوصی سازمان‌ها را بدون هیچ‌گونه سرقت رمز عبور یا نفوذ مستقیم، در یک دیدگاه عمومی لو بدهد. محققان شرکت Noma Security این آسیب‌پذیری را تحت عنوان GitLost شناسایی کرده‌اند. این حمله مستقیماً هدف گردش‌کارهای عاملی (Agentic Workflows) گیت‌هاب قرار می‌گیرد.

ویژگی گردش‌کارهای عاملی گیت‌هاب که در فوریه راه‌اندازی شد، به توسعه‌دهندگان اجازه می‌دهد تا به جای کدنویسی اسکریپت‌های پیچیده، دستورالعمل‌های خود را به زبان طبیعی بنویسند. عامل هوش مصنوعی، ایشوها و پچ‌ریکوئست‌ها را اسکن کرده و به‌صورت خودکار پاسخ می‌دهد. وقتی یک سازمان به این عامل، توکن دسترسی خواندن در سراسر مخازن اعطا می‌کند، در واقع مسیر حمله را برای GitLost فراهم می‌سازد.

مکانیسم حمله بر پایه تزریق پرامپت غیرمستقیم

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

در آزمایش‌های تیم Noma، ایشوی مخرب به شکل یک درخواست اداری معمولی از سوی یک مدیر فروش پس از جلسه با مشتری شبیه‌سازی شد. گردش‌کاری که به آن هدف گرفته شده بود، طوری پیکربندی شده بود که هنگام اختصاص یافتن ایشو، فعال شود، محتوای آن را بخواند و در دیدگاه‌ها پاسخ دهد. خودکارسازی فعال‌سازی باعث شد عامل هوش مصنوعی، فایل Readme یک مخزن کاملاً خصوصی را استخراج کرده و مستقیماً در همان ایشوی عمومی قرار دهد.

گیت‌هاب پیش‌بینی این دسته از ریسک‌ها را داشته و در مستندات رسمی خود هشدار داده است که عامل‌های هوش مصنوعی ممکن است دستکاری شوند. پلتفرم از جعبه شنی، توکن‌های محدود به حالت خواندن، پاکسازی ورودی‌ها و یک لایه تشخیص تهدید برای اسکن خروجی‌ها پیش از انتشار استفاده می‌کند. با این حال، محققان نشان دادند که تغییر تنها یک کلمه کافی بود تا از این محافظ‌ها عبور کنند. اضافه کردن پیشوند «علاوه بر این» در ابتدای دستور مخرب، باعث شد مدل آن را به عنوان یک تکمیل‌کننده وظیفه قبلی تعبیر کند و گاردرایل‌ها اجازه انتشار آن را بدهند.

نمودار شماتیک مکانیسم نفوذ GitLost در گردش‌کارهای عاملی گیت‌هاب

تفاوت این حملات با مدل‌های سنتی

Sasi Levi، مدیر تحقیقات امنیتی در Noma Security، تفاوت اصلی را در سطح عملیاتی حمله می‌داند. حملات تزریق پرامپت پیش‌تر عمدتاً روی تغییر خروجی‌های متنی مدل تمرکز داشتند، اما در اینجا هدف تغییر رفتار عامل با استفاده از مجوزهای سازمانی است. عامل هوش مصنوعی در این سناریو، به جای یک چت‌بات ساده، یک فرآیند خودکار با دسترسی‌های سطح بالا در میان‌افزار توسعه نرم‌افزار محسوب می‌شود. مهاجم نیازی به سرقت توکن، حمله به سرورها یا حتی داشتن دسترسی نوشتن به فایل‌های خصوصی ندارد؛ تنها کافی است یک ایشوی عمومی ایجاد کند.

این چیدمان دقیقاً مصداق مفهومی است که در دنیای توسعه به «سه‌گانه کشنده» معروف است. ترکیب سه عنصر زیر، یک مسیر نشت اطلاعاتی بدون نیاز به مجوزها می‌سازد:

  • عاملی که به داده‌های محرمانه سازمان دسترسی دارد
  • توانایی دریافت و پردازش محتوای خارجی غیرقابل اطمینان
  • فاقد محدودیت در کانال خروج اطلاعات

محققان تأکید می‌کنند که GitLost یک باگ کدنویسی نیست که با انتشار یک پچ ساده مرتفع شود؛ بلکه پیامد ساختاریِ اعطای اعتبارنامه‌های پراکنده به سیستم‌های هوش مصنوعی در کنار پردازش متن‌های قابل دسترس عمومی است.

الگوی تکرارشونده در اکوسیستم توسعه

این آسیب‌پذیری تنها نمونه اخیر در زنجیره‌ای از حملات مشابه است که هدف بسترهای توسعه کد قرار گرفته‌اند. ماه‌های گذشته گزارش شد که یک نقص در اکشن گیت‌هاب مربوط به Claude Code توسط Anthropic، عامل هوش مصنوعی را وادار به نشت متغیرهای محیطی و کسب دسترسی نوشتن می‌کند. همچنین تحقیقات Orca Security تحت عنوان RoguePilot نشان داد که چگونه می‌توان با پرامپت‌های پنهان، توکن‌های ادمین مخازن را تنها با ارسال یک ایشوی عمومی استخراج کرد.

پویایی پیچیده بین خودکارسازی مبتنی بر هوش مصنوعی و لایه‌های ایمنی در سازمان‌ها، نشان می‌دهد که مدل‌های سنتی فایروال و مدیریت دسترسی به تنهایی دیگر پاسخگوی چالش‌های جدید نیستند. طراحی معماری این عامل‌ها نیازمند بازتعریف مرزهای اعتماد در زیرساخت‌هاست تا از تکرار آسیب‌پذیری‌هایی مانند GitLost جلوگیری شود. آینده توسعه نرم‌افزار به سمت ادغام عمیق‌تر عوامل هوشمند می‌رود، اما این مسیر تا زمانی که مکانیزم‌های جداسازی دسترسی و اسکن‌های دینامیک پیشرفته در لایه هسته پلتفرم‌ها نهادینه نشوند، با ریسک‌های ساختاری همراه خواهد بود.