کمیته رکن چهارم – بر اساس گزارشهای منتشر شده توسط شرکت امنیت سایبری WhiteSource: «ابزار محبوب ثبت و مدیریت پکیجهای جاوا اسکریپت NPM، مورد حمله بستههای مخرب بسیار زیادی قرار گرفته است». بنا بر نتایج تحقیقات صورت گرفته یکسری از این بستهها برای سرقت دادهها، استخراج رمز ارزها، بات نت و اجرای کد از راه دور طراحی شدهاند. WhiteSource Diffend (پلتفرم تشخیص بدافزار خودکار WhiteSource) در ماههای آخر سال ۲۰۲۱ میلادی حدود ۱۳۰۰ بسته مخرب را در NPM شناسایی کرده است. در نهایت این بستهها از این مخزن حذف شدند.
هر پکیج شامل مجموعهای بازنویسی شده از توابع مفید است. امکان فراخوانی این توابع در محیطهای برنامهنویسی به جای نوشتن کدها از ابتدا وجود دارد. مدیر پکیج نیز ابزاری میباشد که با کدهای متن باز نوشته شده و به نصب یا بهروزرسانی این پکیجها کمک میکند. NPM یک مدیر پکیج پرکاربرد و مخزن محبوب برای ثبت و مدیریت پکیجهای جاوااسکریپت است. NPM در حالت پیش فرض توسط محیط Node.js مورد استفاده قرار میگیرد. این مخزن شامل حدوداً ۲ میلیون بسته فعال بوده و هرکدام از این بستهها به صورت میانگین دارای بیش از ۱۲ نسخه هستند.
WhiteSource میگوید: «مهاجمان NPM را به صورت پیوسته مورد هدف حملاتشان قرار میدادند». بر اساس گزارشی که به تازگی توسط WhiteSource منتشر شده: «حدود ۵۵ درصد از حملات در سه روز جمعه، شنبه و یکشنبه رخ میدهند. این حملات معمولاً مرتبط با بررسی و اکتشاف و شامل فنونی بودند که به مهاجمان در جمعآوری اطلاعات مهم در راستای تحقق اهداف پلیدشان (مثل سرقت اعتبارنامههای کاربری و سایر اطلاعات بانکی، هویتی و غیره مهم) کمک میکردند.
سرقت اعتبارنامههای کاربری
حملات NPM و تکنیکهای منحصربفرد آنها
تعدادی از بدافزارهای جدید شناسایی شده توسط WhiteSource عبارتند از:
Mos-sass-loader و css-resources-loader: این پکیجها با هدف تقلید عملکرد پکیجهای style-resource-loader saas-loader که از جمله پکیجهای پرطرفدار NPM هستند و برای تزریق کدهای مخرب جهت دانلود بدافزارهای سارق اطلاعات و اجرای کد از راه دور طراحی شده بودند.
Circle-admin-web-app و browser-warning-ui: پکیجهایی با کدهای مخرب که برای دانلود پکیجهای بیرونی مختص سیستمعامل و بدافزارهای اجرای کد از راه دور طراحی شدهاند.
Noopenpaint: یک پکیج مزاحم بدون کد مخرب که یکسری نرمافزار را در خارج از نوبت اجرا کرده و پیام «شما هک شدهاید” را نمایش میدهد».
@grubhubprod_cookbook: این پکیج از مبهم سازی وابستگی(dependency confusion)[۱] برای مورد هدف قرار دادن Grubhub و تفسیر و ارسال دادهها به مقاصد راه دور استفاده میکند.
Azure-web-pubsub-express: یک پکیج بررسی امنیت که قصد مخربی ندارد و هدف آن جمعآوری دادههای سیستم و کارت شبکه و ارسال آنها به interactsh.com است.
Reac1 و reect1: پکیجی که ظاهراً به عنوان یک پکیج تحقیقاتی طراحی شده و تلاش میکند درخواستهای http از سیستم میزبان را به webhook.com هدایت نماید.
Mrg-message-broker: این پکیج مانند @grubhubprod_cookbook از مبهم سازی وابستگی برای سرقت دادههای محیط میزبان استفاده میکند.
@sixt-web/api-client-sixt-v2-apps: این پکیج نیز از مبهم سازی وابستگی در هنگام نصب، دادههای سیستم را جمعآوری میکند.
@maui-mf/app-auth: یک پکیج اجرای حمله «جعل درخواست از سمت سرور» که با هدف جمعآوری اطلاعاتی از وب سرویسهای آمازون و ارسال آنها به یک دامنه جعلی طراحی شده است.
این حملات معمولاً با هدف استخراج رمز ارز، سرقت دادهها، اجرای بات نت و در قالب پکیجهای کاربردی (مثل بررسی امنیت) اجرا میشوند. پکیجهای بررسی امنیت ظاهراً نقش نرمافزارهای تحلیل، بررسی و ارزیابی میزان امنیت را دارند ولی در حقیقت شامل ابزارهای اجرای کد از راه دور با هدف دسترسی کامل به سیستم میزبان هستند.
سایر پکیجهایی که چندان مخرب نیستند شامل اسکریپت کیدیها و ترفندهای سئو میباشند. Maciej Mansfeld مدیر ارشد پروژههای WhiteSource میگوید: «اسکریپت کیدیها پکیجهایی هستند که آسیبی ایجاد نمیکنند و برای جمعآوری دادهها طراحی نشدهاند ولی پیامهای مزاحمی مثل «شما هک شدهاید» را نمایش میدهند. همچنین مهاجمان سایبری پکیجهای مخربی را جهت سوءاستفاده از این حقیقت که NPM فایل README پکیجها را در رجیستری آنلاین خودش نمایش میدهد برای ارتقای سئو وبسایتهای خودشان طراحی کردهاند. بر اساس تحقیقاتی که توسط تیم امنیتیمان صورت گرفته بعضی از قمارخانههای آنلاین و وبسایتهای مستهجن از این مسئله سوءاستفاده میکنند».
اجرای بات نت
مبهمسازی وابستگی[۱]، یک تهدید جدی
کارشناسان امنیتی WhiteSource میگویند: «مهاجمان برای اجرای حملاتی که در پی سوءاستفاده از ابهام وابستگی در NPM هستند ملزم به دانلود کدها به صورت دستی نمیباشند. بنابراین باید مراقب این حملات بوده و جوانب احتیاط را رعایت کنید».
بر اساس گفتههای Mansfeld: «حمله مبهمسازی وابستگی از جمله حملات زنجیره تأمین است و در صورت دستکاری یک ابزار مدیریت پکیج و ارایه کدهای مخرب به جای کد اصلی رخ میدهد».
استفاده از سازوکار اولویتبندی ابزارهای مدیریت پکیج برای ارایه جدیدترین و بهروزترین نسخه از جمله رویکردهای رایج جهت سوءاستفاده از این آسیبپذیری است. در این روش مهاجمان ابتدا نام پکیج یک وابستگی داخلی را پیدا نموده و سپس یک پکیج عمومی با همان نام مشابه پکیج مدنظر ولی با شماره نسخه بالاتر ایجاد میکنند. به این ترتیب مدیر پکیج به پکیج عمومی مخرب اولویت بیشتری میدهد و به محض فراخوانی بهروزرسانی، نسخه مخرب به صورت خودکار نصب میشود.
چگونه در NPM ایمن بمانیم؟
توصیه میشود که سیاست اعتماد صفر را برای سیستمها پیادهسازی نموده و فقط در صورت اطمینان کامل به محتوای پکیجها، بهروزرسانیها را انجام دهید. همچنین باید با نظارت کامل و دقیق بر روی محیط و چرخه حیات توسعه محصول، تغییرات را به صورت منظم پیگیری نموده و ادغام یکپارچه را در محیطی تفکیک شده اجرا کنید.
بنا به گفته Mansfeld: «نظارت بر روی پکیجهایی که در هنگام نصب، اجزای راه دور را دانلود میکنند و همچنین نظارت بر روی کلیه اجزایی که توسط سیستم پشتیبانی از عملیات مورد استفاده قرار میگیرند جزو اقدامات کاربردی برای حفظ امنیت کاربران نهایی NPM هستند».
منبع: فراست