محققان شرکت JFrog از کشف کارزار تازهای خبر دادهاند که در آن بستههای آلوده npm و Go با سوءاستفاده از قابلیت اجرای خودکار وظایف در VS Code، تنها با باز شدن پروژه، زنجیرهای از کدهای مخرب را برای سرقت اطلاعات توسعهدهندگان اجرا میکنند.
محققان شرکت JFrog از کشف کارزار تازهای خبر دادهاند که در آن بستههای آلوده npm و Go با سوءاستفاده از قابلیت اجرای خودکار وظایف در VS Code، تنها با باز شدن پروژه، زنجیرهای از کدهای مخرب را برای سرقت اطلاعات توسعهدهندگان اجرا میکنند.
به گزارش افتانا، پژوهشگران امنیت سایبری از کشف دو بسته آلوده در مخزن npm و مجموعهای از بستههای زبان Go خبر دادهاند که با هدف استقرار یک بدافزار سرقت اطلاعات مبتنی بر پایتون روی سیستمهای ویندوز، لینوکس و macOS طراحی شدهاند.
شرکت JFrog در تحلیل فنی خود اعلام کرد این حمله برخلاف روشهای رایج اجرای کد در npm، از اسکریپتهای چرخه عمر (Lifecycle Scripts) استفاده نمیکند و احتمالاً با هدف سازگاری با تدابیر امنیتی جدید npm نسخه ۱۲ طراحی شده است.
به گفته این شرکت، بسته مخرب کد خود را در قالب یک وظیفه (Task) در محیط Visual Studio Code پنهان میکند که بهطور خودکار هنگام باز شدن پوشه پروژه در VS Code اجرا میشود. این فرآیند در ادامه با دریافت کد جاوااسکریپت رمزگذاریشده از دادههای تراکنشهای بلاکچین، برقراری ارتباط با زیرساخت تحت کنترل مهاجمان، راهاندازی یک در پشتی مبتنی بر Socket.io و در نهایت دانلود و اجرای یک بدافزار سرقت اطلاعات مبتنی بر پایتون ادامه پیدا میکند.
دو بسته شناساییشده در npm با نامهای html-to-gutenberg و fetch-page-assets منتشر شده بودند که بسته دوم نیز به اولی وابسته بود. این دو بسته در تاریخ ۲۵ مه ۲۰۲۶ روی npm بارگذاری شدند و اکنون از این مخزن حذف شدهاند.
نقطه آغاز حمله، یک وظیفه مخفی در Visual Studio Code با نام eslint-check است که با گزینه runOn: folderOpen تنظیم شده و هنگام باز شدن پوشه پروژه در محیطهایی مانند VS Code یا Cursor، امکان اجرای خودکار کد را فراهم میکند.
محققان JFrog تأکید کردند این وظیفه بهطور بازگشتی تمام فایلهای.vscode/tasks.json را اجرا نمیکند، بلکه تنها زمانی فعال میشود که پوشه حاوی بسته مخرب بهعنوان فضای کاری (Workspace) باز شده و کاربر آن را قابل اعتماد (Trusted) اعلام کند یا به اجرای خودکار وظایف اجازه دهد. همچنین فایل مخرب با نام public/fonts/fa-solid-400.woff2 و در ظاهر یک فایل فونت ذخیره شده، در حالی که در واقع حاوی کد جاوااسکریپت است.
استفاده از وظایف خودکار VS Code و پنهان کردن بدافزار در قالب فایل فونت پیشتر نیز به گروههای وابسته به کره شمالی نسبت داده شده بود. تیم OpenSourceMalware که این فعالیت را با نام Fake Font دنبال میکند، آن را گونهای از کارزار شناختهشده Contagious Interview میداند؛ کمپینی که از سال ۲۰۲۳ توسعهدهندگان نرمافزار و نیروهای فنی را از طریق آگهیهای استخدام و مصاحبههای شغلی جعلی هدف قرار داده است.
پل مککارتی، پژوهشگر امنیتی، پیشتر اعلام کرده بود کارزار Fake Font یک زنجیره چندمرحلهای از بدافزارها را اجرا میکند که در نهایت به استقرار در پشتی پایتونی InvisibleFerret منجر میشود؛ بدافزاری که برای سرقت کیف پولهای رمزارزی، اطلاعات مرورگرها و ایجاد دسترسی پایدار به سیستم قربانی طراحی شده است.
در این حمله، فایل جعلی فونت از زیرساخت بلاکچین بهعنوان محل ذخیره اطلاعات استفاده میکند و با بهرهگیری از سرویس TronGrid و در صورت نیاز شبکه Aptos، مرحله بعدی بدافزار را دریافت میکند. این روش باعث میشود مهاجمان در برابر حذف یا مسدودسازی زیرساخت خود مقاومت بیشتری داشته باشند.
مرحله جاوااسکریپتی نیز با استفاده از همین سازوکار، آدرس سرور فرماندهی و کنترل (C2) را دریافت کرده و سپس یک در پشتی مبتنی بر Socket.io راهاندازی میکند که قابلیتهایی مانند اجرای دستورات شل، سرقت محتوای کلیپبورد، مدیریت فایلها، بارگذاری فایل، کنترل پردازشها و اجرای کد جاوااسکریپت دلخواه را در اختیار مهاجم قرار میدهد.
بهطور همزمان، یک بارگذار (Loader) مبتنی بر پایتون نیز اجرا میشود که بدافزار اصلی سرقت اطلاعات را از سرور مهاجم دریافت کرده و وابستگیهای موردنیاز آن را نصب میکند. این بدافزار قادر است اطلاعات ذخیرهشده در مرورگرهای مبتنی بر Chromium و Mozilla Firefox، مدیران رمز عبور، نرمافزارهای احراز هویت و کیف پولهای ارز دیجیتال را سرقت کند. علاوه بر این، بدافزار اطلاعات مرتبط با توسعهدهندگان از جمله اعتبارنامههای Git، فایل hosts.yml مربوط به GitHub CLI، لاگهای GitHub Desktop، اطلاعات Visual Studio Code و فضای ذخیرهسازی سراسری آن را نیز جمعآوری میکند. همچنین دادههای موجود در Windows Credential Manager، Linux Secret Service، KDE Wallet، macOS Keychain و اطلاعات سرویسهای ذخیرهسازی ابری مانند Dropbox، Google Drive، Microsoft OneDrive، Apple iCloud، Box، Mega و pCloud نیز در فهرست اهداف آن قرار دارند. در مرحله پایانی، تمامی اطلاعات سرقتشده در قالب فایلهای ZIP فشرده شده و به سرور فرماندهی و کنترل ارسال میشوند. در صورتی که مهاجم هنگام اجرای حمله توکن یک ربات تلگرام را نیز ارائه کرده باشد، نسخهای از اطلاعات به همان ربات تلگرام منتقل خواهد شد.
این کارزار تنها به اکوسیستم npm محدود نبوده و پژوهشگران شرکت Nextron Systems نیز از شناسایی ۱۶ بسته آلوده در اکوسیستم Go خبر دادهاند. بررسیها نشان میدهد بیشتر این مخازن در اصل پروژههای قانونی بودهاند، اما آخرین نسخه منتشرشده آنها همراه با همان بدافزار و فایل جعلی فونت منتشر شده است.
پژوهشگران امنیتی به تمامی کاربرانی که این بستهها را نصب کردهاند توصیه کردهاند آنها را فوراً حذف کنند، سیستمهای توسعه را از نظر وجود وظایف مخفی VS Code که هنگام باز شدن پوشه اجرا میشوند بررسی کرده و تمامی گذرواژهها، توکنها، کلیدهای API، اعتبارنامههای سرویسهای ابری، اطلاعات ذخیرهشده در مرورگرها و همچنین اطلاعات مربوط به کیف پولهای رمزارزی را تعویض کنند.
به گفته JFrog، بررسی این بدافزار نشان میدهد هدف مهاجمان تنها سرقت سریع اطلاعات نبوده، بلکه آنها به دنبال حفظ دسترسی تعاملی و طولانیمدت به سیستم قربانی نیز هستند. در پشتی مبتنی بر Socket.io امکان اجرای دستورات و جمعآوری فایلها را فراهم میکند و مرحله پایتونی نیز طیف گستردهای از اطلاعات حساس شامل اعتبارنامهها، کیف پولهای رمزارزی، دادههای مرورگرها، ابزارهای توسعه و مخازن اطلاعاتی سیستمعامل را سرقت میکند.