گزارشهای اخیر Checkmarx حاکی از شناسایی یک کمپین گسترده در اکوسیستم NPM است که طی آن، بستههای مخرب با استفاده از تکنیکهای پیشرفته، توانستهاند میلیونها بار دانلود شوند. این حمله با هدف دور زدن مکانیزمهای حفاظتی NPM و ابزارهای امنیتی طراحی شده است.
روش ترویج و جلب اعتماد
برخلاف بسیاری از حملات که بر روی بستههای بسیار محبوب تمرکز میکنند تا سریعاً منتشر شوند، مهاجم در این مورد خاص ابتدا سعی کرده است با ایجاد یک مخزن (Repository) در GitHub، اعتماد کاربران را جلب کند. مهاجم با ثبت Commitهای متعدد و ظاهراً قانونی، تصویری از یک پروژه معتبر ارائه داد تا شک کاربران و ابزارهای تحلیل را برانگیزد.
تحلیل فنی مکانیسم اجرا
بسته مخرب با نام indexed-btree که از ابزار قانونی sorted-btree تقلید میکرد، توانست به رکورد ۲ میلیون دانلود هفتگی برسد. نکته کلیدی در این حمله، عدم استفاده از install script (که معمولاً توسط ابزارهای امنیتی شناسایی میشود) و جایگزینی آن با پنهان کردن کد مخرب در JavaScript prototype code است. کد فعالساز در متد BTree.prototype.set قرار داده شده بود تا پس از فراخوانی تابع اصلی کتابخانه، مرحله اول بدافزار اجرا شود.
زنجیره عملیاتی و C&C
پس از اجرای کد، بدافزار اقدامات زیر را انجام میدهد:
- جمعآوری اطلاعات سیستم و ارسال آنها به کانالهای Slack و Telegram.
- اتصال به یک قرارداد هوشمند (Smart Contract) در شبکه Sepolia که به عنوان سرور فرماندهی و کنترل (C&C) عمل میکند.
- استخراج و رمزگشایی مرحله دوم بدافزار از طریق قرارداد بلاکچینی و سپس پاکسازی ردپای عملیات.
تحقیقات نشان میدهد که این مهاجم پیشتر در بسته mutex-forge نیز فعال بوده و تخمین زده میشود که حدود ۱۰۹ اتریوم (نزدیک به ۳۰۰ هزار دلار) از این طریق به دست آورده باشد.
بستههای شناسایی شده
علاوه بر indexed-btree، بستههای دیگری نظیر ordered-kv-index، btree-leaderboard، priority-slot-queue و چندین بسته دیگر با پیشوند btree شناسایی شدند که در مجموع بیش از ۵ میلیون بار دانلود شده بودند و سپس حذف گردیدند.