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

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

همسایه‌ای که فراموش کردید بازرسی کنید

به این فکر کنید که دستیار شما واقعاً کجا قرار دارد. اگر از GitHub Copilot، Cursor، Continue یا هر ابزار مشابه دیگری استفاده می‌کنید، احتمالاً این ابزار به فایل‌های باز، ساختار پروژه و گاهی اوقات به کل سیستم فایل محلی شما دسترسی خواندن دارد. این ابزارها توکن‌های احراز هویت را در مکان‌های قابل پیش‌بینی روی دیسک ذخیره می‌کنند. آن‌ها داخل IDE شما اجرا می‌شوند، که خودِ IDE نیز با مجوزهای کاربری شما اجرا می‌شود. این بدان معناست که یک بدافزار که ایستگاه کاری شما را آلوده می‌کند، نیازی ندارد کورکورانه به دنبال اعتبارنامه‌ها بگردد؛ دستیار هوش مصنوعی از قبل کلیدهای جالب را در یک مکان مناسب جمع‌آوری کرده است.

این یک نقص معماری فرضی نیست. Djinn Stealer دقیقاً برای بهره‌برداری از همین ساختار ساخته شده است. این ابزار به‌طور مشخص اعتبارنامه‌های توسعه‌دهنده و نشست‌های (sessions) ابزارهای هوش مصنوعی را هدف قرار می‌دهد. به‌جای جست‌وجوی تمام گوشه و کنار یک سیستم فایل، مستقیماً به سراغ توکن‌هایی می‌رود که جریان کاری کدنویسی شما را هدایت می‌کنند. اگر دستیار شما برای GitHub، GitLab یا یک ارائه‌دهنده ابری احراز هویت شده باشد، سرقت آن نشست، چیزی فراتر از کد به مهاجم می‌دهد؛ این کار هویت شما را به آن‌ها می‌دهد. آن‌ها می‌توانند با نام شما کامیت‌ها را ارسال کنند، مخازن خصوصی را بخوانند و همان APIهایی را که روزانه استفاده می‌کنید، بررسی کنند.

Djinn Stealer: شکار کلیدهای قلمرو شما

وقتی Djinn Stealer وارد یک ماشین می‌شود، مانند سارقی باهوش رفتار می‌کند که می‌داند کدام کشوها حاوی کلیدهای یدکی هستند. این ابزار به دنبال دایرکتوری‌های پیکربندی ابزارهای هوش مصنوعی، ذخیره‌سازهای نشست مرورگر و فایل‌های اعتبارنامه‌ای می‌گردد که توسعه‌دهندگان در طول ماه‌ها کار جمع‌آوری کرده‌اند. این سارق می‌داند که محیط‌های توسعه مدرن، دسترسی‌ها را متمرکز می‌کنند. یک توکن OAuth برای دستیار هوش مصنوعی شما می‌تواند با دسترسی به مخازن بسته‌ها (package registries)، مخازن کانتینر و APIهای زیرساختی هم‌پوشانی داشته باشد.

زمانی که توسعه‌دهندگان کدهای اثبات مفهوم (proof-of-concept) را به‌صورت محلی تست می‌کنند، این ریسک چندین برابر می‌شود. شما یک مخزن جالب را از یک محقق امنیتی کلون می‌کنید، اسکریپتی را برای دیدن نحوه عملکرد آن اجرا می‌کنید و آن اسکریپت به‌طور بی‌صدا یک جمع‌آوری‌کننده اعتبارنامه (credential harvester) را در پس‌زمینه اجرا می‌کند. از آنجایی که توکن‌های دستیار هوش مصنوعی شما در مسیرهای استاندارد زیر دایرکتوری home قرار دارند، سارق می‌تواند پیش از آنکه شما خواندن README را تمام کنید، آن‌ها را استخراج کند. بدترین بخش این است که این توکن‌ها اغلب از SSO شرکتی عبور می‌کنند، زیرا برای ابزارهای بهره‌وری تولید شده‌اند، نه سیستم‌های عملیاتی (production).

ChocoPoC: وقتی وابستگی‌ها دروغ می‌گویند

در حالی که Djinn Stealer به خانه هجوم می‌برد، ChocoPoC از طریق شکاف صندوق پست نفوذ می‌کند. این تهدید مسیرهای مخرب را در داخل وابستگی‌های Python، به‌ویژه بسته‌هایی با نام‌های frint و skytext پنهان می‌کند. بارگذاری مخرب (payload) در اسکریپت قابل مشاهده‌ای که یک بازبینی گذرا بتواند آن را شناسایی کند، قرار ندارد؛ در عوض، خود را در لایه‌های عمیق‌تر دفن می‌کند،