بدافزار PhantomRaven
محققان امنیت سایبری یک حمله زنجیره تأمین نرمافزار بسیار فعال را کشف کردهاند که اکوسیستم npm را هدف قرار داده است. بیش از ۱۰۰ بسته مخرب شناسایی شدهاند که قادر به سرقت اعتبارنامههای حساس توسعهدهندگان، از جمله توکنهای احراز هویت، اسرار CI/CD و اعتبارنامههای GitHub، مستقیماً از دستگاههای آسیبدیده هستند.
این کمپین با نام رمز PhantomRaven، اولین بار در آگوست ۲۰۲۵ پدیدار شد. از آن زمان، به ۱۲۶ کتابخانه npm گسترش یافته و بیش از ۸۶۰۰۰ نصب داشته است که نشاندهندهی گسترش سریع و پذیرش این بستههای مخرب است.
فهرست مطالب
بستههای مخربی که مخفیانه پرواز میکنند
چندین مورد از بستههای علامتگذاری شده عبارتند از:
- op-cli-installer – 486 بارگیری
- واردات استفاده نشده - ۱۳۵۰ دانلود
- badgekit-api-client - ۴۸۳ دانلود
- polyfill-corejs3 - ۴۷۵ دانلود
- نظرات eslint - 936 دانلود
چیزی که PhantomRaven را به طور خاص موذی میکند، استفادهی آن از Remote Dynamic Dependencies (RDDs) است. بستههای مخرب به جای دریافت کد از رجیستری رسمی npm، به یک URL HTTP سفارشی (packages.storeartifact.com) اشاره میکنند. این به npm اجازه میدهد تا وابستگیها را از یک منبع خارجی غیرقابل اعتماد بازیابی کند و عملاً از محافظتهای npmjs.com عبور کند.
اسکنرهای امنیتی سنتی و ابزارهای تحلیل وابستگی در شناسایی این RDDها ناموفق هستند، زیرا سیستمهای خودکار بستهها را به عنوان بستههایی با «وابستگی صفر» میبینند.
نحوهی عملکرد حمله
زنجیره حمله به محض اینکه توسعهدهنده یکی از بستههای به ظاهر بیخطر را نصب میکند، آغاز میشود. عناصر کلیدی عبارتند از:
اجرای قلاب پیش از نصب : این بسته حاوی یک اسکریپت چرخه عمر پیش از نصب است که به طور خودکار بار داده اصلی را اجرا میکند.
بازیابی بار داده از راه دور : اسکریپت، وابستگی مخرب را از سرور تحت کنترل مهاجم دریافت میکند.
استخراج دادهها : پس از اجرا، بدافزار محیط توسعهدهنده را برای یافتن آدرسهای ایمیل اسکن میکند، جزئیات محیط CI/CD را جمعآوری میکند، سیستم (از جمله IP عمومی) را انگشتنگاری میکند و دادهها را به یک سرور از راه دور ارسال میکند.
مهاجم میتواند پیلود را به دلخواه تغییر دهد، در ابتدا کد بیضرری را برای جلوگیری از شناسایی ارائه میدهد و پس از پذیرش بسته، بهروزرسانیهای مخرب را اعمال میکند.
سوءاستفاده از نقاط کور انسان و هوش مصنوعی
انتخاب نام بستهها عمدی است. عامل تهدید از تاکتیکی به نام slopsquatting استفاده میکند، که در آن مدلهای زبان بزرگ (LLM) نامهای بستهای را که وجود خارجی ندارند اما به نظر قابل قبول میرسند، توهم میکنند. توسعهدهندگان ممکن است به دلیل نامگذاری واقعگرایانه این بستهها، بدون اطلاع از تهدید پنهان، به آنها اعتماد کنند.
همانطور که محققان خاطرنشان میکنند، PhantomRaven پیچیدگی روزافزون مهاجمان را برجسته میکند:
- وابستگیهای پویای از راه دور از تحلیل استاتیک طفره میروند.
- نامهای بسته تولید شده توسط هوش مصنوعی از اعتماد توسعهدهندگان سوءاستفاده میکنند.
- اسکریپتهای چرخه عمر به طور خودکار و بدون تعامل کاربر اجرا میشوند.
این کمپین تأکید میکند که چگونه عوامل مخرب با سوءاستفاده از شکافهای موجود در ابزارهای امنیتی سنتی، راههای جدیدی برای پنهان کردن کد در اکوسیستمهای متنباز پیدا میکنند.
چرا npm یک هدف اصلی است؟
سهولت کم انتشار بستهها در اکوسیستم npm، همراه با اجرای خودکار اسکریپتهای پیش از نصب، نصب و پس از نصب، آن را به یک هدف اصلی تبدیل میکند. مهاجمان میتوانند رفتار مخرب را اغلب بدون اطلاع توسعهدهنده، در اسکریپتهای چرخه عمر پنهان کنند، که نشان دهنده نیاز به هوشیاری بیشتر و شیوههای امنیتی قوی در محیطهای توسعه مدرن است.