سه بسته محبوب npm، شامل @rspack/core، @rspack/cli و Vant، از طریق توکنهای حساب npm دزدیدهشده به خطر افتادهاند و این امر به مهاجمان اجازه داده تا نسخههای مخربی را منتشر کنند که اقدام به نصب استخراجکنندههای رمزارز (cryptominers) میکنند.
حمله supply chain، که توسط محققان Sonatype و Socket شناسایی شد، ماینر رمزارز XMRig را در سیستمهای به خطر افتاده مستقر کرد تا رمزارز حریم خصوصی سختردیابی مونرو (Monero) را استخراج کند.
Sonatype تأیید کرده است که هر سه بسته نرمافزاری npm بهطور همزمان و در یک روز مشخص با یک نوع حمله یا نقض امنیتی مواجه شدهاند و این حمله بر نسخههای مختلف این بستهها تأثیر گذاشته است.
Rspack ابزاری است که به توسعهدهندگان کمک میکند کدهای جاوااسکریپت خود را بهینهسازی و بستهبندی کنند. این ابزار به زبان Rust نوشته شده که به دلیل سرعت و کارایی بالا در پردازش، عملکرد Rspack را بهبود بخشیده و آن را به گزینهای مناسب برای پروژههای مدرن جاوااسکریپت تبدیل کرده است.
دو بسته مهم از ابزار مورد نظر، شامل مؤلفه هستهای و ابزار خط فرمان آن، هدف حمله قرار گرفتهاند. این دو بسته هر هفته به تعداد زیادی دانلود میشوند (به ترتیب ۳۹۴,۰۰۰ و ۱۴۵,۰۰۰ بار)، که نشاندهنده میزان محبوبیت و استفاده گسترده آنها در میان توسعهدهندگان است.
یک کتابخانه رابط کاربری (UI) برای چارچوب Vue.js است که بهطور خاص برای توسعه برنامههای وب موبایل طراحی شده. این کتابخانه مؤلفههای از پیش طراحیشده و قابل استفاده مجددی را فراهم میکند تا فرآیند توسعه سریعتر و کارآمدتر شود. محبوبیت آن نیز با ۴۶,۰۰۰ دانلود هفتگی در npm نشان داده میشود.
فعالیت استخراج رمزارز
کد مخرب در فایل support.js در بسته @rspack/core و در فایل config.js در بسته @rspack/cli پنهان شده است و پیکربندی و دستورالعملهای کنترل و فرمان (C2) خود را از یک سرور خارجی دریافت میکند.
بدافزار از اسکریپت postinstall در npm استفاده میکند تا بهصورت خودکار هنگام نصب بسته اجرا شود.
پس از اینکه برنامه یا بدافزار اجرا شد، بهطور خودکار اطلاعاتی مانند موقعیت جغرافیایی و جزئیات شبکه سیستم قربانی (مانند آدرس IP یا دیگر مشخصات شبکه) را جمعآوری میکند. این اقدام معمولاً برای شناسایی محل قربانی یا انجام حملات هدفمند انجام میشود.
Socket توضیح میدهد که بدافزار یا برنامه مخرب از طریق تماس با API موقعیت جغرافیایی (که در http://ipinfo.io/json قرار دارد) میتواند اطلاعاتی از جمله آدرسهای IP، موقعیت جغرافیایی و سایر جزئیات شبکه سیستم قربانی جمعآوری کند. این اطلاعات معمولاً برای شناسایی محل و جزئیات شبکه قربانی استفاده میشود.
چنین شناساییای معمولاً برای سفارشیسازی حملات بر اساس موقعیت جغرافیایی یا پروفایل شبکه کاربر استفاده میشود.
فایل باینری XMRig از یک مخزن GitHub دانلود میشود و برای بسته آلوده Vant، نام آن به ‘/tmp/vant_helper’ تغییر داده میشود تا هدف خود را پنهان کند و درون سیستم فایل مخفی بماند.
فعالیت استخراج رمزارز برای بهینهسازی عملکرد و در عین حال پنهانکاری از شناسایی، از پارامترهایی استفاده میکند که مصرف CPU را به ۷۵% از قدرت پردازشی موجود محدود میکند. این تنظیمات باعث میشود تا استخراج رمزارز بهطور مؤثر انجام شود، در حالی که بهطور همزمان شانس شناسایی شدن سیستم بهعنوان یک دستگاه آلوده کاهش یابد.
Ax Sharma از شرکت Sonatype اشاره کرده است که در بستههای نرمافزاری Rspack که به خطر افتادهاند، یک آدرس مونرو پیدا شده است. این آدرس معمولاً برای استخراج غیرمجاز رمزارز استفاده میشود.
۴۷۵NBZygwEajj4YP2Bdu7yg6XnaphiFjxTFPkvzg5xAjLGPSakE68nyGavn8r1BYqB44xTEyKQhueeqAyGy8RaYc73URL1j
پاسخ به نقض امنیتی
بستههای Rspack و Vant اعلام کردند که حسابهای NPM آنها هک شده است. برای رفع این مشکل، نسخههای جدید و پاکسازیشده از بستههای خود را منتشر کردند و از جامعه نرمافزاری بهخاطر عدم توانایی در محافظت از زنجیره تأمین امنیتی خود عذرخواهی کردند.
در تاریخ ۱۹ دسامبر ۲۰۲۴، توسعهدهندگان Rspack اعلام کردند که بستههای @rspack/core و @rspack/cli آنها هدف حمله قرار گرفتهاند. مهاجم نسخهای از بستهها (v1.1.7) را با استفاده از توکن npm دزدیدهشده منتشر کرده که شامل کد مخرب بوده است. پس از شناسایی مشکل، توسعهدهندگان بهسرعت اقداماتی برای رفع آن انجام دادند.
توسعهدهنده Vant اعلام کرده است که یک مشکل امنیتی را با انتشار نسخه جدیدی از بسته خود برطرف کردهاند. این مشکل بهدلیل سرقت یکی از توکنهای npm اعضای تیم و استفاده از آن برای انتشار نسخههای آسیبپذیر ایجاد شده بود. پس از شناسایی مشکل، تیم Vant اقدام به رفع آن کرده و نسخه جدید را منتشر کرده است.
نسخه آلوده Rspack که باید از آن اجتناب کنید، نسخه ۱٫۱٫۷ است که شامل کد مخرب استخراج رمزارز میباشد.
توصیه میشود که کاربران Rspack به نسخه v1.1.8 یا نسخههای جدیدتر ارتقا دهند. نسخه قبلی (v1.1.6) نیز از نظر امنیتی ایمن است، اما نسخه جدیدتر (v1.1.8) شامل تدابیر امنیتی اضافی برای افزایش حفاظت است.
در مورد Vant، باید از نسخههای آلوده متعدد اجتناب شود. این نسخهها عبارتند از: ۲٫۱۳٫۳، ۲٫۱۳٫۴، ۲٫۱۳٫۵، ۳٫۶٫۱۳، ۳٫۶٫۱۴، ۳٫۶٫۱۵، ۴٫۹٫۱۱، ۴٫۹٫۱۲، ۴٫۹٫۱۳ و ۴٫۹٫۱۴٫
به کاربران توصیه میشود که به نسخه Vant v4.9.15 و نسخههای جدیدتر ارتقا دهند، که نسخهای امن از آخرین نسخه نرمافزار است.
این حادثه در ادامه حملات مشابه به زنجیره تأمین در سازمانهای دیگر اتفاق افتاده است، مانند حملات به LottieFiles که به داراییهای رمزارزی افراد حمله کرده و Ultralytics که از منابع سختافزاری کاربران برای استخراج غیرمجاز رمزارز استفاده کرده است.