یک حمله زنجیره تأمین (Supply Chain Attack) جدید با نام GHAPPIER شناسایی شده است که نشان میدهد چگونه دسترسی به یک حساب توسعهدهنده مورد اعتماد میتواند به سرعت به مسیری برای توزیع بدافزار تبدیل شود. در این عملیات، ۶۵ مخزن (Repository) در GitHub هدف قرار گرفته و ۷۳ فایل در ۲۲ حساب کاربری مختلف آلوده شدهاند.
مکانیزم حمله و توزیع بدافزار
مهاجمان با بهدست آوردن دسترسی به حساب نگهدارنده (Maintainer) یک بسته npm، کد منبع را تغییر داده و فرآیند انتشار (Publication) را از طریق شاخه اصلی (Main Branch) پروژه خودکار کردند. به دلیل استفاده از فرآیندهای انتشار خودکار، نسخههای مسموم کاملاً قانونی به نظر میرسیدند و بهگونهای توزیع شدند که هر بهروزرسانی معمول وابستگیها (Dependency Update)، یک Loader کد از راه دور را وارد محیطهای توسعه میکرد.
طبق گزارشهای منتشر شده، این نفوذ در تاریخ ۹ سپتامبر آغاز شد و مهاجم به مدت ۱۰۵ دقیقه کنترل حساب @dforge-core/dforge-mcp را در اختیار داشت. اگرچه روش دقیق سرقت اعتبار (Credentials) تایید نشده، اما احتمال آلودگی دستگاه توسعهدهنده یا استفاده از افزونههای مخرب به عنوان مسیر دسترسی مطرح است.
تحلیل فنی Payload و زیرساخت
- تزریق کد: مهاجم یک Remote Loader را در خطوط انتهایی یک فایل ۹۹ کیلوبایتی پنهان کرد و گردش کار (Workflow) انتشار را بازنویسی نمود تا انتشار بدون نظارت صورت گیرد.
- تأییدیه جعلی: بسته مخرب دارای Provenance معتبر npm بود، زیرا از طریق GitHub Actions و پروتکل OpenID Connect منتشر شده بود.
- زنجیره چهار مرحلهای: بدافزار در چهار مرحله اجرا میشد و آخرین جزء آن خود را حذف میکرد تا شناسایی آن در جستجوهای دیسک دشوار شود.
ارتباط با کمپین PolinRider
تحلیلهای تکمیلی نشان میدهد که بخشی از این عملیات با کمپین PolinRider مرتبط است. این گروه با افزودن کدهای مخفی به فایلهای پیکربندی پروژهها، اقدام به سرقت اعتبار Git ذخیره شده در دستگاههای قربانی میکند. نکته قابل توجه این است که Payload مربوطه برای دریافت دستورات C2، به جای استفاده از دامنههای متداول، از تراکنشهای بلاکچین اتریوم (Ethereum) استفاده میکند.
توصیههای امنیتی برای تیمهای SOC و مهندسین امنیت
سازمانهایی که از بسته مذکور استفاده میکنند باید سریعاً اقدامات زیر را انجام دهند:
- نسخه بسته را به 0.2.22 ارتقا داده و نصب یا اجرای نسخه 0.2.21 را بررسی کنند.
- تغییرات در Release Workflowها را ممیزی کرده و دسترسیهای Write به Main Branch را محدود نمایند.
- اعتبارهای احتمالی افشا شده را Rotate کرده و لاگهای کنترل نسخه (Source Control Logs) را بررسی کنند.
- تمرکز بر حفاظت از Endpointهای توسعهدهندگان (Developer Endpoint Protection) به دلیل ریسک سرقت Tokenها.