آخرین اخبار
همهٔ اخبار
تهدیدها و حوادث گزارش بحرانیت ۸/۱۰

GhostAction: حمله زنجیره تأمین برای سرقت اعتبارنامه‌های CI/CD از طریق GitHub Actions

GhostAction: حمله زنجیره تأمین برای سرقت اعتبارنامه‌های CI/CD از طریق GitHub Actions

موج جدیدی از کمپین زنجیره تأمین (Supply Chain) با نام GhostAction، منجر به بهسازسازی (Compromise) ۷۷۲ مخزن عمومی در GitHub شده است. این حمله با استفاده از فایل‌های گردش‌کار (Workflow) جعلی در GitHub Actions، اقدام به سرقت اعتبارنامه‌ها (Credentials) از محیط‌های CI/CD می‌کند.

جزئیات عملیاتی و مکانیسم حمله

این فعالیت که بین ۳۱ اوت تا ۳۰ سپتامبر ۲۰۲۶ مشاهده شده، بیش از ۲,۵۷۷ Secret را در ۳۷۳ حساب کاربری و سازمان هدف قرار داده است. این داده‌های سرقتی شامل کلیدهای ابری (Cloud Keys)، اعتبارنامه‌های SSH، اطلاعات ورود به Container Registry، رمزهای عبور دیتابیس و توکن‌های GitHub است.

بررسی‌های GitGuardian نشان می‌دهد که عامل تهدید (Threat Actor) با دسترسی به حساب‌های GitHub سرقتی، گردش‌کارهای مخربی را تحت هویت خود قربانی اضافه می‌کند. این فایل‌ها به‌گونه‌ای طراحی شده‌اند که شبیه به به‌روزرسانی‌های معمول اتوماسیون به نظر برسند و در بررسی‌های سریع کد (Code Review) شناسایی نشوند. در اکثر موارد، فایلی با نام github_actions_security.yml و پیام کامیت “Add Github Actions Security workflow” اضافه شده است.

تحلیل فنی Payload

این گردش‌کار مخرب منتظر یک Push معمولی در مخزن می‌ماند، سپس Secretهای منتخب GitHub Actions را خوانده و آن‌ها را از طریق یک درخواست curl POST به زیرساخت‌های تحت کنترل مهاجم ارسال می‌کند. برخلاف بسیاری از حملات مشابه، GhostAction تمام متغیرهای موجود را جمع‌آوری نمی‌کند، بلکه ابتدا تاریخچه پیکربندی مخزن را برای یافتن ارجاعاتی با فرمت ${{ secrets.NAME }} بررسی کرده و سپس دقیقاً همان نام‌ها را در گردش‌کار مخرب خود درج می‌کند تا شانس موفقیت در استخراج داده‌های کاربردی (مانند دسترسی به Cloud یا Source-code) افزایش یابد.

تداوم و گسترش حمله

یکی از ویژگی‌های برجسته این کمپین، تداوم (Persistence) بالای آن است. در ۹۲ مورد، عامل تهدید به‌جای ایجاد فایل جدید، فایل‌های مخرب از موج‌های قبلی را که در مخازن باقی مانده بودند، به‌روزرسانی کرده تا داده‌ها به سرورهای جدید ارسال شوند. آخرین Payload شناسایی شده، داده‌ها را از طریق پروتکل HTTP ساده به IP 193.32.204.199 ارسال می‌کند.

توصیه‌های امنیتی برای مدیران SOC و CISOs

برای مقابله با این تهدید، سازمان‌ها باید اقدامات زیر را به سرعت اجرا کنند:

  • چرخش اعتبارنامه‌ها (Secret Rotation): تمام Secretهایی که در دسترس Runnerهای GitHub بوده‌اند باید فوراً تغییر کنند، حتی اگر در Logها ماسک شده باشند.
  • اعمال اصل حداقل دسترسی (Least Privilege): محدود کردن دسترسی‌های GITHUB_TOKEN و هر Workflow به حداقل سطح مورد نیاز.
  • تثبیت نسخه‌ها (Pinning): استفاده از Commit SHA کامل برای Actionهای شخص ثالث به‌جای استفاده از Tagها یا نسخه‌ها.
  • نظارت بر تغییرات: بررسی دقیق هرگونه تغییر یا اضافه شدن فایل در مسیر .github/workflows/.
  • کنترل‌های تأیید محیطی: فعال‌سازی Environment Approval برای Secretهای حساس مربوط به استقرار (Deployment).

شاخص‌های شناسایی (IoCs)

فایل‌ها و پیام‌ها:
– فایل مخرب: github_actions_security.yml یا security-check.yml
– پیام‌های کامیت: Add Github Actions Security workflow یا Update Github Actions Security workflow

زیرساخت‌های مهاجم:
– IP فعلی: 193[.]32[.]204[.]199
– Endpointهای قدیمی: carte-avantage[.]com و 170[.]39[.]218[.]2