یک حمله زنجیره تأمین (Supply-Chain Attack) با شدت بالا در بسته npm با نام @dforge-core/dforge-mcp شناسایی شده است. در این عملیات، مهاجمان موفق شدند یک Implant با قابلیت ایجاد Remote Shell را از طریق یک بهروزرسانی بهظاهر معتبر و دارای امضای Provenance توزیع کنند. با توجه به احتمال تسخیر کامل سیستم و دشواری در شناسایی فارنزیک، سازمانهایی که از نسخه 0.2.21 این بسته استفاده کردهاند، باید فوراً اقدامات لازم را انجام دهند.
تحلیل مکانیسم حمله
این حمله از یک محدودیت اساسی در قابلیت Trusted Publishing در npm بهرهبرداری کرده است؛ این قابلیت تنها تأیید میکند که یک Artifact در کجا ساخته شده است، اما صداقت یا سلامت کد منبع (Source) را تضمین نمیکند. مهاجمان با دسترسی به حساب Maintainer، گردش کار (Workflow) انتشار در GitHub Actions را تغییر دادند تا هر Push به شاخه main، منجر به انتشار خودکار نسخه جدید از طریق OIDC Trusted Publishing شود.
بدافزار GHAPPIER در نسخه 0.2.21، در قالب یک خط کد مخرب در خط 3320 از یک فایل پیکربندی 99 کیلوبایتی پنهان شده بود. به دلیل استفاده از GitHub Actions OIDC، این انتشار دارای امضای Provenance معتبر بود که باعث شد ابزارهای امنیتی به آن اعتماد کنند.
جزئیات فنی Payload و C2
- فعالسازی: زنجیره چهار مرحلهای Payload تنها هنگام اجرای MCP Server فعال میشد و در زمان نصب بسته (Installation) هیچ فعالیتی نداشت.
- پاکسازی ردپا: Implant نهایی پس از برقراری Remote Shell، خود را از روی دیسک حذف میکرد تا هیچ اثر فارنزیکی باقی نماند.
- ارتباطات C2: تحلیلها نشان میدهد که بخشی از این عملیات با کمپین PolinRider (مرتبط با کره شمالی) همپوشانی دارد. این گروه از تراکنشهای بلاکچین اتریوم برای پیکربندی Command-and-Control (C2) استفاده میکند. با نوشتن تنظیمات در بخش آدرس گیرنده تراکنشهای خالی، کانالی ایجاد شده که هیچ دامنه یا هاستی برای مسدود کردن ندارد.
تأثیرات و اقدامات پیشنهادی
بهرهبرداری موفق از این آسیبپذیری به مهاجم اجازه میدهد دستورات دلخواه (Arbitrary Commands) را اجرا کرده، اعتبارنامهها (Credentials) و دادههای حساس را استخراج کند و به سایر زیرساختهای متصل نفوذ نماید. با توجه به اینکه هنوز CVE رسمی برای این مورد صادر نشده است، سازمانها باید به صورت دستی فایلهای lockfiles خود را برای بررسی وجود نسخه 0.2.21 از بسته @dforge-core/dforge-mcp بازرسی کنند.