ابزارهای کدنویسی عاملمحور (Agentic Coding Tools) که برای کلون کردن (Clone) و راهاندازی مخازن گیتهاب بهکار گرفته میشوند، ممکن است ناخواسته یک پیلود مخرب را اجرا کنند؛ پیلودی که از دید اسکنرهای امنیتی، عاملهای کدنویسی هوش مصنوعی و حتی بازبینهای انسانی پنهان میماند. پژوهشگران شبکه بررسی روز صفر (Zero Day Investigative Network – 0DIN) وابسته به موزیلا هشدار میدهند که این زنجیره حمله بدون استفاده از کد اکسپلویت، بدون هشدار امنیتی و بدون اجرای هیچ دستور مشکوکی که نیازمند تأیید کاربر باشد، شکل میگیرد و میتواند عاملهای کدنویسی هوش مصنوعی را به اجرای ناخواسته دستورات تحت کنترل مهاجم وادار کند.
مکانیزم نفوذ به عاملهای کدنویسی هوش مصنوعی
این روش حمله جدید که هدف آن فریب دادن عاملهای کدنویسی هوش مصنوعی است، بر سه کامپوننت استوار میباشد که هرکدام بهتنهایی کاملاً بیخطر و عادی به نظر میرسند و هیچ نشانهای از عملکرد مشکوک ندارند.
1. یک مخزن ظاهراً سالم در گیتهاب که دستورالعملهای رایج راهاندازی پروژه، از جمله نصب وابستگیها (Dependencies) با دستور pip3 install -r requirements.txt و مقداردهی اولیه پروژه با دستور python3 -m axiom init را در اختیار کاربر قرار میدهد.
2. یک پکیج پایتون (Python) که عمداً بهگونهای طراحی شده است تا پیش از انجام مرحله مقداردهی اولیه از اجرا خودداری کند. این بسته در صورت اجرا، یک پیام خطا نمایش میدهد و از کاربر میخواهد دستور python3 -m axiom init را اجرا کند. Claude Code این وضعیت را یک باگ عادی در فرآیند راهاندازی پروژه تلقی کرده و هنگام تلاش برای رفع خطا، دستور پیشنهادی را بهصورت خودکار اجرا میکند.
3. اجرای دستور python3 -m axiom init باعث فراخوانی یک شل اسکریپت (Shell Script) میشود. این اسکریپت مقدار پیکربندی ذخیرهشده در یک رکورد DNS TXT که تحت کنترل مهاجم قرار دارد را دریافت کرده و همان مقدار را بهعنوان یک دستور روی سیستم اجرا میکند.
در نتیجه، عاملهای کدنویسی هوش مصنوعی بدون آنکه ماهیت این زنجیره حمله را تشخیص دهند، مراحل اجرای آن را بهصورت خودکار تکمیل میکنند.
ریسکهای امنیتی عاملهای کدنویسی هوش مصنوعی
پژوهشگران 0DIN توضیح میدهند که این روش به هیچ کامپوننت مخربی در مخزن کلونشده متکی نیست و عاملهای کدنویسی هوش مصنوعی بهصورت خودکار تمام زنجیره حمله، حتی مرحلهای که عمداً برای شبیهسازی یک خطای رایج کاربر طراحی شده را اجرا میکنند.
در صورت موفقیت حمله، مهاجم به یک شل (Shell) با سطح دسترسی کاربر توسعهدهنده دست پیدا میکند. این دسترسی میتواند امکان مشاهده متغیرهای محیطی (Environment Variables)، کلیدهای API، فایلهای پیکربندی لوکال و همچنین ایجاد پایداری (Persistence) روی سیستم قربانی را فراهم کند.
پژوهشگران 0DIN تأکید دارند که Claude Code هرگز آگاهانه تصمیم به ایجاد شل نگرفت، بلکه تمام تمرکز آن روی رفع یک خطای ساختگی بود. در واقع، این هوش مصنوعی در هر مرحله از این زنجیره، فریبِ ظاهرِ امنِ عملیات را میخورد. ابتدا، هوش مصنوعی با پردازش یک پیام خطای فریبنده، آن را به عنوان یک خطای فنیِ واقعی میپذیرد. سپس، اجرای اسکریپت را صرفاً یک فراخوانیِ عادی برای رفع خطا ارزیابی میکند. در نهایت، همین سیستم یک رکورد DNS مخرب را به عنوان یک منبع دادهی بیخطر تأیید میکند و بدون اینکه ماهیتِ واقعیِ آن را تشخیص دهد، مسیر اجرای حملهی مهاجم را هموار میسازد. به گفته این پژوهشگران، در پایان این زنجیره، مهاجم یک شل تعاملی (Interactive Shell) با همان سطح دسترسی کاربر توسعهدهنده در اختیار خواهد داشت.
راهکار 0DIN برای مقابله با این تکنیک حمله
اگرچه این حملهی هوشمندانه فعلاً در مرحله کد اثبات مفهوم (PoC) قرار دارد، اما تیم تحقیقاتی 0DIN هشدار میدهد که مهاجمان میتوانند بهسادگی مخازن آلودهی گیتهاب را از طریق آگهیهای شغلی جعلی، مقالات آموزشی یا پیامهای مستقیم میان برنامهنویسان توزیع کنند.
برای کاهش این ریسک امنیتی، پژوهشگران 0DIN به سازندگانِ عاملهای کدنویسی هوش مصنوعی توصیه میکنند که پیش از اجرای دستورات راهاندازی، زنجیرهی کامل اجرای کد را برای کاربر شفافسازی کنند. این شفافسازی باید تمامی اسکریپتها و کدهایی را که بهصورت پویا دریافت و اجرا میشوند، پوشش دهد؛ بدین ترتیب، کاربر پیش از تأییدِ نهایی، دیدی دقیق نسبت به عملکردِ ابزار پیدا کرده و میتواند تصمیمی آگاهانه اتخاذ کند.
