گزارش هجوم گسترده بدافزارها به NPM جاوا اسکریپت

بر اساس گزارش‌های منتشر شده توسط شرکت امنیت سایبری WhiteSource: «ابزار محبوب ثبت و مدیریت پکیج‌های جاوا اسکریپت NPM، مورد حمله بسته‌های مخرب بسیار زیادی قرار گرفته است». بنا بر نتایج تحقیقات صورت گرفته یکسری از این بسته‌ها برای سرقت داده‌ها، استخراج رمز ارزها، بات نت و اجرای کد از راه دور طراحی شده‌اند.

WhiteSource Diffend (پلتفرم تشخیص بدافزار خودکار WhiteSource) در ماه‌های آخر سال 2021 میلادی حدود 1300 بسته مخرب را در NPM شناسایی کرده است. در نهایت این بسته‌ها از این مخزن حذف شدند.

هر پکیج شامل مجموعه‌ای بازنویسی شده از توابع مفید است. امکان فراخوانی این توابع در محیط‌های برنامه‌نویسی به جای نوشتن کدها از ابتدا وجود دارد. مدیر پکیج نیز ابزاری می‌باشد که با کدهای متن باز نوشته شده و به نصب یا به‌روزرسانی این پکیج‌ها کمک می‌کند. NPM یک مدیر پکیج پرکاربرد و مخزن محبوب برای ثبت و مدیریت پکیج‌های جاوااسکریپت است. NPM در حالت پیش فرض توسط محیط Node.js مورد استفاده قرار می‌گیرد. این مخزن شامل حدوداً 2 میلیون بسته فعال بوده و هرکدام از این بسته‌ها به صورت میانگین دارای بیش از 12 نسخه هستند.

WhiteSource می‌گوید: «مهاجمان  NPM را به صورت پیوسته مورد هدف حملات‌شان قرار می‌دادند». بر اساس گزارشی که به تازگی توسط WhiteSource منتشر شده: «حدود 55 درصد از حملات در سه روز جمعه، شنبه و یکشنبه رخ می‌دهند. این حملات معمولاً مرتبط با بررسی و اکتشاف و شامل فنونی بودند که به مهاجمان در جمع‌آوری اطلاعات مهم در راستای تحقق اهداف پلیدشان (مثل سرقت اعتبارنامه‌های کاربری و سایر اطلاعات بانکی، هویتی و غیره مهم) کمک می‌کردند.

سرقت اعتبارنامه‌های کاربری

حملات NPM و تکنیک‌های منحصربفرد آنها

تعدادی از بدافزارهای جدید شناسایی شده توسط WhiteSource عبارتند از:

این حملات معمولاً با هدف استخراج رمز ارز، سرقت داده‌ها، اجرای بات نت و در قالب پکیج‌های کاربردی (مثل بررسی امنیت) اجرا می‌شوند. پکیج‌های بررسی امنیت ظاهراً نقش نرم‌افزارهای تحلیل، بررسی و ارزیابی میزان امنیت را دارند ولی در حقیقت شامل ابزارهای اجرای کد از راه دور با هدف دسترسی کامل به سیستم میزبان هستند.

سایر پکیج‌هایی که چندان مخرب نیستند شامل اسکریپت کیدی‌ها و ترفندهای سئو می‌باشند. Maciej Mansfeld مدیر ارشد پروژه‌های WhiteSource می‌گوید: «اسکریپت کیدی‌ها پکیج‌هایی هستند که آسیبی ایجاد نمی‌کنند و برای جمع‌آوری داده‌ها طراحی نشده‌اند ولی پیام‌های مزاحمی مثل «شما هک شده‌اید» را نمایش می‌دهند. همچنین مهاجمان سایبری پکیج‌های مخربی را جهت سوءاستفاده از این حقیقت که NPM فایل README پکیج‌ها را در رجیستری آنلاین خودش نمایش می‌دهد برای ارتقای سئو وب‌سایت‌های خودشان طراحی کرده‌اند. بر اساس تحقیقاتی که توسط تیم امنیتی‌مان صورت گرفته بعضی از قمارخانه‌های آنلاین و وب‌سایت‌های مستهجن از این مسئله سوءاستفاده می‌کنند».

مبهم‌سازی وابستگی[1]، یک تهدید جدی

کارشناسان امنیتی WhiteSource می‌گویند: «مهاجمان برای اجرای حملاتی که در پی سوءاستفاده از ابهام وابستگی در NPM هستند ملزم به دانلود کدها به صورت دستی نمی‌باشند. بنابراین باید مراقب این حملات بوده و جوانب احتیاط را رعایت کنید».

بر اساس گفته‌های Mansfeld: «حمله مبهم‌سازی وابستگی از جمله حملات زنجیره تأمین است و در صورت دستکاری یک ابزار مدیریت پکیج و ارایه کدهای مخرب به جای کد اصلی رخ می‌دهد».

استفاده از سازوکار اولویت‌بندی ابزارهای مدیریت پکیج برای ارایه جدیدترین و به‌روزترین نسخه از جمله رویکردهای رایج جهت سوءاستفاده از این آسیب‌پذیری است. در این روش مهاجمان ابتدا نام پکیج یک وابستگی داخلی را پیدا نموده و سپس یک پکیج عمومی با همان نام مشابه پکیج مدنظر ولی با شماره نسخه بالاتر ایجاد می‌کنند. به این ترتیب مدیر پکیج به پکیج عمومی مخرب اولویت بیشتری می‌دهد و به محض فراخوانی به‌روزرسانی، نسخه مخرب به صورت خودکار نصب می‌شود.

چگونه در NPM ایمن بمانیم؟

توصیه می‌شود که سیاست اعتماد صفر را برای سیستم‌ها پیاده‌سازی نموده و فقط در صورت اطمینان کامل به محتوای پکیج‌ها، به‌روزرسانی‌ها را انجام دهید. همچنین باید با نظارت کامل و دقیق بر روی محیط و چرخه حیات توسعه محصول، تغییرات را به صورت منظم پیگیری نموده و ادغام یکپارچه را در محیطی تفکیک شده اجرا کنید.

بنا به گفته Mansfeld: «نظارت بر روی پکیج‌هایی که در هنگام نصب، اجزای راه دور را دانلود می‌کنند و همچنین نظارت بر روی کلیه اجزایی که توسط سیستم پشتیبانی از عملیات مورد استفاده قرار می‌گیرند جزو اقدامات کاربردی برای حفظ امنیت کاربران نهایی NPM هستند».

 

[1] حمله Dependency Confusion یا حمله جایگزینی زنجیره تأمین زمانی اتفاق می‌افتد که یک اسکریپت نصب‌کننده نرم‌افزار، فریب خورده و یک فایل کد مخرب را از یک مخزن عمومی به جای فایل مورد نظر با همین نام از یک مخزن داخلی بیرون بکشد.

 

منبع: csoonline

خروج از نسخه موبایل