تکنیک‌های پیچیده در مخزن npm

نسخه 8.14.0 بسته جاسکرامبلر (JSCrambler) در مخزن npm مورد هک قرار گرفته است. تنها اقدام برای نصب این نسخه، اجرای یک اطلاعات‌دزد (Infostealer) طراحی‌شده با زبان Rust است که مستقیماً به منابع حیاتی سیستم‌های توسعه‌دهندگان حمله می‌کند. تیم تحقیقاتی Socket تنها 6 دقیقه پس از انتشار، این اقدام مخرب را شناسایی و هشدار داد.

فایل‌های جدیدی که در این نسخه اضافه شده‌اند، هیچ‌گونه ارتباطی با کد منبع عمومی项目在 GitHub ندارند. نسخه 8.13.0 آخرین تگ معتبر در مخزن است و نسخه مخرب مستقیماً از یک حساب ناظر به npm منتقل شده است که نشان می‌دهد خط تولید یا حساب توسعه‌دهنده باطل شده است. در پوشه dist دو فایل ظاهر شده است: یک بارگذار سبک با نام setup.js و فایلی به نام intro.js. با وجود پسوند js، این فایل یک اسکریپت نیست؛ بلکه یک کانتینر تقریباً 7.8 مگابایتی است که سه باینری بومی بهینه‌شده برای ویندوز، مک و لینوکس را در خود جای داده است. هنگام نصب، setup.js بر اساس سیستم‌عامل میزبان، باینری مناسب را استخراج و با نامی تصادفی در پوشه موقت سیستم ذخیره می‌کند. سپس آن را با دسترسی اجرایی و با خروجی پنهان اجرا می‌کند.

شکارچی داده‌های توسعه‌دهندگان و ابزارهای هوش مصنوعی

این اطلاعات‌دزد به‌طور خاص محیط‌های برنامه‌نویسی و فرآیندهای CI/CD را هدف قرار داده است. لیست اهداف شامل موارد زیر است:

  • کلیدهای دسترسی به سرویس‌های ابری مانند AWS، Azure و Google Cloud
  • کیف‌پول‌های ارز دیجیتال و مدیریت‌کننده‌های رمز عبور مانند Bitwarden
  • نشست‌های فعال در پلتفرم‌هایی مانند Discord، Slack و Steam

نکته نگران‌کننده‌تر تمرکز بر فایل‌های پیکربندی ابزارهای هوش مصنوعی است. این بدافزار به‌طور مهندسی‌شده به دنبال کلیدهای API و اعتبارنامه‌های سرورهای MCP در ابزارهایی مانند Claude Desktop، Cursor، Windsurf، VS Code و Zed می‌گردد.

تحلیل بدافزار اطلاعات‌دزد روی سیستم‌های توسعه‌دهندگان

نفوذ به سطح کرنل و مکانیسم‌های بقا

فعالیت این بدافزار فراتر از سرقت ساده اطلاعات است. در نسخه لینوکس، بدافزار به کتابخانه eBPF کرنل متصل می‌شود و می‌تواند یک برنامه را مستقیماً از حافظه بارگذاری کند. این کار به مهاجم یک پایگاه قدرتمند در هسته سیستم‌عامل می‌دهد. نسخه‌های ویندوز و مک نیز ضدخودکارهای تشخیص اشکال‌زدایی دارند. برای زنده ماندن در برابر ری‌استارت سیستم، یک وظیفه زمان‌بندی‌شده مخفی در ویندوز و یک LaunchAgent در مک تنظیم کرده‌اند که به‌طور منظم ارتباط با سرورهای فرماندهی و کنترل را برقرار می‌کنند. سرورهای فرماندهی با استفاده از دو آدرس IP ثابت و زیرساخت Tor عمل می‌کنند.

چرا این حمله متفاوت است؟

اگرچه جاسکرامبلر حدود 15800 بار در هفته دانلود می‌شود و این تعداد در مقایسه با حملات بزرگ قبلی npm کمتر به نظر می‌رسد، اما ماهیت این حمله کاملاً متفاوت است. مهاجمان به تعداد دانلود فکر نمی‌کنند. محیط‌های CI و ابزارهای زمان ساخت، کلیدهای ابری، توکن‌های استقرار و سورس‌کدهای محرمانه را در خود ذخیره می‌کنند. دسترسی به این محیط‌ها به مهاجمان امکان می‌دهد تا زنجیره تأمین نرم‌افزار را در سطح سازمانی مختل کند. گزارش‌های اخیر از منابع امنیتی معتبر تأکید می‌کند که حملات تأمینی دیگر فقط به دنبال ویروس‌های گسترده نیستند؛ آن‌ها به دنبال کلیدهای پادشاهی هستند. با افزایش پیچیدگی ابزارهای هوش مصنوعی در خطوط تولید نرم‌افزار، حفاظت از هوکت‌های نصب و باینری‌های بومی به یک ضرورت اجتناب‌ناپذیر تبدیل شده است. توسعه‌دهندگان باید منتظر انتشار پچ‌های امنیتی فوری باشند و در صورت امکان، نصب خودکار بسته‌های ناخوانا را در محیط‌های حساس غیرفعال کنند.