نسخه مسمومشده (Poisoned) از افزونه محبوب Nx Console برای Visual Studio Code تنها حدود ۱۸ دقیقه در بازار رسمی VS Code Marketplace در دسترس بود. با این حال، این بازه زمانی کوتاه برای نصب توسط برخی توسعهدهندگان و تحویل اطلاعات حساس (Secrets) آنها کافی بود.
پیامدهای حمله و ابعاد نفوذ
این افزونه در مجموع بیش از ۲.۲ میلیون نصب داشته است، که باعث میشود حتی یک پنجره زمانی بسیار کوتاه، تعداد زیادی از سیستمها را در معرض خطر قرار دهد. گروه عامل این حمله، یعنی TeamPCP، اعلام کرده است که توانسته حدود ۳۸۰۰ مخزن (Repository) داخلی را از دستگاه یک کارمند GitHub سرقت کند. اگرچه GitHub اعلام کرده که شواهدی مبنی بر آسیب دیدن مخازن متعلق به مشتریان پیدا نشده، اما حجم دادههای سرقت شده بسیار نگرانکننده است.
تاریخچه و تاکتیکهای گروه TeamPCP
تحلیلها نشان میدهد که این حادثه یک اتفاق گذرا نیست، بلکه بخشی از یک کمپین گسترده است که از اواخر سال ۲۰۲۵ آغاز شده است. این گروه که انگیزههای مالی دارد، پیش از این نیز با هدف قرار دادن سیستمهای Build و ابزارهای امنیتی فعالیت کرده بود:
- حمله به Aqua Security: تزریق کدهای سرقت اعتبارنامه در اسکنر آسیبپذیری Trivy.
- هدف قرار دادن ابزارهای توسعه: نفوذ به ابزارهایی مانند Checkmarx KICS و LiteLLM.
- تغییر استراتژی: انتقال از خط لوله تولید نرمافزار (Build Pipelines) به سمت دستگاههای شخصی توسعهدهندگان از طریق افزونههای مخرب.
جزئیات فنی و روشهای خروج داده (Exfiltration)
کد مخرب در افزونه، به هر چیزی که توسعهدهنده به آن دسترسی دارد (مانند کد منبع، کلیدهای ابری و توکنهای GitHub) دسترسی پیدا میکند. این گروه از روشهای پیشرفته برای پنهانکاری استفاده میکند:
- رمزنگاری: دادههای سرقتی با استفاده از AES-256-CBC و کلید عمومی RSA-4096 رمزنگاری میشوند.
- روش جایگزین (Fallback): اگر آپلود دادهها به دامنه هدف شکست بخورد، کد مخرب یک مخزن با نام tpcp-docs در حساب GitHub قربانی ایجاد کرده و آرشیو سرقتی را به عنوان یک Release پیوست میکند. این کار باعث میشود ترافیک خروجی از حساب خود قربانی به نظر برسد و شناسایی آن دشوار شود.
توصیههای امنیتی برای تیمهای SOC و DevSecOps
برای مقابله با این تهدیدات، اقدامات زیر توصیه میشود:
- کنترل افزونهها: بررسی دقیق فعالیتهای افزونههای شخص ثالث (Third-party) پیش از استفاده.
- استفاده از SHA: قفل کردن (Pinning) کامل Commit SHA در جریانهای کاری (Workflows).
- اصل کمترین امتیاز (Least Privilege): اختصاص اعتبارنامههای کوتاهمدت از طریق OIDC به وظایف CI/CD.
- محدودسازی دسترسی: محدود کردن دسترسی عمومی به Docker APIs، کنترلکنندههای Kubernetes و سرورهای Redis.