هکرها با ربودن توکنهای اکانت npm توسعه دهندگان تیمهای rspack و Vant توانستند سه پکیج محبوب @rspack/core، @rspack/cli و Vant را به بدافزار آلوده کنند. این پکیجهای npm آلوده، قادر به نصب کریپتوماینرها بر روی سیستم قربانی میباشند.
در واقع این حمله زنجیره تامین که توسط محققان Sonatype و Socket مشاهده شده است، XMRig، استخراج کننده ارز دیجیتال را بر روی سیستمهای آلوده به بدافزار به منظور استخراج ارز دیجیتال Monero (مونرو) که به سختی قابل ردیابی است، نصب میکند.
جزئیات پکیجها
Rspack یک bundler جاوا اسکریپت با کارایی بالا است که به زبان Rust نوشته شده و در ساخت و بسته بندی پروژههای جاوا اسکریپت استفاده میشود. دو پکیج مربوط به Rspack یعنی @rspack/core و @rspack/cli به ترتیب دارای 394000 و 145000 دانلود در هفته از رجیستری npm میباشند.
Vant نیز یک کتابخانه UI سبک و قابل تنظیم Vue.js است که برای ساخت برنامههای کاربردی وب تلفن همراه طراحی شده است و کامپوننتهای رابط کاربری از پیش طراحی شده و قابل استفاده مجدد را ارائه میدهد. این پکیج نیز نسبتاً محبوب میباشد و 46000 بار در هفته در npm دانلود میشود.
بررسی فرآیند نفوذ
هکرها با دسترسی به توکنهای npm توسعه دهندگان پکیجهای @rspack/core، @rspack/cli و Vant توانستند برخی نسخههای آنها را (خصوصا نسخه ۱.۱.۷ پکیج Rspack و نسخههای ۲.۱۳.۳، ۲.۱۳.۴، ۲.۱۳.۵، ۳.۶.۱۳، ۳.۶.۱۴، ۳.۶.۱۵، ۴.۹.۱۱، ۴.۹.۱۲، ۴.۹.۱۳ و ۴.۹.۱۴ پکیج Vant) به کدهای مخرب آلوده کنند.
کدهای مخرب در فایلهای جاوا اسکریپت ‘support.js’ در @rspack/core و در فایل ‘config.js’ در ‘@rspack/cli’ پنهان شده و دستورالعملهای پیکربندی و فرماندهی و کنترل (C2) را از یک سرور خارجی دریافت میکنند.
فایلهای جاوا اسکریپت آلوده به طور خودکار از طریق اسکریپت postinstall اجرا میشوند و دادههای سیستم همچون موقعیت جغرافیایی و جزئیات شبکه سیستم قربانی را جمعآوری میکنند.
در نهایت باینری XMRig از یک مخزن GitHub دانلود شده و بر روی سیستم قربانی مستقر میگردد. این باینری به منظور عدم شناسایی در سیستم هدف، تغییر نام میدهد. نمونه آن باینری XMRig برای پکیج آلوده Vant است که نام خود را به ‘/tmp/vant_helper’ تغییر میدهد و در فایل سیستم ادغام میشود تا در سیستم قربانی پنهان بماند.
پاسخ توسعه دهندگان
هر دو تیم Rspack و Vant پس از کشف این حمله ضمن عذرخواهی از کاربران، به سرعت اقدام به حذف نسخههای آلوده از رجیستری npm کردند و نسخههای جدید و آپدیت شده (Rspack v1.1.8 و Vant v4.9.15) را منتشر کردند.
توسعه دهندگان اعلام کردند که توکنهای npm یکی از اعضای تیم آنها به سرقت رفته است. آنها از عدم حفاظت موثرتر از زنجیره تامین خود ابراز تأسف نمودند و متعهد به افزایش اقدامات امنیتی برای جلوگیری از حوادث مشابه آتی شدند.
سخن پایانی
این حمله سایبری، خطرات مداوم مرتبط با زنجیره تامین نرم افزار را برجسته میکند، به ویژه در اکوسیستمهای منبع باز که در آن package managerهایی مانند npm به طور گسترده استفاده میشوند. این امر بر نیاز به اتخاذ تدابیر امنیتی شدیدتر و سخت گیرانهتر در سیستمهای مدیریت پکیج به منظور حافظت از توسعه دهندگان در برابر حملات مشابه در آینده تاکید میکند.
منابع
مقالات پیشنهادی:
شناسایی بدافزار BeaverTail در پکیجهای npm آلوده
شناسایی پکیجهای جعلی و مخرب NPM با هزاران دانلود!
سوء استفاه از پکیجهای npm برای پنهان کردن کد بکدور
پکیجهای مخرب npm این بار کیف پولهای اتریوم را هدف قرار دادند
توزیع بدافزارهای Skuld infostealer و Blank Grabber توسط پکیجهای مخرب NPM
سوء استفاده از قراردادهای هوشمند اتریوم برای کنترل پکیجهای Typosquat شده npm
هکرهای کره شمالی، توسعه دهندگان را با پکیجهای مخرب npm مورد هدف قرار میدهند