پژوهشگران شرکت JFrog از شناسایی مجموعهای از بستههای آلوده در مخازن npm و Go خبر دادهاند که با استفاده از یک روش نوآورانه، از قابلیت اجرای خودکار وظایف در Visual Studio Code برای آلودهسازی سیستمهای ویندوز، لینوکس و macOS بهره میبرند.
روش حمله
براساس تحلیل پژوهشگرانJFrog، این حمله از رایجترین مسیرهای اجرای npm که از طریق اسکریپتهای چرخهی حیات (Lifecycle Scripts) انجام میشوند، اجتناب میکند؛ احتمالاً هدف آن سازگار ماندن با سختگیریهای امنیتی نسخهی ۱۲ npm است.
در این روش اجرای کد در قالب یک وظیفه (Task) در VS Code پنهان میشود. در واقع بهگونهای پیکربندی شده است تا هنگام باز شدن پوشهی پروژه در VS Code بهصورت خودکار اجرا شود. پس از اجرا، بدافزار ابتدا کد جاوااسکریپت رمزگذاریشده را از دادههای بلاکچین دریافت میکند. سپس به زیرساخت مهاجم متصل شده، یک Backdoor مبتنی بر Socket.IO ایجاد میکند و در نهایت Infostealer پایتونی را روی سیستم قربانی مستقر میکند.
طبق بررسیهای انجام شده، دو بسته مخرب شناساییشده در مخزن npm با نامهای html-to-gutenberg و fetch-page-assets منتشر شده بودند که بسته دوم، html-to-gutenberg را بهعنوان یکی از وابستگیهای خود معرفی میکرد. این دو بسته در تاریخ ۲۵ مه ۲۰۲۶ در مخزن npm بارگذاری شدند، اما پس از شناسایی فعالیتهای مخرب، از این مخزن حذف شدند.
نقطهی آغاز این حمله، یک وظیفهی مخفی در Microsoft Visual Studio Code با نام eslint-check است که با گزینهی “runOn: folderOpen” پیکربندی شده است. این تنظیم باعث میشود به محض باز شدن پوشهی پروژه بهعنوان یک Workspace در محیطهای توسعهای مانند VS Code یا Cursor، کد دلخواه مهاجم بهصورت خودکار اجرا شود.
نحوه اجرای فایل مخرب در VS Code
بر اساس گزارش JFrog، این حمله از رفتار پیشفرض Visual Studio Code سوءاستفاده میکند. برخلاف تصور رایج، VS Code تمامی فایلهای .vscode/tasks.json موجود در پوشههای تو در تو را بهصورت بازگشتی اجرا نمیکند. در این حمله، کد مخرب تنها زمانی اجرا میشود که پوشه بسته آلوده بهعنوان Workspace در VS Code باز شده و توسط کاربر بهعنوان محیطی قابل اعتماد (Trusted) تأیید شود یا توسعهدهنده اجرای خودکار وظایف (Automatic Tasks) را بهصورت دستی فعال کرده باشد.
برای پنهانسازی فعالیتهای مخرب، مهاجمان کد جاوااسکریپت خود را در قالب یک فایل فونت با مسیر public/fonts/fa-solid-400.woff2 قرار دادهاند؛ در حالی که این فایل هیچ داده فونتی نداشته و صرفاً حاوی کد جاوااسکریپت است.
با توجه به شباهت این روش با کمپین Fake Font ؛ کمپینی که پیشتر به گروههای وابسته به کره شمالی نسبت داده شده بود. تیم OpenSourceMalware این فعالیت را گونهای از عملیات Contagious Interview میداند؛ کارزاری که از سال ۲۰۲۳ با استفاده از فرصتهای شغلی و مصاحبههای استخدامی جعلی، توسعهدهندگان نرمافزار و سایر نیروهای فنی را هدف قرار داده است.
به گفته پاول مککارتی، پژوهشگر امنیت، کمپین Fake Font از یک بارگذار (Loader) چندمرحلهای استفاده میکند که در نهایت بدافزار InvisibleFerret را روی سیستم قربانی مستقر میکند. این بدافزار با هدف سرقت اطلاعات حساس از جمله کیف پولهای ارز دیجیتال، اطلاعات ورود مرورگرها و ایجاد دسترسی پایدار به سیستم طراحی شده است.
عملکرد بدافزار پس از اجرا
پس از اجرای کد اولیه، بدافزار از زیرساختهای بلاکچین بهعنوان یک Dead Drop Resolver استفاده میکند. در این مرحله، سرویسهای TronGrid و Aptos برای دریافت مرحله بعدی کد مخرب به کار گرفته میشوند؛ روشی که مقاومت بالایی در برابر شناسایی و حذف زیرساختهای مهاجم دارد.
در ادامه، بدافزار با بازیابی اطلاعات موردنیاز، به سرور فرماندهی و کنترل (C2) متصل شده و یک درِ پشتی مبتنی بر Socket.IO ایجاد میکند. این Backdoor به مهاجم امکان میدهد دستورات دلخواه را روی سیستم قربانی اجرا کرده، فایلها را مدیریت و بارگذاری کند، محتوای Clipboard را سرقت کند، پردازشهای در حال اجرا را کنترل کرده و حتی کدهای JavaScript دلخواه را اجرا کند.
گسترش حمله به اکوسیستم Go
بررسیهای Nextron Systems نشان میدهد که این کمپین تنها به مخزن npm محدود نبوده و مهاجمان اکوسیستم Go را نیز هدف قرار دادهاند. در این بررسی، ۱۶ بسته آلوده Go شناسایی شد که همگی از همان زنجیره آلودگی و روشهای مورد استفاده در نسخه npm بهره میبردند.
به گفته JFrog، بیشتر این بستهها در اصل بستههای نرمافزاری معتبر بودهاند، اما مهاجمان با انتشار نسخههای جدید، کد مخرب را در کنار محتوای اصلی آنها قرار دادهاند. این بستهها نیز از همان ساختار حمله، از جمله فایل فونت جعلی و مکانیزم اجرای خودکار در VS Code، برای آلودهسازی سیستم قربانی استفاده میکردند.
توصیههای امنیتی
پژوهشگران امنیتی از کاربرانی که احتمال میدهند این بستهها را نصب کردهاند خواستهاند در اسرع وقت آنها را از سیستمهای خود حذف کنند. همچنین توصیه شده است محیطهای توسعه از نظر وجود وظایف مخفی VS Code که هنگام باز شدن Workspace بهصورت خودکار اجرا میشوند، بررسی شوند. در صورت احتمال آلودگی نیز بهتر است تمامی گذرواژهها، توکنهای دسترسی، کلیدهای API، اعتبارنامههای سرویسهای ابری، اطلاعات ذخیرهشده در مرورگرها و دادههای مرتبط با کیف پولهای رمزارزی تغییر داده شوند.


0 دیدگاه