پژوهشگران امنیت سایبری از شناسایی یک حمله زنجیره تأمین جدید خبر دادهاند که با سوءاستفاده از دو بسته ربودهشده در npm و مجموعهای از بستههای Go، توسعهدهندگان را در سیستمعاملهای ویندوز، لینوکس و مکاواس (macOS) هدف قرار میدهد. این حمله زنجیره تأمین با بهرهگیری از تسکهای خودکار VS Code، دریافت پیلودهای جاوااسکریپت رمزگذاریشده از زیرساخت بلاکچین، راهاندازی یک بکدور مبتنی برSocket.io و استقرار بدافزار رباینده اطلاعات مبتنی بر پایتون (Python Infostealer)، زنجیرهای چندمرحلهای را برای سرقت اطلاعات حساس و کنترل سیستم قربانی اجرا میکند.
چگونه حمله زنجیره تأمین با پکیجهای ربودهشده npm آغاز میشود؟
در جریان این بررسی، دو پکیج ربودهشده در مخزن npm شناسایی شدند:
- html-to-gutenberg
- fetch-page-assets که پکیج html-to-gutenberg را بهعنوان وابستگی (Dependency) معرفی میکند.
این دو پکیج در 25 می 2026 در مخزن npm منتشر شدند، اما پس از شناسایی فعالیت مخرب، دیگر برای دانلود از این مخزن در دسترس نیستند.
بررسیهای JFrog نشان میدهد نقطه آغاز این حمله زنجیره تأمین، یک تسک مخفی در Microsoft Visual Studio Code (VS Code) با نام eslint-check است. این تسک با استفاده از گزینه runOn: “folderOpen” پیکربندی شده تا هنگام باز شدن پوشه پروژه بهعنوان فضای کاری (Workspace) در محیطهای توسعهای (IDE) مانند VS Code یا Cursor، اجرای کد دلخواه (Arbitrary Code Execution) را بهصورت خودکار آغاز کند. طبق توضیح JFrog محیطهایی مانند VS Code همه فایلهای .vscode/tasks.json موجود در وابستگیها یا پوشههای داخلی پروژه را بهصورت خودکار اجرا نمیکنند. در این حمله، تسک مخرب تنها زمانی فعال میشود که خود پوشه پکیج آلوده بهعنوان فضای کاری باز شده و از سوی کاربر بهعنوان محیطی مورد اعتماد (Trusted) شناخته شود یا توسعهدهنده اجرای خودکار تسکها را بهطور صریح مجاز کرده باشد.
همچنین این شرکت افزود مهاجمان برای پنهان کردن پیلود، آن را در قالب یک فایل فونت با مسیر public/fonts/fa-solid-400.woff2 قرار دادهاند، در حالی که این فایل در واقع هیچ داده فونتی ندارد و صرفاً حاوی کد جاوااسکریپت (JavaScript) است.
ارتباط با کمپینهای Fake Font و Contagious Interview
سوءاستفاده از تسکهای اجرای خودکار در VS Code و پنهانسازی بدافزارهای جاوااسکریپتی در قالب فایلهای فونت، از تکنیکهایی هستند که پیشتر به فعالیت عوامل تهدید منتسب به کره شمالی نسبت داده شدهاند. در همین راستا، تیم OpenSourceMalware که این فعالیت را با نام Fake Font ردیابی میکند، آن را واریانتی (Variant) از کمپین Contagious Interview توصیف کرده است؛ این کمپین از سال 2023 با سوءاستفاده از فرآیندهای استخدام جعلی، توسعهدهندگان نرمافزار و نیروهای فنی را هدف قرار میدهد.
شباهتهای فنی این حمله زنجیره تأمین با کمپین Fake Font نیز قابل توجه است. به گفته پژوهشگران، کمپین Fake Font یک لودر چندمرحلهای (Multi-stage Loader) را اجرا میکند که در نهایت بکدور مبتنی بر پایتون InvisibleFerret را روی سیستم قربانی مستقر میسازد. این بدافزار برای سرقت اطلاعات کیفپولهای رمزارزی، اعتبارنامههای ذخیرهشده در مرورگرها و ایجاد دسترسی پایدار به سیستم طراحی شده است.
حمله زنجیره تأمین با زیرساخت بلاکچین و سرور فرماندهی و کنترل
فایل فونت جعلی از زیرساخت بلاکچین بهعنوان یک سازوکار Dead Drop Resolver برای بازیابی پیلود مرحله بعد استفاده میکند. در این فرآیند، بدافزار ابتدا از سرویس TronGrid و در صورت در دسترس نبودن آن، از Aptos بهعنوان سازوکار جایگزین (Fallback) برای دریافت پیلود جاوااسکریپت استفاده میکند. این روش، به دلیل اتکا به زیرساختهای عمومی بلاکچین، در برابر تلاش برای شناسایی، حذف یا از کار انداختن زیرساخت مهاجم (Takedown) مقاومت بیشتری دارد.
در مرحله بعد، کد جاوااسکریپت با تکرار همین الگوی دریافت از Dead Drop، اطلاعات لازم برای پیکربندی سرور فرماندهی و کنترل (C2) را استخراج میکند؛ سروری که وظیفه دریافت فایلهای سرقتشده و تحویل بدافزار مبتنی بر پایتون را بر عهده دارد. همچنین در این مرحله، حمله زنجیره تأمین یک بکدور مبتنی بر Socket.io را راهاندازی میکند که امکان کنترل از راه دور سیستم آلوده را برای مهاجم فراهم میسازد.
این بکدور قابلیتهایی مانند اجرای دستورات شل (Shell)، سرقت محتوای کلیپبورد، انجام عملیات روی فایلهای سیستم، بارگذاری فایل، مدیریت پردازهها و اجرای دلخواه کدهای جاوااسکریپت را در اختیار مهاجم قرار میدهد.
بدافزار رباینده اطلاعات پایتون چه دادههایی را سرقت میکند؟
همزمان، زنجیره آلودگی یک لودر مبتنی بر پایتون را نیز اجرا میکند که مسئول دریافت بدافزار رباینده اطلاعات پایتون از سرور C2 و نصب وابستگیهای موردنیاز آن است. این بدافزار طیف گستردهای از اطلاعات حساس را هدف قرار میدهد و قادر است اعتبارنامهها ، دادههای مرورگرها، کیف پولهای رمزارزی و اطلاعات مرتبط با ابزارهای توسعه را از مرورگرهای مبتنی بر کرومیوم (Chromium)، موزیلا فایرفاکس، مدیران رمزعبور، برنامههای احراز هویت و کیف پولهای ارز دیجیتال استخراج و سرقت کند.
این بدافزار علاوه بر سرقت اطلاعات کاربران، قابلیت جمعآوری طیف گستردهای از دادههای مرتبط با توسعهدهندگان را نیز دارد. از جمله این اطلاعات میتوان به اعتبارنامههای گیت (Git)، فایل hosts.yml مربوط به ابزار خط فرمان(CLI) گیتهاب، لاگهای GitHub Desktop، دادههای VS Code و فضای ذخیرهسازی سراسری (Global Storage) اشاره کرد.
همچنین این بدافزار قادر است اطلاعات ذخیرهشده در سیستم مدیریت اعتبارنامههای ویندوز (Windows Credential Manager)، سرویس مدیریت اطلاعات حساس لینوکس (Linux Secret Service)، مخزن اعتبارنامه KDE (KDE Wallet) و macOS Keychain را استخراج کند. علاوه بر این، متادیتاهای مربوط به سرویسهای ذخیرهسازی ابری از جمله Dropbox، Google Drive، Microsoft OneDrive، Apple iCloud، Box، Mega و pCloud نیز در فهرست اهداف این بدافزار قرار دارند.
در مرحله پایانی حمله زنجیره تأمین، دادههای سرقتشده در قالب آرشیوهای فشرده ZIP به سرور C2 ارسال میشوند. در صورتی که مهاجم هنگام اجرای بدافزار توکن ربات تلگرام را نیز مشخص کرده باشد، نسخهای از این اطلاعات به یک ربات تلگرام نیز منتقل خواهد شد.
گسترش حمله زنجیره تأمین به اکوسیستم Go
این حمله زنجیره تأمین تنها به npm محدود نبوده و اکوسیستم Go را نیز هدف قرار داده است. شرکت Nextron Systems موفق به شناسایی 16 پکیج Go شده که همگی به همان بدافزار آلوده هستند. فهرست این پکیجها عبارت است از:
- com/lambda-platform/lambda
- com/reauheau/goaubio
- com/glacialspring/go-winsparkle
- com/bm-197/chill
- com/naol7/dist-task-scheduler
- com/anatoli-derese/a2sv-excercise
- com/amantsehay/a2sv-go-course
- com/dexbotsdev/uniswap-v2-v3-arbitrage
- com/lambda-platform/ebarimt-rest-api
- com/lambda-platform/dan
- com/zainirfan13/graphql-client
- com/hngi/team-fierce-backend-golang
- com/glacialspring/static
- com/rickt/slack-weather-bot
- com/Barsu5489/commerce
- com/Setsu548/Logistic
JFrog در ادامه اعلام کرد: «بیشتر این پکیجها در اصل پکیجهای معتبری هستند، اما آخرین نسخه منتشرشده آنها، علاوه بر محتوای اصلی، همان بدافزار را نیز با استفاده از ساختار یکسان و فایل فونت جعلی در خود جای داده است. »
کاربرانی که این پکیجها را نصب کردهاند، باید در اسرع وقت آنها را حذف کنند، سیستمهای توسعه را برای شناسایی تسکهای مخفی VS Code که هنگام باز شدن پوشه پروژه اجرا میشوند بررسی کرده و تمامی اعتبارنامهها، توکنها، اعتبارنامههای سرویسهای ابری، کلیدهای API، اعتبارنامههای ذخیرهشده در مرورگر و اطلاعات احراز هویت کیف پولهای رمزارزی را جایگزین کنند.
به گفته JFrog، پیلودها نشان میدهند مهاجم علاوه بر سرقت سریع اطلاعات، به دنبال حفظ دسترسی تعاملی (Interactive Access) به سیستم قربانی نیز بوده است. بکدور مبتنی بر Socket.io امکان اجرای دستورات، جمعآوری فایلها و کنترل از راه دور سیستم را فراهم میکند، در حالی که مرحله مبتنی بر پایتون (Python Stage) مسئول سرقت گسترده اعتبارنامهها و اطلاعات کیف پولهای رمزارزی از مرورگرها، مخازن ذخیره اعتبارنامه در سیستمعامل، ابزارهای توسعه و برنامههای مرتبط با ارزهای دیجیتال است.
