روابط عمومی شرکت ایدکو (توزیعکنندهی محصولات کسپرسکی در ایران)؛ چند بستهی محبوب npm که در پروژههای مختلف وب استفاده میشوند، توسط مهاجمان ناشناس آلوده و تروجانگذاری شدهاند. مهاجمان با پیش بردن یک حمله فیشینگ علیه نگهدارندگان این بستهها، توانستند به دستکم یکی از مخازن کد دسترسی پیدا کرده و کد مخرب مربوط به استخراج رمزارز را به آن اضافه کنند. در نتیجه، تمام برنامههای وبی که از نسخههای آلوده این بستهها استفاده میکردند، به رمزارزدُزد[1]تبدیل شدند. با توجه به اینکه این بستهها روزانه بیش از دو میلیارد بار دانلود میشدند، تعداد زیادی از پروژهها ممکن است تحت تأثیر قرار گرفته باشند.
بستههای تروجانزده چه خطراتی ممکن است داشته باشند؟
کد جاوااسکریپت مبهمسازیشدهبه تمام بستههای آسیبدیده اضافه شده است. اگر این بستهها در یک برنامهی وب استفاده شوند، کد مخرب روی دستگاه کاربرانی که به برنامه دسترسی دارند فعال میشود. این بدافزار با فعالیت در سطح مرورگر، ترافیک شبکه و درخواستهای API را رهگیری کرده و دادههای مرتبط با کیف پولهای رمزارز مانند Ethereum، Bitcoin، Solana، Litecoin، Bitcoin Cash و Tron را دستکاری میکند. آدرسهای کیف پول قربانیان جعل شده و تراکنشها به کیف پول مهاجمان منتقل میشود. حدود سه ساعت پس از شروع حمله، مدیران npm شروع به حذف بستههای آلوده کردند، اما مشخص نیست در این مدت چند بار این بستهها دانلود شدهاند.
مهاجمان چگونه به مخازن کد دسترسی پیدا کردند؟
مهاجمان از یک روش رایج استفاده کردند: آنها ایمیلی فیشینگ ارسال کردند که در آن از نگهدارندگان بستهها خواسته شده بود هرچه سریعتر اطلاعات احراز هویت دومرحلهای خود را بهروزرسانی کنند؛ در غیر این صورت از ۱۰ سپتامبر ۲۰۲۵ حسابشان مسدود خواهد شد. این ایمیلها از دامنهای با آدرس مشابه دامنه رسمی npm (یعنی npmjs[.]help )ارسال شدند و سایتی فیشینگ با ظاهر مشابه سایت رسمی npm نیز در همین دامنه میزبانی میشد. اطلاعات واردشده در این سایت مستقیماً به دست مهاجمان میافتاد. این حمله حداقل یک نگهدارنده[2] را هدف قرار داده و بستههای زیر را آلوده کرده است:
color، debug، ansi-regex و chalk و چند بستهی دیگر. با این حال، به نظر میرسد دامنه حمله گستردهتر از این باشد، چرا که سایر نگهدارندگان و توسعهدهندگان نیز ایمیلهای مشابهی دریافت کردهاند. بنابراین فهرست بستههای آلوده ممکن است بزرگتر باشد.
دیدگاه یک کارشناس امنیتی
به نقل از لئونید بزورورنکو، پژوهشگر ارشد امنیت در تیم تحلیل جهانی (GReAT):
«این حمله به بستههای npm با میلیاردها بار دانلود هفتگی، آسیبپذیری زنجیره تأمین در اکوسیستم متنباز را بهخوبی نشان میدهد. اگرچه محموله مخرب در این مورد محدود بود و مهاجمان تنها توانستند چند ده دلار بهدست آورند، اما این حمله میتوانست بهمراتب جدیتر باشد.»
بستههای آلوده میتوانستند برای نفوذ به سرورهای سازمانی، ایجاد بکدر در سامانههای مدیریت فرایندهای تجاری، یا سرقت دادههای حساس مشتریان و شرکا استفاده شوند. در این صورت، امکان داشت با حملهای در مقیاس بزرگ مشابه حملهی XZ روبهرو شویم؛ جایی که شرکتهایی که کتابخانههای آلوده را در خدمات داخلی یا SaaS خود استفاده کرده بودند، آلودگی را به صدها یا هزاران مشتری شرکتی منتقل میکردند.
درست مانند حمله XZ، عامل اصلی این حمله نیز نه یک ضعف فنی، بلکه عاملی انسانی بود —نگهدارندهای محبوب قربانی یک ایمیل فیشینگ شد. تجربه نشان میدهد که نگهدارندگان نرمافزارهای متنباز پرکاربرد، هدف جذابی برای مهاجمان هستند؛ چرا که نفوذ به یک پروژه میتواند هزاران سامانهی دیگر را در معرض خطر قرار دهد. این اثر دومینویی میتواند اشتباه سادهای را به بحرانی در مقیاس صنعتی تبدیل کند.
فهرست بستههای آلودهشده (تا زمان نگارش این گزارش):
- ansi-regex
- ansi-styles
- backslash
- chalk
- chalk-template
- color-convert
- color-name
- color-string
- debug
- error-ex
- has-ansi
- is-arrayish
- simple-swizzle
- slice-ansi
- strip-ansi
- supports-color
- supports-hyperlinks
- wrap-ansi
با این حال، همانطور که گفته شد، این فهرست ممکن است در آینده گسترش پیدا کند. برای دریافت بهروزرسانیها، میتوانید صفحهی advisory مربوطه در GitHub را دنبال کنید.
راهکارهای امنیتی
محصولات امنیتی کسپرسکی، از جمله Kaspersky NEXT، این تهدید را با برچسبهایی مانند:
- Trojan-Banker.Script.Osthereum (با پیشوندهای مختلف مانند HEUR، UDS، VHO
- Trojan.JS.Agent.exf )
شناسایی میکنند.
دامنهی فیشینگ npmjs[.]help نیز توسط این محصولات شناسایی شده و همهی درخواستها به این دامنه توسط راهکارهای امنیتی شبکه مانند Kaspersky Anti Targeted Attack Platform مسدود میشوند. اطلاعات مربوط به این بستههای مخرب در پایگاه دادهی تهدیدات نرمافزارهای متنباز کسپرسکی قرار گرفته و بهروزرسانی میشود. همچنین تحلیلگران، بستههای آلوده را به مشتریان سرویس Kaspersky Managed Detection and Response گزارش میکنند.
توصیههایی برای توسعهدهندگان:
- روی وابستگیهای پروژههای خود ممیزی انجام دهید.
- اگر یکی از بستههای آلوده در پروژهی شما استفاده شده، نسخهای امن از آن را با استفاده از قابلیت overrides در فایل package.json مشخص و تثبیت کنید.
- هنگام دریافت ایمیلهایی که شما را به ورود به حسابتان ترغیب میکنند، بسیار بااحتیاط عمل کنید.
- بهتر است از راهکارهای امنیتی که از موتور ضد فیشینگ نیز برخوردار هستند استفاده کنید.
[1] Cryptodrainer، ابزاری مخرب (معمولاً یک اسکریپت یا بدافزار) است که طراحی شده تا کیف پول رمزارز افراد را تخلیه کند — یعنی تمام دارایی دیجیتال آنها را بدون اجازه و در کمترین زمان ممکن بدزدد.
[2]Maintainer
کسپرسکی آنلاین (ایدکو)
کسپرسکی اسم یکی از بزرگترین شرکتهای امنیتی و سازنده آنتی ویروس است که برخی از کاربران اشتباهاً این شرکت و محصولات آنتی ویروس آن را با عناوینی نظیر کسپرسکای،کاسپرسکی، کسپراسکای، کسپراسکای، و یا کاسپراسکای نیز میشناسد. همچنین لازم به ذکر است مدیرعامل این شرکت نیز یوجین کسپرسکی نام دارد.