موج جدیدی از حملات زنجیره تأمین (Supply-Chain Attacks) نشان میدهد که عوامل تهدید با نفوذ به بستههای متنباز (Open-source) و استفاده از کانالهای بهروزرسانی مورد اعتماد، بدافزارهای سرقت اطلاعات حساس را مستقیماً وارد محیطهای توسعهدهندگان و سازمانها میکنند.
تکامل حملات: از Nx تا S1ngularity
در یکی از موارد، مهاجمان با سوءاستفاده از یک نقص در گردش کار GitHub Actions، توکنهای انتشار npm را سرقت کرده و نسخههای مخربی از بستههای Nx را منتشر کردند. این بستهها با اجرای اسکریپتهای post-install، سیستمها را برای یافتن دادههای حساس جستجو کرده و آنها را به مخازن عمومی گیتهاب ارسال میکردند.
آنچه کمپین S1ngularity را متمایز میکرد، سوءاستفاده از دستیارهای کدنویسی AI نصب شده روی سیستم قربانی بود. این بدافزار با فراخوانی ابزارهایی مانند Claude و Gemini، از آنها میخواست تا توکنهای npm، کلیدهای ابری (Cloud Keys)، متریالهای SSH و فایلهای محیطی (Environment Files) را شناسایی کنند. در واقع، مهاجمان به جای توسعه یک چارچوب پیچیده برای شناسایی، از ابزارهای AI خود کاربر برای یافتن اسرار (Secrets) با ارزش بالا استفاده کردند.
خود-انتشاری و مدل بازگشتی در Shai-Hulud
کمپین Shai-Hulud مرحله بعدی این تهدید را با قابلیت خود-انتشاری (Self-propagation) به نمایش گذاشت. این کرم (Worm) به جای تکیه بر آسیبپذیریهای نرمافزاری، توکنهای انتشار npm را از توسعهدهندگان آلوده میدزدید و از آنها برای انتشار نسخههای مخرب از بستههای دیگر استفاده میکرد. این روند باعث شد مسیر حمله از حالت خطی به حالت بازگشتی (Recursive) تغییر کند؛ به گونهای که هر توکن سرقت شده، نقطه شروع برای نفوذ به بستههای جدیدی میشد.
گسترش حملات و کمپین ChainDrop
طبق گزارش Microsoft Threat Intelligence، کمپین ChainDrop در ماه اوت بیش از ۴۰۰ بسته npm را با نسخهای از Mini Shai-Hulud آلوده کرد. این بدافزار که از یک Payload جاوااسکریپت مبتنی بر Bun استفاده میکرد، بیش از ۳۰۰ الگوی مختلف را برای استخراج Credentials در ابزارهای توسعه AI از جمله OpenAI، Cursor و Anthropic جستجو میکرد.
گزارشها حاکی از آن است که عملیات گروه TeamPCP احتمالاً منجر به به خطر افتادن بیش از ۱,۰۰۰ سازمان در سراسر جهان، افشای ۵۰۰,۰۰۰ مورد از اطلاعات احراز هویت و سرقت ۳۰۰ گیگابایت داده شده است.
توصیههای امنیتی برای مدیران SOC و CISOها
برای مقابله با این تهدیدات، سازمانها باید استراتژیهای زیر را اتخاذ کنند:
- مدیریت هویت: توکنهای انتشار npm باید به عنوان شناسههای حیاتی (Production-critical) تلقی شوند. استفاده از توکنهای کوتاهمدت و متصل به Workload از طریق OIDC توصیه میشود.
- اعمال اصل کمترین دسترسی (Least Privilege): محدود کردن دسترسی توکنهای مخازن و Registryها.
- پایش مستمر: نظارت دقیق بر رفتارهای غیرمنتظره در مراحل preinstall و postinstall هنگام بهروزرسانی وابستگیها (Dependencies).
- بررسی اصالت: الزام به بررسی Provenance و بازبینی تغییرات در بهروزرسانیهای نرمافزاری.