حمله ای به کاربران دایرکتوری NPM ثبت شد که در نتیجه آن در 20 فوریه بیش از 15 هزار بسته در مخزن NPM قرار گرفت که در فایل های README پیوندهایی به سایت های فیشینگ یا پیوندهای ارجاعی وجود داشت که برای آنها وجود داشت. حق امتیاز پرداخت شد. تجزیه و تحلیل بسته ها 190 پیوند فیشینگ یا تبلیغاتی منحصر به فرد را نشان داد که 31 دامنه را پوشش می دهد.
نام بستهها برای جلب علاقه افراد عادی انتخاب شدهاند، به عنوان مثال، «فالوورهای رایگان tiktok» «کدهای رایگان xbox»، «بدون دنبالکنندگان اینستاگرام» و غیره. این محاسبه برای پر کردن لیست بهروزرسانیهای اخیر در صفحه اصلی NPM با بستههای هرزنامه انجام شد. توضیحات بستهها شامل پیوندهایی بود که وعده هدایای رایگان، هدایا، تقلبهای بازی، و خدمات رایگان برای جذب فالوور و لایک در شبکههای اجتماعی مانند TikTok و Instagram را میدادند. این اولین حمله نیست؛ در ماه دسامبر، 144 هزار بسته هرزنامه در فهرستهای NuGet، NPM و PyPi منتشر شد.
محتویات بستهها بهطور خودکار با استفاده از یک اسکریپت پایتون تولید میشد که ظاهراً با یک نادیده گرفتن در بستهها باقی مانده بود و شامل اعتبار کاری مورد استفاده در طول حمله میشد. بستهها با حسابهای مختلف و با استفاده از روشهایی منتشر شدهاند که بازگشایی مسیر و شناسایی سریع بستههای مشکلساز را دشوار میکنند.
علاوه بر فعالیت های تقلبی، چندین تلاش برای انتشار بسته های مخرب نیز در مخازن NPM و PyPi شناسایی شده است:
- 451 بسته مخرب در مخزن PyPI یافت شد که به عنوان برخی از کتابخانه های محبوب با استفاده از حروفچینی (تخصیص نام های مشابه که در کاراکترهای فردی متفاوت هستند، به عنوان مثال، vper به جای vyper، bitcoinnlib به جای bitcoinlib، ccryptofeed به جای cryptofeed، ccxtt به جای ccxt، cryptocommpare به جای cryptocompare، seleium به جای selenium، pinstaller به جای pyinstaller و غیره). این بستهها شامل کد مبهم برای سرقت ارزهای دیجیتال بود که وجود شناسههای کیف پول رمزنگاری را در کلیپ بورد مشخص میکرد و آنها را به کیف پول مهاجم تغییر میداد (فرض میرود که هنگام پرداخت، قربانی متوجه نخواهد شد که شماره کیف پول از طریق کلیپ بورد منتقل شده است. متفاوت است). این جایگزینی توسط یک افزونه مرورگر انجام شد که در زمینه هر صفحه وب مشاهده شده انجام شد.
- مجموعه ای از کتابخانه های HTTP مخرب در مخزن PyPI شناسایی شده است. فعالیت مخرب در 41 بسته یافت شد که نام آنها با استفاده از روشهای typequatting و شبیه کتابخانههای محبوب (aio5، requestst، ulrlib، urllb، libhttps، piphttps، httpxv2 و غیره) انتخاب شده بود. شکلگیری شکلدهی شبیه به کتابخانههای HTTP فعال یا کد کپیشده از کتابخانههای موجود است، و توضیحات ادعاهایی درباره مزایا و مقایسه با کتابخانههای HTTP قانونی داشت. فعالیت مخرب به بارگیری بدافزار در سیستم یا جمعآوری و ارسال دادههای حساس محدود میشد.
- NPM 16 بسته جاوا اسکریپت (speedte*, trova*, lagra) را شناسایی کرد که علاوه بر عملکرد اعلام شده (تست توان عملیاتی) حاوی کدهایی برای استخراج ارزهای دیجیتال بدون اطلاع کاربر بود.
- NPM 691 بسته مخرب را شناسایی کرد. اکثر بستههای مشکلدار وانمود میکردند که پروژههای Yandex هستند (yandex-logger-sentry، yandex-logger-qloud، yandex-sendsms و غیره) و شامل کدی برای ارسال اطلاعات محرمانه به سرورهای خارجی بودند. فرض بر این است که کسانی که بسته ها را قرار داده اند سعی کرده اند هنگام ساخت پروژه ها در Yandex (روش جایگزینی وابستگی های داخلی) به جایگزینی وابستگی خود دست یابند. در مخزن PyPI، همان محققان 49 بسته (reqsystem، httpxfaster، aio6، gorilla2، httpsos، pohttp، و غیره) را با کدهای مخرب مبهم پیدا کردند که یک فایل اجرایی را از یک سرور خارجی دانلود و راه اندازی می کند.
منبع: opennet.ru