یک نسخه مخرب از پکیج npm با نام tensorlake@0.5.144 منتشر شده است که حاوی گونهای از کرم Shai-Hulud است. این بدافزار با هدف سرقت اسرار (Secrets) توسعهدهندگان و گسترش از طریق زنجیرههای تأمین نرمافزاری (Software Supply Chains) طراحی شده است. با توجه به اینکه پکیج Tensorlake (یک پلتفرم Sandbox بدون سرور برای عوامل هوش مصنوعی) بیش از ۱۰۰,۰۰۰ بار نصب شده است، دامنه اثرگذاری این حمله بسیار گسترده ارزیابی میشود.
مکانیسم سرایت و دور زدن سیستمهای امنیتی
این حمله از طریق یک اسکریپت preinstall آغاز میشود که فایل lib/setup.mjs را اجرا میکند. این اسکریپت برای دور زدن ابزارهای نظارتی، ابتدا محیط اجرای Bun JavaScript runtime را دانلود کرده و سپس از طریق آن، Payload اصلی کرم Shai-Hulud را در فایل lib/Math_Symbol.js اجرا میکند. استفاده از Bun یک تاکتیک هوشمندانه برای فرار (Evasion) است، زیرا بسیاری از سیستمهای امنیتی تمرکز بیشتری بر فعالیتهای Node.js دارند و نسبت به Runtimeهای جدیدتر حساسیت کمتری نشان میدهند.
اهداف سرقت دادهها و زیرساخت C2
پس از فعال شدن، بدافزار شروع به جستوجو برای یافتن اطلاعات حساس در محیطهای زیر میکند:
- متغیرهای محیطی (Environment Variables) و فایلهای اعتبارنامههای محلی.
- تنظیمات ابری (AWS access keys, Azure data, Kubernetes configurations).
- سیستمهای CI/CD، پوشههای SSH و توکنهای Vault.
- دیتابیس افزونههای مرورگر مربوط به کیف پولهای ارز دیجیتال مانند MetaMask، Phantom و Coinbase Wallet.
برای ارتباط با سرور فرماندهی و کنترل (C2)، این بدافزار علاوه بر دامنه سختافزاری iseekaigogo[.]com، از یک قرارداد هوشمند اتریوم (Ethereum Smart Contract) برای دریافت آدرسهای جایگزین استفاده میکند. این روش Dead-drop باعث میشود عامل تهدید بتواند بدون انتشار نسخه جدید پکیج، زیرساخت خود را بهروزرسانی کرده و شناسایی آن را دشوارتر کند.
خطر تخریب: سوئیچ مرگ (Dead-man’s switch)
یکی از خطرناکترین ویژگیهای این بدافزار، وجود یک Dead-man’s switch است. طبق تحلیلها، اگر توکن گیتهاب (GitHub token) جاسازی شده در بدافزار باطل شود، Payload میتواند اقدام به پاکسازی (Wipe) کامل دستگاههای آلوده کند. این موضوع پاسخ به حادثه (Incident Response) را پیچیده میکند؛ زیرا تیمهای امنیتی باید پیش از تغییر اعتبارنامهها، دستگاههای آلوده را ایزوله کرده و شواهد را ذخیره کنند تا از تخریب دادهها جلوگیری شود.
توصیههای امنیتی و مقابله
سازمانهایی که از نسخه tensorlake@0.5.144 استفاده کردهاند، باید سیستمهای خود را کاملاً آلوده در نظر بگیرند. اقدامات زیر توصیه میشود:
- ایزولاسیون سریع: جداسازی ورکاستیشنها و Build Runnerهای آلوده پیش از تغییر توکنها.
- چرخش اعتبارنامهها (Rotation): تغییر تمامی پسوردها و توکنهای npm، GitHub، Cloud، SSH و کیف پولهای دیجیتال از طریق یک سیستم پاک.
- پاکسازی: حذف وابستگی آلوده، بازگردانی Lockfile به نسخه سالم و بازبینی لاگها برای یافتن دانلودهای مشکوک Bun.
- پیشگیری: استفاده از نسخههای پینشده (Pinned Versions)، توکنهای با دسترسی محدود (Least-privilege) و کنترلهای تأییدیه برای انتشار پکیجها.
شاخصهای آلودگی (IoCs)
- پکیج آلوده:
tensorlake@0.5.144 - دامنه C2:
iseekaigogo[.]com - فایلهای مخرب:
lib/setup.mjsوlib/Math_Symbol.js - هش SHA-256 (setup.mjs):
25a0735d0db7dc40e5d45ce42d9c106067e6a66e184d967cfecfab17c3bcb5ef - قرارداد اتریوم:
0xb614155Fd88114d40549b259457Bcf921Df091B9