یک کمپین بدافزاری جدید در اکوسیستم npm با استفاده از پکیج indexed-btree، روشی پیچیده برای دور زدن دفاعهای زنجیره تأمین (Supply Chain) به کار گرفته است. برخلاف حملات رایج که از اسکریپتهای نصب استفاده میکنند، این بدافزار کد مخرب خود را در رفتار عادی زمان اجرا (Runtime) پنهان کرده است.
تحلیل متدولوژی حمله
این پکیج که سعی در جعل کتابخانه معتبر sorted-btree دارد، توانسته است تا کنون حدود ۲ میلیون دانلود هفتگی جذب کند. نکته کلیدی این حمله، دور زدن تدابیر امنیتی اخیر GitHub و npm است که اسکریپتهای چرخه حیات (Lifecycle Scripts) مانند preinstall، install و postinstall را مسدود میکنند.
مهاجمان برای عبور از این سد، لودر بدافزار را در متد BTree.prototype.set() پنهان کردهاند. این متد یکی از توابع اصلی کتابخانه است که توسط توسعهدهندگان به طور مداوم فراخوانی میشود. در نتیجه، فرآیند نصب کاملاً پاک به نظر میرسد و هیچ هشدار امنیتی فعال نمیشود، اما به محض فراخوانی تابع با یک مقدار کلید خاص در زمان اجرا، مرحله اول بدافزار (فایل sharedLoad.min.js) فعال میگردد.
قابلیتها و ارتباطات C2
- جمعآوری دادهها: بدافزار اطلاعات سیستمی شامل معماری، Hostname، CPU، حافظه و Uptime را جمعآوری کرده و از طریق کانالهای سختافزاری (Hardcoded) در Slack و Telegram ارسال میکند.
- مدیریت دستورات: برای دریافت دستورات C2، بدافزار یک قرارداد هوشمند اتریوم (Ethereum Smart Contract) در شبکه تست Sepolia را بررسی میکند.
- رمزنگاری: از تبادل کلید X25519 برای استخراج کلید AES و رمزگشایی Payload مرحله دوم استفاده میشود.
- پاکسازی ردپاها: مهاجمان قابلیت حذف فایلهای بدافزار و پاک کردن Trigger مخرب از کد پکیج را دارند تا اثرات حمله را از بین ببرند.
توصیههای امنیتی
پژوهشگران تأکید میکنند که تکیه صرف بر اسکنهای زمان نصب (Install-time scanning) کافی نیست و باید از تحلیل رفتاری در زمان اجرا (Runtime Behavioral Analysis) استفاده شود. توسعهدهندگانی که از پکیج indexed-btree یا پکیجهای مرتبط استفاده کردهاند، باید سریعاً تمامی Secretها و کلیدهای دسترسی خود را تغییر داده و محیط توسعه را از یک بکآپ امن بازیابی کنند.