گزارشهای جدید نشاندهنده بازگشت بدافزار PolinRider است که این بار از طریق ۱۰ بسته (Package) سرقتشده در مخزن npm، محیطهای توسعه، سیستمهای Build و اپلیکیشنها را هدف قرار داده است. در این عملیات، ۱۲ نسخه از بستههای آلوده شناسایی شدهاند که از یک مکانیزم پیچیده برای دریافت دستورات استفاده میکنند.
استفاده از بلاکچین به عنوان Dead-Drop
برخلاف حملات رایج زنجیره تأمین (Supply Chain Attack) که از Hookهای نصب (install یا postinstall) برای اجرای کد استفاده میکنند، این بستهها فاقد چنین مکانیزمهایی هستند. در عوض، کد مخرب زمانی اجرا میشود که یک Entrypoint آسیبپذیر بارگذاری شود. این بدان معناست که غیرفعال کردن اسکریپتهای نصب npm نمیتواند جلوی این تهدید را بگیرد.
این بدافزار برای شناسایی سرورهای Payload، از نقاط اتصال RPC عمومی شبکه اتریوم (Ethereum) استفاده میکند. لودرهای مخرب، تراکنشهای ارسال شده از یک کیف پول خاص (0x1eef…cef3) را رصد کرده و چهار بایت اول آدرس گیرنده را به عنوان آدرس IPv4 اصلی و چهار بایت بعدی را به عنوان آدرس ثانویه تفسیر میکنند. در واقع، بلاکچین اتریوم نه برای میزبانی کد، بلکه به عنوان یک راهنمای پویا برای یافتن سرورهای C2 عمل میکند.
تحلیل فنی و نحوه اجرا
- ارتباطات: بدافزار درخواستهای HTTP را روی پورت 443 ارسال کرده و پس از دریافت کد JavaScript، آن را با استفاده از XOR رمزگشایی میکند.
- اجرای کد: مرحله اول از طریق دستور
evalدر محیط اپلیکیشن و یک پروسه مجزایnode -iاجرا میشود. مرحله دوم تنها در یک Child Process مجزا و از طریق Standard Input اجرا میگردد. - پنهانسازی: برخی نسخهها از
eval(atob(...))و برخی دیگر از جایگشت کاراکترها (Character Permutation) برای دور زدن شناسایی توسط ابزارهای امنیتی استفاده کردهاند تا اثرات Base64 و امضاهای رایجevalحذف شوند.
تأثیرات و اهداف
تحلیلها نشان میدهد که این بدافزار یک تروجان دسترسی از راه دور (Remote Access Trojan – RAT) را نصب کرده و برای ایجاد تداوم (Persistence)، فایلهای lib/cli.js در npm و فایلهای استارتآپ اپلیکیشنهای دسکتاپ را تغییر میدهد. اهداف شناسایی شده شامل ابزارهایی نظیر VS Code، Cursor، Discord و GitHub Desktop هستند.
توصیههای امنیتی برای تیمهای SOC
با توجه به اینکه حذف بسته آلوده پس از اجرا، اثرات سرایت (Infection) را از بین نمیبرد، اقدامات زیر توصیه میشود:
- بررسی دقیق وابستگیهای مستقیم و غیرمستقیم (Transitive Dependencies)، Lockfileها و کشهای Build.
- مانیتورینگ ترافیک خروجی، بهویژه درخواستهای HTTP غیرمنتظره روی پورت 443 و پروسههای مجزای Node.js.
- در صورت شناسایی اجرای کد، سیستم مورد نظر باید ایزوله شده، شواهد جرمشناسی (Forensics) جمعآوری و تمامی اعتبارنامههای (Credentials) دسترسی در آن سیستم تغییر یابد.