محققان امنیت سایبری موفق به شناسایی یک کمپین پیچیده در اکوسیستم npm شده‌اند که هفت بسته مخرب را برای هدف‌گیری توسعه‌دهندگان Vite، ابزار قدرتمند بیلد فرانت‌اند، به کار گرفته است. این حملات که توسط شرکت Checkmarx با نام رمز ViteVenom نام‌گذاری شده، نشان‌دهنده گسترش کمپین قبلی ChainVeil است که از یک زیرساخت فرماندهی و کنترل (C2) چهار لایه و مبتنی بر بلاکچین استفاده می‌کرد.

زیرساخت بی‌سابقه C2 روی زنجیره بلوکی

در این حملات، مهاجمان از یک زیرساخت بلاکچین سه لایه شامل شبکه‌های Tron، Aptos و Binance Smart Chain (BSC) برای ارسال یک تروجان دسترسی از راه دور (RAT) استفاده کرده‌اند. این بدافزار قابلیت‌های خطرناکی نظیر شل معکوس (Reverse Shell)، جمع‌آوری اعتبارنامه‌های کاربری، خروج فایل‌ها و تزریق درب پشتی (Backdoor) دائمی را دارد.

«این تاکتیک، غیرفعال کردن یا نابود کردن زیرساخت C2 را بسیار دشوار می‌کند»، پاوان گودیمالا، محقق ارشد Checkmarx در این باره می‌گوید. تمام این فعالیت‌ها به یک تهدیدکننده با نام SuccessKey نسبت داده شده که آثار فعالیت مخرب آن از ۲۷ فوریه ۲۰۲۶ (اوایل اسفند ۱۴۰۴) شناسایی شده است.

لیست بسته‌های آلوده

بسته‌های npm شناسایی شده که بین ۲۹ ژوئن تا ۳ ژوئیه ۲۰۲۶ (۸ تا ۱۲ تیر ۱۴۰۵) منتشر شده‌اند، همگی با استفاده از نام‌های اسکوپ‌دار (Scoped) تلاش کرده‌اند تا فضای نام رسمی @vitejs/* را جعل کنند. این بسته‌ها عبارتند از:

  • @uw010010/vite-tree (1070 دانلود)
  • @vite-tab/tab (289 دانلود)
  • @vite-ln/build-ts (252 دانلود)
  • @vite-mcp/vite-type (239 دانلود)
  • @vite-pro/vite-ui (200 دانلود)
  • @vitets/vite-ts (194 دانلود)
  • @vite-ts/vite-ui (176 دانلود)

نکته مهم این است که برخلاف حملات ChainVeil که از تایپواسکوات‌های بدون اسکوپ استفاده می‌کرد، ViteVenom با بهره‌گیری از اسکوپ، ظاهری موجه و قانونی به بسته‌های خود بخشیده است.

مکانیزم اجرای کد و فرار از آنتی‌ویروس

کد مخرب در این حملات برخلاف بسیاری از بدافزارهای npm، در زمان نصب اجرا نمی‌شود، بلکه در زمان import یا بارگذاری ماژول فعال می‌شود. این ویژگی باعث می‌شود که سیستم‌های امنیتی Endpoint نتوانند به راحتی آن را شناسایی کنند. روند اجرا به این صورت است:

  1. بدافزار ابتدا به بلاکچین Tron متصل شده و آخرین تراکنش از کیف‌پول مهاجم را جستجو می‌کند.
  2. فیلد داده تراکنش‌ها را رمزگشایی و معکوس می‌کند تا یک هش تراکنش در شبکه BSC به دست آورد.
  3. سپس این تراکنش BSC را بررسی کرده و محموله رمزگذاری‌شده را از فیلد ورودی آن استخراج می‌کند.
  4. در نهایت با استفاده از یک کلید سخت‌کد شده (Hard-coded Key)، محموله را رمزگشایی و اجرا می‌کند.

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

مکانیسم پشتیبان و بازگشتی

در صورت خرابی روش اولیه، بدافزار از Aptos به عنوان پشتیبان استفاده می‌کند. همچنین یک مکانیسم بازگشتی (Fallback) وجود دارد که RAT را مستقیماً از سرور C2 از طریق پروتکل HTTP دریافت کرده و کاملاً بلاکچین را دور می‌زند.

جالب اینجاست که هر دو کمپین ChainVeil و ViteVenom از زیرساخت مشترک لایه ۲ استفاده می‌کنند. به عبارت دقیق‌تر، آدرس کیف‌پول Tron و حساب Aptos در هر دو کمپین یکسان است و به یک تراکنش واحد در Binance Smart Chain منتهی می‌شود.

اقدامات ضروری برای توسعه‌دهندگان

به کاربرانی که این بسته‌های آلوده را نصب کرده‌اند، اکیداً توصیه می‌شود:

  • فوراً این بسته‌ها را حذف کنند.
  • کلیه وابستگی‌ها و فایل‌های package.json را بازبینی کنند.
  • تمام اعتبارنامه‌ها و رمزهای عبور خود را تغییر دهند.
  • به دنبال تغییرات غیرمجاز در فایل‌های پیکربندی ترمینال مانند .bashrc، .zshrc و .profile بگردند.

این حادثه بار دیگر اهمیت امنیت زنجیره تامین نرم‌افزار را یادآور می‌شود و نشان می‌دهد که استفاده از بسته‌های npm با منبع نامشخص می‌تواند عواقب جبران‌ناپذیری داشته باشد. توسعه‌دهندگان باید قبل از نصب هر بسته، از صحت و اصالت آن اطمینان حاصل کنند و از ابزارهای اسکن امنیتی نظیر Snyk یا npm audit استفاده نمایند.

محققان Checkmarx تأکید می‌کنند که تفاوت‌های سطحی مانند نام بسته‌های مختلف، حساب‌های مجزای نگهدارنده و کیف‌پول‌های متفاوت لایه ۱، دقیقاً نشانه یک اپراتور واحد است که مسیرهای توزیع مختلفی را برای محدود کردن افشاگری (Exposure) ایجاد کرده است.